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 .

형식 정의

otDnsAddressCallback )(otError aError, const otDnsAddressResponse *aResponse, void *aContext) 형식 정의
void(*
이 함수 포인터는 주소 확인 쿼리에 대한 DNS 응답이 수신될 때 호출됩니다.
otDnsAddressResponse 형식 정의
이 유형은 주소 확인 DNS 쿼리에 대한 응답의 불투명한 표현입니다.
otDnsBrowseCallback )(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) 형식 정의
void(*
이 함수 포인터는 찾아보기(서비스 인스턴스 열거) 쿼리에 대한 DNS 응답이 수신될 때 호출됩니다.
otDnsBrowseResponse 형식 정의
이 유형은 찾아보기(서비스 인스턴스 열거) DNS 쿼리에 대한 응답의 불투명한 표현입니다.
otDnsQueryConfig 형식 정의
이 구조는 DNS 쿼리 구성을 나타냅니다.
otDnsServiceCallback )(otError aError, const otDnsServiceResponse *aResponse, void *aContext) 형식 정의
void(*
이 함수 포인터는 서비스 인스턴스 확인 쿼리에 대한 DNS 응답이 수신될 때 호출됩니다.
otDnsServiceInfo 형식 정의
이 구조는 DNS 서비스 인스턴스에 대한 정보를 제공합니다.
otDnsServiceResponse 형식 정의
이 유형은 서비스 인스턴스 확인 DNS 쿼리에 대한 응답의 불투명한 표현입니다.
otDnsTxtEntry 형식 정의
이 구조는 키/값 쌍을 나타내는 TXT 레코드 항목을 나타냅니다(RFC 6763 - 섹션 6.3).
otDnsTxtEntryIterator 형식 정의
이 구조는 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 서비스 인스턴스에 대한 정보를 제공합니다.

otDnsTxt항목

이 구조는 키/값 쌍을 나타내는 TXT 레코드 항목을 나타냅니다(RFC 6763 - 섹션 6.3).

otDnsTxtEntryIterator

이 구조는 TXT 레코드 전체(키/값 쌍)에 대한 반복자를 나타냅니다.

열거

otDnsNat64모드

 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

플래그가 지정되지 않았음을 나타냅니다.

형식 정의

otDnsAddress콜백

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

이 함수 포인터는 주소 확인 쿼리에 대한 DNS 응답이 수신될 때 호출됩니다.

이 콜백 내에서 사용자가 사용할 수 있습니다 otDnsAddressResponseGet{Item}() 와 함께 기능을 aResponse 응답에 대한 자세한 정보를 얻을 수 포인터.

aResponse 포인터는이 콜백 내에서 사용할 수 있으며, 사용자가 유지해서는 안 있도록이 기능에서 돌아온 후에는 유효 유지되지 않습니다 aResponse 나중에 사용하기 위해 포인터를.

aError 다음을 할 수 있습니다 :

세부
매개변수
[in] aError
DNS 트랜잭션의 결과입니다.
[in] aResponse
응답에 대한 포인터(항상 NULL이 아님).
[in] aContext
애플리케이션별 컨텍스트에 대한 포인터입니다.

  • OT_ERROR_NONE 응답이 성공적으로 수신되었습니다.
  • OT_ERROR_ABORT 스택에 의해 DNS 트랜잭션이 중단되었습니다.
  • 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 Server는 쿼리 유형(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

struct otDnsAddressResponse otDnsAddressResponse

이 유형은 주소 확인 DNS 쿼리에 대한 응답의 불투명한 표현입니다.

이러한 유형의 인스턴스에 대한 포인터가 콜백에서 제공되는 otDnsAddressCallback .

otDnsBrowse콜백

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

이 함수 포인터는 찾아보기(서비스 인스턴스 열거) 쿼리에 대한 DNS 응답이 수신될 때 호출됩니다.

이 콜백 내에서 사용자가 사용할 수 있습니다 otDnsBrowseResponseGet{Item}() 와 함께 기능을 aResponse 응답에 대한 자세한 정보를 얻을 수 포인터.

aResponse 포인터는이 콜백 내에서 사용할 수 있으며, 사용자가 유지해서는 안 있도록이 기능에서 돌아온 후에는 유효 유지되지 않습니다 aResponse 나중에 사용하기 위해 포인터를.

사용할 수있는 값의 전체 목록은 aError 참조하십시오 otDnsAddressCallback() .

세부
매개변수
[in] aError
DNS 트랜잭션의 결과입니다.
[in] aResponse
응답에 대한 포인터(항상 NULL이 아님).
[in] aContext
애플리케이션별 컨텍스트에 대한 포인터입니다.

otDnsBrowseResponse

struct otDnsBrowseResponse otDnsBrowseResponse

이 유형은 찾아보기(서비스 인스턴스 열거) DNS 쿼리에 대한 응답의 불투명한 표현입니다.

이러한 유형의 인스턴스에 대한 포인터가 콜백에서 제공되는 otDnsBrowseCallback .

otDnsQueryConfig

struct otDnsQueryConfig otDnsQueryConfig

이 구조는 DNS 쿼리 구성을 나타냅니다.

이 구조의 모든 필드는 0으로 설정되어 지정되지 않았음을 나타낼 수 있습니다. 방법 지정 필드의 예를 사용하는 함수에 의해 결정된다 취급 otDnsQueryConfig .

otDns 서비스 콜백

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

이 함수 포인터는 서비스 인스턴스 확인 쿼리에 대한 DNS 응답이 수신될 때 호출됩니다.

이 콜백 내에서 사용자가 사용할 수 있습니다 otDnsServiceResponseGet{Item}() 와 함께 기능을 aResponse 응답에 대한 자세한 정보를 얻을 수 포인터.

aResponse 포인터는이 콜백 내에서 사용할 수 있으며, 사용자가 유지해서는 안 있도록이 기능에서 돌아온 후에는 유효 유지되지 않습니다 aResponse 나중에 사용하기 위해 포인터를.

사용할 수있는 값의 전체 목록은 aError 참조하십시오 otDnsAddressCallback() .

세부
매개변수
[in] aError
DNS 트랜잭션의 결과입니다.
[in] aResponse
응답에 대한 포인터(항상 NULL이 아님).
[in] aContext
애플리케이션별 컨텍스트에 대한 포인터입니다.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

이 구조는 DNS 서비스 인스턴스에 대한 정보를 제공합니다.

otDnsServiceResponse

struct otDnsServiceResponse otDnsServiceResponse

이 유형은 서비스 인스턴스 확인 DNS 쿼리에 대한 응답의 불투명한 표현입니다.

이러한 유형의 인스턴스에 대한 포인터가 콜백에서 제공되는 otDnsAddressCallback .

otDnsTxt항목

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 주소 목록을 반복하는 데 사용할 수 있습니다. 인덱스 0은 첫 번째 주소 등을 가져옵니다. 우리는 목록의 끝에 도달 할 때, 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
에서 어떤 주소 레코드 없습니다 aResponse 에서 aIndex .
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 주소 목록을 반복하는 데 사용할 수 있습니다. 인덱스 0은 첫 번째 주소 등을 가져옵니다. 우리는 목록의 끝에 도달 할 때, 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
대한 주소 레코드 없습니다 aHostname 에서 aResponse 에서 aIndex .
OT_ERROR_PARSE
의 레코드를 구문 분석 할 수 없습니다 aResponse .

otDnsBrowseResponseGetServiceInfo

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

이 함수는 DNS 찾아보기(서비스 인스턴스 열거) 응답에서 서비스 인스턴스에 대한 정보를 가져옵니다.

이 기능은에서 사용되어야한다 otDnsBrowseCallback .

탐색 DNS 응답에는 열거된 서비스 인스턴스에 대한 SRV, TXT 및 AAAA 레코드가 포함되어야 합니다(MUST 요구 사항이 아니라 SHOULD임에 유의). 이 함수는 사용 가능한 경우 지정된 서비스 인스턴스에 대해 이 정보를 검색하려고 시도합니다.

  • 일치 SRV 레코드가 발견되지 않으면 aResponse , OT_ERROR_NOT_FOUND 반환됩니다.
  • 일치하는 SRV 레코드가 발견되면 aResponse , aServiceInfo 업데이트되고 OT_ERROR_NONE 반환됩니다.
  • 일치 TXT 레코드가 발견되지 않으면 aResponse , mTxtDataSize 에서 aServiceInfo 0으로 설정됩니다.
  • 일치 AAAA 레코드가 발견되지 않으면 aResponse , mHostAddress 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
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 목록을 반복하는 데 사용할 수 있습니다. 인덱스 0은 첫 번째 레코드를 제공합니다. 우리는 목록의 끝에 도달 할 때, 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
에서 어떤 서비스 인스턴스 기록하지 aResponse 에서 aIndex .
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 .

otDnsClient찾아보기

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 인스턴스를 지정 (0 값). 지정되지 않은 필드는 해당 OT 설정 옵션 정의로 대체 OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{} 기본 쿼리 설정을 형성 할 수 있습니다.

OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE 활성화되어, 기본 설정에서 서버의 IPv6 주소가 자동으로 설정하고 DNS 클라이언트가 업데이트됩니다. 이는 사용자가 명시적으로 설정하거나 지정하지 않은 경우에만 수행됩니다. 이 동작을 수행하려면 SRP 클라이언트와 해당 자동 시작 기능이 활성화되어야 합니다. 그런 다음 SRP 클라이언트는 SRP 서버를 선택하기 위해 DNS/SRP 서비스 항목에 대한 스레드 네트워크 데이터를 모니터링합니다. 선택한 SRP 서버 주소도 기본 구성에서 DNS 서버 주소로 설정됩니다.

세부
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.
[in] aConfig
기본값으로 사용할 새 쿼리 구성에 대한 포인터입니다.

otDnsGetNextTxt항목

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
A와 포인터 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 주소 목록을 반복하는 데 사용할 수 있습니다. 인덱스 0은 첫 번째 주소 등을 가져옵니다. 우리는 목록의 끝에 도달 할 때, 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
대한 주소 레코드 없습니다 aHostname 에서 aResponse 에서 aIndex .
OT_ERROR_PARSE
의 레코드를 구문 분석 할 수 없습니다 aResponse .

otDnsServiceResponseGetServiceInfo

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

이 함수는 DNS 서비스 인스턴스 확인 응답에서 서비스 인스턴스에 대한 정보를 가져옵니다.

이 기능은에서 사용되어야한다 otDnsServiceCallback .

  • 일치 SRV 레코드가 발견되지 않으면 aResponse , OT_ERROR_NOT_FOUND 반환됩니다.
  • 일치하는 SRV 레코드가 발견되면 aResponse , aServiceInfo 업데이트되고 OT_ERROR_NONE 반환됩니다.
  • 일치 TXT 레코드가 발견되지 않으면 aResponse , mTxtDataSize 에서 aServiceInfo 0으로 설정됩니다.
  • 일치 AAAA 레코드가 발견되지 않으면 aResponse , mHostAddress 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
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
TRUE는 "DNS 이름 압축" 모드를 활성화하고 FALSE는 비활성화합니다.

매크로

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).