Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

SRP のみ

このモジュールには、SRP クライアントの動作を制御する関数が含まれています。

概要

このモジュールには、Service Registration Protocol の関数が含まれています。

このモジュールには、SRP クライアント バッファとサービスプール用の関数が含まれています。

このモジュールの関数は、OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_ENABLE 機能が有効になっている場合にのみ使用できます。

列挙型

anonymous enum{
  OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE = 1 << 0,
  OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE = 1 << 1,
  OT_SRP_SERVER_SERVICE_FLAG_ACTIVE = 1 << 2,
  OT_SRP_SERVER_SERVICE_FLAG_DELETED = 1 << 3
}
列挙型
anonymous enum{
  OT_SRP_SERVER_FLAGS_ANY_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
  OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
  OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY = (OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE | OT_SRP_SERVER_SERVICE_FLAG_DELETED),
  OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE),
  OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE = (OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE | OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE | OT_SRP_SERVER_SERVICE_FLAG_ACTIVE)
}
列挙型
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
}
列挙型
この列挙型は、SRP クライアント項目(サービスまたはホスト情報)の状態を指定します。
otSrpServerAddressMode{
  OT_SRP_SERVER_ADDRESS_MODE_UNICAST = 0,
  OT_SRP_SERVER_ADDRESS_MODE_ANYCAST = 1
}
列挙型
この列挙型は、SRP サーバーによって使用されるアドレスモードを表します。
otSrpServerState{
  OT_SRP_SERVER_STATE_DISABLED = 0,
  OT_SRP_SERVER_STATE_RUNNING = 1,
  OT_SRP_SERVER_STATE_STOPPED = 2
}
列挙型
SRP サーバーの状態を表します。

Typedef

