Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

DNS

이 모듈에는 DNS 통신을 제어하는 함수가 포함되어 있습니다.

요약

이 모듈의 함수는 OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE 기능이 사용 설정된 경우에만 사용할 수 있습니다.

열거형

otDnsNat64Mode{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
enum
유형은 otDnsQueryConfig의 NAT64 모드를 나타냅니다.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
enum
유형은 otDnsQueryConfig의 'Recursion Desired' (RD) 플래그를 나타냅니다.
otDnsServiceMode{
  OT_DNS_SERVICE_MODE_UNSPECIFIED = 0,
  OT_DNS_SERVICE_MODE_SRV = 1,
  OT_DNS_SERVICE_MODE_TXT = 2,
  OT_DNS_SERVICE_MODE_SRV_TXT = 3,
  OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE = 4,
  OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE = 5
}
enum
유형은 otDnsQueryConfig의 서비스 결정 모드를 나타냅니다.
otDnsTransportProto{
  OT_DNS_TRANSPORT_UDP = 1,
  OT_DNS_TRANSPORT_TCP = 2
}
enum
유형은 otDnsQueryConfig의 DNS 전송 프로토콜을 나타냅니다.

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
struct otDnsTxtEntry
키-값 쌍을 나타내는 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 쿼리를 보냅니다.
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 서비스 인스턴스 확인을 시작합니다.
otDnsClientResolveServiceAndHostAddress(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

유형은 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

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

otDnsServiceMode

 otDnsServiceMode

유형은 otDnsQueryConfig의 서비스 결정 모드를 나타냅니다.

DNS 클라이언트 서비스 확인 중에만 사용됩니다(otDnsClientResolveService()). 쿼리할 레코드 유형을 결정합니다.

속성
OT_DNS_SERVICE_MODE_SRV

SRV 레코드만 쿼리합니다.

OT_DNS_SERVICE_MODE_SRV_TXT

동일한 메시지에서 SRV 및 TXT 레코드를 모두 쿼리합니다.

OT_DNS_SERVICE_MODE_SRV_TXT_OPTIMIZE

먼저 TXT/SRV를 함께 쿼리하고, 실패한 경우 별도로 쿼리합니다.

OT_DNS_SERVICE_MODE_SRV_TXT_SEPARATE

별도의 메시지를 사용하여 SRV 및 TXT를 동시에 쿼리합니다.

OT_DNS_SERVICE_MODE_TXT

TXT 레코드만 쿼리합니다.

OT_DNS_SERVICE_MODE_UNSPECIFIED

모드가 지정되지 않았습니다. 기본 서비스 모드를 사용합니다.

otDnsTransportProto

 otDnsTransportProto

유형은 otDnsQueryConfig의 DNS 전송 프로토콜을 나타냅니다.

OT_DNS_TRANSPORT_TCPOPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE가 사용 설정된 경우에만 지원됩니다.

속성
OT_DNS_TRANSPORT_TCP

DNS 쿼리는 UDP를 통해 전송되어야 합니다.

OT_DNS_TRANSPORT_UDP

DNS 전송이 지정되지 않았습니다.

Typedef

otDnsAddressCallback 클래스의 생성자

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

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

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

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 서버가 쿼리 유형 (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 응답이 수신될 때 호출됩니다.

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

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의 인스턴스를 사용하는 함수에 의해 결정됩니다.

otDnsServiceCallback

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

포인터는 서비스 인스턴스 확인 쿼리에 대해 DNS 응답이 수신되면 호출됩니다.

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

aResponse 포인터는 이 콜백 내에서만 사용할 수 있으며 이 함수에서 반환된 후에는 유효하게 유지되지 않으므로 사용자가 나중에 사용할 수 있도록 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에서 가리키는 문자열 버퍼는 이러한 구조의 인스턴스가 otSrpClientService 인스턴스의 일부로 OpenThread에 전달된 후 변경되지 않고 변경되지 않아야 합니다 (MUST).

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에서만 사용해야 합니다(MUST).

응답에는 여러 IPv6 주소 레코드가 포함될 수 있습니다. aIndex를 사용하여 주소 목록을 반복할 수 있습니다. 색인 0은 첫 번째 주소를 가져오는 식입니다. 목록의 끝에 도달하면 OT_ERROR_NOT_FOUND가 반환됩니다.

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[in] aIndex
검색할 주소 레코드 색인입니다.
[out] aAddress
주소를 출력할 IPv6 주소에 대한 포인터입니다 (NULL이면 안 됨).
[out] aTtl
주소의 TTL을 출력하기 위한 uint32_t의 포인터 호출자가 TTL을 얻고 싶지 않은 경우 null이 될 수 있습니다.
반환 값
OT_ERROR_NONE
주소를 읽었습니다.
OT_ERROR_NOT_FOUND
aResponseaIndex의 주소 기록이 없습니다.
OT_ERROR_PARSE
aResponse의 레코드를 파싱할 수 없습니다.
OT_ERROR_INVALID_STATE
NAT64 접두어 없음 (NAT64가 허용되는 경우에만 해당)

otDnsAddressResponseGetHostName 클래스의 생성자

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

주소 확인 DNS 응답과 연결된 전체 호스트 이름을 가져옵니다.

otDnsAddressCallback에서만 사용해야 합니다(MUST).

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[out] aNameBuffer
전체 호스트 이름을 출력하는 문자 배열로의 버퍼입니다 (MUST NOT).
[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에서만 사용해야 합니다(MUST).

응답에는 0개 이상의 IPv6 주소 레코드가 포함될 수 있습니다. aIndex를 사용하여 주소 목록을 반복할 수 있습니다. 색인 0은 첫 번째 주소를 가져오는 식입니다. 목록의 끝에 도달하면 OT_ERROR_NOT_FOUND가 반환됩니다.

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[in] aHostName
주소를 가져올 호스트 이름입니다 (NULL이면 안 됨).
[in] aIndex
검색할 주소 레코드 색인입니다.
[out] aAddress
주소를 출력할 IPv6 주소에 대한 포인터입니다 (NULL이면 안 됨).
[out] aTtl
주소의 TTL을 출력하기 위한 uint32_t의 포인터 호출자가 TTL을 얻고 싶지 않은 경우 null이 될 수 있습니다.
반환 값
OT_ERROR_NONE
주소를 읽었습니다.
OT_ERROR_NOT_FOUND
aResponseaIndexaHostname에 대한 주소 기록이 없습니다.
OT_ERROR_PARSE
aResponse의 레코드를 파싱할 수 없습니다.

otDnsBrowseResponseGetServiceInfo

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

DNS 탐색 (서비스 인스턴스 열거) 응답에서 서비스 인스턴스에 대한 정보를 가져옵니다.

otDnsBrowseCallback에서만 사용해야 합니다(MUST).

탐색 DNS 응답에는 열거된 서비스 인스턴스에 대한 SRV, TXT, AAAA 레코드가 포함될 수 있습니다. 이는 SHOULD이며 필수사항이 아니며, 서버/리졸버는 이를 제공할 필요가 없습니다. 이 함수는 가능한 경우 지정된 서비스 인스턴스에 대해 이 정보를 검색하려고 시도합니다.

  • 일치하는 SRV 레코드가 aResponse에 없으면 OT_ERROR_NOT_FOUND가 반환됩니다. 이 경우 추가 레코드 (TXT 또는 AAAA 없음)를 읽을 수 없습니다.
  • 일치하는 SRV 레코드가 aResponse에 있으면 aServiceInfo가 업데이트되고 OT_ERROR_NONE가 반환됩니다.
  • 일치하는 TXT 레코드가 aResponse에 없으면 aServiceInfomTxtDataSize이 0으로 설정됩니다.
  • TXT 데이터 길이가 mTxtDataSize보다 크면 부분적으로 판독되고 mTxtDataTruncated가 true로 설정됩니다.
  • aResponse에 일치하는 AAAA 레코드가 없는 경우 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 usingotDnsBrowseResponseGetHostAddress()`를 호출하세요.

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[in] aInstanceLabel
서비스 인스턴스 라벨 (NULL이면 안 됨)입니다.
[out] aServiceInfo
서비스 인스턴스 정보를 출력하는 ServiceInfo (NULL이면 안 됨)
반환 값
OT_ERROR_NONE
서비스 인스턴스 정보를 읽었습니다. aServiceInfo가 업데이트되었습니다.
OT_ERROR_NOT_FOUND
aInstanceLabel에 일치하는 SRV 레코드를 찾을 수 없습니다.
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에서만 사용해야 합니다(MUST).

응답에는 여러 서비스 인스턴스 레코드가 포함될 수 있습니다. aIndex는 목록을 반복하는 데 사용할 수 있습니다. 지수 0으로 첫 번째 레코드를 만들 수 있습니다. 목록의 끝에 도달하면 OT_ERROR_NOT_FOUND가 반환됩니다.

이 함수는 .. 형식의 전체 서비스 인스턴스 이름이 아닌 서비스 인스턴스 라벨을 가져옵니다.

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[in] aIndex
검색할 서비스 인스턴스 레코드 색인입니다.
[out] aLabelBuffer
서비스 인스턴스 라벨을 출력하기 위한 문자 배열로의 버퍼입니다 (MUST NOT).
[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에서만 사용해야 합니다(MUST).

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[out] aNameBuffer
서비스 이름을 출력하기 위한 문자 배열로의 버퍼입니다 (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에서 일부 필드를 지정되지 않은 상태로 둘 수 있습니다 (값 0). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다.

세부정보
매개변수
[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 쿼리 구성은 OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS, _DEFAULT_SERVER_PORT, _DEFAULT_RESPONSE_TIMEOUT 등의 OT 구성 옵션 집합에서 결정됩니다(모든 관련 구성 옵션은 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에서 일부 필드를 지정되지 않은 상태로 둘 수 있습니다 (값 0). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.
[in] aHostName
주소를 쿼리할 호스트 이름입니다 (NULL이면 안 됨).
[in] aCallback
응답 수신 또는 타임아웃 시 호출되는 함수 포인터입니다.
[in] aContext
임의의 컨텍스트 정보를 가리키는 포인터입니다.
[in] aConfig
이 쿼리에 사용할 구성에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
쿼리가 전송되었습니다. 상태를 보고하기 위해 aCallback가 호출됩니다.
OT_ERROR_NO_BUFS
쿼리를 준비하고 전송할 버퍼가 부족합니다.
OT_ERROR_INVALID_ARGS
호스트 이름이 유효한 형식이 아닙니다.
OT_ERROR_INVALID_STATE
대화목록 인터페이스가 작동하지 않아 쿼리를 전송할 수 없습니다.

otDnsClientResolveIp4주소

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에서 일부 필드를 지정되지 않은 상태로 둘 수 있습니다 (값 0). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다.

세부정보
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.
[in] aHostName
주소를 쿼리할 호스트 이름입니다 (NULL이면 안 됨).
[in] aCallback
응답 수신 또는 타임아웃 시 호출되는 함수 포인터입니다.
[in] aContext
임의의 컨텍스트 정보를 가리키는 포인터입니다.
[in] aConfig
이 쿼리에 사용할 구성에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
쿼리가 전송되었습니다. 상태를 보고하기 위해 aCallback가 호출됩니다.
OT_ERROR_NO_BUFS
쿼리를 준비하고 전송할 버퍼가 부족합니다.
OT_ERROR_INVALID_ARGS
호스트 이름이 올바르지 않거나 구성에서 NAT64가 사용 설정되지 않았습니다.
OT_ERROR_INVALID_STATE
대화목록 인터페이스가 작동하지 않아 쿼리를 전송할 수 없습니다.

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에서 일부 필드를 지정되지 않은 상태로 둘 수 있습니다 (값 0). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다.

이 함수는 지정된 서비스 인스턴스에 대한 SRV 또는 TXT 레코드에 대한 쿼리를 전송합니다. otDnsQueryConfigmServiceMode 필드는 쿼리할 레코드 (SRV만, TXT만 또는 SRV와 TXT 모두) 및 쿼리 실행 방법 (동시에 동일한 메시지에 함께 또는 별도로, 또는 클라이언트가 동일한 메시지를 먼저 시도한 다음 응답을 받지 못할 경우 별도로 시도하는 최적화 모드)을 결정합니다.

SRV 레코드는 서비스 인스턴스와 연결된 호스트 이름과 함께 서비스 포트, 우선순위, 가중치에 대한 정보를 제공합니다. 이 함수는 SRV 레코드에서 검색된 호스트 이름에 대해 주소 확인을 실행하지 않습니다. 서버/리졸버는 SRV/TXT 쿼리에 대한 추가 데이터 섹션에 호스트 이름의 AAAA/A 레코드를 제공할 수 있으며 otDnsServiceCallbackotDnsServiceResponseGetServiceInfo()를 사용하여 이 정보를 가져올 수 있습니다. 이 API 사용자는 항상 otDnsServiceResponseGetServiceInfo()에서 호스트 주소를 사용할 수 있다고 가정해서는 안 됩니다(MUST NOT).

세부정보
매개변수
[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입니다.

otDnsClientResolveServiceAndHostAddress 클래스의 생성자

otError otDnsClientResolveServiceAndHostAddress(
  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에서 일부 필드를 지정되지 않은 상태로 둘 수 있습니다 (값 0). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다. 이 함수는 DNS 구성의 OT_DNS_SERVICE_MODE_TXT로 설정된 mServiceMode (예: TXT 레코드만 쿼리)와 함께 사용할 수 없으며 OT_ERROR_INVALID_ARGS를 반환합니다.

otDnsClientResolveService()가 SRV 및 TXT 레코드에 대한 쿼리를 전송하는 것과 유사하게 동작합니다. 하지만 서버/리졸버가 SRV 쿼리 응답 (추가 데이터 섹션)에 호스트 이름에 대한 AAAA/A 레코드를 제공하지 않으면 SRV 레코드에서 발견된 호스트 이름에 대해 호스트 이름 확인 (AAAA 쿼리 전송)이 이루어집니다. 콜백 aCallback는 모든 쿼리의 응답이 수신될 때 (즉, 서비스 호스트와 호스트 주소 확인 완료) 호출됩니다.

세부정보
매개변수
[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이거나 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 서버 주소로도 설정됩니다.

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

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

이터레이터에서 TXT 데이터를 파싱하고 다음 TXT 레코드 항목 (키-값 쌍)을 가져옵니다.

aIterator는 이 함수를 호출하기 전에 otDnsInitTxtEntryIterator()를 사용하여 초기화되어야 하며, 반복자를 초기화하는 데 사용되는 TXT 데이터 버퍼는 변경되지 않고 변경되지 않아야 합니다(MUST). 그렇지 않으면 이 함수의 동작이 정의되지 않습니다.

파싱된 키 문자열 길이가 OT_DNS_TXT_KEY_MAX_LENGTH (권장 최대 키 길이)보다 작거나 같으면 키 문자열이 aEntrymKey에 반환됩니다. 그러나 키가 더 길면 mKey가 NULL로 설정되고 인코딩된 전체 TXT 항목 문자열이 mValuemValueLength에서 반환됩니다.

세부정보
매개변수
[in] aIterator
반복자에 대한 포인터입니다 (NULL이면 안 됨).
[out] aEntry
파싱/읽기 항목을 출력하기 위한 otDnsTxtEntry 구조에 대한 포인터입니다 (NULL이면 안 됨).
반환 값
OT_ERROR_NONE
다음 항목이 파싱되었습니다. aEntry가 업데이트되었습니다.
OT_ERROR_NOT_FOUND
TXT 데이터에 더 이상 항목이 없습니다.
OT_ERROR_PARSE
aIterator의 TXT 데이터 형식이 잘못되었습니다.

otDnsInitTxtEntryIterator 클래스의 생성자

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

TXT 레코드 반복자를 초기화합니다.

버퍼 포인터 aTxtData와 그 콘텐츠는 aIterator 객체가 사용되는 동안 유지되고 변경되지 않아야 합니다(MUST).

세부정보
매개변수
[in] aIterator
초기화할 반복자에 대한 포인터입니다 (NULL이면 안 됨).
[in] aTxtData
인코딩된 TXT 데이터를 포함하는 버퍼를 가리키는 포인터입니다.
[in] aTxtDataLength
aTxtData의 길이 (바이트 수)

otDnsIsNameCompactionEnabled

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에서만 사용해야 합니다(MUST).

응답에는 0개 이상의 IPv6 주소 레코드가 포함될 수 있습니다. aIndex를 사용하여 주소 목록을 반복할 수 있습니다. 색인 0은 첫 번째 주소를 가져오는 식입니다. 목록의 끝에 도달하면 OT_ERROR_NOT_FOUND가 반환됩니다.

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[in] aHostName
주소를 가져올 호스트 이름입니다 (NULL이면 안 됨).
[in] aIndex
검색할 주소 레코드 색인입니다.
[out] aAddress
주소를 출력할 IPv6 주소에 대한 포인터입니다 (NULL이면 안 됨).
[out] aTtl
주소의 TTL을 출력하기 위한 uint32_t의 포인터 호출자가 TTL을 얻고 싶지 않은 경우 null이 될 수 있습니다.
반환 값
OT_ERROR_NONE
주소를 읽었습니다.
OT_ERROR_NOT_FOUND
aResponseaIndexaHostname에 대한 주소 기록이 없습니다.
OT_ERROR_PARSE
aResponse의 레코드를 파싱할 수 없습니다.

otDnsServiceResponseGetServiceInfo 클래스의 생성자

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

DNS 서비스 인스턴스 확인 응답에서 서비스 인스턴스 정보를 가져옵니다.

otDnsClientResolveService() 또는 otDnsClientResolveServiceAndHostAddress()에서 트리거된 otDnsServiceCallback에서만 사용해야 합니다(MUST).

otDnsClientResolveService() 콜백에서 사용된 경우 서버/리졸버의 DNS 응답에 결정된 서비스 인스턴스와 연결된 호스트 이름의 추가 데이터 섹션에 AAAA 레코드가 포함될 수 있습니다. 이는 SHOULD이며 필수사항이 아니므로 서버/리졸버가 이를 제공할 필요가 없습니다. 이 함수는 응답에 포함된 경우 AAAA 레코드 파싱을 시도합니다. 포함되어 있지 않으면 mHostAddress가 모두 0 (미지정 주소)으로 설정됩니다. 호스트 주소도 해결하기 위해 사용자는 DNS 클라이언트 API 함수 otDnsClientResolveServiceAndHostAddress()를 사용할 수 있습니다. 이 함수는 서비스 확인을 수행한 후 호스트 이름 주소 확인 쿼리 (SRV 쿼리 응답에서 서버/리졸버가 AAAA 레코드를 제공하지 않는 경우)를 수행합니다.

  • 일치하는 SRV 레코드가 aResponse에 있으면 aServiceInfo가 업데이트됩니다.
  • 일치하는 SRV 레코드가 없는 경우 이 쿼리의 쿼리 구성에서 mServiceModeOT_DNS_SERVICE_MODE_TXT를 사용하지 않는 한 OT_ERROR_NOT_FOUND가 반환됩니다 (즉, TXT 레코드에 대한 요청만). 이 경우에도 응답의 추가 데이터 섹션에서 SRV 레코드를 파싱합니다 (서버에서 정보를 제공한 경우).
  • 일치하는 TXT 레코드가 aResponse에 없으면 aServiceInfomTxtDataSize이 0으로 설정됩니다.
  • TXT 데이터 길이가 mTxtDataSize보다 크면 부분적으로 판독되고 mTxtDataTruncated가 true로 설정됩니다.
  • aResponse에 일치하는 AAAA 레코드가 없는 경우 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 usingotDnsServiceResponseGetHostAddress()를 호출하세요.

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[out] aServiceInfo
서비스 인스턴스 정보를 출력하는 ServiceInfo (NULL이면 안 됨)
반환 값
OT_ERROR_NONE
서비스 인스턴스 정보를 읽었습니다. aServiceInfo가 업데이트되었습니다.
OT_ERROR_NOT_FOUND
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에서만 사용해야 합니다(MUST).

세부정보
매개변수
[in] aResponse
응답에 대한 포인터입니다.
[out] aLabelBuffer
서비스 인스턴스 라벨을 출력하기 위한 문자 배열로의 버퍼입니다 (MUST NOT).
[in] aLabelBufferSize
aLabelBuffer의 크기입니다.
[out] aNameBuffer
나머지 서비스 이름을 출력하기 위한 문자 배열로의 버퍼 (사용자가 이름을 가져오는 데 관심이 없는 경우 NULL일 수 있음)
[in] aNameBufferSize
aNameBuffer의 크기입니다.
반환 값
OT_ERROR_NONE
서비스 이름을 읽었습니다.
OT_ERROR_NO_BUFS
라벨 또는 이름이 지정된 버퍼에 맞지 않습니다.

otDnsSetNameCompactionEnabled

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)

자료

OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 보거나 문서에 참여하려면 리소스를 참고하세요.