Suchergebnisseite

Dieses Modul enthält Funktionen, die das Verhalten des SRP-Clients steuern.

Zusammenfassung

Dieses Modul enthält Funktionen des Service Registration Protocol.

Dieses Modul enthält Funktionen für SRP-Clientzwischenspeicher und Dienstpool.

Die Funktionen in diesem Modul sind nur verfügbar, wenn die Funktion OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE aktiviert ist.

Aufzählungen

otSrpClientItemState{
  OT_SRP_CLIENT_ITEM_STATE_TO_ADD,
  OT_SRP_CLIENT_ITEM_STATE_ADDING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH,
  OT_SRP_CLIENT_ITEM_STATE_REFRESHING,
  OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE,
  OT_SRP_CLIENT_ITEM_STATE_REMOVING,
  OT_SRP_CLIENT_ITEM_STATE_REGISTERED,
  OT_SRP_CLIENT_ITEM_STATE_REMOVED
}
enum
Gibt den Status eines SRP-Clients (Dienst- oder Hostinformationen) an.
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
enum
Stellt den vom SRP-Server verwendeten Adressmodus dar.
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
enum
Stellt den Status des SRP-Servers dar.

Typedefs

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
Der Zeigertyp definiert den Callback, der vom SRP-Client verwendet wird, um den Nutzer zu benachrichtigen, wenn er automatisch gestartet oder beendet wird.
otSrpClientBuffersServiceEntry typedef
Stellt einen Eintrag für einen SRP-Clientdienstpool-Eintrag dar.
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
Der Zeigertyp definiert den Callback, der vom SRP-Client verwendet wird, um den Nutzer über Änderungen/Ereignisse/Fehler zu informieren.
otSrpClientHostInfo typedef
Stellt Informationen zum SRP-Clienthost dar.
otSrpClientService typedef
Stellt einen SRP-Clientdienst dar.
otSrpServerAddressMode typedef
Stellt den vom SRP-Server verwendeten Adressmodus dar.
otSrpServerHost typedef
Dieser intransparente Typ steht für einen SRP-Diensthost.
otSrpServerLeaseConfig typedef
Umfasst SRP-Server-LEASE- und KEY-LEASE-Konfigurationen.
otSrpServerLeaseInfo typedef
Enthält SRP-Server-Lease-Informationen eines Hosts/Dienstes.
otSrpServerResponseCounters typedef
Enthält die Statistiken der SRP-Serverantworten.
otSrpServerService typedef
Dieser intransparente Typ steht für einen SRP-Dienst.
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
Verarbeitet SRP-Dienstaktualisierungen.
otSrpServerServiceUpdateId typedef
uint32_t
Die ID einer Transaktion für die Aktualisierung des SRP-Dienstes auf dem SRP-Server.
otSrpServerTtlConfig typedef
Umfasst SRP-Server-TTL-Konfigurationen.

Funktionen

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
Fügt einen Dienst hinzu, der beim Server registriert werden soll.
otSrpClientBuffersAllocateService(otInstance *aInstance)
Ordnet einen neuen Diensteintrag aus dem Pool zu.
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
Gibt alle zuvor zugewiesenen Diensteinträge frei.
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
Gibt einen zuvor zugewiesenen Diensteintrag frei.
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
Ruft das Array der IPv6-Adresseinträge ab, die als Liste der SRP-Client-Hostadressen verwendet werden sollen.
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
Ruft den Stringpuffer ab, der für den Hostnamen des SRP-Clients verwendet werden soll.
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Ruft den Stringpuffer für den Dienstinstanznamen aus einem Diensteintrag ab.
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
Ruft den Stringpuffer für den Dienstnamen aus einem Diensteintrag ab.
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
Ruft den Puffer für den TXT-Eintrag aus einem Diensteintrag ab.
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
Ruft das Array für Dienstuntertyplabels aus dem Diensteintrag ab.
otSrpClientClearHostAndServices(otInstance *aInstance)
void
Löscht alle Hostinformationen und alle Dienste.
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
Löscht einen Dienst und entfernt ihn sofort aus der Liste der Dienstanbieter.
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
Deaktiviert den Autostart-Modus.
otSrpClientEnableAutoHostAddress(otInstance *aInstance)
Aktiviert den Modus für die automatische Hostadresse.
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
Aktiviert den Autostartmodus.
otSrpClientGetDomainName(otInstance *aInstance)
const char *
Ruft den vom SRP-Client verwendeten Domainnamen ab.
otSrpClientGetHostInfo(otInstance *aInstance)
Ruft die Hostinformationen ab.
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
Ruft das Standardintervall für die Schlüsselfreigabe ab, das in SRP-Aktualisierungsanfragen verwendet wird.
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
Ruft das standardmäßige Freigabeintervall ab, das in SRP-Aktualisierungsanfragen verwendet wird.
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
Ruft die Socket-Adresse (IPv6-Adresse und Portnummer) des SRP-Servers ab, der vom SRP-Client verwendet wird.
otSrpClientGetServices(otInstance *aInstance)
Ruft die Liste der Dienste ab, die vom Client verwaltet werden.
otSrpClientGetTtl(otInstance *aInstance)
uint32_t
Ruft den TTL-Wert aus jedem Datensatz ab, der in SRP-Aktualisierungsanfragen enthalten ist.
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
Zeigt den aktuellen Status des Autostartmodus an (aktiviert oder deaktiviert).
otSrpClientIsRunning(otInstance *aInstance)
bool
Gibt an, ob der SRP-Client ausgeführt wird oder nicht.
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
Gibt an, ob der Modus zum Einbinden des Dienstschlüssels aktiviert oder deaktiviert ist.
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
Wandelt einen otSrpClientItemState in einen String um.
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
Startet den Entfernungsprozess für die Hostinformationen und alle Dienste.
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
Fordert an, dass ein Dienst vom Server abgemeldet wird.
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
Legt den Rückruf fest, um den Aufrufer über Ereignisse/Änderungen des SRP-Clients zu informieren.
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
Legt den Domainnamen fest, der vom SRP-Client verwendet werden soll.
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
Legt die Liste der IPv6-Hostadresse fest bzw. aktualisiert sie.
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
Legt das Label für den Hostnamen fest.
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Legt das Standardintervall für die Schlüsselfreigabe fest, das in SRP-Updateanfragen verwendet wird.
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
Legt das standardmäßige Freigabeintervall fest, das in SRP-Updateanfragen verwendet wird.
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
Aktiviert/deaktiviert den Modus „Einschluss von Dienstschlüsseleinträgen“.
otSrpClientSetTtl(otInstance *aInstance, uint32_t aTtl)
void
Legt den TTL-Wert in jedem Datensatz fest, der in SRP-Aktualisierungsanfragen enthalten ist.
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
Startet den SRP-Clientvorgang.
otSrpClientStop(otInstance *aInstance)
void
Beendet den Vorgang des SRP-Clients.
otSrpServerGetAddressMode(otInstance *aInstance)
Gibt den vom SRP-Server verwendeten Adressmodus zurück.
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
Gibt die Sequenznummer zurück, die im Anycast-Adressmodus verwendet wird.
otSrpServerGetDomain(otInstance *aInstance)
const char *
Gibt die für den SRP-Server autorisierte Domain zurück.
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
Gibt LEASE- und KEY-LEASE-Konfigurationen des SRP-Servers zurück.
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
Gibt den nächsten registrierten Host auf dem SRP-Server zurück
otSrpServerGetPort(otInstance *aInstance)
uint16_t
Gibt den Port zurück, den der SRP-Server überwacht.
otSrpServerGetResponseCounters(otInstance *aInstance)
Gibt die Antwortzähler des SRP-Servers zurück.
otSrpServerGetState(otInstance *aInstance)
Gibt den Status des SRP-Servers zurück.
otSrpServerGetTtlConfig(otInstance *aInstance, otSrpServerTtlConfig *aTtlConfig)
void
Gibt die TTL-Konfiguration des SRP-Servers zurück.
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
Meldet das Ergebnis der Verarbeitung einer SRP-Aktualisierung an den SRP-Server.
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
Gibt die Adressen des angegebenen Hosts zurück.
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
Gibt den vollständigen Namen des Hosts zurück
otSrpServerHostGetLeaseInfo(const otSrpServerHost *aHost, otSrpServerLeaseInfo *aLeaseInfo)
void
Gibt die LEASE- und KEY-LEASE-Informationen eines bestimmten Hosts zurück.
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
Gibt den nächsten Dienst des angegebenen Hosts zurück
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
Gibt an, ob der SRP-Diensthost gelöscht wurde.
otSrpServerHostMatchesFullName(const otSrpServerHost *aHost, const char *aFullName)
bool
Gibt an, ob der Host mit einem bestimmten Hostnamen übereinstimmt.
otSrpServerIsAutoEnableMode(otInstance *aInstance)
bool
Gibt an, ob der Modus für die automatische Aktivierung aktiviert oder deaktiviert ist.
otSrpServerParseSubTypeServiceName(const char *aSubTypeServiceName, char *aLabel, uint8_t aLabelSize)
Analysiert einen Dienstnamen des Untertyps (vollständiger Name) und extrahiert das Untertyplabel.
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
Gibt den Host zurück, auf dem sich die Dienstinstanz befindet.
otSrpServerServiceGetInstanceLabel(const otSrpServerService *aService)
const char *
Gibt das Dienstinstanzlabel (erstes Label im Instanznamen) des Dienstes zurück.
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
Gibt den vollständigen Dienstinstanznamen des Dienstes zurück
otSrpServerServiceGetLeaseInfo(const otSrpServerService *aService, otSrpServerLeaseInfo *aLeaseInfo)
void
Gibt die LEASE- und KEY-LEASE-Informationen eines bestimmten Dienstes zurück.
otSrpServerServiceGetNumberOfSubTypes(const otSrpServerService *aService)
uint16_t
Ruft die Anzahl der Untertypen des Dienstes ab.
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
Gibt den Port der Dienstinstanz zurück.
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
Gibt die Priorität der Dienstinstanz zurück.
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
Gibt den vollständigen Dienstnamen des Dienstes zurück
otSrpServerServiceGetSubTypeServiceNameAt(const otSrpServerService *aService, uint16_t aIndex)
const char *
Ruft den Dienstuntertypnamen (vollständiger Name) des Dienstes bei einem bestimmten Index ab.
otSrpServerServiceGetTtl(const otSrpServerService *aService)
uint32_t
Gibt die TTL der Dienstinstanz zurück.
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
Gibt die TXT-Eintragdaten der Dienstinstanz zurück.
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
Gibt die Gewichtung der Dienstinstanz zurück.
otSrpServerServiceHasSubTypeServiceName(const otSrpServerService *aService, const char *aSubTypeServiceName)
bool
Gibt an, ob der Dienst einen bestimmten Untertyp hat.
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
Gibt an, ob der SRP-Dienst gelöscht wurde.
otSrpServerServiceMatchesInstanceName(const otSrpServerService *aService, const char *aInstanceName)
bool
Gibt an, ob dieser Dienst mit einem bestimmten Dienstinstanznamen übereinstimmt.
otSrpServerServiceMatchesServiceName(const otSrpServerService *aService, const char *aServiceName)
bool
Gibt an, ob dieser Dienst mit einem bestimmten Dienstnamen übereinstimmt.
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
Legt den Adressmodus fest, der vom SRP-Server verwendet werden soll.
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
Legt die Sequenznummer fest, die im Anycast-Adressmodus verwendet wird.
otSrpServerSetAutoEnableMode(otInstance *aInstance, bool aEnabled)
void
Aktiviert/deaktiviert den automatischen Aktivierungsmodus auf dem SRP-Server.
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
Legt die Domain auf dem SRP-Server fest.
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
Aktiviert/deaktiviert den SRP-Server.
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
Legt die LEASE- und KEY-LEASE-Konfigurationen des SRP-Servers fest.
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
Legt den Handler für die Aktualisierung des SRP-Dienstes auf dem SRP-Server fest.
otSrpServerSetTtlConfig(otInstance *aInstance, const otSrpServerTtlConfig *aTtlConfig)
Legt die TTL-Konfiguration des SRP-Servers fest.

