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

DNSv6

このモジュールには、DNS通信を制御する機能が含まれています。

概要

このモジュールの機能は、機能の場合にのみ使用可能ですOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE有効になっています。

列挙

otDnsNat64Mode {
OT_DNS_NAT64_UNSPECIFIED = 0,
OT_DNS_NAT64_ALLOW = 1,
OT_DNS_NAT64_DISALLOW = 2
}
列挙型
この列挙型は、中NAT64モードを表しotDnsQueryConfig
otDnsRecursionFlag {
OT_DNS_FLAG_UNSPECIFIED = 0,
OT_DNS_FLAG_RECURSION_DESIRED = 1,
OT_DNS_FLAG_NO_RECURSION = 2
}
列挙型
この列挙型は、で「再帰所望の」(RD)フラグを表しotDnsQueryConfig

Typedef

otDnsAddressCallback )(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
この関数ポインタは、アドレス解決クエリに対するDNS応答を受信したときに呼び出されます。
otDnsAddressResponse typedef
このタイプは、アドレス解決DNSクエリへの応答の不透明な表現です。
otDnsBrowseCallback )(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
この関数ポインターは、参照(サービスインスタンス列挙)クエリに対するDNS応答を受信したときに呼び出されます。
otDnsBrowseResponse typedef
このタイプは、ブラウズ(サービスインスタンス列挙)DNSクエリへの応答の不透明な表現です。
otDnsQueryConfig typedef
この構造は、DNSクエリ構成を表します。
otDnsServiceCallback )(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
この関数ポインタは、サービスインスタンス解決クエリに対するDNS応答を受信したときに呼び出されます。
otDnsServiceInfo typedef
この構造は、DNSサービスインスタンスの情報を提供します。
otDnsServiceResponse typedef
このタイプは、サービスインスタンス解決DNSクエリへの応答の不透明な表現です。
otDnsTxtEntry typedef
この構造は、キーと値のペアを表すTXTレコードエントリを表します(RFC 6763-セクション6.3)。
otDnsTxtEntryIterator typedef
この構造は、TXTレコード全体(キー/値のペア)のイテレーターを表します。

関数

otDnsAddressResponseGetAddress (const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
この関数は、アドレス解決DNS応答に関連付けられたIPv6アドレスを取得します。
otDnsAddressResponseGetHostName (const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
この関数は、アドレス解決DNS応答に関連付けられた完全なホスト名を取得します。
otDnsBrowseResponseGetHostAddress (const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
この関数は、DNSブラウズ(サービスインスタンス列挙)応答からホストIPv6アドレスを取得します。
otDnsBrowseResponseGetServiceInfo (const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo)
この関数は、DNSブラウズ(サービスインスタンス列挙)応答からサービスインスタンスの情報を取得します。
otDnsBrowseResponseGetServiceInstance (const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize)
この関数は、DNSブラウズ(サービスインスタンス列挙)応答に関連付けられたサービスインスタンスを取得します。
otDnsBrowseResponseGetServiceName (const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize)
この関数は、DNSブラウズ(サービスインスタンス列挙)応答に関連付けられたサービス名を取得します。
otDnsClientBrowse ( otInstance *aInstance, const char *aServiceName, otDnsBrowseCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
この関数は、指定されたサービス名に対してDNSブラウズ(サービスインスタンス列挙)クエリを送信します。
otDnsClientGetDefaultConfig ( otInstance *aInstance)
この関数は、DNSクライアントが使用する現在のデフォルトのクエリ構成を取得します。
otDnsClientResolveAddress ( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
この関数は、指定されたホスト名のAAAA(IPv6)レコードのアドレス解決DNSクエリを送信します。
otDnsClientResolveService ( otInstance *aInstance, const char *aInstanceLabel, const char *aServiceName, otDnsServiceCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
この関数は、特定のサービスインスタンスに対してDNSサービスインスタンス解決クエリを送信します。
otDnsClientSetDefaultConfig ( otInstance *aInstance, const otDnsQueryConfig *aConfig)
void
この関数は、DNSクライアントのデフォルトのクエリ構成を設定します。
otDnsGetNextTxtEntry ( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry)
この関数は、イテレータからTXTデータを解析し、次のTXTレコードエントリ(キーと値のペア)を取得します。
otDnsInitTxtEntryIterator ( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength)
void
この関数は、TXTレコードイテレーターを初期化します。
otDnsIsNameCompressionEnabled (void)
bool
この機能は、「DNS名圧縮」モードが有効かどうかを示します。
otDnsServiceResponseGetHostAddress (const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
この関数は、DNSサービスインスタンス解決応答からホストIPv6アドレスを取得します。
otDnsServiceResponseGetServiceInfo (const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo)
この関数は、DNSサービスインスタンス解決応答からサービスインスタンスの情報を取得します。
otDnsServiceResponseGetServiceName (const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize)
この関数は、DNSサービスインスタンス解決応答に関連付けられたサービスインスタンス名を取得します。
otDnsSetNameCompressionEnabled (bool aEnabled)
void
この機能は、「DNS名圧縮」モードを有効/無効にします。

構造体

otDnsQueryConfig

この構造は、DNSクエリ構成を表します。

otDnsServiceInfo

この構造は、DNSサービスインスタンスの情報を提供します。

otDnsTxtEntry

この構造は、キーと値のペアを表すTXTレコードエントリを表します(RFC 6763-セクション6.3)。

otDnsTxtEntryIterator

この構造は、TXTレコード全体(キー/値のペア)のイテレーターを表します。

列挙

otDnsNat64Mode

 otDnsNat64Mode

この列挙型は、中NAT64モードを表しotDnsQueryConfig

NAT64モードは、DNSクライアントアドレス解決中にNAT64アドレス変換を許可するか禁止するかを示します。このモードでのみ使用されOPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE有効になっています。

プロパティ
OT_DNS_NAT64_ALLOW

DNSクライアントアドレス解決中にNAT64アドレス変換を許可します。

OT_DNS_NAT64_DISALLOW

DNSクライアントアドレス解決中にNAT64アドレス変換を許可しないでください。

OT_DNS_NAT64_UNSPECIFIED

NAT64モードは指定されていません。デフォルトのNAT64モードを使用します。

otDnsRecursionFlag

 otDnsRecursionFlag

この列挙型は、で「再帰所望の」(RD)フラグを表しotDnsQueryConfig

プロパティ
OT_DNS_FLAG_NO_RECURSION

DNSネームサーバーがクエリを再帰的に解決できないことを示します。

OT_DNS_FLAG_RECURSION_DESIRED

DNSネームサーバーがクエリを再帰的に解決できることを示します。

OT_DNS_FLAG_UNSPECIFIED

フラグが指定されていないことを示します。

Typedef

otDnsAddressCallback

void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)

この関数ポインタは、アドレス解決クエリに対するDNS応答を受信したときに呼び出されます。

このコールバック内のユーザが使用できotDnsAddressResponseGet{Item}()と一緒に機能をaResponse応答についての詳細情報を取得するポインタ。

aResponseポインタにのみ、このコールバック内で使用することができ、ユーザが保持してはならない(MUST NOT)ように、この関数から戻った後には、有効な滞在しないだろうaResponse後で使用するためのポインタを。

aError以下を持つことができます。

詳細
パラメーター
[in] aError
DNSトランザクションの結果。
[in] aResponse
応答へのポインター(常にNULL以外)。
[in] aContext
アプリケーション固有のコンテキストへのポインタ。

  • OT_ERROR_NONE応答が正常に受信されました。
  • OT_ERROR_ABORTDNSトランザクションがスタックによって中止されました。
  • OT_ERROR_RESPONSE_TIMEOUTタイムアウト内にDNS応答を受信して​​いません。

サーバーがアドレス解決要求を拒否した場合、サーバーからのエラーコードは次のようにマップされます。

  • (0)NOERROR成功(エラー状態なし)-> OT_ERROR_NONE
  • (1)フォーマットエラーのためにFORMERRサーバーが解釈できません-> OT_ERROR_PARSE
  • (2)SERVFAILサーバーで内部障害が発生しました-> OT_ERROR_FAILED
  • (3)存在するはずのNXDOMAIN名が存在しない-> OT_ERROR_NOT_FOUND
  • (4)NOTIMPサーバーはクエリタイプ(OpCode)をサポートしていません-> OT_ERROR_NOT_IMPLEMENTED
  • (5)拒否されたサーバーはポリシー/セキュリティ上の理由で拒否されました-> 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

otDnsAddressResponse

struct otDnsAddressResponse otDnsAddressResponse

このタイプは、アドレス解決DNSクエリへの応答の不透明な表現です。

このタイプのインスタンスへのポインタをコールバックから提供されるotDnsAddressCallback

otDnsBrowseCallback

void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)

この関数ポインターは、参照(サービスインスタンス列挙)クエリに対するDNS応答を受信したときに呼び出されます。

このコールバック内のユーザが使用できotDnsBrowseResponseGet{Item}()と一緒に機能をaResponse応答についての詳細情報を取得するポインタ。

aResponseポインタにのみ、このコールバック内で使用することができ、ユーザが保持してはならない(MUST NOT)ように、この関数から戻った後には、有効な滞在しないだろうaResponse後で使用するためのポインタを。

以下のための可能な値の完全なリストについてはaError 、参照してくださいotDnsAddressCallback()

詳細
パラメーター
[in] aError
DNSトランザクションの結果。
[in] aResponse
応答へのポインター(常にNULL以外)。
[in] aContext
アプリケーション固有のコンテキストへのポインタ。

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

このタイプは、ブラウズ(サービスインスタンス列挙)DNSクエリへの応答の不透明な表現です。

このタイプのインスタンスへのポインタをコールバックから提供されるotDnsBrowseCallback

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

この構造は、DNSクエリ構成を表します。

この構造体の任意のフィールドをゼロに設定して、指定されていないことを示すことができます。どのように指定されていないフィールドはインスタンスの使用する関数によって決定され扱われるotDnsQueryConfig

otDnsServiceCallback

void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)

この関数ポインタは、サービスインスタンス解決クエリに対するDNS応答を受信したときに呼び出されます。

このコールバック内のユーザが使用できotDnsServiceResponseGet{Item}()と一緒に機能をaResponse応答についての詳細情報を取得するポインタ。

aResponseポインタにのみ、このコールバック内で使用することができ、ユーザが保持してはならない(MUST NOT)ように、この関数から戻った後には、有効な滞在しないだろうaResponse後で使用するためのポインタを。

以下のための可能な値の完全なリストについてはaError 、参照してくださいotDnsAddressCallback()

詳細
パラメーター
[in] aError
DNSトランザクションの結果。
[in] aResponse
応答へのポインター(常にNULL以外)。
[in] aContext
アプリケーション固有のコンテキストへのポインタ。

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

この構造は、DNSサービスインスタンスの情報を提供します。

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

このタイプは、サービスインスタンス解決DNSクエリへの応答の不透明な表現です。

このタイプのインスタンスへのポインタをコールバックから提供されるotDnsAddressCallback

otDnsTxtEntry

struct otDnsTxtEntry otDnsTxtEntry

この構造は、キーと値のペアを表すTXTレコードエントリを表します(RFC 6763-セクション6.3)。

指される文字列バッファmKeymValue持続し、このような構造のインスタンスが(の一部としてOpenThreadに渡された後に変化しないままでなければなりませんotSrpClientServiceインスタンス)。

アレイotDnsTxtEntryエントリがで使用されているotSrpClientService完全TXTレコード(エントリのリスト)を指定します。

otDnsTxtEntryIterator

struct otDnsTxtEntryIterator otDnsTxtEntryIterator

この構造は、TXTレコード全体(キー/値のペア)のイテレーターを表します。

この構造のデータフィールドはOpenThreadコアでの使用を目的としており、呼び出し元はそれらを読み取ったり変更したりしないでください。

関数

otDnsAddressResponseGetAddress

otError otDnsAddressResponseGetAddress(
  const otDnsAddressResponse *aResponse,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

この関数は、アドレス解決DNS応答に関連付けられたIPv6アドレスを取得します。

この機能は、からのみ使用されなければならないotDnsAddressCallback

応答には、複数のIPv6アドレスレコードが含まれる場合があります。 aIndexアドレスのリストを反復処理するために使用することができます。インデックスゼロは最初のアドレスを取得し、以下同様に続きます。私たちは、リストの最後に到達すると、 OT_ERROR_NOT_FOUND返されます。

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[in] aIndex
取得するアドレスレコードインデックス。
[out] aAddress
アドレスを出力するためのIPv6アドレスへのポインタ(NULLであってはなりません)。
[out] aTtl
ポインタuint32_tアドレスの出力TTLします。呼び出し元がTTLを取得したくない場合は、NULLにすることができます。
戻り値
OT_ERROR_NONE
アドレスが正常に読み取られました。
OT_ERROR_NOT_FOUND
でNOアドレスレコードませんaResponseaIndex
OT_ERROR_PARSE
内のレコードを解析できませんでしたaResponse

otDnsAddressResponseGetHostName

otError otDnsAddressResponseGetHostName(
  const otDnsAddressResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

この関数は、アドレス解決DNS応答に関連付けられた完全なホスト名を取得します。

この機能は、からのみ使用されなければならないotDnsAddressCallback

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[out] aNameBuffer
完全なホスト名を出力するためのchar配列へのバッファ(NULLであってはなりません)。
[in] aNameBufferSize
大きさaNameBuffer
戻り値
OT_ERROR_NONE
完全なホスト名が正常に読み取られました。
OT_ERROR_NO_BUFS
名前はに収まらないaNameBuffer

otDnsBrowseResponseGetHostAddress

otError otDnsBrowseResponseGetHostAddress(
  const otDnsBrowseResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

この関数は、DNSブラウズ(サービスインスタンス列挙)応答からホストIPv6アドレスを取得します。

この機能は、からのみ使用されなければならないotDnsBrowseCallback

応答には、0個以上のIPv6アドレスレコードを含めることができます。 aIndexアドレスのリストを反復処理するために使用することができます。インデックスゼロは最初のアドレスを取得し、以下同様に続きます。私たちは、リストの最後に到達すると、 OT_ERROR_NOT_FOUND返されます。

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[in] aHostName
アドレスを取得するためのホスト名(NULLであってはなりません)。
[in] aIndex
取得するアドレスレコードインデックス。
[out] aAddress
アドレスを出力するためのIPv6アドレスへのポインタ(NULLであってはなりません)。
[out] aTtl
ポインタuint32_tアドレスの出力TTLします。呼び出し元がTTLを取得したくない場合は、NULLにすることができます。
戻り値
OT_ERROR_NONE
アドレスが正常に読み取られました。
OT_ERROR_NOT_FOUND
以下のためのアドレスレコードませんaHostnameaResponseaIndex
OT_ERROR_PARSE
内のレコードを解析できませんでしたaResponse

otDnsBrowseResponseGetServiceInfo

otError otDnsBrowseResponseGetServiceInfo(
  const otDnsBrowseResponse *aResponse,
  const char *aInstanceLabel,
  otDnsServiceInfo *aServiceInfo
)

この関数は、DNSブラウズ(サービスインスタンス列挙)応答からサービスインスタンスの情報を取得します。

この機能は、からのみ使用されなければならないotDnsBrowseCallback

ブラウズDNS応答には、列挙されたサービスインスタンスのSRV、TXT、およびAAAAレコードを含める必要があります(これはSHOULDであり、MUST要件ではないことに注意してください)。この関数は、使用可能な場合、特定のサービスインスタンスについてこの情報を取得しようとします。

  • 一致するSRVレコードが中に見つからない場合aResponseOT_ERROR_NOT_FOUND返されます。
  • 一致するSRVレコードが見つかった場合aResponseaServiceInfo更新され、 OT_ERROR_NONE返されます。
  • 一致するTXTレコードが中に見つからない場合aResponsemTxtDataSizeaServiceInfoゼロに設定されています。
  • 一致するAAAAレコードが中に見つからない場合aResponsemHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddressは、 is set to the first one. The other addresses can be retrieved using otDnsBrowseResponseGetHostAddressを() `。

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[in] aInstanceLabel
サービスインスタンスラベル(NULLであってはなりません)。
[out] aServiceInfo
A ServiceInfo出力するサービスインスタンス情報(NULLにすることはできません)。
戻り値
OT_ERROR_NONE
サービスインスタンス情報が読み取られました。 aServiceInfo更新されます。
OT_ERROR_NOT_FOUND
以下のためのマッチングSRVレコードが見つかりませんでしたaInstanceLabel
OT_ERROR_NO_BUFS
ホスト名またはTXTデータ、あるいはその両方が、指定されたバッファーに収まりませんでした。
OT_ERROR_PARSE
内のレコードを解析できませんでしたaResponse

otDnsBrowseResponseGetServiceInstance

otError otDnsBrowseResponseGetServiceInstance(
  const otDnsBrowseResponse *aResponse,
  uint16_t aIndex,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize
)

この関数は、DNSブラウズ(サービスインスタンス列挙)応答に関連付けられたサービスインスタンスを取得します。

この機能は、からのみ使用されなければならないotDnsBrowseCallback

応答には、複数のサービスインスタンスレコードが含まれる場合があります。 aIndexリストを反復するために使用することができます。インデックスゼロは最初のレコードを示します。私たちは、リストの最後に到達すると、 OT_ERROR_NOT_FOUND返されます。

この関数は、形式の完全なサービスインスタンス名ではなく、サービスインスタンスラベルを取得することに注意してください。 . . . .

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[in] aIndex
取得するサービスインスタンスレコードインデックス。
[out] aLabelBuffer
サービスインスタンスラベルを出力するためのchar配列へのバッファ(NULLであってはなりません)。
[in] aLabelBufferSize
大きさaLabelBuffer
戻り値
OT_ERROR_NONE
サービスインスタンスが正常に読み取られました。
OT_ERROR_NO_BUFS
名前はに収まらないaNameBuffer
OT_ERROR_NOT_FOUND
で、サービスインスタンスレコードないんaResponseaIndex
OT_ERROR_PARSE
内のレコードを解析できませんでしたaResponse

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

この関数は、DNSブラウズ(サービスインスタンス列挙)応答に関連付けられたサービス名を取得します。

この機能は、からのみ使用されなければならないotDnsBrowseCallback

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[out] aNameBuffer
サービス名を出力するためのchar配列へのバッファー(NULLであってはなりません)。
[in] aNameBufferSize
大きさaNameBuffer
戻り値
OT_ERROR_NONE
サービス名が正常に読み取られました。
OT_ERROR_NO_BUFS
名前はに収まらないaNameBuffer

otDnsClientBrowse

otError otDnsClientBrowse(
  otInstance *aInstance,
  const char *aServiceName,
  otDnsBrowseCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

この関数は、指定されたサービス名に対してDNSブラウズ(サービスインスタンス列挙)クエリを送信します。

ときに、この機能は使用可能ですOPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE有効になっています。

aConfig NULLにすることができます。この場合、(のデフォルト設定otDnsClientGetDefaultConfig()このクエリの設定として使用されます。非NULLでaConfig 、フィールドの一部は、(ゼロ値)未指定のままにすることができます。指定されていないフィールドは、デフォルト設定の値に置き換えられます。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aServiceName
照会するサービス名(NULLであってはなりません)。
[in] aCallback
応答の受信またはタイムアウト時に呼び出される関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。
[in] aConfig
このクエリに使用する構成へのポインター。
戻り値
OT_ERROR_NONE
クエリは正常に送信されました。 aCallback状況を報告するために呼び出されます。
OT_ERROR_NO_BUFS
クエリを準備して送信するためのバッファが不十分です。

otDnsClientGetDefaultConfig

const otDnsQueryConfig * otDnsClientGetDefaultConfig(
  otInstance *aInstance
)

この関数は、DNSクライアントが使用する現在のデフォルトのクエリ構成を取得します。

OpenThreadスタック開始は、デフォルトのDNSクエリの設定のようなOT設定オプションの組から決定された場合OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS_DEFAULT_SERVER_PORT_DEFAULT_RESPONSE_TIMEOUT等、(参照config/dns_client.h関連するすべてのコンフィギュレーションオプションについて)。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
戻り値
DNSクライアントによって使用されている現在のデフォルト構成へのポインター。

otDnsClientResolveAddress

otError otDnsClientResolveAddress(
  otInstance *aInstance,
  const char *aHostName,
  otDnsAddressCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

この関数は、指定されたホスト名のAAAA(IPv6)レコードのアドレス解決DNSクエリを送信します。

aConfig NULLにすることができます。この場合、(のデフォルト設定otDnsClientGetDefaultConfig()このクエリの設定として使用されます。非NULLでaConfig 、フィールドの一部は、(ゼロ値)未指定のままにすることができます。指定されていないフィールドは、デフォルト設定の値に置き換えられます。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aHostName
アドレスを照会するホスト名(NULLであってはなりません)。
[in] aCallback
応答の受信またはタイムアウト時に呼び出される関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。
[in] aConfig
このクエリに使用する構成へのポインター。
戻り値
OT_ERROR_NONE
クエリは正常に送信されました。 aCallback状況を報告するために呼び出されます。
OT_ERROR_NO_BUFS
クエリを準備して送信するためのバッファが不十分です。

otDnsClientResolveService

otError otDnsClientResolveService(
  otInstance *aInstance,
  const char *aInstanceLabel,
  const char *aServiceName,
  otDnsServiceCallback aCallback,
  void *aContext,
  const otDnsQueryConfig *aConfig
)

この関数は、特定のサービスインスタンスに対してDNSサービスインスタンス解決クエリを送信します。

ときに、この機能は使用可能ですOPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE有効になっています。

aConfig NULLにすることができます。この場合、(のデフォルト設定otDnsClientGetDefaultConfig()このクエリの設定として使用されます。非NULLでaConfig 、フィールドの一部は、(ゼロ値)未指定のままにすることができます。指定されていないフィールドは、デフォルト設定の値に置き換えられます。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aInstanceLabel
サービスインスタンスラベル。
[in] aServiceName
サービス名(と一緒にaInstanceLabel完全なインスタンス名を形成します)。
[in] aCallback
応答の受信またはタイムアウト時に呼び出される関数ポインタ。
[in] aContext
任意のコンテキスト情報へのポインタ。
[in] aConfig
このクエリに使用する構成へのポインター。
戻り値
OT_ERROR_NONE
クエリは正常に送信されました。 aCallback状況を報告するために呼び出されます。
OT_ERROR_NO_BUFS
クエリを準備して送信するためのバッファが不十分です。
OT_ERROR_INVALID_ARGS
aInstanceLabel NULLです。

otDnsClientSetDefaultConfig

void otDnsClientSetDefaultConfig(
  otInstance *aInstance,
  const otDnsQueryConfig *aConfig
)

この関数は、DNSクライアントのデフォルトのクエリ構成を設定します。

注:任意継続的なクエリは、それが起動したときから設定を引き続き使用します。新しいデフォルト設定は、今後のDNSクエリに使用されます。 aConfig NULLにすることができます。この場合、デフォルトの設定は、OT設定オプションからデフォルトに設定されOPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}これにより、OpenThreadスタックの開始時に、デフォルトのクエリ構成が構成にリセットされます。

非NULLでaConfig 、発呼者は、フィールドの一部残すように選択することができotDnsQueryConfig不特定のインスタンス(値ゼロ)。不特定のフィールドは、対応するOT configオプション定義によって置き換えられOPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}デフォルトのクエリの設定を形成します。

ときOPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE有効になっている、デフォルトの設定では、サーバのIPv6アドレスを自動的に設定し、DNSクライアントによって更新されます。これは、ユーザーが明示的に設定または指定していない場合にのみ実行されます。この動作では、SRPクライアントとその自動起動機能を有効にする必要があります。次に、SRPクライアントはDNS / SRPサービスエントリのスレッドネットワークデータを監視して、SRPサーバーを選択します。選択したSRPサーバーアドレスは、デフォルト設定のDNSサーバーアドレスとしても設定されます。

詳細
パラメーター
[in] aInstance
OpenThreadインスタンスへのポインタ。
[in] aConfig
デフォルトとして使用する新しいクエリ構成へのポインタ。

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

この関数は、イテレータからTXTデータを解析し、次のTXTレコードエントリ(キーと値のペア)を取得します。

aIterator使用して初期化しなければなりませんotDnsInitTxtEntryIterator()この関数を呼び出す前にしてTXTデータは、イテレータが持続して変わらないしなければならない初期化するために使用されるバッファ。それ以外の場合、この関数の動作は定義されていません。

解析されたキーの文字列の長さがより小さいか等しい場合OT_DNS_TXT_KEY_MAX_LENGTH (推奨最大鍵長)キー文字列がで返されmKeyaEntry 。キーが長い場合でも、その後、 mKey NULLに設定されており、全体のエンコードされたTXTエントリ文字列がで返されmValuemValueLength

詳細
パラメーター
[in] aIterator
イテレータへのポインタ(NULLであってはなりません)。
[out] aEntry
ポインタotDnsTxtEntry出力に構造解析された読み取り/エントリ(MUST NULLでありません)。
戻り値
OT_ERROR_NONE
次のエントリは正常に解析されました。 aEntry更新されます。
OT_ERROR_NOT_FOUND
TXTデータにこれ以上のエントリはありません。
OT_ERROR_PARSE
TXTデータaIterator整形式ではありません。

otDnsInitTxtEntryIterator

void otDnsInitTxtEntryIterator(
  otDnsTxtEntryIterator *aIterator,
  const uint8_t *aTxtData,
  uint16_t aTxtDataLength
)

この関数は、TXTレコードイテレーターを初期化します。

バッファポインタaTxtDataそのコンテンツが持続している間不変のまましなければならないaIteratorオブジェクトが使用されています。

詳細
パラメーター
[in] aIterator
初期化するイテレータへのポインタ(NULLであってはなりません)。
[in] aTxtData
エンコードされたTXTデータを含むバッファーへのポインター。
[in] aTxtDataLength
長さ(バイト数) aTxtData

otDnsIsNameCompressionEnabled

bool otDnsIsNameCompressionEnabled(
  void
)

この機能は、「DNS名圧縮」モードが有効かどうかを示します。

これは、ときにのみ、利用可能なテストのために意図されてOPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE設定が有効になっています。

詳細
戻り値
「DNS名圧縮」モードが有効になっている場合はTRUE、それ以外の場合はFALSE。

otDnsServiceResponseGetHostAddress

otError otDnsServiceResponseGetHostAddress(
  const otDnsServiceResponse *aResponse,
  const char *aHostName,
  uint16_t aIndex,
  otIp6Address *aAddress,
  uint32_t *aTtl
)

この関数は、DNSサービスインスタンス解決応答からホストIPv6アドレスを取得します。

この機能は、からのみ使用されなければならないotDnsServiceCallback

応答には、0個以上のIPv6アドレスレコードを含めることができます。 aIndexアドレスのリストを反復処理するために使用することができます。インデックスゼロは最初のアドレスを取得し、以下同様に続きます。私たちは、リストの最後に到達すると、 OT_ERROR_NOT_FOUND返されます。

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[in] aHostName
アドレスを取得するためのホスト名(NULLであってはなりません)。
[in] aIndex
取得するアドレスレコードインデックス。
[out] aAddress
アドレスを出力するためのIPv6アドレスへのポインタ(NULLであってはなりません)。
[out] aTtl
ポインタuint32_tアドレスの出力TTLします。呼び出し元がTTLを取得したくない場合は、NULLにすることができます。
戻り値
OT_ERROR_NONE
アドレスが正常に読み取られました。
OT_ERROR_NOT_FOUND
以下のためのアドレスレコードませんaHostnameaResponseaIndex
OT_ERROR_PARSE
内のレコードを解析できませんでしたaResponse

otDnsServiceResponseGetServiceInfo

otError otDnsServiceResponseGetServiceInfo(
  const otDnsServiceResponse *aResponse,
  otDnsServiceInfo *aServiceInfo
)

この関数は、DNSサービスインスタンス解決応答からサービスインスタンスの情報を取得します。

この機能は、からのみ使用されなければならないotDnsServiceCallback

  • 一致するSRVレコードが中に見つからない場合aResponseOT_ERROR_NOT_FOUND返されます。
  • 一致するSRVレコードが見つかった場合aResponseaServiceInfo更新され、 OT_ERROR_NONE返されます。
  • 一致するTXTレコードが中に見つからない場合aResponsemTxtDataSizeaServiceInfoゼロに設定されています。
  • 一致するAAAAレコードが中に見つからない場合aResponsemHostAddress is set to all zero or unspecified address.
  • If there are multiple AAAA records for the host name in @p aResponse, mHostAddressは、 is set to the first one. The other addresses can be retrieved using otDnsServiceResponseGetHostAddressを() `。

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[out] aServiceInfo
A ServiceInfo出力するサービスインスタンス情報(NULLにすることはできません)。
戻り値
OT_ERROR_NONE
サービスインスタンス情報が読み取られました。 aServiceInfo更新されます。
OT_ERROR_NOT_FOUND
で一致するSRVレコードが見つかりませんでしたaResponse
OT_ERROR_NO_BUFS
ホスト名またはTXTデータ、あるいはその両方が、指定されたバッファーに収まりませんでした。
OT_ERROR_PARSE
内のレコードを解析できませんでしたaResponse

otDnsServiceResponseGetServiceName

otError otDnsServiceResponseGetServiceName(
  const otDnsServiceResponse *aResponse,
  char *aLabelBuffer,
  uint8_t aLabelBufferSize,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

この関数は、DNSサービスインスタンス解決応答に関連付けられたサービスインスタンス名を取得します。

この機能は、からのみ使用されなければならないotDnsServiceCallback

詳細
パラメーター
[in] aResponse
応答へのポインタ。
[out] aLabelBuffer
サービスインスタンスラベルを出力するためのchar配列へのバッファ(NULLであってはなりません)。
[in] aLabelBufferSize
大きさaLabelBuffer
[out] aNameBuffer
残りのサービス名を出力するためのchar配列へのバッファー(ユーザーが名前の取得に関心がない場合はNULLにすることができます。
[in] aNameBufferSize
大きさaNameBuffer
戻り値
OT_ERROR_NONE
サービス名が正常に読み取られました。
OT_ERROR_NO_BUFS
ラベルまたは名前のいずれかが、指定されたバッファーに収まりません。

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

この機能は、「DNS名圧縮」モードを有効/無効にします。

デフォルトでは、DNS名の圧縮は有効になっています。無効にすると、DNS名は完全なものとして追加され、圧縮されることはありません。これは、OpenThreadのDNSおよびSRPクライアント/サーバーモジュールに適用されます。

これは、ときにのみ、利用可能なテストのために意図されてOPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE設定が有効になっています。

場合にすることを注意OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE使用され、このモードは、すべてのOpenThreadインスタンス(つまり、この関数を呼び出すことができます/すべてのOpenThreadインスタンス上の圧縮モードを無効にします)に適用されます。

詳細
パラメーター
[in] aEnabled
「DNS名圧縮」モードを有効にする場合はTRUE、無効にする場合はFALSE。

マクロ

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

ラベル文字列の最大サイズ(文字列の最後にヌル文字を含めます)。

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

名前の最大文字列サイズ(文字列の最後にnull文字を含みます)。

OT_DNS_TXT_KEY_MAX_LENGTH

 OT_DNS_TXT_KEY_MAX_LENGTH 9

TXTレコードキー文字列の推奨最大長(RFC 6763-セクション6.4)。

OT_DNS_TXT_KEY_MIN_LENGTH

 OT_DNS_TXT_KEY_MIN_LENGTH 1

TXTレコードキー文字列の最小長(RFC 6763-セクション6.4)。