otSrpClientAutoStartCallback)(const otSockAddr *aServerSockAddr, void *aContext) typedef
void(*
この関数ポインタの型は、自動開始または停止されたときに SRP クライアントがユーザーに通知するコールバックを定義します。
otSrpClientBuffersServiceEntry typedef
この構造体は、SRP クライアント サービスプールのエントリを表します。
otSrpClientCallback)(otError aError, const otSrpClientHostInfo *aHostInfo, const otSrpClientService *aServices, const otSrpClientService *aRemovedServices, void *aContext) typedef
void(*
この関数ポインタの型は、変更、イベント、エラーについてユーザーに通知するために SRP クライアントが使用するコールバックを定義します。
otSrpClientHostInfo typedef
この構造は、SRP クライアントのホスト情報を表します。
otSrpClientService typedef
この構造は SRP クライアント サービスを表します。
otSrpServerAddressMode typedef
この列挙型は、SRP サーバーによって使用されるアドレスモードを表します。
otSrpServerHost typedef
この不透明なタイプは、SRP サービスホストを表します。
otSrpServerLeaseConfig typedef
この構造には、SRP サーバーの LEASE の構成と KEY-LEASE の構成が含まれます。
otSrpServerService typedef
この不透明なタイプは、SRP サービスを表します。
otSrpServerServiceFlags typedef
uint8_t
SRP サービスのリストを検索(または反復)する際に追加または除外するサービスを示すサービスフラグ タイプ。
otSrpServerServiceUpdateHandler)(otSrpServerServiceUpdateId aId, const otSrpServerHost *aHost, uint32_t aTimeout, void *aContext) typedef
void(*
この関数は、SRP サービスの更新を処理します。
otSrpServerServiceUpdateId typedef
uint32_t
SRP サーバーでの SRP サービス更新トランザクションの ID。

関数

otSrpClientAddService(otInstance *aInstance, otSrpClientService *aService)
この関数は、サーバーに登録するサービスを追加します。
otSrpClientBuffersAllocateService(otInstance *aInstance)
この関数は、プールから新しいサービス エントリを割り当てます。
otSrpClientBuffersFreeAllServices(otInstance *aInstance)
void
この関数は、以前に割り当てられたサービス エントリをすべて解放します。
otSrpClientBuffersFreeService(otInstance *aInstance, otSrpClientBuffersServiceEntry *aService)
void
この関数は、以前に割り当てられたサービス エントリを解放します。
otSrpClientBuffersGetHostAddressesArray(otInstance *aInstance, uint8_t *aArrayLength)
この関数は、SRP クライアントのホストアドレス リストとして使用する IPv6 アドレス エントリの配列を取得します。
otSrpClientBuffersGetHostNameString(otInstance *aInstance, uint16_t *aSize)
char *
この関数は、SRP クライアントのホスト名に使用する文字列バッファを取得します。
otSrpClientBuffersGetServiceEntryInstanceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
この関数は、サービス エントリからサービス インスタンス名の文字列バッファを取得します。
otSrpClientBuffersGetServiceEntryServiceNameString(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
char *
この関数は、サービス エントリからサービス名の文字列バッファを取得します。
otSrpClientBuffersGetServiceEntryTxtBuffer(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aSize)
uint8_t *
この関数は、TXT レコードのバッファをサービス エントリから取得します。
otSrpClientBuffersGetSubTypeLabelsArray(otSrpClientBuffersServiceEntry *aEntry, uint16_t *aArrayLength)
const char **
この関数は、サービス エントリからサービス サブタイプ ラベルの配列を取得します。
otSrpClientClearHostAndServices(otInstance *aInstance)
void
この関数は、すべてのホスト情報とすべてのサービスをクリアします。
otSrpClientClearService(otInstance *aInstance, otSrpClientService *aService)
この関数はサービスを消去し、直ちにクライアント サービスリストから削除します。
otSrpClientDisableAutoStartMode(otInstance *aInstance)
void
この関数は、自動スタート モードを無効にします。
otSrpClientEnableAutoStartMode(otInstance *aInstance, otSrpClientAutoStartCallback aCallback, void *aContext)
void
この関数は、自動スタート モードを有効にします。
otSrpClientGetDomainName(otInstance *aInstance)
const char *
この関数は、SRP クライアントが使用しているドメイン名を取得します。
otSrpClientGetHostInfo(otInstance *aInstance)
この関数はホスト情報を取得します。
otSrpClientGetKeyLeaseInterval(otInstance *aInstance)
uint32_t
この関数は、SRP 更新リクエストで使用される鍵のリース間隔を取得します。
otSrpClientGetLeaseInterval(otInstance *aInstance)
uint32_t
この関数は、SRP 更新リクエストで使用されるリースの間隔を取得します。
otSrpClientGetServerAddress(otInstance *aInstance)
const otSockAddr *
この関数は、SRP クライアントが使用している SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)を取得します。
otSrpClientGetServices(otInstance *aInstance)
この関数は、クライアントによって管理されているサービスのリストを取得します。
otSrpClientIsAutoStartModeEnabled(otInstance *aInstance)
bool
この関数は、自動スタート モードの現在の状態(有効または無効)を示します。
otSrpClientIsRunning(otInstance *aInstance)
bool
この関数は、SRP クライアントが実行中かどうかを示します。
otSrpClientIsServiceKeyRecordEnabled(otInstance *aInstance)
bool
このメソッドは、「サービスキー レコードの追加」モードが有効か無効かを示します。
otSrpClientItemStateToString(otSrpClientItemState aItemState)
const char *
この関数は、otSrpClientItemState を文字列に変換します。
otSrpClientRemoveHostAndServices(otInstance *aInstance, bool aRemoveKeyLease, bool aSendUnregToServer)
この関数は、ホスト情報とすべてのサービスの削除プロセスを開始します。
otSrpClientRemoveService(otInstance *aInstance, otSrpClientService *aService)
この関数は、サービスの登録解除をサーバーにリクエストします。
otSrpClientSetCallback(otInstance *aInstance, otSrpClientCallback aCallback, void *aContext)
void
この関数は、SRP クライアントからのイベントや変更を呼び出し元に通知するコールバックを設定します。
otSrpClientSetDomainName(otInstance *aInstance, const char *aName)
この関数は、SRP クライアントが使用するドメイン名を設定します。
otSrpClientSetHostAddresses(otInstance *aInstance, const otIp6Address *aIp6Addresses, uint8_t aNumAddresses)
この関数は、ホスト IPv6 アドレスのリストを設定または更新します。
otSrpClientSetHostName(otInstance *aInstance, const char *aName)
この関数は、ホスト名のラベルを設定します。
otSrpClientSetKeyLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
この関数は、SRP 更新リクエストで使用される鍵のリース間隔を設定します。
otSrpClientSetLeaseInterval(otInstance *aInstance, uint32_t aInterval)
void
この関数は、SRP 更新リクエストで使用されるリースの間隔を設定します。
otSrpClientSetServiceKeyRecordEnabled(otInstance *aInstance, bool aEnabled)
void
この関数は、「サービスキー レコードの追加」モードを有効または無効にします。
otSrpClientStart(otInstance *aInstance, const otSockAddr *aServerSockAddr)
この関数は、SRP クライアントのオペレーションを開始します。
otSrpClientStop(otInstance *aInstance)
void
この関数は、SRP クライアントのオペレーションを停止します。
otSrpServerGetAddressMode(otInstance *aInstance)
この関数は、SRP サーバーで使用されているアドレスモードを返します。
otSrpServerGetAnycastModeSequenceNumber(otInstance *aInstance)
uint8_t
この関数は、エニーキャスト アドレス モードで使用されるシーケンス番号を返します。
otSrpServerGetDomain(otInstance *aInstance)
const char *
この関数は、SRP サーバーに承認されたドメインを返します。
otSrpServerGetLeaseConfig(otInstance *aInstance, otSrpServerLeaseConfig *aLeaseConfig)
void
この関数は、SRP サーバーの LEASE 設定と KEY-LEASE 設定を返します。
otSrpServerGetNextHost(otInstance *aInstance, const otSrpServerHost *aHost)
const otSrpServerHost *
この関数は、SRP サーバーに次に登録されたホストを返します。
otSrpServerGetState(otInstance *aInstance)
この関数は、SRP サーバーの状態を返します。
otSrpServerHandleServiceUpdateResult(otInstance *aInstance, otSrpServerServiceUpdateId aId, otError aError)
void
この関数は、SRP の更新を SRP サーバーに処理した結果をレポートします。
otSrpServerHostFindNextService(const otSrpServerHost *aHost, const otSrpServerService *aPrevService, otSrpServerServiceFlags aFlags, const char *aServiceName, const char *aInstanceName)
この関数は、ホスト上で次に一致するサービスを検索します。
otSrpServerHostGetAddresses(const otSrpServerHost *aHost, uint8_t *aAddressesNum)
const otIp6Address *
この関数は、指定されたホストのアドレスを返します。
otSrpServerHostGetFullName(const otSrpServerHost *aHost)
const char *
この関数はホストの完全な名前を返します。
otSrpServerHostGetNextService(const otSrpServerHost *aHost, const otSrpServerService *aService)
この関数は、指定されたホストの次のサービス(サブタイプ サービスを除く)を返します。
otSrpServerHostIsDeleted(const otSrpServerHost *aHost)
bool
この関数は、SRP サービスホストが削除されたかどうかを示します。
otSrpServerServiceGetFullName(const otSrpServerService *aService)
const char *
この関数は、サービスの完全なサービス インスタンス名を返します。
otSrpServerServiceGetHost(const otSrpServerService *aService)
const otSrpServerHost *
この関数は、サービス インスタンスが存在するホストを返します。
otSrpServerServiceGetInstanceName(const otSrpServerService *aService)
const char *
この関数は、サービスの完全なサービス インスタンス名を返します。
otSrpServerServiceGetPort(const otSrpServerService *aService)
uint16_t
この関数は、サービス インスタンスのポートを返します。
otSrpServerServiceGetPriority(const otSrpServerService *aService)
uint16_t
この関数は、サービス インスタンスの優先度を返します。
otSrpServerServiceGetServiceName(const otSrpServerService *aService)
const char *
この関数は、サービスの完全なサービス名を返します。
otSrpServerServiceGetServiceSubTypeLabel(const otSrpServerService *aService, char *aLabel, uint8_t aMaxSize)
この関数は、サービス名からサブタイプ ラベルを取得します。
otSrpServerServiceGetTxtData(const otSrpServerService *aService, uint16_t *aDataLength)
const uint8_t *
この関数は、サービス インスタンスの TXT レコードデータを返します。
otSrpServerServiceGetWeight(const otSrpServerService *aService)
uint16_t
この関数は、サービス インスタンスの重みを返します。
otSrpServerServiceIsDeleted(const otSrpServerService *aService)
bool
この関数は、SRP サービスが削除されたかどうかを示します。
otSrpServerServiceIsSubType(const otSrpServerService *aService)
bool
この関数は、SRP サービスがサブタイプかどうかを示します。
otSrpServerSetAddressMode(otInstance *aInstance, otSrpServerAddressMode aMode)
この関数は、SRP サーバーが使用するアドレスモードを設定します。
otSrpServerSetAnycastModeSequenceNumber(otInstance *aInstance, uint8_t aSequenceNumber)
この関数は、エニーキャスト アドレス モードで使用されるシーケンス番号を設定します。
otSrpServerSetDomain(otInstance *aInstance, const char *aDomain)
この関数は、SRP サーバーにドメインを設定します。
otSrpServerSetEnabled(otInstance *aInstance, bool aEnabled)
void
この関数は、SRP サーバーを有効または無効にします。
otSrpServerSetLeaseConfig(otInstance *aInstance, const otSrpServerLeaseConfig *aLeaseConfig)
この関数は、SRP サーバーの LEASE と KEY-LEASE の設定を設定します。
otSrpServerSetServiceUpdateHandler(otInstance *aInstance, otSrpServerServiceUpdateHandler aServiceHandler, void *aContext)
void
この関数は、SRP サーバーで SRP サービス更新ハンドラを設定します。

構造体

otSrpClientBuffersServiceEntry

この構造体は、SRP クライアント サービスプールのエントリを表します。

otSrpClientHostInfo

この構造は、SRP クライアントのホスト情報を表します。

otSrpClientService

この構造は SRP クライアント サービスを表します。

otSrpServerLeaseConfig

この構造には、SRP サーバーの LEASE の構成と KEY-LEASE の構成が含まれます。

列挙型

匿名列挙型

 anonymous enum
プロパティ
OT_SRP_SERVER_SERVICE_FLAG_ACTIVE

アクティブな(削除されていない)サービスを含めます。

OT_SRP_SERVER_SERVICE_FLAG_BASE_TYPE

基本サービスを含めます(サブタイプではありません)。

OT_SRP_SERVER_SERVICE_FLAG_DELETED

削除されたサービスを含める。

OT_SRP_SERVER_SERVICE_FLAG_SUB_TYPE

サブタイプのサービスを含めます。

匿名列挙型

 anonymous enum
プロパティ
OT_SRP_SERVER_FLAGS_ANY_SERVICE

この定数は、あらゆるサービス(ベース/サブタイプ、アクティブ/削除済み)を受け入れる otSrpServerServiceFlags の組み合わせを定義します。

OT_SRP_SERVER_FLAGS_ANY_TYPE_ACTIVE_SERVICE

この定数は、アクティブな(削除されていない)サービスを受け入れる otSrpServerServiceFlags の組み合わせを定義します。

OT_SRP_SERVER_FLAGS_ANY_TYPE_DELETED_SERVICE

この定数は、削除されたサービスを受け入れる otSrpServerServiceFlags の組み合わせを定義します。

OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY

この定数は、基本サービスのみを受け入れる otSrpServerServiceFlags の組み合わせを定義します。

OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY

この定数は、サブタイプのサービスのみを受け入れる otSrpServerServiceFlags の組み合わせを定義します。

otSrpClientItemState

 otSrpClientItemState

この列挙型は、SRP クライアント項目(サービスまたはホスト情報)の状態を指定します。

プロパティ
OT_SRP_CLIENT_ITEM_STATE_ADDING

アイテムを追加または登録しています。

OT_SRP_CLIENT_ITEM_STATE_REFRESHING

アイテムを更新しています。

OT_SRP_CLIENT_ITEM_STATE_REGISTERED

アイテムをサーバーに登録しました。

OT_SRP_CLIENT_ITEM_STATE_REMOVED

アイテムを削除しました。

OT_SRP_CLIENT_ITEM_STATE_REMOVING

アイテムを削除しています。

OT_SRP_CLIENT_ITEM_STATE_TO_ADD

追加または登録するアイテム。

OT_SRP_CLIENT_ITEM_STATE_TO_REFRESH

更新するアイテム(リースを更新するには再登録してください)。

OT_SRP_CLIENT_ITEM_STATE_TO_REMOVE

削除される項目。

otSrpServerAddressMode

 otSrpServerAddressMode

この列挙型は、SRP サーバーによって使用されるアドレスモードを表します。

アドレスモードでは、SRP サーバーによるアドレスとポート番号の決定方法と、この情報が Thread ネットワーク データで公開される方法を指定します。

プロパティ
OT_SRP_SERVER_ADDRESS_MODE_ANYCAST

エニーキャスト アドレス モード。

OT_SRP_SERVER_ADDRESS_MODE_UNICAST

ユニキャスト アドレス モード。

otSrpServerState

 otSrpServerState

SRP サーバーの状態を表します。

プロパティ
OT_SRP_SERVER_STATE_DISABLED

SRP サーバーが無効になっています。

OT_SRP_SERVER_STATE_RUNNING

SRP サーバーが実行されている。

OT_SRP_SERVER_STATE_STOPPED

SRP サーバーが停止している。

Typedef

otSrpClientAutoStartCallback

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

この関数ポインタの型は、自動開始または停止されたときに SRP クライアントがユーザーに通知するコールバックを定義します。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用されます。

このコールバックは、自動スタート モードが有効で、SRP クライアントが自動的に開始または停止したときに呼び出されます。

詳細
パラメータ
[in] aServerSockAddr
NULL 以外のポインタは、SRP サーバーが開始したことを示し、ポインタは選択されたサーバーのソケット アドレスを示します。NULL ポインタは、SRP サーバーが停止されたことを示します。
[in] aContext
任意のコンテキスト(コールバック登録時に提供される)へのポインタ。

otSrpClientBuffersServiceEntry

struct otSrpClientBuffersServiceEntry otSrpClientBuffersServiceEntry

この構造体は、SRP クライアント サービスプールのエントリを表します。

otSrpClientCallback

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

この関数ポインタの型は、変更、イベント、エラーについてユーザーに通知するために SRP クライアントが使用するコールバックを定義します。

このコールバックは、SRP サーバーへの更新情報の登録(またはホスト情報や一部のサービスの追加 / 削除)に成功した場合、またはサーバーで更新が拒否された場合などに、エラーの発生時に呼び出されますリクエストまたはクライアントがレスポンスの待機中にタイムアウトした、など)。