Strukturen

otSrpClientBuffersServiceEntry

Stellt einen Eintrag für einen SRP-Clientdienstpool-Eintrag dar.

otSrpClientHostInfo

Stellt Informationen zum SRP-Clienthost dar.

otSrpClientService

Stellt einen SRP-Clientdienst dar.

otSrpServerLeaseConfig

Umfasst SRP-Server-LEASE- und KEY-LEASE-Konfigurationen.

otSrpServerLeaseInfo

Enthält SRP-Server-Lease-Informationen eines Hosts/Dienstes.

otSrpServerResponseCounters

Enthält die Statistiken der SRP-Serverantworten.

otSrpServerTtlConfig

Umfasst SRP-Server-TTL-Konfigurationen.

Aufzählungen

otSrpClientItemState

 otSrpClientItemState

Gibt den Status eines SRP-Clients (Dienst- oder Hostinformationen) an.

Attribute
OT_SRP_CLIENT_ITEM_STATE_ADDING

Das Element wird gerade hinzugefügt/registriert.

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

Element wird aktualisiert.

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

Das Element ist beim Server registriert.

OT_SRP_CLIENT_ITEM_STATE_REMOVED

Das Element wurde entfernt.

OT_SRP_CLIENT_ITEM_STATE_REMOVING

Element wird entfernt.

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

Element, das hinzugefügt/registriert werden soll.

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

Element, das aktualisiert werden soll (neu registrieren, um Lease zu verlängern)

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

Zu entfernendes Element.

otSrpServerAddressMode

 otSrpServerAddressMode

Stellt den vom SRP-Server verwendeten Adressmodus dar.

Der Adressmodus gibt an, wie die Adresse und Portnummer vom SRP-Server ermittelt und wie diese Informationen in den Thread-Netzwerkdaten veröffentlicht werden.

Attribute
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

Anycast-Adressmodus.

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

Unicast-Adressmodus.

otSrpServerState

 otSrpServerState

Stellt den Status des SRP-Servers dar.

Attribute
OT_SRP_SERVER_STATE_DISABLED

Der SRP-Server ist deaktiviert.

OT_SRP_SERVER_STATE_RUNNING

Der SRP-Server ist aktiviert und wird ausgeführt.

OT_SRP_SERVER_STATE_STOPPED

Der SRP-Server ist aktiviert, aber gestoppt.

Typedefs

otSrpClientAutoStartCallback

void(* otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext)

Der Zeigertyp definiert den Callback, der vom SRP-Client verwendet wird, um den Nutzer zu benachrichtigen, wenn er automatisch gestartet oder beendet wird.

Wird nur verwendet, wenn die Autostart-Funktion „OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE“ aktiviert ist.

Dieser Callback wird aufgerufen, wenn der Autostart-Modus aktiviert ist und der SRP-Client entweder automatisch gestartet oder gestoppt wird.

Details
Parameter
[in] aServerSockAddr
Ein Nicht-NULL-Zeiger gibt an, dass der SRP-Server gestartet wurde, und der Zeiger gibt die ausgewählte Server-Socket-Adresse an. Ein NULL-Zeiger gibt an, dass der SRP-Server gestoppt wurde.
[in] aContext
Ein Zeiger auf einen beliebigen Kontext, der bereitgestellt wird, als der Callback registriert wurde.

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

Stellt einen Eintrag für einen SRP-Clientdienstpool-Eintrag dar.

otSrpClientCallback

void(* otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext)

Der Zeigertyp definiert den Callback, der vom SRP-Client verwendet wird, um den Nutzer über Änderungen/Ereignisse/Fehler zu informieren.

Dieser Callback wird bei erfolgreicher Registrierung einer Aktualisierung (d.h. Hinzufügen/Entfernen von Hostinformationen und/oder einigen Diensten) mit dem SRP-Server oder bei einem Fehler oder bei einem Fehler aufgerufen, z.B. wenn der Server eine Aktualisierungsanfrage ablehnt oder der Client beim Warten auf eine Antwort eine Zeitüberschreitung auftritt.

Bei einer erfolgreichen erneuten Registrierung eines Updates wäre der Parameter aError OT_ERROR_NONE und die Hostinformationen und die vollständige Liste der Dienste werden als Eingabeparameter für den Callback bereitgestellt. Hostinformationen und -dienste erfassen jeweils ihren eigenen Status in der entsprechenden mState-Mitgliedsvariablen der zugehörigen Datenstruktur (der Status, der angibt, ob die Hostinformationen/der Dienst registriert oder entfernt wird oder noch hinzugefügt/entfernt wird usw.).

Die Liste der entfernten Dienste wird im Callback als eigene verknüpfte Liste (aRemovedServices) übergeben. Wenn der Callback aufgerufen wird, erfolgt der SRP-Client (OpenThread-Implementierung) mit den entfernten Dienstinstanzen, die in aRemovedServices aufgeführt sind, und erfasst/speichert sie nicht mehr (d.h., wenn wir aus dem Callback otSrpClientGetServices() aufrufen, sind die entfernten Dienste nicht in der zurückgegebenen Liste enthalten). Durch die Bereitstellung einer separaten Liste der entfernten Dienste im Callback kann der Nutzer sehen, welche Elemente jetzt entfernt wurden, und die Instanzen können wieder beansprucht und wiederverwendet werden.

Wenn der Server eine Anfrage zur Aktualisierung der SRP-Seite ablehnt, wird der DNS-Antwortcode (RFC 2136) den folgenden Fehlern zugeordnet:

  • (0) NOERROR Erfolgreich (keine Fehlerbedingung) -> OT_ERROR_NONE
  • (1) FORMERR Server kann aufgrund eines Formatfehlers nicht interpretiert werden -> OT_ERROR_PARSE
  • (2) SERVFAIL-Server hat einen internen Fehler festgestellt -> OT_ERROR_FAILED
  • (3) NXDOMAIN-Name, der vorhanden sein sollte, existiert jedoch nicht -> OT_ERROR_NOT_FOUND
  • (4) NOTIMP Server unterstützt nicht den Abfragetyp (OpCode) -> OT_ERROR_NOT_IMPLEMENTED
  • (5) REFUSED Server abgelehnt aus Richtlinien-/Sicherheitsgründen -> OT_ERROR_SECURITY
  • (6) YXDOMAIN Ein Name, der nicht vorhanden sein sollte, ist vorhanden -> OT_ERROR_DUPLICATED
  • (7) YXRRSET Einige RRset-Werte, die nicht vorhanden sein sollten, ist vorhanden -> OT_ERROR_DUPLICATED
  • (8) NXRRSET Einige RRset-Werte, die vorhanden sein sollten, ist nicht vorhanden -> OT_ERROR_NOT_FOUND
  • (9) NOTAUTH-Dienst ist nicht autoritativ für Zone -> OT_ERROR_SECURITY
  • (10) NOTZONE A Name ist nicht in der Zone enthalten -> OT_ERROR_PARSE
  • (20) BADNAME Falscher Name -> OT_ERROR_PARSE
  • (21) BADALG Schlechter Algorithmus -> OT_ERROR_SECURITY
  • (22) BADTRUN Falsche Kürzung -> OT_ERROR_PARSE
  • Andere Antwortcodes -> OT_ERROR_FAILED

