DNSv6
このモジュールには、DNS 通信を制御する関数が含まれています。
概要
このモジュールの関数は、機能 OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
が有効になっている場合にのみ使用できます。
列挙型 |
|
---|---|
otDnsNat64Mode{
|
列挙型 この列挙型は、 otDnsQueryConfig の NAT64 モードを表します。 |
otDnsRecursionFlag{
|
列挙型 この列挙型は、 otDnsQueryConfig の「Recursion Desired」(RD)フラグを表します。 |
Typedef |
|
---|---|
otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
|
typedefvoid(*
この関数ポインタは、アドレス解決クエリに対して DNS レスポンスが受信されたときに呼び出されます。 |
otDnsAddressResponse
|
typedefstruct otDnsAddressResponse
この型は、アドレス解決 DNS クエリに対するレスポンスの不透明な表現です。 |
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
|
typedefvoid(*
この関数ポインタは、ブラウズ(サービス インスタンス列挙)クエリで DNS レスポンスが受信されたときに呼び出されます。 |
otDnsBrowseResponse
|
typedefstruct otDnsBrowseResponse
このタイプは、参照(サービス インスタンス列挙)DNS クエリへのレスポンスの不透明な表現です。 |
otDnsQueryConfig
|
typedefstruct otDnsQueryConfig
この構造は、DNS クエリの構成を表します。 |
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
|
typedefvoid(*
この関数ポインタは、サービス インスタンスの解決クエリに対して DNS レスポンスが受信されたときに呼び出されます。 |
otDnsServiceInfo
|
typedefstruct otDnsServiceInfo
この構造により、DNS サービス インスタンスの情報が提供されます。 |
otDnsServiceResponse
|
typedefstruct otDnsServiceResponse
このタイプは、サービス インスタンス解決 DNS クエリに対するレスポンスの不透明な表現です。 |
otDnsTxtEntry
|
typedefstruct otDnsTxtEntry
この構造は、Key-Value ペア(RFC 6763 - セクション 6.3)を表す TXT レコード エントリを表します。 |
otDnsTxtEntryIterator
|
typedefstruct otDnsTxtEntryIterator
この構造は、TXT レコード全体(Key-Value ペア)のイテレータを表します。 |
関数 |
|
---|---|
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)
|
const otDnsQueryConfig *
この関数は、DNS クライアントによって使用されている現在のデフォルトのクエリ構成を取得します。
|
otDnsClientResolveAddress(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
この関数は、特定のホスト名の AAAA(IPv6)レコードのアドレス解決 DNS クエリを送信します。
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
この関数は、特定のホスト名に対する A(IPv4)レコードのアドレス解決 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 レコード エントリ(Key-Value ペア)を取得します。
|
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 |
この構造は、Key-Value ペア(RFC 6763 - セクション 6.3)を表す TXT レコード エントリを表します。 |
otDnsTxtEntryIterator |
この構造は、TXT レコード全体(Key-Value ペア)のイテレータを表します。 |
列挙型
otDnsNat64Mode
otDnsNat64Mode
この列挙型は、otDnsQueryConfig
の NAT64 モードを表します。
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
この列挙型は、otDnsQueryConfig
の「Recursion Desired」(RD)フラグを表します。
プロパティ | |
---|---|
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
ポインタはこのコールバック内でのみ使用できます。この関数から戻ると、有効なままではないため、ユーザーは後で使用するために aResponse
ポインタを保持してはなりません。
aError
には次のものを含めることができます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
- OT_ERROR_NONE レスポンスが正常に受信されました。
- OT_ERROR_ABORT DNS トランザクションがスタックによって中止されました。
- OT_ERROR_RESPONSE_TIMEOUT タイムアウト内に DNS レスポンスを受信していません。
サーバーがアドレス解決リクエストを拒否した場合、サーバーのエラーコードは次のようにマッピングされます。
- (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
otDnsAddressResponse(OTDnsAddressResponse)
struct otDnsAddressResponse otDnsAddressResponse
この型は、アドレス解決 DNS クエリに対するレスポンスの不透明な表現です。
この型のインスタンスへのポインタは、コールバック otDnsAddressCallback
から提供されます。
otDnsBrowseCallback(英語)
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
この関数ポインタは、ブラウズ(サービス インスタンス列挙)クエリで DNS レスポンスが受信されたときに呼び出されます。
このコールバック内で、otDnsBrowseResponseGet{Item}()
関数と aResponse
ポインタを使用して、レスポンスに関する詳細情報を取得できます。
aResponse
ポインタはこのコールバック内でのみ使用できます。この関数から戻ると、有効なままではないため、ユーザーは後で使用するために aResponse
ポインタを保持してはなりません。
aError
に使用可能な値の完全なリストについては、otDnsAddressCallback()
をご覧ください。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
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
ポインタはこのコールバック内でのみ使用できます。この関数から戻ると、有効なままではないため、ユーザーは後で使用するために aResponse
ポインタを保持してはなりません。
aError
に使用可能な値の完全なリストについては、otDnsAddressCallback()
をご覧ください。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
otDnsServiceResponse(英語)
struct otDnsServiceResponse otDnsServiceResponse
このタイプは、サービス インスタンス解決 DNS クエリに対するレスポンスの不透明な表現です。
この型のインスタンスへのポインタは、コールバック otDnsAddressCallback
から提供されます。
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
この構造は、Key-Value ペア(RFC 6763 - セクション 6.3)を表す TXT レコード エントリを表します。
mKey
と mValue
が参照する文字列バッファは、そのような構造体のインスタンスが OpenThread に(otSrpClientService
インスタンスの一部として)渡された後も維持され、変化しないようにする必要があります。
otSrpClientService
では、otDnsTxtEntry
エントリの配列を使用して完全な TXT レコード(エントリのリスト)を指定します。
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
この構造は、TXT レコード全体(Key-Value ペア)のイテレータを表します。
この構造体のデータ フィールドは OpenThread コアでの使用を意図しており、呼び出し元はこれらを読み取ったり変更したりしないでください。
関数
otDnsAddressResponseGetAddress(宛先)
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
この関数は、アドレス解決 DNS レスポンスに関連付けられた IPv6 アドレスを取得します。
この関数は otDnsAddressCallback
からのみ使用する必要があります。
レスポンスには複数の IPv6 アドレス レコードを含めることができます。aIndex
を使用すると、アドレスのリストを反復処理できます。インデックス 0 では最初のアドレスが取得され、以下同様に続きます。リストの最後に到達すると、OT_ERROR_NOT_FOUND
が返されます。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
otDnsAddressResponseGetHostName(英語)
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
この関数は、アドレス解決 DNS レスポンスに関連付けられた完全なホスト名を取得します。
この関数は otDnsAddressCallback
からのみ使用する必要があります。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
この関数は、DNS ブラウズ(サービス インスタンス列挙)レスポンスからホスト IPv6 アドレスを取得します。
この関数は otDnsBrowseCallback
からのみ使用する必要があります。
レスポンスには 0 個以上の IPv6 アドレス レコードを含めることができます。aIndex
を使用すると、アドレスのリストを反復処理できます。インデックス 0 では最初のアドレスが取得され、以下同様に続きます。リストの最後に到達すると、OT_ERROR_NOT_FOUND
が返されます。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otDnsBrowseResponseGetServiceInfo(OTDnsBrowseResponseGetServiceInfo)
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
この関数は、DNS ブラウズ(サービス インスタンス列挙)レスポンスからサービス インスタンスの情報を取得します。
この関数は otDnsBrowseCallback
からのみ使用する必要があります。
参照 DNS レスポンスには、列挙されているサービス インスタンスの SRV、TXT、AAAA レコードを含める必要があります(これは必須ではなく、すべきです)。この関数は、利用可能な場合に、指定されたサービス インスタンスのこの情報を取得しようとします。
aResponse
に一致する SRV レコードが見つからない場合は、OT_ERROR_NOT_FOUND
が返されます。aResponse
で一致する SRV レコードが見つかった場合、aServiceInfo
が更新され、OT_ERROR_NONE
が返されます。aResponse
に一致する TXT レコードが見つからない場合、aServiceInfo
のmTxtDataSize
はゼロに設定されます。- 一致する AAAA レコードが
aResponse
で見つからない場合、mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsBrowseResponseGetHostAddress()`
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
otDnsBrowseResponseGetServiceInstance(OTDnsBrowseResponseGetServiceInstance)
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
この関数は、DNS ブラウズ(サービス インスタンスの列挙)レスポンスに関連付けられたサービス インスタンスを取得します。
この関数は otDnsBrowseCallback
からのみ使用する必要があります。
レスポンスに複数のサービス インスタンス レコードを含めることができます。aIndex
を使用すると、リストを反復処理できます。インデックス 0 は、最初のレコードを提供します。リストの最後に到達すると、OT_ERROR_NOT_FOUND
が返されます。
この関数では、
のような完全なサービス インスタンス名ではなく、サービス インスタンス ラベルを取得します。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
otDnsBrowseResponseGetServiceName(英語)
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
この関数は、DNS ブラウズ(サービス インスタンスの列挙)レスポンスに関連付けられたサービス名を取得します。
この関数は otDnsBrowseCallback
からのみ使用する必要があります。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
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
では、一部のフィールドを未指定のままにすることができます(値がゼロ)。未指定フィールドは、デフォルトの構成の値に置き換えられます。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otDnsClientGetDefaultConfig(その他)
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
この関数は、DNS クライアントによって使用されている現在のデフォルトのクエリ構成を取得します。
OpenThread スタックが開始すると、デフォルトの DNS クエリ構成は、OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
、_DEFAULT_SERVER_PORT
、_DEFAULT_RESPONSE_TIMEOUT
などの OT 構成オプションのセットから決定されます(関連するすべての構成オプションについては、config/dns_client.h
をご覧ください)。 。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
DNS クライアントで使用されている現在のデフォルト構成へのポインタ。
|
otDnsClientResolveAddress(OTDnsClientResolveAddress)
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
この関数は、特定のホスト名の AAAA(IPv6)レコードのアドレス解決 DNS クエリを送信します。
aConfig
は NULL にできます。この場合、デフォルトの構成(otDnsClientGetDefaultConfig()
から)がこのクエリの構成として使用されます。NULL 以外の aConfig
では、一部のフィールドを未指定のままにすることができます(値がゼロ)。未指定フィールドは、デフォルトの構成の値に置き換えられます。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otDnsClientResolveIp4Address(OTDnsClientResolveIp4Address)
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
この関数は、特定のホスト名に対する A(IPv4)レコードのアドレス解決 DNS クエリを送信します。
この関数は OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
が有効な場合に必須で、使用できます。
成功のレスポンスを受信すると、アドレスは aCallback
から IPv6 アドレスの NAT64 IPv6 変換バージョン(クエリ レスポンス)として返されます。
aConfig
は NULL にできます。この場合、デフォルトの構成(otDnsClientGetDefaultConfig()
から)がこのクエリの構成として使用されます。NULL 以外の aConfig
では、一部のフィールドを未指定のままにすることができます(値がゼロ)。未指定フィールドは、デフォルトの構成の値に置き換えられます。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otDnsClientResolveService(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
では、一部のフィールドを未指定のままにすることができます(値がゼロ)。未指定フィールドは、デフォルトの構成の値に置き換えられます。
詳細 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||||
戻り値 |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
この関数は、DNS クライアントでデフォルトのクエリ構成を設定します。
注: 進行中のクエリでは、開始時から構成が引き続き使用されます。今後のデフォルト DNS クエリには、新しいデフォルト構成が使用されます。aConfig
は NULL にできます。この場合、デフォルトの構成は OT 構成オプション OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
からデフォルトに設定されます。これにより、OpenThread スタックが開始したときに、デフォルトのクエリ構成が構成に戻されます。
NULL 以外の aConfig
では、呼び出し元は otDnsQueryConfig
インスタンスの一部のフィールドを未指定のままにすることもできます(値 0)。未指定のフィールドは、対応する OT 構成オプションの定義 OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
に置き換えられ、デフォルトのクエリ構成が形成されます。
OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
を有効にすると、デフォルト構成でサーバーの IPv6 アドレスが自動的に設定され、DNS クライアントによって更新されます。これは、ユーザーが明示的に設定または指定していない場合にのみ行われます。この動作を実現するには、SRP クライアントとその自動スタート機能を有効にする必要があります。その後、SRP クライアントは DNS/SRP サービス エントリのスレッド ネットワーク データをモニタリングし、SRP サーバーを選択します。選択した SRP サーバーのアドレスも、デフォルト設定の DNS サーバー アドレスとして設定されます。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
この関数は、イテレータから TXT データを解析し、次の TXT レコード エントリ(Key-Value ペア)を取得します。
この関数を呼び出す前に aIterator
は otDnsInitTxtEntryIterator()
を使用して初期化しなければならず、イテレータの初期化に使用される TXT データバッファは維持され、変更されないままでなければなりません。それ以外の場合、この関数の動作は定義されていません。
解析されたキー文字列の長さが OT_DNS_TXT_KEY_MAX_LENGTH
(推奨される最大キー長)以下の場合、aEntry
の mKey
でキー文字列が返されます。ただし、鍵が長い場合は mKey
が NULL に設定され、エンコードされた TXT エントリ文字列全体が mValue
と mValueLength
に返されます。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
||||||
戻り値 |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
この関数は、TXT レコード イテレータを初期化します。
バッファ ポインタ aTxtData
とそのコンテンツは、aIterator
オブジェクトを使用している間は保持され、変更されないままにする必要があります。
詳細 | |||||||
---|---|---|---|---|---|---|---|
パラメータ |
|
otDnsIsNameCompressionEnabled(OTD の有効化)
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
を使用すると、アドレスのリストを反復処理できます。インデックス 0 では最初のアドレスが取得され、以下同様に続きます。リストの最後に到達すると、OT_ERROR_NOT_FOUND
が返されます。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otDnsServiceResponseGetServiceInfo(OTDnsServiceResponseGetServiceInfo)
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
この関数は、DNS サービス インスタンスの解決レスポンスからサービス インスタンスの情報を取得します。
この関数は otDnsServiceCallback
からのみ使用する必要があります。
aResponse
に一致する SRV レコードが見つからない場合は、OT_ERROR_NOT_FOUND
が返されます。aResponse
で一致する SRV レコードが見つかった場合、aServiceInfo
が更新され、OT_ERROR_NONE
が返されます。aResponse
に一致する TXT レコードが見つからない場合、aServiceInfo
のmTxtDataSize
はゼロに設定されます。- 一致する AAAA レコードが
aResponse
で見つからない場合、mHostAddress is set to all zero or unspecified address.
If there are multiple AAAA records for the host name in @p aResponse,
mHostAddressis set to the first one. The other addresses can be retrieved using
otDnsServiceResponseGetHostAddress()`。
詳細 | |||||||||
---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||
戻り値 |
|
otDnsServiceResponseGetServiceName(英語)
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
この関数は、DNS サービス インスタンスの解決レスポンスに関連付けられたサービス インスタンス名を取得します。
この関数は otDnsServiceCallback
からのみ使用する必要があります。
詳細 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
パラメータ |
|
||||||||||
戻り値 |
|
otDnsSetNameCompressionEnabled(オットニ セット名の設定圧縮の有効化)
void otDnsSetNameCompressionEnabled( bool aEnabled )
この関数は、「DNS 名圧縮」モードを有効または無効にします。
デフォルトでは、DNS 名の圧縮が有効になっています。無効にすると、DNS 名がフルとして追加されます。圧縮されることはありません。これは、OpenThread の DNS と SRP のクライアント/サーバー モジュールに適用されます。
これはテストのみを目的としており、OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
構成が有効な場合にのみ使用できます。
OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
を使用している場合、このモードはすべての OpenThread インスタンスに適用されます(つまり、この関数を呼び出すと、すべての OpenThread インスタンスに対して圧縮モードが有効または無効になります)。
詳細 | |||
---|---|---|---|
パラメータ |
|
マクロ
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
ラベル文字列の最大サイズ(文字列の末尾に null 文字を含む)。
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)。
リソース
OpenThread API リファレンスのトピックは、GitHub で入手可能なソースコードに基づいています。 詳細またはドキュメントへの投稿については、リソースをご覧ください。