更新の再登録が成功した場合、aError パラメータは OT_ERROR_NONE になり、ホスト情報とサービスの全リストがコールバックの入力パラメータとして提供されます。ホスト情報とサービスはそれぞれ、関連するデータ構造の対応する mState メンバー変数で独自の状態を追跡します(host-info/service が登録済みか削除済みか、まだ追加/削除されているかを示す状態など)。

削除されたサービスのリストは、コールバックで独自のリンクリスト aRemovedServices として渡されます。コールバックが呼び出されると、SRP クライアント(OpenThread 実装)は、aRemovedServices にリストされた削除されたサービス インスタンスを使用して実行され、それらのインスタンスを追跡、保存しなくなります(つまり、コールバックから otSrpClientGetServices() を呼び出した場合、削除されたインスタンスを削除します)。返されるリストにサービスは含まれません)。コールバックで削除されたサービスのリストを別個に提供することで、現在はどのアイテムが削除されているかをユーザーに示し、ユーザーがインスタンスを再利用または再利用できるようになります。

サーバーが SRP 更新リクエストを拒否した場合、DNS レスポンス コード(RFC 2136)は次のエラーにマッピングされます。

  • (0)NOERROR 成功(エラー状態なし)-> OT_ERROR_NONE
  • (1)フォーマット エラー -> OT_ERROR_PARSE により、FORMERR サーバーが解釈できません
  • (2)SERVFAIL サーバーで内部エラーが発生した -> OT_ERROR_FAILED
  • (3)存在しないはずの NXDOMAIN の名前 -> OT_ERROR_NOT_FOUND
  • (4)NOTIMP Server は、Query Type(OpCode) -> OT_ERROR_NOT_IMPLEMENTED をサポートしていない
  • (5)ポリシーまたはセキュリティ上の理由で REFUSED サーバーが拒否された -> OT_ERROR_SECURITY
  • (6)YXDOMAIN 存在しないはずの名前が存在する -> OT_ERROR_DUPLICATED
  • (7)YXRRSET 存在しないはずの RRset が存在します -> OT_ERROR_DUPLICATED
  • (8)NXRRSET 存在しない RRset が存在しません -> OT_ERROR_NOT_FOUND
  • (9) NOTAUTH サービスはゾーンで信頼できるものではありません -> OT_ERROR_SECURITY
  • (10)NOTZONE 名前がゾーンにありません -> OT_ERROR_PARSE
  • (20)BADNAME 不正な名前 -> OT_ERROR_PARSE
  • (21)BADALG 不正なアルゴリズム -> OT_ERROR_SECURITY
  • (22)BADTRUN 不正な切り捨て -> OT_ERROR_PARSE
  • その他のレスポンス コード -> OT_ERROR_FAILED

次のエラーも発生する可能性があります。

  • OT_ERROR_RESPONSE_TIMEOUT : サーバーからの応答の待機中にタイムアウトになりました(クライアントは再試行を続けます)。
  • OT_ERROR_INVALID_ARGS : 指定されたサービス構造は無効です(サービス名または otDnsTxtEntry が不適切など)。
  • OT_ERROR_NO_BUFS : 更新メッセージを準備または送信するためのバッファが不十分です。

障害が発生した場合でも、クライアントはオペレーションを続行します。つまり、一定の待機間隔が経過した後に、SRP アップデート メッセージを準備してサーバーに送信(再送信)します。再試行の待ち時間の間隔は最小値から始まり、失敗するたびに最大値に達します(詳しくは、設定パラメータ OPENTHREAD_CONFIG_SRP_CLIENT_MIN_RETRY_WAIT_INTERVAL と関連パラメータをご覧ください)。

詳細
パラメータ
[in] aError
エラー(上記参照)。
[in] aHostInfo
ホスト情報へのポインタ。
[in] aServices
すべてのサービス(リンクされたサービスを除く)が含まれるリンクリストの先頭。リストが空の場合は NULL。
[in] aRemovedServices
削除済みサービスをすべて含むリンクリストの先頭。リストが空の場合は NULL。
[in] aContext
任意のコンテキスト(コールバック登録時に提供される)へのポインタ。

otSrpClientHostInfo

struct otSrpClientHostInfo otSrpClientHostInfo