Folgende Fehler können ebenfalls auftreten:

  • OT_ERROR_ANSWER_TIMEOUT : Zeitüberschreitung beim Warten auf die Antwort des Servers. Der Client würde versuchen, den Vorgang fortzusetzen.
  • OT_ERROR_INVALID_ARGS : Die angegebene Dienststruktur ist ungültig (z.B. falscher Dienstname oder otDnsTxtEntry).
  • OT_ERROR_NO_BUFS : Nicht genügend Puffer zum Vorbereiten oder Senden der Aktualisierungsnachricht.

Bei einem Fehler setzt der Client den Vorgang fort, d.h. er bereitet die SRP-Aktualisierungsnachricht vor und (noch einmal) nach einem Warteintervall an den Server. Das Warteintervall für Wiederholungsversuche beginnt beim Mindestwert und wird bei jedem Fehler um den Wachstumsfaktor bis zum Maximalwert erhöht. Weitere Informationen finden Sie im Konfigurationsparameter OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL und in den zugehörigen Abschnitten.

Details
Parameter
[in] aError
Der Fehler (siehe oben).
[in] aHostInfo
Ein Zeiger auf Hostinformationen.
[in] aServices
Der Kopf der verknüpften Liste, der alle Dienste (ausgenommen die entfernten) enthält. NULL, wenn die Liste leer ist.
[in] aRemovedServices
Der Kopf der verknüpften Liste, der alle entfernten Dienste enthält. NULL, wenn die Liste leer ist.
[in] aContext
Ein Zeiger auf einen beliebigen Kontext, der bereitgestellt wird, als der Callback registriert wurde.

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

Stellt Informationen zum SRP-Clienthost dar.

otSrpClientService

struct otSrpClientService otSrpClientService

Stellt einen SRP-Clientdienst dar.

Die Werte in dieser Struktur, einschließlich der Stringpuffer für die Namen und TXT-Eintrageinträge, MÜSSEN beibehalten und konstant bleiben, nachdem eine Instanz dieser Struktur von otSrpClientAddService() oder otSrpClientRemoveService() an OpenThread übergeben wurde.

Die Felder mState, mData und mNext werden nur vom OT-Kern verwendet/verwaltet. Deren Wert wird ignoriert, wenn eine Instanz von otSrpClientService in otSrpClientAddService(), otSrpClientRemoveService() oder anderen Funktionen übergeben wird. Der Aufrufer muss diese Felder nicht festlegen.

In den Feldern mLease und mKeyLease werden die gewünschten Freigabe- und Schlüsselfreigabeintervalle für diesen Dienst angegeben. Ein Nullwert gibt an, dass das Intervall nicht angegeben ist. Dann werden für diesen Dienst die standardmäßigen Freigabe- oder Schlüsselfreigabeintervalle von otSrpClientGetLeaseInterval() und otSrpClientGetKeyLeaseInterval() verwendet. Wenn das Freigabeintervall (entweder explizit festgelegt oder anhand des Standardwerts bestimmt) kürzer als das Freigabeintervall für einen Dienst ist, verwendet der SRP-Client den Freigabeintervallwert auch für das Schlüsselfreigabeintervall. Beispiel: Wenn für den Dienst mLease ausdrücklich 2 Tage, für mKeyLease null und das standardmäßige Schlüssel-Lease auf 1 Tag festgelegt ist, wird bei der Registrierung dieses Dienstes auch die angeforderte Schlüsselfreigabe für diesen Dienst auf 2 Tage festgelegt.

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

Stellt den vom SRP-Server verwendeten Adressmodus dar.

Der Adressmodus gibt an, wie die Adresse und Portnummer vom SRP-Server ermittelt und wie diese Informationen in den Thread-Netzwerkdaten veröffentlicht werden.

otSrpServerHost

struct otSrpServerHost otSrpServerHost

Dieser intransparente Typ steht für einen SRP-Diensthost.

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

Umfasst SRP-Server-LEASE- und KEY-LEASE-Konfigurationen.

otSrpServerLeaseInfo

struct otSrpServerLeaseInfo otSrpServerLeaseInfo

Enthält SRP-Server-Lease-Informationen eines Hosts/Dienstes.

otSrpServerResponseCounters

struct otSrpServerResponseCounters otSrpServerResponseCounters

Enthält die Statistiken der SRP-Serverantworten.

otSrpServerService

struct otSrpServerService otSrpServerService

Dieser intransparente Typ steht für einen SRP-Dienst.

otSrpServerServiceUpdateHandler

void(* otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext)

Verarbeitet SRP-Dienstaktualisierungen.

Wird vom SRP-Server aufgerufen, um zu informieren, dass ein SRP-Host und möglicherweise SRP-Dienste aktualisiert werden. Es ist wichtig, dass die SRP-Aktualisierungen erst festgeschrieben werden, wenn der Handler das Ergebnis durch Aufrufen von otSrpServerHandleServiceUpdateResult zurückgibt oder dass nach aTimeout eine Zeitüberschreitung auftritt.

Ein SRP-Dienstbeobachter sollte otSrpServerHandleServiceUpdateResult immer sofort nach Erhalt der Aktualisierungsereignisse mit dem Fehlercode OT_ERROR_NONE aufrufen.

Ein allgemeinerer Handler kann Validierungen für den SRP-Host bzw. die SRP-Dienste durchführen und die SRP-Updates ablehnen, wenn eine Validierung fehlschlägt. Ein Advertising Proxy sollte beispielsweise den Host und die Dienste über einen Multicast-fähigen Link anbieten (oder entfernen) und gibt einen spezifischen Fehlercode zurück, wenn ein Fehler auftritt.

Details
Parameter
[in] aId
Die Transaktions-ID für die Dienstaktualisierung. Diese ID muss mit otSrpServerHandleServiceUpdateResult zurückgegeben werden.
[in] aHost
Ein Zeiger auf das otSrpServerHost-Objekt, das die SRP-Updates enthält. Der Handler sollte den Host veröffentlichen bzw. die Veröffentlichung aufheben und jeder Dienst verweist gemäß den folgenden Regeln auf diesen Host:
  1. Wenn der Host nicht gelöscht ist (erkennbar durch otSrpServerHostIsDeleted), sollte er veröffentlicht oder mit mDNS aktualisiert werden. Andernfalls sollte die Veröffentlichung des Hosts aufgehoben werden. Entfernen Sie dazu AAAA-RRs.
  2. Für jeden Dienst, der auf diesen Host verweist, muss die Veröffentlichung aufgehoben werden, wenn die Veröffentlichung des Hosts aufgehoben werden soll. Andernfalls sollte der Handler den Dienst veröffentlichen oder aktualisieren, wenn er nicht gelöscht ist (gekennzeichnet durch otSrpServerServiceIsDeleted), und seine Veröffentlichung aufheben, wenn er gelöscht wurde.
[in] aTimeout
Die maximale Zeit in Millisekunden, die der Handler zur Verarbeitung des Dienstereignisses benötigt.
[in] aContext
Ein Zeiger auf einen anwendungsspezifischen Kontext.
Weitere Informationen:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId

uint32_t otSrpServerServiceUpdateId

Die ID einer Transaktion für die Aktualisierung des SRP-Dienstes auf dem SRP-Server.

otSrpServerTtlConfig

struct otSrpServerTtlConfig otSrpServerTtlConfig

Umfasst SRP-Server-TTL-Konfigurationen.

Funktionen

otSrpClientAddService

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Fügt einen Dienst hinzu, der beim Server registriert werden soll.

Nach einem erfolgreichen Aufruf dieser Funktion wird otSrpClientCallback aufgerufen, um den Status des Hinzufügens bzw. Registrierens des Dienstes beim SRP-Server zu melden.

Die otSrpClientService-Instanz, auf die aService verweist, MUSS bestehen bleiben und bleibt nach der Rückkehr von dieser Funktion (mit OT_ERROR_NONE) unverändert. OpenThread speichert den Zeiger auf die Dienstinstanz.

Die Instanz otSrpClientService wird von OpenThread nicht mehr verfolgt und kann nur dann zurückgefordert werden, wenn

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aService
Ein Zeiger auf eine otSrpClientService-Instanz, die hinzugefügt werden soll.
Rückgabewerte
OT_ERROR_NONE
Der Dienst wurde hinzugefügt. otSrpClientCallback wird aufgerufen, um den Status zu melden.
OT_ERROR_ALREADY
Ein Dienst mit demselben Dienst- und Instanznamen ist bereits in der Liste enthalten.
OT_ERROR_INVALID_ARGS
Die Dienststruktur ist ungültig (z.B. falscher Dienstname oder otDnsTxtEntry).

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

Ordnet einen neuen Diensteintrag aus dem Pool zu.

Die zurückgegebene Diensteintragsinstanz wird so initialisiert:

  • mService.mName verweist auf einen zugewiesenen Stringzwischenspeicher, der mit der Funktion otSrpClientBuffersGetServiceEntryServiceNameString() abgerufen werden kann.
  • mService.mInstanceName verweist auf einen zugewiesenen Stringzwischenspeicher, der mit der Funktion otSrpClientBuffersGetServiceEntryInstanceNameString() abgerufen werden kann.
  • mService.mSubTypeLabels verweist auf ein Array, das von otSrpClientBuffersGetSubTypeLabelsArray() zurückgegeben wird.
  • mService.mTxtEntries verweist auf mTxtEntry.
  • mService.mNumTxtEntries wird auf eins festgelegt.
  • Andere mService-Felder (Port, Priorität, Gewichtung) sind auf null gesetzt.
  • mTxtEntry.mKey ist auf NULL gesetzt (der Wert wird als bereits codiert behandelt).
  • mTxtEntry.mValue verweist auf einen zugewiesenen Zwischenspeicher, der mit der Funktion otSrpClientBuffersGetServiceEntryTxtBuffer() abgerufen werden kann.
  • mTxtEntry.mValueLength ist auf null gesetzt.
  • Alle zugehörigen Daten-/Zeichenfolgenpuffer und Arrays werden auf null zurückgesetzt.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Ein Zeiger auf den neu zugewiesenen Diensteintrag oder NULL, wenn nicht mehr Eintrag im Pool verfügbar ist.

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

