DNS
이 모듈에는 DNS 통신을 제어하는 함수가 포함되어 있습니다.
요약
이 모듈의 함수는 OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
기능이 사용 설정된 경우에만 사용할 수 있습니다.
열거형 |
|
---|---|
otDnsNat64Mode{
|
enum 유형은 otDnsQueryConfig 의 NAT64 모드를 나타냅니다. |
otDnsRecursionFlag{
|
enum 유형은 otDnsQueryConfig 의 'Recursion Desired' (RD) 플래그를 나타냅니다. |
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
키-값 쌍을 나타내는 TXT 레코드 항목을 나타냅니다 (RFC 6763 - 섹션 6.3). |
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 클라이언트에서 기본 쿼리 구성을 설정합니다.
|
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_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
포인터를 유지하면 안 됩니다.
aError
에는 다음이 포함될 수 있습니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
- 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()
를 참고하세요.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
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()
를 참고하세요.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
서비스 인스턴스 확인 DNS 쿼리에 대한 응답의 불투명 표현입니다.
이 유형의 인스턴스를 가리키는 포인터는 otDnsAddressCallback
콜백에서 제공됩니다.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
키-값 쌍을 나타내는 TXT 레코드 항목을 나타냅니다 (RFC 6763 - 섹션 6.3).
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이며 필수사항이 아니며, 서버/리졸버는 이를 제공할 필요가 없습니다. 이 함수는 가능한 경우 지정된 서비스 인스턴스에 대해 이 정보를 검색하려고 시도합니다.
- 일치하는 SRV 레코드가
aResponse
에 없으면OT_ERROR_NOT_FOUND
가 반환됩니다. 이 경우 추가 레코드 (TXT 또는 AAAA 없음)를 읽을 수 없습니다. - 일치하는 SRV 레코드가
aResponse
에 있으면aServiceInfo
가 업데이트되고OT_ERROR_NONE
가 반환됩니다. - 일치하는 TXT 레코드가
aResponse
에 없으면aServiceInfo
의mTxtDataSize
이 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 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). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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). 지정되지 않은 필드는 기본 구성의 값으로 대체됩니다. 이 함수는 DNS 구성의 OT_DNS_SERVICE_MODE_TXT
로 설정된 mServiceMode
(예: TXT 레코드만 쿼리)와 함께 사용할 수 없으며 OT_ERROR_INVALID_ARGS
를 반환합니다.
otDnsClientResolveService()
가 SRV 및 TXT 레코드에 대한 쿼리를 전송하는 것과 유사하게 동작합니다. 하지만 서버/리졸버가 SRV 쿼리 응답 (추가 데이터 섹션)에 호스트 이름에 대한 AAAA/A 레코드를 제공하지 않으면 SRV 레코드에서 발견된 호스트 이름에 대해 호스트 이름 확인 (AAAA 쿼리 전송)이 이루어집니다. 콜백 aCallback
는 모든 쿼리의 응답이 수신될 때 (즉, 서비스 호스트와 호스트 주소 확인 완료) 호출됩니다.
세부정보 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||||
반환 값 |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
DNS 클라이언트에서 기본 쿼리 구성을 설정합니다.
참고: 진행 중인 모든 쿼리는 구성이 시작된 시점부터 구성을 계속 사용합니다. 새 기본 구성은 향후 DNS 쿼리에 사용됩니다.
aConfig
은 NULL일 수 있습니다. 이 경우 기본 구성은 OT 구성 옵션 OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
의 기본값으로 설정됩니다. OpenThread 스택이 시작되면 기본 쿼리 구성이 구성으로 다시 재설정됩니다.
NULL이 아닌 aConfig
에서 호출자는 otDnsQueryConfig
인스턴스의 일부 필드를 지정하지 않고 (값 0) 선택할 수 있습니다. 지정되지 않은 필드는 해당하는 OT 구성 옵션 정의(OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
)로 대체되어 기본 쿼리 구성을 구성합니다.
OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
가 사용 설정되면 기본 구성에 있는 서버의 IPv6 주소가 DNS 클라이언트에 의해 자동으로 설정되고 업데이트됩니다. 이 작업은 사용자가 명시적으로 설정하거나 지정하지 않은 경우에만 수행됩니다. 이 동작을 사용하려면 SRP 클라이언트와 해당 자동 시작 기능을 사용 설정해야 합니다. 그러면 SRP 클라이언트가 DNS/SRP 서비스 항목의 스레드 네트워크 데이터를 모니터링하여 SRP 서버를 선택합니다. 선택한 SRP 서버 주소는 기본 구성에서 DNS 서버 주소로도 설정됩니다.
세부정보 | |||||
---|---|---|---|---|---|
매개변수 |
|
otDnsGetNextTxtEntry
otError otDnsGetNextTxtEntry( otDnsTxtEntryIterator *aIterator, otDnsTxtEntry *aEntry )
이터레이터에서 TXT 데이터를 파싱하고 다음 TXT 레코드 항목 (키-값 쌍)을 가져옵니다.
aIterator
는 이 함수를 호출하기 전에 otDnsInitTxtEntryIterator()
를 사용하여 초기화되어야 하며, 반복자를 초기화하는 데 사용되는 TXT 데이터 버퍼는 변경되지 않고 변경되지 않아야 합니다(MUST). 그렇지 않으면 이 함수의 동작이 정의되지 않습니다.
파싱된 키 문자열 길이가 OT_DNS_TXT_KEY_MAX_LENGTH
(권장 최대 키 길이)보다 작거나 같으면 키 문자열이 aEntry
의 mKey
에 반환됩니다. 그러나 키가 더 길면 mKey
가 NULL로 설정되고 인코딩된 전체 TXT 항목 문자열이 mValue
및 mValueLength
에서 반환됩니다.
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
||||||
반환 값 |
|
otDnsInitTxtEntryIterator 클래스의 생성자
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
TXT 레코드 반복자를 초기화합니다.
버퍼 포인터 aTxtData
와 그 콘텐츠는 aIterator
객체가 사용되는 동안 유지되고 변경되지 않아야 합니다(MUST).
세부정보 | |||||||
---|---|---|---|---|---|---|---|
매개변수 |
|
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
가 반환됩니다.
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
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 레코드가 없는 경우 이 쿼리의 쿼리 구성에서
mServiceMode
에OT_DNS_SERVICE_MODE_TXT
를 사용하지 않는 한OT_ERROR_NOT_FOUND
가 반환됩니다 (즉, TXT 레코드에 대한 요청만). 이 경우에도 응답의 추가 데이터 섹션에서 SRV 레코드를 파싱합니다 (서버에서 정보를 제공한 경우). - 일치하는 TXT 레코드가
aResponse
에 없으면aServiceInfo
의mTxtDataSize
이 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 using
otDnsServiceResponseGetHostAddress()를 호출하세요.
세부정보 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||
반환 값 |
|
otDnsServiceResponseGetServiceName 클래스의 생성자
otError otDnsServiceResponseGetServiceName( const otDnsServiceResponse *aResponse, char *aLabelBuffer, uint8_t aLabelBufferSize, char *aNameBuffer, uint16_t aNameBufferSize )
DNS 서비스 인스턴스 확인 응답과 연결된 서비스 인스턴스 이름을 가져옵니다.
otDnsServiceCallback
에서만 사용해야 합니다(MUST).
세부정보 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개변수 |
|
||||||||||
반환 값 |
|
otDnsSetNameCompactionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
'DNS 이름 압축' 모드를 사용 설정/사용 중지합니다.
기본적으로 DNS 이름 압축이 사용 설정됩니다. 사용 중지하면 DNS 이름이 전체로 추가되고 압축되지 않습니다. 이는 OpenThread의 DNS 및 SRP 클라이언트/서버 모듈에 적용됩니다.
테스트 전용이며 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
구성이 사용 설정된 경우 사용할 수 있습니다.
OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
가 사용되는 경우 이 모드는 모든 OpenThread 인스턴스에 적용됩니다. 즉, 이 함수를 호출하면 모든 OpenThread 인스턴스에서 압축 모드가 사용 설정/사용 중지됩니다.
세부정보 | |||
---|---|---|---|
매개변수 |
|
매크로
OT_DNS_MAX_LABEL_SIZE세
OT_DNS_MAX_LABEL_SIZE 64
최대 라벨 문자열 크기 (문자열 끝에 null 문자 포함)
OT_DNS_MAX_NAME_SIZE회
OT_DNS_MAX_NAME_SIZE 255
최대 이름 문자열 크기 (문자열 끝에 null 문자 포함)
OT_DNS_TXT_KEY_MAX_LENGTH자
OT_DNS_TXT_KEY_MAX_LENGTH 9
TXT 레코드 키 문자열의 최대 권장 길이 (RFC 6763 - 섹션 6.4)
OT_DNS_TXT_KEY_MIN_LENGTH자
OT_DNS_TXT_KEY_MIN_LENGTH 1
TXT 레코드 키 문자열의 최소 길이 (RFC 6763 - 섹션 6.4)
자료
OpenThread API 참조 주제는 GitHub에서 제공되는 소스 코드에서 비롯됩니다. 자세한 내용을 보거나 문서에 참여하려면 리소스를 참고하세요.