この構造は、SRP クライアントのホスト情報を表します。

otSrpClientService

struct otSrpClientService otSrpClientService

この構造は SRP クライアント サービスを表します。

この構造体の値(名前や TXT レコードのエントリの文字列バッファを含む)は、この構造体のインスタンスが otSrpClientAddService() または otSrpClientRemoveService() から OpenThread に渡された後も保持され、一定に保たれなければなりません。

otSrpServerAddressMode

enum otSrpServerAddressMode otSrpServerAddressMode

この列挙型は、SRP サーバーによって使用されるアドレスモードを表します。

アドレスモードでは、SRP サーバーによるアドレスとポート番号の決定方法と、この情報が Thread ネットワーク データで公開される方法を指定します。

otSrpServerHost

struct otSrpServerHost otSrpServerHost

この不透明なタイプは、SRP サービスホストを表します。

otSrpServerLeaseConfig

struct otSrpServerLeaseConfig otSrpServerLeaseConfig

この構造には、SRP サーバーの LEASE の構成と KEY-LEASE の構成が含まれます。

otSrpServerService の使用

struct otSrpServerService otSrpServerService

この不透明なタイプは、SRP サービスを表します。

otSrpServerServiceFlags

uint8_t otSrpServerServiceFlags

SRP サービスのリストを検索(または反復)する際に追加または除外するサービスを示すサービスフラグ タイプ。

これはビットフラグの組み合わせです。特定のビットフラグは列挙型の OT_SRP_SERVER_FLAG_* で定義されます。

otSrpServerServiceUpdateHandler を使用する

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

この関数は、SRP サービスの更新を処理します。

この関数は、SRP サーバーが SRP ホストと(場合によっては)SRP サービスが更新されていることを通知するために、SRP サーバーによって呼び出されます。ハンドラが otSrpServerHandleServiceUpdateResult を呼び出して結果を返すか、aTimeout の後にタイムアウトするまで、SRP の更新が commit されていないことが重要です。

SRP サービス オブザーバーは、アップデート イベントを受け取った直後に、必ず OTSrpServerHandleServiceUpdateResult をエラーコード OT_ERROR_NONE で呼び出します。

より汎用的なハンドラは、SRP のホストやサービスに対して検証を実行し、検証が失敗した場合に SRP の更新を拒否することがあります。たとえば、アドバタイジング プロキシは、マルチキャスト対応リンクでホストとサービスをアドバタイズ(または削除)し、なんらかのエラーが発生した場合に特定のエラーコードを返します。

詳細
パラメータ
[in] aId
サービス更新の取引 ID。この ID を otSrpServerHandleServiceUpdateResult で返す必要があります。
[in] aHost
SRP のアップデートを含む otSrpServerHost オブジェクトへのポインタ。ハンドラはホストを公開または公開停止する必要があり、各サービスは次のルールを使用してこのホストを参照します。
  1. ホストが削除されていない場合(otSrpServerHostIsDeleted で示される)、mDNS を使用して公開または更新する必要があります。それ以外の場合は、ホストを非公開にする必要があります(AAAA RR を削除します)。
  2. ホストを非公開にする場合は、このホストが指している各サービスについても、非公開にする必要があります。それ以外の場合、ハンドラはサービスを削除(otSrpServerServiceIsDeleted と表示される)したときに公開または更新し、削除時に公開停止する必要があります。
[in] aTimeout
ハンドラがサービス イベントを処理する最大時間(ミリ秒単位)。
[in] aContext
アプリ固有のコンテキストへのポインタ。
関連項目:
otSrpServerSetServiceUpdateHandler
otSrpServerHandleServiceUpdateResult

otSrpServerServiceUpdateId を使用する

uint32_t otSrpServerServiceUpdateId

SRP サーバーでの SRP サービス更新トランザクションの ID。

関数

otSrpClientAddService の使用

otError otSrpClientAddService(
  otInstance *aInstance,
  otSrpClientService *aService
)

この関数は、サーバーに登録するサービスを追加します。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーへのサービスの追加または登録のステータスを報告します。

aService が指している otSrpClientService インスタンスは、この関数から戻った後も(OT_ERROR_NONE で)保持され、変更されないままにする必要があります。 OpenThread はサービス インスタンスへのポインタを保存します。

otSrpClientService インスタンスは OpenThread によるトラッキングの対象外となったため、以下の場合にのみ再利用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
追加する otSrpClientService インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
サービスの追加を開始しました。ステータスを報告するために otSrpClientCallback が呼び出されます。
OT_ERROR_ALREADY
同じサービスとインスタンス名のサービスがすでにリストに含まれています。
OT_ERROR_INVALID_ARGS
サービスの構造が無効です(サービス名の誤りや otDnsTxtEntry など)。

otSrpClientBuffersAllocateService

otSrpClientBuffersServiceEntry * otSrpClientBuffersAllocateService(
  otInstance *aInstance
)

この関数は、プールから新しいサービス エントリを割り当てます。

返されるサービス エントリ インスタンスは次のように初期化されます。

  • mService.mName は、otSrpClientBuffersGetServiceEntryServiceNameString() 関数を使用して取得できる、割り当てられた文字列バッファをポイントします。
  • mService.mInstanceName は、otSrpClientBuffersGetServiceEntryInstanceNameString() 関数を使用して取得できる、割り当てられた文字列バッファをポイントします。
  • mService.mSubTypeLabels は、otSrpClientBuffersGetSubTypeLabelsArray() から返される配列を指します。
  • mService.mTxtEntriesmTxtEntry をポイントします。
  • mService.mNumTxtEntries は 1 に設定されます。
  • その他の mService フィールド(ポート、優先度、ウェイト)はゼロに設定されます。
  • mTxtEntry.mKey が NULL に設定されている(値はエンコード済みとして処理されます)。
  • mTxtEntry.mValue は、otSrpClientBuffersGetServiceEntryTxtBuffer() 関数を使用して取得できる、割り当てられたバッファをポイントします。
  • mTxtEntry.mValueLength はゼロに設定されます。
  • 関連するすべてのデータ/文字列のバッファと配列はすべてゼロにクリアされます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
新しく割り当てられたサービス エントリへのポインタ。プール内で使用可能なエントリがない場合は NULL。

otSrpClientBuffersFreeAllServices

void otSrpClientBuffersFreeAllServices(
  otInstance *aInstance
)

この関数は、以前に割り当てられたサービス エントリをすべて解放します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpClientBuffersFreeService

void otSrpClientBuffersFreeService(
  otInstance *aInstance,
  otSrpClientBuffersServiceEntry *aService
)

この関数は、以前に割り当てられたサービス エントリを解放します。

aService は、以前に otSrpClientBuffersAllocateService() を使用して割り当て、未解放ではない。それ以外の場合、この関数の動作は定義されていません。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
解放するサービス エントリへのポインタ(NULL にはしないでください)。

otSrpClientBuffersGetHostAddressesArray

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

この関数は、SRP クライアントのホストアドレス リストとして使用する IPv6 アドレス エントリの配列を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aArrayLength
配列の長さ、つまり配列内の IPv6 アドレス エントリの数を返す変数(NULL にはしないでください)へのポインタ。
戻り値
otIp6Address エントリの配列へのポインタ(エントリの数は aArrayLength に返されます)。

otSrpClientBuffersGetHostNameString(文字列)

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

この関数は、SRP クライアントのホスト名に使用する文字列バッファを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aSize
文字列バッファのサイズ(バイト数)を返す変数へのポインタ(NULL にはしないでください)。
戻り値
SRP クライアントのホスト名に使用する文字バッファへのポインタ。

otSrpClientBuffersGetServiceEntryInstanceNameString

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