Gibt alle zuvor zugewiesenen Diensteinträge frei.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

Gibt einen zuvor zugewiesenen Diensteintrag frei.

aService MUSS zuvor mit otSrpClientBuffersAllocateService() zugewiesen und noch nicht freigegeben werden. Andernfalls ist das Verhalten dieser Funktion nicht definiert.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aService
Ein Zeiger auf den Diensteintrag für den kostenlosen Dienst (DARF NICHT NULL sein).

otSrpClientBuffersGetHostAddressesArray

otIp6Address * otSrpClientBuffersGetHostAddressesArray(
  otInstance *aInstance,
  uint8_t *aArrayLength
)

Ruft das Array der IPv6-Adresseinträge ab, die als Liste der SRP-Client-Hostadressen verwendet werden sollen.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[out] aArrayLength
Zeiger auf eine Variable, um die Array-Länge zurückzugeben, d.h. die Anzahl der IPv6-Adresseinträge im Array (DARF NICHT NULL sein).
Rückgabe
Ein Zeiger auf ein Array mit otIp6Address-Einträgen (die Anzahl der Einträge wird in aArrayLength zurückgegeben).

otSrpClientBuffersGetHostNameString

char * otSrpClientBuffersGetHostNameString(
  otInstance *aInstance,
  uint16_t *aSize
)

Ruft den Stringpuffer ab, der für den Hostnamen des SRP-Clients verwendet werden soll.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[out] aSize
Zeiger auf eine Variable, um die Größe (Anzahl der Byte) des String-Zwischenspeichers zurückzugeben (DARF NICHT NULL sein).
Rückgabe
Ein Zeiger auf den Zeichenpuffer, der für den Hostnamen des SRP-Clients verwendet werden soll.

otSrpClientBuffersGetServiceEntryInstanceNameString

char * otSrpClientBuffersGetServiceEntryInstanceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Ruft den Stringpuffer für den Dienstinstanznamen aus einem Diensteintrag ab.

Details
Parameter
[in] aEntry
Ein Zeiger auf einen zuvor zugewiesenen Diensteintrag (DARF NICHT NULL sein).
[out] aSize
Ein Zeiger auf eine Variable, um die Größe (Anzahl der Byte) des String-Zwischenspeichers zurückzugeben (DARF NICHT NULL sein).
Rückgabe
Ein Zeiger auf den Stringpuffer.

otSrpClientBuffersGetServiceEntryServiceNameString

char * otSrpClientBuffersGetServiceEntryServiceNameString(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Ruft den Stringpuffer für den Dienstnamen aus einem Diensteintrag ab.

Details
Parameter
[in] aEntry
Ein Zeiger auf einen zuvor zugewiesenen Diensteintrag (DARF NICHT NULL sein).
[out] aSize
Ein Zeiger auf eine Variable, um die Größe (Anzahl der Byte) des String-Zwischenspeichers zurückzugeben (DARF NICHT NULL sein).
Rückgabe
Ein Zeiger auf den Stringpuffer.

otSrpClientBuffersGetServiceEntryTxtBuffer

uint8_t * otSrpClientBuffersGetServiceEntryTxtBuffer(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aSize
)

Ruft den Puffer für den TXT-Eintrag aus einem Diensteintrag ab.

Details
Parameter
[in] aEntry
Ein Zeiger auf einen zuvor zugewiesenen Diensteintrag (DARF NICHT NULL sein).
[out] aSize
Ein Zeiger auf eine Variable, um die Größe (Anzahl der Byte) des Puffers zurückzugeben (DARF NICHT NULL sein).
Rückgabe
Ein Zeiger zum Zwischenspeicher.

otSrpClientBuffersGetSubTypeLabelsArray

const char ** otSrpClientBuffersGetSubTypeLabelsArray(
  otSrpClientBuffersServiceEntry *aEntry,
  uint16_t *aArrayLength
)

Ruft das Array für Dienstuntertyplabels aus dem Diensteintrag ab.

Details
Parameter
[in] aEntry
Ein Zeiger auf einen zuvor zugewiesenen Diensteintrag (DARF NICHT NULL sein).
[out] aArrayLength
Ein Zeiger auf eine Variable, um die Arraylänge zurückzugeben (DARF NICHT NULL sein).
Rückgabe
Ein Zeiger auf das Array.

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

Löscht alle Hostinformationen und alle Dienste.

Im Gegensatz zu otSrpClientRemoveHostAndServices(), das eine Aktualisierungsnachricht an den Server sendet, um alle Informationen zu entfernen, löscht diese Funktion alle Informationen sofort und ohne Interaktion mit dem Server.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.

otSrpClientClearService

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Löscht einen Dienst und entfernt ihn sofort aus der Liste der Dienstanbieter.

Im Gegensatz zu otSrpClientRemoveService(), das eine Aktualisierungsnachricht zum Entfernen des Dienstes an den Server sendet, löscht diese Funktion den Dienst ohne Interaktion mit dem Server aus der Dienstliste des Clients. Bei einem erfolgreichen Aufruf dieser Funktion wird otSrpClientCallback NICHT aufgerufen und der Eintrag aService kann sofort vom Aufrufer zurückgefordert und wiederverwendet werden.

Kann zusammen mit einem nachfolgenden Aufruf von otSrpClientAddService() verwendet werden, um einige Parameter in einem vorhandenen Dienst zu aktualisieren. Dabei kann es sich um denselben aService-Eintrag mit demselben Dienst und denselben Instanznamen handeln.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aService
Ein Zeiger auf eine otSrpClientService-Instanz, die gelöscht werden soll.
Rückgabewerte
OT_ERROR_NONE
aService wurde gelöscht. Es kann sofort zurückgefordert und wiederverwendet werden.
OT_ERROR_NOT_FOUND
Der Dienst wurde in der Liste nicht gefunden.

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

Deaktiviert den Autostart-Modus.

Diese Option ist nur verfügbar, wenn die automatische Startfunktion „OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE“ aktiviert ist.

Durch das Deaktivieren des automatischen Startmodus wird der Client nicht gestoppt, wenn er bereits ausgeführt wird. Der Client beendet jedoch die Überwachung der Thread-Netzwerkdaten, um zu prüfen, ob der ausgewählte SRP-Server noch darin vorhanden ist.

Durch einen Aufruf von otSrpClientStop() wird auch der Autostartmodus deaktiviert.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.

otSrpClientEnableAutoHostAddress

otError otSrpClientEnableAutoHostAddress(
  otInstance *aInstance
)

Aktiviert den Modus für die automatische Hostadresse.

Wenn diese Option aktiviert ist, werden Host-IPv6-Adressen automatisch vom SRP-Client unter Verwendung aller bevorzugten Unicast-Adressen im Thread-Netzwerk festgelegt, ausgenommen Link-Local- und Mesh-Local-Adressen. Wenn keine bevorzugte Adresse vorhanden ist, wird die lokale EID-Adresse des Mesh-Netzwerks hinzugefügt. Der SRP-Client wird automatisch neu registriert, wenn Adressen im Thread-Netif aktualisiert werden (neue Adressen werden hinzugefügt oder vorhandene Adressen werden entfernt oder als nicht bevorzugt markiert).

Der Modus für die automatische Hostadresse kann vor dem Start oder während des Betriebs des SRP-Clients aktiviert werden, es sei denn, die Hostinformationen werden entfernt, weil der Client gerade mit der Bearbeitung einer Anfrage zum Entfernen eines Aufrufs von otSrpClientRemoveHostAndServices() beschäftigt ist und die Hostinformationen sich noch im Status STATE_TO_REMOVE oder STATE_REMOVING befinden.

Nachdem der Modus für die automatische Hostadresse aktiviert wurde, kann er durch einen Aufruf von otSrpClientSetHostAddresses() deaktiviert werden, der dann explizit die Hostadressen festlegt.

Details
Rückgabewerte
OT_ERROR_NONE
Modus für automatische Hostadresse wurde aktiviert.
OT_ERROR_INVALID_STATE
Der Host wird entfernt und kann daher den Modus für die automatische Hostadresse nicht aktivieren.

otSrpClientEnableAutoStartMode

void otSrpClientEnableAutoStartMode(
  otInstance *aInstance,
  otSrpClientAutoStartCallback aCallback,
  void *aContext
)

Aktiviert den Autostartmodus.

Diese Option ist nur verfügbar, wenn die automatische Startfunktion „OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE“ aktiviert ist.

Die Konfigurationsoption OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE gibt den Standard-Autostartmodus an, d. h., ob sie beim Start des OT-Stacks aktiviert oder deaktiviert ist.

Wenn „Auto-Start“ aktiviert ist, überwacht der SRP-Client die Thread-Netzwerkdaten, um SRP-Server zu erkennen, den bevorzugten Server auszuwählen und den Client automatisch zu starten und zu stoppen, wenn ein SRP-Server erkannt wird.

Es gibt drei Kategorien von Netzwerkdateneinträgen, die auf das Vorhandensein eines SRP-Servers hinweisen. Sie werden in der folgenden Reihenfolge bevorzugt:

1) Bevorzugte Unicast-Einträge, bei denen die Serveradresse in den Dienstdaten enthalten ist. Wenn mehrere Optionen vorhanden sind, wird die mit der numerisch niedrigsten IPv6-Adresse bevorzugt.

2) Anycast-Einträge, die jeweils eine Sequenznummer haben Eine größere Sequenznummer im Sinne der arithmetischen Logik der Seriennummer in RFC-1982 wird als aktueller angesehen und daher bevorzugt. Die größte Sequenznummer mit Seriennummernarithmetik wird bevorzugt, wenn sie klar definiert ist (d.h. die Seriennummer ist größer als alle anderen Sequenznummern). Wenn sie nicht klar definiert ist, wird die numerisch größte Sequenznummer vorgezogen.

