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
type은 otDnsQueryConfig의 'RD(Recursion Desired)' 플래그를 나타냅니다.
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
키-값 쌍 (RFC 6763 - 섹션 6.3)을 나타내는 TXT 레코드 항목을 나타냅니다.
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 클라이언트의 기본 쿼리 구성을 설정합니다.
otDnsEncodeTxtData(const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength)
TXT 레코드 항목 (키-값 쌍)의 지정된 목록을 TXT 데이터 (RFC 6763에서 지정된 형식)로 인코딩합니다.
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

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

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

type은 otDnsQueryConfig의 'RD(Recursion Desired)' 플래그를 나타냅니다.

속성
OT_DNS_FLAG_NO_RECURSION

DNS 네임서버가 쿼리를 재귀적으로 확인할 수 없음을 나타냅니다.

OT_DNS_FLAG_RECURSION_DESIRED

DNS 네임서버가 쿼리를 재귀적으로 확인할 수 있음을 나타냅니다.

OT_DNS_FLAG_UNSPECIFIED

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

otDnsServiceMode

 otDnsServiceMode

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

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

속성
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 포인터를 유지하면 안 됩니다(MUST NOT).

aError에는 다음이 포함될 수 있습니다.

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

  • OT_ERROR_NONE 응답이 수신되었습니다.
  • OT_ERROR_ABORT DNS 트랜잭션이 스택에 의해 취소되었습니다.
  • OT_ERROR_MATCH_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 A 이름이 영역에 없음 -> 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 포인터를 유지하면 안 됩니다(MUST NOT).

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 포인터를 유지하면 안 됩니다(MUST NOT).

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

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

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
aResponse aIndex의 주소 기록이 없습니다.
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
전체 호스트 이름을 출력하기 위한 문자 배열의 버퍼입니다 (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에서만 사용해야 합니다(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
aResponse aIndexaHostname의 주소 기록이 없습니다.
OT_ERROR_PARSE
aResponse에서 레코드를 파싱할 수 없습니다.

otDnsBrowseResponseGetServiceInfo

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

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

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

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

  • aResponse에 일치하는 SRV 레코드가 없으면 OT_ERROR_NOT_FOUND이 반환됩니다. 이 경우 추가 레코드 (TXT 또는 AAAA 없음)를 읽지 않습니다.
  • 일치하는 SRV 레코드가 aResponse에서 발견되면 aServiceInfo가 업데이트되고 OT_ERROR_NONE가 반환됩니다.
  • aResponse에 일치하는 TXT 레코드가 없으면 aServiceInfomTxtDataSize이 0으로 설정됩니다.
  • TXT 데이터 길이가 mTxtDataSize보다 크면 부분적으로 읽히고 mTxtDataTruncated이 true로 설정됩니다.
  • aResponse, mHostAddress is set to all zero or unspecified address.에서 일치하는 AAAA 레코드를 찾을 수 없는 경우
  • 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
서비스 인스턴스 라벨을 출력하기 위한 문자 배열의 버퍼입니다 (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에서만 사용해야 합니다(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
스레드 인터페이스가 작동하지 않아 쿼리를 보낼 수 없습니다.

otDnsClientResolveIp4Address

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

지정된 호스트 이름의 A(IPv4) 레코드에 대한 주소 확인 DNS 쿼리를 보냅니다.

필수이며 OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE가 사용 설정된 경우 사용할 수 있습니다.

성공적인 응답이 수신되면 주소는 쿼리 응답에서 IPv4 주소의 NAT64 IPv6 변환된 버전으로 aCallback에서 반환됩니다.

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). 그러면 지정되지 않은 필드가 기본 구성의 값으로 대체됩니다. 이 함수는 OT_DNS_SERVICE_MODE_TXT로 설정된 DNS 구성의 mServiceMode와 함께 사용할 수 없으며 (예: TXT 레코드만 쿼리) OT_ERROR_INVALID_ARGS을 반환합니다.

SRV 및 TXT 레코드에 대한 쿼리를 전송하는 otDnsClientResolveService()와 유사하게 동작합니다. 하지만 서버/리졸버가 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 클라이언트의 기본 쿼리 구성을 설정합니다.

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
기본값으로 사용할 새 쿼리 구성을 가리키는 포인터입니다.

otDnsEncodeTxtData

otError otDnsEncodeTxtData(
  const otDnsTxtEntry *aTxtEntries,
  uint16_t aNumTxtEntries,
  uint8_t *aTxtData,
  uint16_t *aTxtDataLength
)

TXT 레코드 항목 (키-값 쌍)의 지정된 목록을 TXT 데이터 (RFC 6763에서 지정된 형식)로 인코딩합니다.

세부정보
매개변수
[in] aTxtEntries
otDnsTxtEntry의 배열을 가리키는 포인터입니다.
[in] aNumTxtEntries
aTxtEntries 배열의 항목 수입니다.
[out] aTxtData
인코딩된 TXT 데이터를 출력하기 위한 버퍼에 대한 포인터입니다.
[in,out] aTxtDataLength
입력 시 버퍼의 크기: aTxtData 출력 시 인코딩된 TXT 데이터의 길이입니다.
반환 값
OT_ERROR_NONE
인코딩된 TXT 데이터가 aTxtDataaTxtDataLength이(가) 업데이트되었습니다.
OT_ERROR_INVALID_ARGS
aTxtEntries이(가) 잘못되었습니다.
OT_ERROR_NO_BUS
인코딩된 데이터를 aTxtDataLength와 함께 aTxtData 버퍼에 맞출 수 없습니다.

otDnsGetNextTxtEntry

otError otDnsGetNextTxtEntry(
  otDnsTxtEntryIterator *aIterator,
  otDnsTxtEntry *aEntry
)

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

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

파싱된 키 문자열 길이가 OT_DNS_TXT_KEY_ITER_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 레코드 반복자를 초기화합니다.

aIterator 객체가 사용되는 동안 버퍼 포인터 aTxtData 및 그 콘텐츠가 지속되고 변경되지 않은 상태로 유지되어야 합니다(MUST).

세부정보
매개변수
[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에서만 사용해야 합니다(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
aResponse aIndexaHostname의 주소 기록이 없습니다.
OT_ERROR_PARSE
aResponse에서 레코드를 파싱할 수 없습니다.

otDnsServiceResponseGetServiceInfo

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

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

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

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

  • 일치하는 SRV 레코드가 aResponse에서 발견되면 aServiceInfo가 업데이트됩니다.
  • 일치하는 SRV 레코드가 없으면 이 쿼리의 쿼리 구성에서 mServiceModeOT_DNS_SERVICE_MODE_TXT를 사용한 경우 (요청이 TXT 레코드에만 해당한다는 의미) OT_ERROR_NOT_FOUND가 반환됩니다. 이 경우에도 응답의 추가 데이터 섹션에서 SRV 레코드를 파싱하려고 시도합니다 (서버가 정보를 제공한 경우).
  • aResponse에 일치하는 TXT 레코드가 없으면 aServiceInfomTxtDataSize이 0으로 설정됩니다.
  • TXT 데이터 길이가 mTxtDataSize보다 크면 부분적으로 읽히고 mTxtDataTruncated이 true로 설정됩니다.
  • aResponse, mHostAddress is set to all zero or unspecified address.에서 일치하는 AAAA 레코드를 찾을 수 없는 경우
  • 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
서비스 인스턴스 라벨을 출력하기 위한 문자 배열의 버퍼입니다 (NULL이 아니어야 함).
[in] aLabelBufferSize
aLabelBuffer의 크기입니다.
[out] aNameBuffer
서비스 이름의 나머지 부분을 출력하기 위한 문자 배열의 버퍼입니다 (사용자가 이름을 가져오는 데 관심이 없는 경우 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

라벨 문자열의 최대 크기 (문자열 끝에 null 문자 포함)

OT_DNS_MAX_NAME_SIZE

 OT_DNS_MAX_NAME_SIZE 255

최대 이름 문자열 크기 (문자열 끝에 null 문자 포함)

OT_DNS_TXT_KEY_ITER_MAX_LENGTH

 OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64

otDnsTxtEntryIterator에서 지원하는 TXT 키 문자열의 최대 길이입니다.

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에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.