この関数は、サービス エントリからサービス インスタンス名の文字列バッファを取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL にはしないでください)。
[out] aSize
文字列バッファのサイズ(バイト数)を返す変数へのポインタ(NULL にはしないでください)。
戻り値
文字列バッファへのポインタ。

otSrpClientBuffersGetServiceEntryServiceNameString(文字列)

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

この関数は、サービス エントリからサービス名の文字列バッファを取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL にはしないでください)。
[out] aSize
文字列バッファのサイズ(バイト数)を返す変数へのポインタ(NULL にはしないでください)。
戻り値
文字列バッファへのポインタ。

otSrpClientBuffersGetServiceEntryTxtBuffer

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

この関数は、TXT レコードのバッファをサービス エントリから取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL にはしないでください)。
[out] aSize
バッファのサイズ(バイト数)を返す変数へのポインタ(NULL にはしないでください)。
戻り値
バッファへのポインタ。

otSrpClientBuffersGetSubTypeLabelsArray

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

この関数は、サービス エントリからサービス サブタイプ ラベルの配列を取得します。

詳細
パラメータ
[in] aEntry
以前に割り当てられたサービス エントリへのポインタ(NULL にはしないでください)。
[out] aArrayLength
配列の長さを返す変数へのポインタ(NULL にはしないでください)。
戻り値
配列へのポインタ。

otSrpClientClearHostAndServices

void otSrpClientClearHostAndServices(
  otInstance *aInstance
)

この関数は、すべてのホスト情報とすべてのサービスをクリアします。

すべての情報を削除するためにサーバーに更新メッセージを送信する otSrpClientRemoveHostAndServices() とは異なり、この関数はサーバーとやり取りすることなく、すべての情報をすぐにクリアします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

OTSrpClientClearService の使用

otError otSrpClientClearService(
  otInstance *aInstance,
  otSrpClientService *aService
)

この関数はサービスを消去し、直ちにクライアント サービスリストから削除します。

サービスを削除するために更新メッセージをサーバーに送信する otSrpClientRemoveService() とは異なり、この関数はサーバーの操作を行わずにクライアントのサービスリストからサービスを消去します。この関数の呼び出しが成功すると、otSrpClientCallback は呼び出されず、aService エントリは呼び出し元によってすぐに再利用できます。

この関数は、その後の otSrpClientAddService() の呼び出しと併用できます(同じサービスとインスタンス名で同じ aService エントリを再利用する可能性があります)。これにより、既存のサービスのパラメータの一部が更新されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
削除する otSrpClientService インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
aService を削除しました。すぐに再利用できます。
OT_ERROR_NOT_FOUND
リストにサービスが見つかりませんでした。

otSrpClientDisableAutoStartMode

void otSrpClientDisableAutoStartMode(
  otInstance *aInstance
)

この関数は、自動スタート モードを無効にします。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用できます。

自動起動モードを無効にしても、すでに実行中のクライアントは停止されませんが、クライアントはスレッド ネットワーク データのモニタリングを停止して、選択した SRP サーバーがまだ存在することを確認します。

otSrpClientStop() を呼び出すと、自動スタート モードも無効になります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpClientEnableAutoStartMode(OTS の有効化)

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

この関数は、自動スタート モードを有効にします。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用できます。

構成オプション OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_DEFAULT_MODE は、デフォルトの自動起動モード(OT スタックの開始時に有効か無効か)を指定します。

自動起動が有効になっている場合、SRP クライアントは、スレッド ネットワーク データに含まれる SRP サーバー サービス エントリを監視し、SRP サーバーが検出されると自動的にクライアントを起動および停止します。

複数の SRP サーバーが見つかった場合は、ランダムに選択されます。選択された SRP サーバーが検出されなくなった(Thread ネットワーク データに存在しなくなった)場合、SRP クライアントは停止し、別の SRP サーバー(使用可能な場合)に切り替わることがあります。

otSrpClientStart() の呼び出しが正常に終了して SRP クライアントが明示的に起動された場合、otSrpClientStart() の指定された SRP サーバー アドレスは、自動起動モードの状態と同じ SRP サーバー アドレスが検出されているかどうかにかかわらず、引き続き使用されます。この場合、明示的な otSrpClientStop() 呼び出しだけがクライアントを停止します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aCallback
クライアントが自動開始または停止されたときに通知するためのコールバック。不要な場合は NULL にできます。
[in] aContext
aCallback を呼び出すときに渡されるコンテキスト。

otSrpClientGetAppEngine

const char * otSrpClientGetDomainName(
  otInstance *aInstance
)

この関数は、SRP クライアントが使用しているドメイン名を取得します。

この関数を使用するには OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE を有効にする必要があります。

ドメイン名が設定されていない場合は「default.service.arpa」が使用されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ドメイン名の文字列。

otSrpClientGetHostInfo

const otSrpClientHostInfo * otSrpClientGetHostInfo(
  otInstance *aInstance
)

この関数はホスト情報を取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ホスト情報構造へのポインタ。

otSrpClientGetKeyLeaseInterval

uint32_t otSrpClientGetKeyLeaseInterval(
  otInstance *aInstance
)

この関数は、SRP 更新リクエストで使用される鍵のリース間隔を取得します。

これは、SRP クライアントがリクエストするリース期間です。サーバーは異なるリース期間を受け入れることもできます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
鍵のリース間隔(秒単位)

otSrpClientGetLeaseInterval

uint32_t otSrpClientGetLeaseInterval(
  otInstance *aInstance
)

この関数は、SRP 更新リクエストで使用されるリースの間隔を取得します。

これは、SRP クライアントがリクエストするリース期間です。サーバーは異なるリース期間を受け入れることもできます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
リースの間隔(秒単位)。

otSrpClientGetServerAddress

const otSockAddr * otSrpClientGetServerAddress(
  otInstance *aInstance
)

この関数は、SRP クライアントが使用している SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)を取得します。

クライアントが実行されていない場合、アドレスは指定されず(すべてゼロ)、ポート番号はゼロになります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーのソケット アドレスへのポインタ(常に NULL ではありません)。

otSrpClientGetServices

const otSrpClientService * otSrpClientGetServices(
  otInstance *aInstance
)

この関数は、クライアントによって管理されているサービスのリストを取得します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
すべてのサービスのリンクリストの先頭へのポインタ。リストが空の場合は NULL。

otSrpClientIsAutoStartModeEnabled(以上)

bool otSrpClientIsAutoStartModeEnabled(
  otInstance *aInstance
)

この関数は、自動スタート モードの現在の状態(有効または無効)を示します。

これは、自動スタート機能 OPENTHREAD_CONFIG_SRP_CLIENT_AUTO_START_API_ENABLE が有効になっている場合にのみ使用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
自動スタート モードが有効な場合は TRUE、それ以外の場合は FALSE。

otSrpClientIsRunning

bool otSrpClientIsRunning(
  otInstance *aInstance
)

この関数は、SRP クライアントが実行中かどうかを示します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP クライアントが実行中の場合は TRUE、それ以外の場合は FALSE。

otSrpClientIsServiceKeyRecordEnabled(認証クライアント クライアントの ServiceKeyRecordEnabled)

bool otSrpClientIsServiceKeyRecordEnabled(
  otInstance *aInstance
)

このメソッドは、「サービスキー レコードの追加」モードが有効か無効かを示します。

この関数は、OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 構成が有効な場合に利用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
「サービスキー レコードのインクルード」モードが有効になっている場合は TRUE、それ以外の場合は FALSE。

otSrpClientItemStateToString(文字列)

const char * otSrpClientItemStateToString(
  otSrpClientItemState aItemState
)

この関数は、otSrpClientItemState を文字列に変換します。