3) Unicast-Einträge, bei denen die Serveradresseninformationen in den Serverdaten enthalten sind. Wenn mehrere Optionen vorhanden sind, wird die mit der numerisch niedrigsten IPv6-Adresse bevorzugt.

Wenn es eine Änderung in den Netzwerkdateneinträgen gibt, prüft der Client, ob der aktuell ausgewählte Server in den Netzwerkdaten noch vorhanden und immer noch der bevorzugte Server ist. Andernfalls wechselt der Client zum neuen bevorzugten Server oder wird beendet, falls keiner vorhanden ist.

Wenn der SRP-Client explizit durch einen erfolgreichen Aufruf von otSrpClientStart() gestartet wird, wird die angegebene SRP-Serveradresse in otSrpClientStart() weiterhin verwendet, unabhängig vom Status des Autostartmodus und davon, ob dieselbe SRP-Serveradresse in den Thread-Netzwerkdaten erkannt wird oder nicht. In diesem Fall wird der Client nur durch einen expliziten otSrpClientStop()-Aufruf gestoppt.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aCallback
Ein Rückruf, der benachrichtigt wird, wenn der Client automatisch gestartet/gestoppt wird. Kann NULL sein, wenn nicht erforderlich.
[in] aContext
Ein Kontext, der beim Aufrufen von aCallback übergeben werden soll.

otSrpClientGetDomainName

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

Ruft den vom SRP-Client verwendeten Domainnamen ab.

Hierfür muss OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE aktiviert sein.

Wenn kein Domainname festgelegt ist, wird „default.service.arpa“ verwendet.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Der String für den Domainnamen.

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

Ruft die Hostinformationen ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Ein Zeiger auf die Host-Infostruktur.

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

Ruft das Standardintervall für die Schlüsselfreigabe ab, das in SRP-Aktualisierungsanfragen verwendet wird.

Das Standardintervall wird nur für otSrpClientService-Instanzen verwendet, bei denen mKeyLease auf null gesetzt ist.

Beachten Sie, dass dies die Lease-Dauer ist, die vom SRP-Client angefordert wird. Der Server kann ein anderes Freigabeintervall akzeptieren.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Das Intervall der Schlüsselfreigabe in Sekunden.

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

Ruft das standardmäßige Freigabeintervall ab, das in SRP-Aktualisierungsanfragen verwendet wird.

Das Standardintervall wird nur für otSrpClientService-Instanzen verwendet, bei denen mLease auf null gesetzt ist.

Beachten Sie, dass dies die Lease-Dauer ist, die vom SRP-Client angefordert wird. Der Server kann ein anderes Freigabeintervall akzeptieren.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Das Freigabeintervall (in Sekunden).

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

Ruft die Socket-Adresse (IPv6-Adresse und Portnummer) des SRP-Servers ab, der vom SRP-Client verwendet wird.

Wenn der Client nicht ausgeführt wird, ist die Adresse nicht angegeben (alle Null) und die Portnummer null.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Ein Zeiger auf die Socket-Adresse des SRP-Servers (ist immer nicht NULL).

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

Ruft die Liste der Dienste ab, die vom Client verwaltet werden.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Ein Zeiger auf den Kopf der verknüpften Liste aller Dienste oder NULL, wenn die Liste leer ist.

otSrpClientGetTtl

uint32_t otSrpClientGetTtl(
  otInstance *aInstance
)

Ruft den TTL-Wert aus jedem Datensatz ab, der in SRP-Aktualisierungsanfragen enthalten ist.

Beachten Sie, dass dies die vom SRP-Client angeforderte TTL ist. Möglicherweise akzeptiert der Server eine andere TTL.

Standardmäßig entspricht die TTL dem Freigabeintervall. Wenn 0 oder ein Wert, der größer als das Freigabeintervall über otSrpClientSetTtl() ist, übergeben, entspricht die TTL ebenfalls dem Freigabeintervall.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
Die TTL in Sekunden.

otSrpClientIsAutoStartModeEnabled

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

Zeigt den aktuellen Status des Autostartmodus an (aktiviert oder deaktiviert).

Diese Option ist nur verfügbar, wenn die automatische Startfunktion „OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE“ aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
TRUE, wenn der Autostartmodus aktiviert ist, andernfalls FALSE.

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

Gibt an, ob der SRP-Client ausgeführt wird oder nicht.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
TRUE, wenn der SRP-Client ausgeführt wird, andernfalls FALSE.

otSrpClientIsServiceKeyRecordEnabled

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

Gibt an, ob der Modus zum Einbinden des Dienstschlüssels aktiviert oder deaktiviert ist.

Ist verfügbar, wenn die OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE-Konfiguration aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
Rückgabe
TRUE, wenn der Modus „Einschluss des Dienstschlüssels“ aktiviert ist, andernfalls FALSE.

otSrpClientItemStateToString

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

Wandelt einen otSrpClientItemState in einen String um.

Details
Parameter
[in] aItemState
Ein Elementstatus.
Rückgabe
Eine Stringdarstellung von aItemState.

otSrpClientRemoveHostAndServices

otError otSrpClientRemoveHostAndServices(
  otInstance *aInstance,
  bool aRemoveKeyLease,
  bool aSendUnregToServer
)

Startet den Entfernungsprozess für die Hostinformationen und alle Dienste.

Nach der Rückkehr von dieser Funktion wird otSrpClientCallback aufgerufen, um den Status der Entfernungsanfrage an den SRP-Server zu melden.

Wenn die Hostinformationen dauerhaft vom Server entfernt werden sollen, sollte aRemoveKeyLease auf true gesetzt werden. Dadurch wird die mit dem Host auf dem Server verknüpfte Schlüsselfreigabe entfernt. Andernfalls wird der Schlüssel-Lease-Datensatz wie zuvor beibehalten, wodurch sichergestellt wird, dass der Server den Hostnamen in Reserve hält, wenn der Client seine Dienste wieder bereitstellen und registrieren kann.

aSendUnregToServer bestimmt das Verhalten, wenn die Hostinformationen noch nicht auf dem Server registriert sind. Wenn aSendUnregToServer auf false (Standard/erwarteter Wert) gesetzt ist, entfernt der SRP-Client sofort die Hostinformationen und -dienste, ohne eine Aktualisierungsnachricht an den Server zu senden. Der Server muss nicht aktualisiert werden, wenn noch nichts auf ihm registriert ist. Wenn aSendUnregToServer auf true gesetzt ist, sendet der SRP-Client eine Aktualisierungsnachricht an den Server. Wenn die Hostinformationen registriert sind, spielt der Wert von aSendUnregToServer keine Rolle. Der SRP-Client sendet dann immer eine Aktualisierungsnachricht an den Server, in der er darum bittet, alle Informationen zu entfernen.

Wenn aSendUnregToServer beim Zurücksetzen/Neustart des Geräts hilfreich sein kann, möchte der Aufrufer möglicherweise alle zuvor registrierten Dienste auf dem Server entfernen. In diesem Fall kann der Aufrufer otSrpClientSetHostName() und dann otSrpClientRemoveHostAndServices() mit aSendUnregToServer als true anfordern.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aRemoveKeyLease
Ein boolescher Wert, der angibt, ob die Hostschlüsselfreigabe ebenfalls entfernt werden soll.
[in] aSendUnregToServer
Boolescher Wert, der angibt, ob eine Aktualisierung an den Server gesendet werden soll, wenn die Hostinformationen nicht registriert sind.
Rückgabewerte
OT_ERROR_NONE
Das Entfernen der Hostinformationen und -dienste wurde gestartet. otSrpClientCallback wird aufgerufen, um den Status zu melden.
OT_ERROR_ALREADY
Die Hostinformationen wurden bereits entfernt.

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

Fordert an, dass ein Dienst vom Server abgemeldet wird.

Nach einem erfolgreichen Aufruf dieser Funktion wird otSrpClientCallback aufgerufen, um den Status der Entfernungsanfrage an den SRP-Server zu melden.

Die otSrpClientService-Instanz, auf die aService verweist, MUSS bestehen bleiben und bleibt nach der Rückkehr von dieser Funktion (mit OT_ERROR_NONE) unverändert. OpenThread behält die Dienstinstanz während des Entfernens bei. Erst nach dem Aufruf von otSrpClientCallback gibt an, dass die Dienstinstanz aus der SRP-Clientdienstliste entfernt wurde und freigegeben/wiederverwendet werden kann.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aService
Ein Zeiger auf eine otSrpClientService-Instanz, die entfernt werden soll.
Rückgabewerte
OT_ERROR_NONE
Das Entfernen des Dienstes wurde gestartet. otSrpClientCallback wird aufgerufen, um den Status zu melden.
OT_ERROR_NOT_FOUND
Der Dienst wurde in der Liste nicht gefunden.

otSrpClientSetCallback

void otSrpClientSetCallback(
  otInstance *aInstance,
  otSrpClientCallback aCallback,
  void *aContext
)

Legt den Rückruf fest, um den Aufrufer über Ereignisse/Änderungen des SRP-Clients zu informieren.

Der SRP-Client lässt die Registrierung eines einzelnen Callbacks zu. Aufeinanderfolgende Aufrufe dieser Funktion überschreiben daher alle zuvor festgelegten Callback-Funktionen.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aCallback
Entspricht dem Callback, mit dem über Ereignisse und Änderungen informiert wird. Kann NULL sein, wenn nicht erforderlich.
[in] aContext
Ein beliebiger Kontext, der mit aCallback verwendet wird.

otSrpClientSetDomainName

otError otSrpClientSetDomainName(
  otInstance *aInstance,
  const char *aName
)

Legt den Domainnamen fest, der vom SRP-Client verwendet werden soll.

