DNS
이 모듈에는 DNS 통신을 제어하는 기능이 포함되어 있습니다.
요약
이 모듈의 함수는 OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
기능이 사용 설정된 경우에만 사용할 수 있습니다.
열거형 |
|
---|---|
otDnsNat64Mode{
|
enum 유형은 otDnsQueryConfig 의 NAT64 모드를 나타냅니다. |
otDnsRecursionFlag{
|
enum type은 otDnsQueryConfig 의 'RD(Recursion Desired)' 플래그를 나타냅니다. |
otDnsServiceMode{
|
enum 유형은 otDnsQueryConfig 의 서비스 확인 모드를 나타냅니다. |
otDnsTransportProto{
|
enum 유형은 otDnsQueryConfig 의 DNS 전송 프로토콜을 나타냅니다. |
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
키-값 쌍 (RFC 6763 - 섹션 6.3)을 나타내는 TXT 레코드 항목을 나타냅니다. |
otDnsTxtEntryIterator
|
typedefstruct 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)
|
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 서비스 인스턴스 변환을 시작합니다.
|
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_TCP
는 OPENTHREAD_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
에는 다음이 포함될 수 있습니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
- 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()
를 참고하세요.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
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()
를 참고하세요.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
서비스 인스턴스 확인 DNS 쿼리에 대한 응답을 불투명하게 표현합니다.
이 유형의 인스턴스에 대한 포인터는 otDnsAddressCallback
콜백에서 제공됩니다.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
키-값 쌍 (RFC 6763 - 섹션 6.3)을 나타내는 TXT 레코드 항목을 나타냅니다.
mKey
및 mValue
가 가리키는 문자열 버퍼는 이러한 구조의 인스턴스가 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
가 반환됩니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
주소 확인 DNS 응답과 연결된 전체 호스트 이름을 가져옵니다.
otDnsAddressCallback
에서만 사용해야 합니다(MUST).
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
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
가 반환됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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 레코드가 없으면aServiceInfo
의mTxtDataSize
이 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 using
otDnsBrowseResponseGetHostAddress()`가 포함됩니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otDnsBrowseResponseGetServiceInstance
otError otDnsBrowseResponseGetServiceInstance( const otDnsBrowseResponse *aResponse, uint16_t aIndex, char *aLabelBuffer, uint8_t aLabelBufferSize )
DNS 탐색 (서비스 인스턴스 열거) 응답과 연결된 서비스 인스턴스를 가져옵니다.
otDnsBrowseCallback
에서만 사용해야 합니다(MUST).
응답에는 여러 서비스 인스턴스 레코드가 포함될 수 있습니다. aIndex
를 사용하여 목록을 반복할 수 있습니다. 색인이 0이면 첫 번째 레코드를 제공합니다. 목록의 끝에 도달하면 OT_ERROR_NOT_FOUND
가 반환됩니다.
이 함수는
형식의 전체 서비스 인스턴스 이름이 아닌 서비스 인스턴스 라벨을 가져옵니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
DNS 탐색 (서비스 인스턴스 열거) 응답과 연결된 서비스 이름을 가져옵니다.
otDnsBrowseCallback
에서만 사용해야 합니다(MUST).
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
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). 그러면 지정되지 않은 필드가 기본 구성의 값으로 대체됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
지정된 호스트 이름의 AAAA(IPv6) 레코드에 대한 주소 확인 DNS 쿼리를 보냅니다.
aConfig
는 NULL일 수 있습니다. 이 경우 otDnsClientGetDefaultConfig()
의 기본 구성이 이 쿼리의 구성으로 사용됩니다. NULL이 아닌 aConfig
에서 일부 필드를 지정하지 않아도 됩니다 (값 0). 그러면 지정되지 않은 필드가 기본 구성의 값으로 대체됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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). 그러면 지정되지 않은 필드가 기본 구성의 값으로 대체됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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 레코드에 대한 쿼리를 전송합니다. otDnsQueryConfig
의 mServiceMode
필드는 쿼리할 레코드 (SRV 전용, TXT 전용 또는 SRV 및 TXT 모두)와 쿼리를 수행하는 방법 (동일한 메시지에서 함께 또는 동시에 개별적으로 또는 클라이언트가 먼저 동일한 메시지로 시도한 후 응답을 받지 못하는 경우 별도로 시도하는 최적화 모드에서) 방법을 결정합니다.
SRV 레코드는 서비스 인스턴스와 연결된 호스트 이름과 함께 서비스 포트, 우선순위, 가중치에 대한 정보를 제공합니다. 이 함수는 SRV 레코드에서 발견된 호스트 이름에 대해 주소 확인을 수행하지 않습니다. 서버/리졸버는 SRV/TXT 쿼리에 대한 응답의 추가 데이터 섹션에 호스트 이름의 AAAA/A 레코드를 제공할 수 있으며 이 정보는 otDnsServiceCallback
의 otDnsServiceResponseGetServiceInfo()
를 사용하여 가져올 수 있습니다. 이 API의 사용자는 호스트 주소를 항상 otDnsServiceResponseGetServiceInfo()
에서 사용할 수 있다고 가정해서는 안 됩니다(MUST NOT).
세부정보 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||
반환 값 |
|
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
는 모든 쿼리에 대한 응답이 수신될 때 호출됩니다 (즉, 서비스 및 호스트 주소 확인이 모두 완료됨).
세부정보 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||
반환 값 |
|
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 서버 주소로도 설정됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otDnsEncodeTxtData
otError otDnsEncodeTxtData( const otDnsTxtEntry *aTxtEntries, uint16_t aNumTxtEntries, uint8_t *aTxtData, uint16_t *aTxtDataLength )
TXT 레코드 항목 (키-값 쌍)의 지정된 목록을 TXT 데이터 (RFC 6763에서 지정된 형식)로 인코딩합니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
반복자에서 TXT 데이터를 파싱하고 다음 TXT 레코드 항목 (키/값 쌍)을 가져옵니다.
이 함수를 호출하기 전에 aIterator
를 otDnsInitTxtEntryIterator()
를 사용하여 초기화해야 하며(MUST) 반복자를 초기화하는 데 사용되는 TXT 데이터 버퍼는 유지되고 변경되지 않은 상태로 유지되어야 합니다(MUST). 그렇지 않으면 이 함수의 동작이 정의되지 않습니다.
파싱된 키 문자열 길이가 OT_DNS_TXT_KEY_ITER_MAX_LENGTH
보다 작거나 같으면 키 문자열이 aEntry
의 mKey
에 반환됩니다. 하지만 키가 더 길면 mKey
가 NULL로 설정되고 인코딩된 TXT 항목 문자열 전체가 mValue
및 mValueLength
로 반환됩니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
TXT 레코드 반복자를 초기화합니다.
aIterator
객체가 사용되는 동안 버퍼 포인터 aTxtData
및 그 콘텐츠가 지속되고 변경되지 않은 상태로 유지되어야 합니다(MUST).
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
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
가 반환됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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 레코드가 없으면 이 쿼리의 쿼리 구성에서
mServiceMode
에OT_DNS_SERVICE_MODE_TXT
를 사용한 경우 (요청이 TXT 레코드에만 해당한다는 의미)OT_ERROR_NOT_FOUND
가 반환됩니다. 이 경우에도 응답의 추가 데이터 섹션에서 SRV 레코드를 파싱하려고 시도합니다 (서버가 정보를 제공한 경우). aResponse
에 일치하는 TXT 레코드가 없으면aServiceInfo
의mTxtDataSize
이 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 using
otDnsServiceResponseGetHostAddress()`입니다.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otDnsServiceResponseGetServiceName
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
DNS 서비스 인스턴스 확인 응답과 연결된 서비스 인스턴스 이름을 가져옵니다.
otDnsServiceCallback
에서만 사용해야 합니다(MUST).
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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_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에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 알아보거나 문서에 참여하려면 리소스를 참고하세요.