詳細
パラメータ
[in] aItemState
アイテムの状態。
戻り値
aItemState の文字列表現。

otSrpClientRemoveHostAndServices

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

この関数は、ホスト情報とすべてのサービスの削除プロセスを開始します。

この関数から戻ると、SRP サーバーで削除リクエストのステータスを報告するために、otSrpClientCallback が呼び出されます。

ホスト情報をサーバーから完全に削除する場合は、aRemoveKeyLeasetrue に設定し、サーバー上のホストに関連付けられているキーリースを削除します。それ以外の場合は、鍵リースのレコードは以前と同じように保持されます。これにより、サーバーは再びホスト名を提供し、クライアントがサービスを提供、登録できるようになります。

aSendUnregToServer は、ホスト情報がサーバーにまだ登録されていない場合の動作を指定します。aSendUnregToServerfalse(デフォルト値/予想される値)に設定されている場合、SRP クライアントは更新情報をサーバーに送らず直ちにホスト情報およびサービスを削除します(メッセージ サーバーがない場合は、サーバーを更新する必要はありません)。登録済みである必要があります)。aSendUnregToServertrue に設定されている場合、SRP クライアントは更新メッセージをサーバーに送信します。ホスト情報が登録されている場合は、aSendUnregToServer の値が重要でないため、SRP クライアントがすべての情報の削除をリクエストする更新メッセージをサーバーに常に送信します。

aSendUnregToServer が役立つ可能性がある状況の 1 つとして、デバイスのリセット/リブートが挙げられます。呼び出し元は、サーバーに登録された以前のサービスを削除することもできます。この場合、呼び出し元は otSrpClientSetHostName() してから、aSendUnregToServertrue として、otSrpClientRemoveHostAndServices() をリクエストできます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aRemoveKeyLease
ホストキーのリースも削除すべきかどうかを示すブール値。
[in] aSendUnregToServer
ホスト情報が登録されていない場合に、サーバーに更新を送信するかどうかを示すブール値。
戻り値
OT_ERROR_NONE
ホストの情報とサービスの削除を開始しました。ステータスを報告するために otSrpClientCallback が呼び出されます。
OT_ERROR_ALREADY
ホスト情報はすでに削除されています。

otSrpClientRemoveService

otError otSrpClientRemoveService(
  otInstance *aInstance,
  otSrpClientService *aService
)

この関数は、サービスの登録解除をサーバーにリクエストします。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーで削除リクエストのステータスを報告します。

aService が指している otSrpClientService インスタンスは、この関数から戻った後も(OT_ERROR_NONE で)保持され、変更されないままにする必要があります。 OpenThread は削除プロセスの間サービス インスタンスを保持します。otSrpClientCallback が呼び出された時点でのみ、サービス インスタンスが SRP クライアント サービスリストから削除され、解放または再利用できるようになります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aService
削除する otSrpClientService インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
サービスの削除を開始しました。ステータスを報告するために otSrpClientCallback が呼び出されます。
OT_ERROR_NOT_FOUND
リストにサービスが見つかりませんでした。

otSrpClientSetCallback(コールバック)

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

この関数は、SRP クライアントからのイベントや変更を呼び出し元に通知するコールバックを設定します。

SRP クライアントでは、コールバックを 1 つ登録できます。そのため、この関数を連続して呼び出すと、以前に設定したコールバック関数が上書きされます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aCallback
イベントと変更を通知するコールバック。不要な場合は NULL にできます。
[in] aContext
aCallback で使用される任意のコンテキスト。

otSrpClientSetAppEngine

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

この関数は、SRP クライアントが使用するドメイン名を設定します。

この関数を使用するには OPENTHREAD_CONFIG_SRP_CLIENT_DOMAIN_NAME_API_ENABLE を有効にする必要があります。

設定しない場合、「default.service.arpa」が使用されます。

aName が指す名前文字列バッファは、この関数から返された後も保持され、変更されないままでなければなりません。OpenThread は文字列へのポインタを保持します。

ドメイン名は、クライアントの起動前または開始後、ホスト情報をサーバーに登録する前に設定できます(ホスト情報は STATE_TO_ADD または STATE_TO_REMOVE のいずれか)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aName
ドメイン名の文字列を指すポインタ。NULL の場合はデフォルトの「default.service.arpa」に設定されます。
戻り値
OT_ERROR_NONE
ドメイン名のラベルが正常に設定されました。
OT_ERROR_INVALID_STATE
ホスト情報はすでにサーバーに登録されています。

otSrpClientSetHostAddresses

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

この関数は、ホスト IPv6 アドレスのリストを設定または更新します。

ホスト IPv6 アドレスは、SRP クライアントの起動前または操作中(以前に登録されたホストアドレスを追加 / 削除 / 変更する場合など)に設定 / 変更できます。ただし、ホスト情報が削除されている場合(クライアントが以前の削除リクエストの処理にビジー状態である場合を除く) otSrpClientRemoveHostAndServices() を呼び出し、ホスト情報がまだ STATE_TO_REMOVE または STATE_REMOVING の状態にある場合。

aIp6Addresses が参照するホスト IPv6 アドレス配列は、この関数から戻った後も(OT_ERROR_NONE を使用して)維持され、変更されないままでなければなりません。 OpenThread は、配列へのポインタを保存します。

この関数の呼び出しが成功すると、otSrpClientCallback が呼び出されて、SRP サーバーへのアドレス登録のステータスを報告します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aIp6Addresses
ホスト IPv6 アドレスを含む配列へのポインタ。
[in] aNumAddresses
aIp6Addresses 配列内のアドレス数。
戻り値
OT_ERROR_NONE
ホスト IPv6 アドレスリストの変更を開始しました。サーバーへのアドレス登録のステータスを報告するために、otSrpClientCallback が呼び出されます。
OT_ERROR_INVALID_ARGS
アドレスリストが無効です(アドレスを 1 つ以上含める必要があります)。
OT_ERROR_INVALID_STATE
ホストは削除されているため、ホストアドレスを変更できません。

otSrpClientSetHostName

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

この関数は、ホスト名のラベルを設定します。

この関数への呼び出しが成功すると、otSrpClientCallback が呼び出され、SRP サーバーへのホスト情報の登録ステータスが報告されます。

aName が指す名前文字列バッファは、この関数から返された後も保持され、変更されないままでなければなりません。OpenThread は文字列へのポインタを保持します。

ホスト名は、クライアントの起動前または開始後に、ホスト情報をサーバーに登録する前に設定できます(ホスト情報は STATE_TO_ADD または STATE_REMOVED のいずれか)。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aName
ホスト名のラベル文字列へのポインタ(NULL にはしないでください)。文字列バッファへのポインタは、この関数から返された後も維持され、有効であり続ける必要があります。
戻り値
OT_ERROR_NONE
ホスト名のラベルが正常に設定されました。
OT_ERROR_INVALID_ARGS
aName が NULL である。
OT_ERROR_INVALID_STATE
ホスト名はすでに設定され、サーバーに登録されています。

otSrpClientSetKeyLeaseInterval

void otSrpClientSetKeyLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

この関数は、SRP 更新リクエストで使用される鍵のリース間隔を設定します。

リース期間を変更しても、登録済みのサービス / ホスト情報に対して受け入れられているリース間隔には影響しません。影響を受けるのは、以降の SRP アップデート メッセージ(新しいサービスの追加や既存サービスの更新)のみです。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aInterval
鍵のリース間隔(秒単位) ゼロの場合、OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_KEY_LEASE で指定されたデフォルト値が使用されます。

otSrpClientSetLeaseInterval

void otSrpClientSetLeaseInterval(
  otInstance *aInstance,
  uint32_t aInterval
)

この関数は、SRP 更新リクエストで使用されるリースの間隔を設定します。