Hierfür muss OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE aktiviert sein.

Wenn nicht festgelegt, wird „default.service.arpa“ verwendet.

Der Zwischenspeicher für den Namensstring, auf den aName verweist, MUSS erhalten bleiben und bleibt nach der Rückgabe von dieser Funktion unverändert. OpenThread behält den Zeiger auf den String bei.

Der Domainname kann festgelegt werden, bevor der Client gestartet oder nach dem Start, aber bevor die Hostinformationen beim Server registriert werden (Hostinformationen sollten entweder in STATE_TO_ADD oder STATE_TO_REMOVE angegeben werden).

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aName
Ein Zeiger auf den Domain-Namen-String. Wenn NULL ist, wird er auf den Standardwert "default.service.arpa" gesetzt.
Rückgabewerte
OT_ERROR_NONE
Das Label für den Domainnamen wurde festgelegt.
OT_ERROR_INVALID_STATE
Die Hostinformationen sind bereits beim Server registriert.

otSrpClientSetHostAddresses

otError otSrpClientSetHostAddresses(
  otInstance *aInstance,
  const otIp6Address *aIp6Addresses,
  uint8_t aNumAddresses
)

Legt die Liste der IPv6-Hostadresse fest bzw. aktualisiert sie.

Host-IPv6-Adressen können vor dem Start oder während des Betriebs des SRP-Clients festgelegt oder geändert werden (z.B. um eine zuvor registrierte Hostadresse hinzuzufügen, zu entfernen oder zu ändern), es sei denn, die Hostinformationen werden entfernt, da der Client gerade mit einer Entfernungsanfrage aus einem früheren Aufruf an otSrpClientRemoveHostAndServices() beschäftigt ist und die Hostinformationen sich noch im Status STATE_TO_REMOVE oder STATE_REMOVING befinden.

Das IPv6-Adressarray des Hosts, auf das aIp6Addresses verweist, MUSS bestehen bleiben und bleibt nach der Rückgabe von dieser Funktion (mit OT_ERROR_NONE) unverändert. OpenThread speichert den Zeiger im Array.

Nach einem erfolgreichen Aufruf dieser Funktion wird otSrpClientCallback aufgerufen, um den Status der Adressregistrierung beim SRP-Server zu melden.

Durch den Aufruf dieser Funktion wird der Modus für die automatische Hostadresse deaktiviert, wenn er zuvor durch einen erfolgreichen Aufruf von otSrpClientEnableAutoHostAddress() aktiviert wurde.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aIp6Addresses
Ein Zeiger auf ein Array, das die IPv6-Hostadressen enthält.
[in] aNumAddresses
Die Anzahl der Adressen im Array aIp6Addresses.
Rückgabewerte
OT_ERROR_NONE
Die Änderung der IPv6-Adressenliste des Hosts wurde gestartet. Das otSrpClientCallback wird aufgerufen, um den Status der Registrierung von Adressen beim Server zu melden.
OT_ERROR_INVALID_ARGS
Die Adressenliste ist ungültig (muss z.B. mindestens eine Adresse enthalten).
OT_ERROR_INVALID_STATE
Der Host wird entfernt und kann daher die Hostadresse nicht ändern.

otSrpClientSetHostName

otError otSrpClientSetHostName(
  otInstance *aInstance,
  const char *aName
)

Legt das Label für den Hostnamen fest.

Nach einem erfolgreichen Aufruf dieser Funktion wird otSrpClientCallback aufgerufen, um den Status der Registrierung der Hostinformationen beim SRP-Server zu melden.

Der Zwischenspeicher für den Namensstring, auf den aName verweist, MUSS erhalten bleiben und bleibt nach der Rückgabe von dieser Funktion unverändert. OpenThread behält den Zeiger auf den String bei.

Der Hostname kann festgelegt werden, bevor der Client oder nach dem Start, aber bevor die Hostinformationen beim Server registriert werden (Hostinformationen sollten entweder in STATE_TO_ADD oder STATE_REMOVED angegeben werden).

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aName
Ein Zeiger auf den Labelstring des Hostnamens (DARF NICHT NULL sein). Der Zeiger auf den Zeichenfolgenzwischenspeicher MUSS bestehen bleiben und nach der Rückgabe von dieser Funktion gültig und konstant bleiben.
Rückgabewerte
OT_ERROR_NONE
Das Label für den Hostnamen wurde festgelegt.
OT_ERROR_INVALID_ARGS
aName ist NULL.
OT_ERROR_INVALID_STATE
Der Hostname ist bereits auf dem Server festgelegt und registriert.

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Legt das Standardintervall für die Schlüsselfreigabe fest, das in SRP-Updateanfragen verwendet wird.

Das Standardintervall wird nur für otSrpClientService-Instanzen verwendet, bei denen mKeyLease auf null gesetzt ist.

Eine Änderung des Freigabeintervalls wirkt sich nicht auf das akzeptierte Freigabeintervall für bereits registrierte Dienste/Hostinformationen aus, sondern nur auf zukünftige SRP-Updates (z. B. Hinzufügen neuer Dienste und/oder Aktualisierungen vorhandener Dienste).

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aInterval
Das Intervall der Schlüsselfreigabe in Sekunden. Wenn Null, wird der von OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE angegebene Standardwert verwendet.

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

Legt das standardmäßige Freigabeintervall fest, das in SRP-Updateanfragen verwendet wird.

Das Standardintervall wird nur für otSrpClientService-Instanzen verwendet, bei denen mLease auf null gesetzt ist.

Eine Änderung des Freigabeintervalls wirkt sich nicht auf das akzeptierte Freigabeintervall für bereits registrierte Dienste/Hostinformationen aus, sondern nur auf zukünftige SRP-Update-Nachrichten (z. B. Hinzufügen neuer Dienste und/oder Aktualisierungen vorhandener Dienste).

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aInterval
Das Freigabeintervall (in Sekunden). Wenn Null, wird der von OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE angegebene Standardwert verwendet.

otSrpClientSetServiceKeyRecordEnabled

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert/deaktiviert den Modus „Einschluss von Dienstschlüsseleinträgen“.

Wenn diese Option aktiviert ist, schließt der SRP-Client den KEY-Eintrag in den Anweisungen zur Dienstbeschreibung in den SRP-Update-Nachrichten ein, die er sendet.

Ist verfügbar, wenn die OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE-Konfiguration aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aEnabled
TRUE zum Aktivieren, FALSE zum Deaktivieren des Modus "Einschluss von Dienstschlüsseleinträgen".

otSrpClientSetTtl

void otSrpClientSetTtl(
  otInstance *aInstance,
  uint32_t aTtl
)

Legt den TTL-Wert in jedem Datensatz fest, der in SRP-Aktualisierungsanfragen enthalten ist.

Das Ändern der TTL wirkt sich nicht auf die TTL der bereits registrierten Dienste/Hostinformationen aus, sondern nur auf zukünftige SRP-Updates (z. B. das Hinzufügen neuer Dienste und/oder Aktualisierungen vorhandener Dienste).

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aTtl
Die TTL in Sekunden. Wenn der Wert null oder größer als das Freigabeintervall ist, wird die TTL auf das Freigabeintervall gesetzt.

otSrpClientStart

otError otSrpClientStart(
  otInstance *aInstance,
  const otSockAddr *aServerSockAddr
)

Startet den SRP-Clientvorgang.

Der SRP-Client bereitet die Nachricht „SRP-Update“ vor und sendet sie an den SRP-Server, sobald alle folgenden Bedingungen erfüllt sind:

Es spielt keine Rolle, in welcher Reihenfolge diese Funktionen aufgerufen werden. Wenn alle Bedingungen erfüllt sind, wartet der SRP-Client eine kurze Verzögerung, bevor er eine Nachricht zur SRP-Aktualisierung vorbereitet und an den Server sendet. Durch diese Verzögerung können Nutzer mehrere Dienste und/oder IPv6-Adressen hinzufügen, bevor die erste SRP-Update-Nachricht gesendet wird. Dadurch wird sichergestellt, dass ein einzelnes SRP-Update mit allen Informationen gesendet wird. Die Konfiguration OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY gibt das Verzögerungsintervall an.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.
[in] aServerSockAddr
Die Socket-Adresse (IPv6-Adresse und Portnummer) des SRP-Servers.
Rückgabewerte
OT_ERROR_NONE
SRP-Clientvorgang erfolgreich gestartet oder er wird bereits mit derselben Server-Socket-Adresse und demselben Callback ausgeführt.
OT_ERROR_BUSY
Der SRP-Client wird mit einer anderen Socket-Adresse ausgeführt.
OT_ERROR_FAILED
Der UDP-Socket des Clients konnte nicht geöffnet/verbindet werden.

otSrpClientStop

void otSrpClientStop(
  otInstance *aInstance
)

Beendet den Vorgang des SRP-Clients.

Beendet alle weiteren Interaktionen mit dem SRP-Server. Beachten Sie, dass dadurch keine Hostinformationen und/oder eine Liste von Diensten entfernt oder gelöscht werden. Damit werden alle Dienste gekennzeichnet, die nach dem (Neu-)Start des Clients wieder hinzugefügt bzw. entfernt werden müssen.

Details
Parameter
[in] aInstance
Ein Zeiger auf die OpenThread-Instanz.

otSrpServerGetAddressMode

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

Gibt den vom SRP-Server verwendeten Adressmodus zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der Adressmodus des SRP-Servers.

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

Gibt die Sequenznummer zurück, die im Anycast-Adressmodus verwendet wird.

Die Sequenznummer ist im Eintrag „DNS/SRP Service Anycast Address“ (DNS-/SRP-Dienst-Anycast-Adresse) enthalten, der unter „Network Data“ veröffentlicht wurde.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Die Anycast-Sequenznummer.

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

Gibt die für den SRP-Server autorisierte Domain zurück.

Wenn die Domain nicht von SetDomain festgelegt wird, wird „default.service.arpa.“ zurückgegeben. Ein abschließender Punkt wird immer angehängt, auch wenn die Domain ohne ihn festgelegt wurde.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Ein Zeiger auf den mit einem Punkt verknüpften Domainstring.

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

Gibt LEASE- und KEY-LEASE-Konfigurationen des SRP-Servers zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aLeaseConfig
Ein Zeiger auf eine otSrpServerLeaseConfig-Instanz.

otSrpServerGetNextHost

const otSrpServerHost * otSrpServerGetNextHost(
  otInstance *aInstance,
  const otSrpServerHost *aHost
)

Gibt den nächsten registrierten Host auf dem SRP-Server zurück

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aHost
Ein Zeiger auf den aktuellen Host. Verwenden Sie NULL, um den ersten Host abzurufen.
Rückgabe
Ein Zeiger auf den registrierten Host. NULL, wenn keine weiteren Hosts gefunden werden können.

otSrpServerGetPort

uint16_t otSrpServerGetPort(
  otInstance *aInstance
)

Gibt den Port zurück, den der SRP-Server überwacht.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der Port des SRP-Servers. Wenn der Server nicht ausgeführt wird, wird 0 zurückgegeben.

otSrpServerGetResponseCounters

const otSrpServerResponseCounters * otSrpServerGetResponseCounters(
  otInstance *aInstance
)

Gibt die Antwortzähler des SRP-Servers zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Ein Zeiger auf die Antwortzähler des SRP-Servers.

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

Gibt den Status des SRP-Servers zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Der aktuelle Status des SRP-Servers.

otSrpServerGetTtlConfig

void otSrpServerGetTtlConfig(
  otInstance *aInstance,
  otSrpServerTtlConfig *aTtlConfig
)

Gibt die TTL-Konfiguration des SRP-Servers zurück.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[out] aTtlConfig
Ein Zeiger auf eine otSrpServerTtlConfig-Instanz.

otSrpServerHandleServiceUpdateResult

void otSrpServerHandleServiceUpdateResult(
  otInstance *aInstance,
  otSrpServerServiceUpdateId aId,
  otError aError
)

Meldet das Ergebnis der Verarbeitung einer SRP-Aktualisierung an den SRP-Server.

Der Handler für Dienstaktualisierungen sollte diese Funktion aufrufen, um das Ergebnis der Verarbeitung einer SRP-Aktualisierung zurückzugeben.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aId
Die Transaktions-ID für die Dienstaktualisierung. Dies sollte mit der ID übereinstimmen, die über otSrpServerServiceUpdateHandler bereitgestellt wird.
[in] aError
Ein Fehler, der an den SRP-Server zurückgegeben werden soll. Verwenden Sie OT_ERROR_DUPLICATED, um DNS-Namenskonflikte darzustellen.

otSrpServerHostGetAddresses

const otIp6Address * otSrpServerHostGetAddresses(
  const otSrpServerHost *aHost,
  uint8_t *aAddressesNum
)

Gibt die Adressen des angegebenen Hosts zurück.

Details
Parameter
[in] aHost
Ein Zeiger auf den SRP-Diensthost.
[out] aAddressesNum
Ein Zeiger, an den die Anzahl der Adressen ausgegeben werden soll.
Rückgabe
Ein Zeiger auf das Array der IPv6-Adressen.

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

Gibt den vollständigen Namen des Hosts zurück

Details
Parameter
[in] aHost
Ein Zeiger auf den SRP-Diensthost.
Rückgabe
Ein Zeiger auf den nicht abgeschlossenen Hostnamenstring.

otSrpServerHostGetLeaseInfo

void otSrpServerHostGetLeaseInfo(
  const otSrpServerHost *aHost,
  otSrpServerLeaseInfo *aLeaseInfo
)

Gibt die LEASE- und KEY-LEASE-Informationen eines bestimmten Hosts zurück.

Details
Parameter
[in] aHost
Ein Zeiger auf den SRP-Serverhost.
[out] aLeaseInfo
Ein Zeiger, der angibt, wo die LEASE- und SCHLÜSSEL-LEASE-Informationen ausgegeben werden sollen.

otSrpServerHostGetNextService

const otSrpServerService * otSrpServerHostGetNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aService
)

Gibt den nächsten Dienst des angegebenen Hosts zurück

Details
Parameter
[in] aHost
Ein Zeiger auf den SRP-Diensthost.
[in] aService
Ein Zeiger auf die aktuelle SRP-Dienstinstanz. Verwenden Sie NULL, um den ersten Dienst abzurufen.
Rückgabe
Ein Zeiger auf den nächsten Dienst oder NULL, wenn keine weiteren Dienste vorhanden sind.

otSrpServerHostIsDeleted

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

Gibt an, ob der SRP-Diensthost gelöscht wurde.

Ein SRP-Diensthost kann gelöscht werden, behält aber seinen Namen für die zukünftige Verwendung. In diesem Fall wird die Hostinstanz nicht vom SRP-Server bzw. der SRP-Registry entfernt.

Details
Parameter
[in] aHost
Ein Zeiger auf den SRP-Diensthost.
Rückgabe
TRUE, wenn der Host gelöscht wurde, FALSE, wenn nicht.

otSrpServerHostMatchesFullName

bool otSrpServerHostMatchesFullName(
  const otSrpServerHost *aHost,
  const char *aFullName
)

Gibt an, ob der Host mit einem bestimmten Hostnamen übereinstimmt.