リース期間を変更しても、登録済みのサービス / ホスト情報に対して受け入れられているリース間隔には影響しません。影響を受けるのは、以降の SRP アップデート メッセージ(新しいサービスの追加や既存サービスの更新)のみです。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aInterval
リースの間隔(秒単位)。ゼロの場合、OPENTHREAD_CONFIG_SRP_CLIENT_DEFAULT_LEASE で指定されたデフォルト値が使用されます。

otSrpClientSetServiceKeyRecordEnabled(認証クライアント クライアントの ServiceKeyRecordEnabled の有効化)

void otSrpClientSetServiceKeyRecordEnabled(
  otInstance *aInstance,
  bool aEnabled
)

この関数は、「サービスキー レコードの追加」モードを有効または無効にします。

有効にすると、SRP クライアントが送信する SRP 更新メッセージの [サービスの説明の指示] に KEY レコードが追加されます。

この関数は、OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 構成が有効な場合に利用できます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
有効にするには TRUE、サービスキー レコードの登録モードを無効にするには FALSE。

otSrpClientStart

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

この関数は、SRP クライアントのオペレーションを開始します。

次のすべての条件が満たされると、SRP クライアントは「SRP 更新」メッセージを準備して SRP サーバーに送信します。

これらの関数が呼び出される順序は関係ありません。すべての条件が満たされると、SRP クライアントはしばらく待ってから「SRP 更新」メッセージを作成してサーバーに送信します。この遅延によって、ユーザーは最初の SRP アップデート メッセージが送信される前に複数のサービスや IPv6 アドレスを追加できます(すべての情報を含む単一の SRP アップデートが送信されるようにします)。構成 OPENTHREAD_CONFIG_SRP_CLIENT_UPDATE_TX_DELAY では遅延間隔を指定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aServerSockAddr
SRP サーバーのソケット アドレス(IPv6 アドレスとポート番号)。
戻り値
OT_ERROR_NONE
SRP クライアントのオペレーションが正常に開始されたか、すでに同じサーバー ソケット アドレスとコールバックで SRP クライアントが実行されています。
OT_ERROR_BUSY
SRP クライアントが別のソケット アドレスでビジー状態になっています。
OT_ERROR_FAILED
クライアントの UDP ソケットをオープンまたは接続できませんでした。

otSrpClientStop を使用する

void otSrpClientStop(
  otInstance *aInstance
)

この関数は、SRP クライアントのオペレーションを停止します。

この関数は、SRP サーバーとの通信を停止します。ホスト情報やサービスのリストが削除されたり、削除されたりすることはありません。クライアントが再起動されると、すべてのサービスが再び追加または削除されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。

otSrpServerGetAddressMode(ん)

otSrpServerAddressMode otSrpServerGetAddressMode(
  otInstance *aInstance
)

この関数は、SRP サーバーで使用されているアドレスモードを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーのアドレスモード。

otSrpServerGetAnycastModeSequenceNumber

uint8_t otSrpServerGetAnycastModeSequenceNumber(
  otInstance *aInstance
)

この関数は、エニーキャスト アドレス モードで使用されるシーケンス番号を返します。

シーケンス番号は、ネットワーク データで公開されている「DNS/SRP サービス エニーキャスト アドレス」の項目に含まれます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
エニーキャスト シーケンス番号。

otSrpServerGetDomain

const char * otSrpServerGetDomain(
  otInstance *aInstance
)

この関数は、SRP サーバーに承認されたドメインを返します。

SetDomain で設定していない場合は「default.service.arpa」、が返されます。ドメインが設定されていない場合は、末尾にドットが付加されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
ドット結合のドメイン文字列へのポインタ。

otSrpServerGetLeaseConfig

void otSrpServerGetLeaseConfig(
  otInstance *aInstance,
  otSrpServerLeaseConfig *aLeaseConfig
)

この関数は、SRP サーバーの LEASE 設定と KEY-LEASE 設定を返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[out] aLeaseConfig
otSrpServerLeaseConfig インスタンスへのポインタ。

otSrpServerGetNextHost

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

この関数は、SRP サーバーに次に登録されたホストを返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aHost
現在のホストへのポインタ最初のホストを取得するには NULL を使用します。
戻り値
登録済みホストへのポインタ。NULL: 他のホストが見つからなかった場合。

otSrpServerGetState

otSrpServerState otSrpServerGetState(
  otInstance *aInstance
)

この関数は、SRP サーバーの状態を返します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
戻り値
SRP サーバーの現在の状態。

otSrpServerHandleServiceUpdateResult

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

この関数は、SRP の更新を SRP サーバーに処理した結果をレポートします。

サービス更新ハンドラは、この関数を呼び出して SRP 更新処理の結果を返す必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aId
サービス更新の取引 ID。これは、otSrpServerServiceUpdateHandler で指定した ID と同じである必要があります。
[in] aError
SRP サーバーに返されるエラーです。OT_ERROR_DUPLICATED を使用して DNS 名の競合を表します。

otSrpServerHostFindNextService

const otSrpServerService * otSrpServerHostFindNextService(
  const otSrpServerHost *aHost,
  const otSrpServerService *aPrevService,
  otSrpServerServiceFlags aFlags,
  const char *aServiceName,
  const char *aInstanceName
)

この関数は、ホスト上で次に一致するサービスを検索します。

フラグ、サービス名、インスタンス名を組み合わせると、特定の条件に合致するサービスのリストやそのサブセット、あるいは特定のサービスを見つけるための反復処理を行えます。

ホストのすべてのサービスを反復処理する場合。service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_ANY_SERVICE, NULL, NULL);

基本サービスのみを反復処理するには(サブタイプを除く)、service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, NULL)。

特定のインスタンス名 instanceName のサブタイプを反復処理する場合: service = otSrpServerHostFindNextService(host, service, OT_SRP_SERVER_FLAGS_SUB_TYPE_SERVICE_ONLY, NULL, instanceName);

サービス名 serviceName とサービス インスタンス名 instanceName の特定のサービスを検索するには: service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_ANY_SERVICE, serviceName, instanceName);

指定したサービス インスタンス名が instanceName のベースタイプのサービスを検索するには、service = otSrpServerHostFindNextService(host, NULL, OT_SRP_SERVER_FLAGS_BASE_TYPE_SERVICE_ONLY, NULL, instanceName)。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ(NULL にはしないでください)。
[in] aPrevService
リストの先頭から開始する前のサービスを指すポインタまたは NULL。
[in] aFlags
含めるサービス(ベース/サブタイプ、アクティブ/削除済み)を示すフラグ。
[in] aServiceName
照合するサービス名。名前を受け入れる場合は NULL に設定します。
[in] aInstanceName
照合するサービス インスタンス名。名前を受け入れる場合は NULL に設定します。
戻り値
次のマッチング サービスへのポインタ。一致するサービスが見つからない場合は NULL。

otSrpServerHostGetAddresses

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

この関数は、指定されたホストのアドレスを返します。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
[out] aAddressesNum
住所の数の出力先を指します。
戻り値
IPv6 アドレスの配列へのポインタ。

otSrpServerHostGetFullName

const char * otSrpServerHostGetFullName(
  const otSrpServerHost *aHost
)

この関数はホストの完全な名前を返します。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
戻り値
null で終わるホスト名文字列へのポインタ。

otSrpServerHostGetNextService

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

この関数は、指定されたホストの次のサービス(サブタイプ サービスを除く)を返します。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
[in] aService
現在の SRP サービス インスタンスを指すポインタ。最初のサービスを取得するには NULL を使用します。
戻り値
次のサービスへのポインタ。それ以上のサービスがない場合は NULL。

otSrpServerHostIsDeleted(削除)