Übereinstimmungen mit DNS-Namen werden anhand eines Stringvergleichs durchgeführt, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird (z.B. „Abc“ und „aBc“ werden als identisch betrachtet.

Details
Parameter
[in] aHost
Ein Zeiger auf den SRP-Diensthost.
[in] aFullName
Ein vollständiger Hostname.
Rückgabewerte
TRUE
Wenn der Host mit dem Hostnamen übereinstimmt.
FALSE
Wenn der Host nicht mit dem Hostnamen übereinstimmt.

otSrpServerIsAutoEnableMode

bool otSrpServerIsAutoEnableMode(
  otInstance *aInstance
)

Gibt an, ob der Modus für die automatische Aktivierung aktiviert oder deaktiviert ist.

Erfordert die Funktion OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabewerte
TRUE
Der automatische Aktivierungsmodus ist aktiviert.
FALSE
Der automatische Aktivierungsmodus ist deaktiviert.

otSrpServerParseSubTypeServiceName

otError otSrpServerParseSubTypeServiceName(
  const char *aSubTypeServiceName,
  char *aLabel,
  uint8_t aLabelSize
)

Analysiert einen Dienstnamen des Untertyps (vollständiger Name) und extrahiert das Untertyplabel.

Der vollständige Dienstname für einen Untertyp-Dienst folgt auf "._sub...".

Details
Parameter
[in] aSubTypeServiceName
Ein Dienstname eines Untertyps (vollständiger Name).
[out] aLabel
Ein Zeiger auf einen Puffer, um das extrahierte Untertyplabel zu kopieren.
[in] aLabelSize
Maximale Puffergröße: aLabel.
Rückgabewerte
OT_ERROR_NONE
Der Name wurde erfolgreich geparst und aLabel wurde aktualisiert.
OT_ERROR_NO_BUFS
Das Untertyp-Label hat nicht in den aLabel-Puffer gepasst (die Anzahl der Zeichen, die vom Label passen könnten, werden in aLabel kopiert, wodurch sichergestellt wird, dass es auf Null endet).
OT_ERROR_INVALID_ARGS
aSubTypeServiceName ist kein gültiges Untertypformat.

otSrpServerServiceGetHost

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

Gibt den Host zurück, auf dem sich die Dienstinstanz befindet.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Ein Zeiger auf die Hostinstanz.

otSrpServerServiceGetInstanceLabel

const char * otSrpServerServiceGetInstanceLabel(
  const otSrpServerService *aService
)

Gibt das Dienstinstanzlabel (erstes Label im Instanznamen) des Dienstes zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Ein Zeiger auf den Labelstring der Dienstinstanz, dessen Null beendet wurde.

otSrpServerServiceGetInstanceName

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

Gibt den vollständigen Dienstinstanznamen des Dienstes zurück

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Ein Zeiger auf den String mit dem Null-beendeten Dienstinstanznamen.

otSrpServerServiceGetLeaseInfo

void otSrpServerServiceGetLeaseInfo(
  const otSrpServerService *aService,
  otSrpServerLeaseInfo *aLeaseInfo
)

Gibt die LEASE- und KEY-LEASE-Informationen eines bestimmten Dienstes zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Serverdienst.
[out] aLeaseInfo
Ein Zeiger, der angibt, wo die LEASE- und SCHLÜSSEL-LEASE-Informationen ausgegeben werden sollen.

otSrpServerServiceGetNumberOfSubTypes

uint16_t otSrpServerServiceGetNumberOfSubTypes(
  const otSrpServerService *aService
)

Ruft die Anzahl der Untertypen des Dienstes ab.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Die Anzahl der Untertypen von aService.

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

Gibt den Port der Dienstinstanz zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Der Port des Dienstes.

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

Gibt die Priorität der Dienstinstanz zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Die Priorität des Dienstes.

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

Gibt den vollständigen Dienstnamen des Dienstes zurück

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Ein Zeiger auf den mit Null beendeten Dienstnamenstring.

otSrpServerServiceGetSubTypeServiceNameAt

const char * otSrpServerServiceGetSubTypeServiceNameAt(
  const otSrpServerService *aService,
  uint16_t aIndex
)

Ruft den Dienstuntertypnamen (vollständiger Name) des Dienstes bei einem bestimmten Index ab.

Der vollständige Dienstname für einen Untertyp-Dienst folgt auf "._sub...".

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
[in] aIndex
Index, der abgerufen werden soll
Rückgabe
Ein Zeiger auf den Dienstnamen des Untertyps bei aIndex oder NULL, wenn in diesem Index kein Untertyp vorhanden ist.

otSrpServerServiceGetTtl

uint32_t otSrpServerServiceGetTtl(
  const otSrpServerService *aService
)

Gibt die TTL der Dienstinstanz zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Die TTL der Dienstinstanz...

otSrpServerServiceGetTxtData

const uint8_t * otSrpServerServiceGetTxtData(
  const otSrpServerService *aService,
  uint16_t *aDataLength
)

Gibt die TXT-Eintragdaten der Dienstinstanz zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
[out] aDataLength
Ein Zeiger zum Zurückgeben der Datenlänge des TXT-Eintrags. DARF NICHT NULL sein.
Rückgabe
Ein Zeiger auf den Zwischenspeicher, der die TXT-Datensatzdaten enthält. Die Länge der TXT-Daten wird in aDataLength zurückgegeben.

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

Gibt die Gewichtung der Dienstinstanz zurück.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
Die Gewichtung des Dienstes.

otSrpServerServiceHasSubTypeServiceName

bool otSrpServerServiceHasSubTypeServiceName(
  const otSrpServerService *aService,
  const char *aSubTypeServiceName
)

Gibt an, ob der Dienst einen bestimmten Untertyp hat.

Übereinstimmungen mit DNS-Namen werden anhand eines Stringvergleichs durchgeführt, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird (z.B. „Abc“ und „aBc“ werden als identisch betrachtet.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
[in] aSubTypeServiceName
Der zu prüfende Untertyp des Dienstnamens (vollständiger Name).
Rückgabewerte
TRUE
Der Dienst enthält den Untertyp aSubTypeServiceName.
FALSE
Dienstleistung enthält nicht den Untertyp aSubTypeServiceName.

otSrpServerServiceIsDeleted

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

Gibt an, ob der SRP-Dienst gelöscht wurde.

Ein SRP-Dienst kann gelöscht werden, behält aber seinen Namen für die zukünftige Verwendung. In diesem Fall wird die Dienstinstanz nicht vom SRP-Server bzw. der SRP-Registry entfernt. Es wird garantiert, dass alle Dienste gelöscht werden, wenn der Host gelöscht wird.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
Rückgabe
TRUE, wenn der Service gelöscht wurde, FALSE, wenn nicht.

otSrpServerServiceMatchesInstanceName

bool otSrpServerServiceMatchesInstanceName(
  const otSrpServerService *aService,
  const char *aInstanceName
)

Gibt an, ob dieser Dienst mit einem bestimmten Dienstinstanznamen übereinstimmt.

Übereinstimmungen mit DNS-Namen werden anhand eines Stringvergleichs durchgeführt, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird (z.B. „Abc“ und „aBc“ werden als identisch betrachtet.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
[in] aInstanceName
Der Name der Dienstinstanz.
Rückgabewerte
TRUE
Wenn der Dienst mit dem Namen der Dienstinstanz übereinstimmt.
FALSE
Wenn der Dienst nicht mit dem Namen der Dienstinstanz übereinstimmt.

otSrpServerServiceMatchesServiceName

bool otSrpServerServiceMatchesServiceName(
  const otSrpServerService *aService,
  const char *aServiceName
)

Gibt an, ob dieser Dienst mit einem bestimmten Dienstnamen übereinstimmt.

Übereinstimmungen mit DNS-Namen werden anhand eines Stringvergleichs durchgeführt, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird (z.B. „Abc“ und „aBc“ werden als identisch betrachtet.

Details
Parameter
[in] aService
Ein Zeiger auf den SRP-Dienst.
[in] aServiceName
Der Dienstname.
Rückgabewerte
TRUE
Wenn der Dienst mit dem Dienstnamen übereinstimmt.
FALSE
Wenn der Dienst nicht mit dem Dienstnamen übereinstimmt.

otSrpServerSetAddressMode

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

Legt den Adressmodus fest, der vom SRP-Server verwendet werden soll.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMode
Der zu verwendende Adressmodus.
Rückgabewerte
OT_ERROR_NONE
Adressmodus erfolgreich festgelegt.
OT_ERROR_INVALID_STATE
Der SRP-Server ist aktiviert und der Adressmodus kann nicht geändert werden.

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

Legt die Sequenznummer fest, die im Anycast-Adressmodus verwendet wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSequenceNumber
Die zu verwendende Sequenznummer.
Rückgabewerte
OT_ERROR_NONE
Adressmodus erfolgreich festgelegt.
OT_ERROR_INVALID_STATE
Der SRP-Server ist aktiviert und die Sequenznummer kann nicht geändert werden.

otSrpServerSetAutoEnableMode

void otSrpServerSetAutoEnableMode(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert/deaktiviert den automatischen Aktivierungsmodus auf dem SRP-Server.

Erfordert die Funktion OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE.

Wenn dieser Modus aktiviert ist, steuert der Border Routing Manager, ob/wann der SRP-Server aktiviert oder deaktiviert wird. Der SRP-Server wird beim Start des Border Routing automatisch aktiviert. Dabei werden die anfänglichen Präfix- und Routenkonfigurationen verwendet, d. h., wenn die OMR- und On-Link-Präfixe bestimmt, in der Infrastrukturseite mit der ausgegebenen Router-Anzeige beworben und in den Thread-Netzwerkdaten veröffentlicht werden. Der SRP-Server wird automatisch deaktiviert, wenn der AF gestoppt wird, z.B. wenn die Netzwerkschnittstelle der Infrastruktur ausfällt oder der AF getrennt wird.

Dieser Modus kann durch einen otSrpServerSetAutoEnableMode()-Aufruf deaktiviert werden, bei dem aEnabled auf false gesetzt ist, oder wenn der SRP-Server durch einen Aufruf der Funktion otSrpServerSetEnabled() explizit aktiviert oder deaktiviert wird. Das Deaktivieren des automatischen Aktivierungsmodus mit otSrpServerSetAutoEnableMode(false) wirkt sich nicht auf den aktuellen Status des SRP-Servers aus. Wenn er beispielsweise aktiviert ist, bleibt er aktiviert.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
Ein boolescher Wert zum Aktivieren/Deaktivieren des automatischen Aktivierungsmodus.

otSrpServerSetDomain

otError otSrpServerSetDomain(
  otInstance *aInstance,
  const char *aDomain
)

Legt die Domain auf dem SRP-Server fest.

An aDomain wird ein abschließender Punkt angehängt, falls er noch nicht vorhanden ist. Sollte nur aufgerufen werden, bevor der SRP-Server aktiviert ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aDomain
Die Domain, die festgelegt werden soll. DARF NICHT NULL sein.
Rückgabewerte
OT_ERROR_NONE
Die Domain wurde auf aDomain festgelegt.
OT_ERROR_INVALID_STATE
Der SRP-Server ist bereits aktiviert und die Domain kann nicht geändert werden.
OT_ERROR_INVALID_ARGS
Das Argument aDomain ist kein gültiger DNS-Domainname.
OT_ERROR_NO_BUFS
Es ist kein Arbeitsspeicher vorhanden, um Inhalte von aDomain zu speichern.

otSrpServerSetEnabled

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Aktiviert/deaktiviert den SRP-Server.

Bei einem Border-Router wird empfohlen, stattdessen otSrpServerSetAutoEnableMode() zu verwenden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aEnabled
Ein boolescher Wert zum Aktivieren/Deaktivieren des SRP-Servers.

otSrpServerSetLeaseConfig

otError otSrpServerSetLeaseConfig(
  otInstance *aInstance,
  const otSrpServerLeaseConfig *aLeaseConfig
)

Legt die LEASE- und KEY-LEASE-Konfigurationen des SRP-Servers fest.

Wenn von einem Client eine LEASE-Zeit ungleich null angefordert wird, wird der gewährte Wert im Bereich [aMinLease, aMaxLease] begrenzt. Ein KEY-LEASE, der nicht null ist, wird im Bereich [aMinKeyLease, aMaxKeyLease] gewährt. Für keine LEASE- oder KEY-LEASE-Zeit werden null gewährt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aLeaseConfig
Ein Zeiger auf eine otSrpServerLeaseConfig-Instanz.
Rückgabewerte
OT_ERROR_NONE
Die Bereiche LEASE und KEY-LEASE wurden festgelegt.
OT_ERROR_INVALID_ARGS
Der LEASE- oder KEY-LEASE-Bereich ist ungültig.

otSrpServerSetServiceUpdateHandler

void otSrpServerSetServiceUpdateHandler(
  otInstance *aInstance,
  otSrpServerServiceUpdateHandler aServiceHandler,
  void *aContext
)

Legt den Handler für die Aktualisierung des SRP-Dienstes auf dem SRP-Server fest.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aServiceHandler
Ein Zeiger auf einen Dienst-Handler. Verwenden Sie NULL, um den Handler zu entfernen.
[in] aContext
Ein Zeiger auf beliebige Kontextinformationen. Kann bei Nichtverwendung NULL sein.

otSrpServerSetTtlConfig

otError otSrpServerSetTtlConfig(
  otInstance *aInstance,
  const otSrpServerTtlConfig *aTtlConfig
)

Legt die TTL-Konfiguration des SRP-Servers fest.

Die zugewiesene TTL ist immer nicht größer als das maximale Freigabeintervall, das über otSrpServerSetLeaseConfig() konfiguriert wurde, unabhängig von der Konfiguration für die minimale und maximale TTL.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aTtlConfig
Ein Zeiger auf eine otSrpServerTtlConfig-Instanz.
Rückgabewerte
OT_ERROR_NONE
TTL-Konfiguration erfolgreich festgelegt.
OT_ERROR_INVALID_ARGS
Die TTL-Konfiguration ist ungültig.

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.