bool otSrpServerHostIsDeleted(
  const otSrpServerHost *aHost
)

この関数は、SRP サービスホストが削除されたかどうかを示します。

SRP サービスホストは削除できますが、後で使用するために名前を保持します。この場合、ホスト インスタンスは SRP のサーバー/レジストリから削除されません。

詳細
パラメータ
[in] aHost
SRP サービスホストへのポインタ。
戻り値
ホストがすでに削除されている場合は TRUE、削除されていない場合は FALSE。

otSrpServerServiceGetFullName

const char * otSrpServerServiceGetFullName(
  const otSrpServerService *aService
)

この関数は、サービスの完全なサービス インスタンス名を返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
null で終わるサービス インスタンス名の文字列へのポインタ。

otSrpServerServiceGetHost、

const otSrpServerHost * otSrpServerServiceGetHost(
  const otSrpServerService *aService
)

この関数は、サービス インスタンスが存在するホストを返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
ホスト インスタンスへのポインタ。

otSrpServerServiceGetInstanceName(英語)

const char * otSrpServerServiceGetInstanceName(
  const otSrpServerService *aService
)

この関数は、サービスの完全なサービス インスタンス名を返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
null で終わるサービス インスタンス名の文字列へのポインタ。

otSrpServerServiceGetPort

uint16_t otSrpServerServiceGetPort(
  const otSrpServerService *aService
)

この関数は、サービス インスタンスのポートを返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
サービスのポート。

otSrpServerServiceGetPriority

uint16_t otSrpServerServiceGetPriority(
  const otSrpServerService *aService
)

この関数は、サービス インスタンスの優先度を返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
サービスの優先度。

otSrpServerServiceGetServiceName

const char * otSrpServerServiceGetServiceName(
  const otSrpServerService *aService
)

この関数は、サービスの完全なサービス名を返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
null で終わるサービス名文字列へのポインタ。

otSrpServerServiceGetServiceSubTypeLabel

otError otSrpServerServiceGetServiceSubTypeLabel(
  const otSrpServerService *aService,
  char *aLabel,
  uint8_t aMaxSize
)

この関数は、サービス名からサブタイプ ラベルを取得します。

この関数は、aService がサブタイプの場合に使用されます。つまり、 サービスの otSrpServerServiceIsSubType() が TRUE を返します。サブタイプでない場合、この関数は OT_ERROR_INVALID_ARGS を返します。

サブタイプ サービスの完全なサービス名は「._sub...」」 この関数は、aLabel バッファにコピーします。

aLabel は、失敗時であっても、返される後は常に null で終了することが保証されています。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
[out] aLabel
サブタイプのラベル名をコピーするバッファへのポインタ。
[in] aMaxSize
aLabel バッファの最大サイズ。
戻り値
OT_ERROR_NONE
aLabel を更新しました。
OT_ERROR_NO_BUFS
サブタイプのラベルが aLabel バッファに収まりません(一致する可能性のあるラベルの文字数は aLabel にコピーされ、null で終端されます)。
OT_ERROR_INVALID_ARGS
SRP サービスはサブタイプではありません。

otSrpServerServiceGetTxtData

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

この関数は、サービス インスタンスの TXT レコードデータを返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
[out] aDataLength
TXT レコードのデータ長を返すポインタ。NULL にすることはできません。
戻り値
TXT レコード データを含むバッファへのポインタ(TXT データの長さは aDataLength で返されます)。

otSrpServerServiceGetWeight

uint16_t otSrpServerServiceGetWeight(
  const otSrpServerService *aService
)

この関数は、サービス インスタンスの重みを返します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
サービスのウェイト。

otSrpServerServiceIs 削除済み

bool otSrpServerServiceIsDeleted(
  const otSrpServerService *aService
)

この関数は、SRP サービスが削除されたかどうかを示します。

SRP サービスは削除できますが、将来の使用に備えて名前が保持されます。この場合、サービス インスタンスは SRP のサーバー/レジストリから削除されません。ホストが削除されると、すべてのサービスが削除されることが保証されます。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
サービスが削除された場合は TRUE、削除されていない場合は FALSE。

otSrpServerServiceIsSubType

bool otSrpServerServiceIsSubType(
  const otSrpServerService *aService
)

この関数は、SRP サービスがサブタイプかどうかを示します。

詳細
パラメータ
[in] aService
SRP サービスを指すポインタ。
戻り値
サービスがサブタイプの場合は TRUE、そうでない場合は FALSE。

otSrpServerSetAddressMode(otSrpServerSetAddressMode)

otError otSrpServerSetAddressMode(
  otInstance *aInstance,
  otSrpServerAddressMode aMode
)

この関数は、SRP サーバーが使用するアドレスモードを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aMode
使用するアドレスモード。
戻り値
OT_ERROR_NONE
アドレスモードを設定しました。
OT_ERROR_INVALID_STATE
SRP サーバーが有効になっており、アドレスモードを変更できません。

otSrpServerSetAnycastModeSequenceNumber

otError otSrpServerSetAnycastModeSequenceNumber(
  otInstance *aInstance,
  uint8_t aSequenceNumber
)

この関数は、エニーキャスト アドレス モードで使用されるシーケンス番号を設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aSequenceNumber
使用するシーケンス番号。
戻り値
OT_ERROR_NONE
アドレスモードを設定しました。
OT_ERROR_INVALID_STATE
SRP サーバーが有効化されており、シーケンス番号を変更することはできません。

otSrpServerSetDomain

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

この関数は、SRP サーバーにドメインを設定します。

末尾のドットが aDomain にない場合は、末尾に付加されます。この関数は、SRP サーバーが有効化される前にのみ呼び出す必要があります。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aDomain
設定するドメイン。NULL にすることはできません。
戻り値
OT_ERROR_NONE
ドメインを aDomain に設定しました。
OT_ERROR_INVALID_STATE
SRP サーバーはすでに有効になっており、ドメインを変更することはできません。
OT_ERROR_INVALID_ARGS
引数 aDomain は、有効な DNS ドメイン名ではありません。
OT_ERROR_NO_BUFS
aDomain の内容を保存するメモリがありません。

otSrpServerSetEnabled(OTSrpServerSetEnabled)

void otSrpServerSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

この関数は、SRP サーバーを有効または無効にします。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aEnabled
SRP サーバーを有効または無効にするブール値。

otSrpServerSetLeaseConfig

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

この関数は、SRP サーバーの LEASE と KEY-LEASE の設定を設定します。

ゼロ以外の LEASE 時間がクライアントからリクエストされると、付与される値は [aMinLease, aMaxLease] の範囲に制限されます。また、ゼロ以外の KEY-LEASE は [aMinKeyLease, aMaxKeyLease] の範囲で付与されます。LEASE または KEY-LEASE の時間がゼロの場合、ゼロが付与されます。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aLeaseConfig
otSrpServerLeaseConfig インスタンスへのポインタ。
戻り値
OT_ERROR_NONE
LEASE と KEY-LEASE の範囲が正常に設定されました。
OT_ERROR_INVALID_ARGS
LEASE または KEY-LEASE の範囲は無効です。

otSrpServerSetServiceUpdateHandler(OTSrpServerSetServiceUpdateHandler)

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

この関数は、SRP サーバーで SRP サービス更新ハンドラを設定します。

詳細
パラメータ
[in] aInstance
OpenThread インスタンスへのポインタ。
[in] aServiceHandler
サービス ハンドラへのポインタ。ハンドラを削除するには、NULL を使用します。
[in] aContext
任意のコンテキスト情報へのポインタ。使用しない場合は、NULL も指定できます。

リソース

OpenThread API リファレンスのトピックは、GitHub で入手可能なソースコードに基づいています。 詳細またはドキュメントへの投稿については、リソースをご覧ください。