DNS
המודול הזה כולל פונקציות ששולטות בתקשורת ה-DNS.
סיכום
הפונקציות במודול הזה זמינות רק אם התכונה OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE
מופעלת.
ספירות |
|
---|---|
otDnsNat64Mode{
|
טיפוסים בני מנייה (enum) Type מייצג את מצב NAT64 ב- otDnsQueryConfig . |
otDnsRecursionFlag{
|
טיפוסים בני מנייה (enum) Type מייצג את הדגל "Recursion Desired" (RD) ב- otDnsQueryConfig . |
otDnsServiceMode{
|
טיפוסים בני מנייה (enum) המאפיין Type מייצג את מצב רזולוציית השירות ב- otDnsQueryConfig . |
otDnsTransportProto{
|
טיפוסים בני מנייה (enum) הסוג מייצג את פרוטוקול תעבורת ה-DNS ב- otDnsQueryConfig . |
ערכי דף |
|
---|---|
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)
|
מקבלת כתובת IPv6 שמשויכת לתגובת DNS לפענוח כתובת.
|
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)
|
הפונקציה מקבלת את כתובת ה-IPv6 של המארח מתגובת עיון ב-DNS (ספירת מכונות שירות).
|
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)
|
נשלחת שאילתת DNS לפענוח כתובת עבור רשומות AAAA (IPv6) של שם מארח נתון.
|
otDnsClientResolveIp4Address(otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig)
|
נשלחת שאילתת DNS לפענוח כתובת עבור רשומות A (IPv4) של שם מארח נתון.
|
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)
|
הפונקציה מקבלת את כתובת ה-IPv6 של המארח מתגובת רזולוציה של מופע של שירות DNS.
|
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
Type מייצג את מצב NAT64 ב-otDnsQueryConfig
.
מצב NAT64 מציין אם לאפשר או לאסור תרגום כתובות NAT64 במהלך פענוח כתובת של לקוח DNS. המצב הזה נמצא בשימוש רק כשהתכונה OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
מופעלת.
תכונות | |
---|---|
OT_DNS_NAT64_ALLOW
|
מתן הרשאה לתרגום כתובת NAT64 במהלך פענוח הכתובת של לקוח DNS. |
OT_DNS_NAT64_DISALLOW
|
אין לאפשר תרגום כתובת NAT64 במהלך פענוח כתובת של לקוח DNS. |
OT_DNS_NAT64_UNSPECIFIED
|
מצב NAT64 לא צוין. שימוש במצב NAT64 שמוגדר כברירת מחדל. |
otDnsRecursionFlag
otDnsRecursionFlag
Type מייצג את הדגל "Recursion Desired" (RD) ב-otDnsQueryConfig
.
תכונות | |
---|---|
OT_DNS_FLAG_NO_RECURSION
|
סימן ששרת השמות של ה-DNS לא יכול לפתור את השאילתה באופן רקורסיבי. |
OT_DNS_FLAG_RECURSION_DESIRED
|
סימן ששרת השמות של ה-DNS יכול לפתור את השאילתה באופן רקורסיבי. |
OT_DNS_FLAG_UNSPECIFIED
|
מציין שהדגל לא צוין. |
otDnsServiceMode
otDnsServiceMode
המאפיין Type מייצג את מצב רזולוציית השירות ב-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
הסוג מייצג את פרוטוקול תעבורת ה-DNS ב-otDnsQueryConfig
.
יש תמיכה בOT_DNS_TRANSPORT_TCP
רק כשהתכונה OPENTHREAD_CONFIG_DNS_CLIENT_OVER_TCP_ENABLE
מופעלת.
תכונות | |
---|---|
OT_DNS_TRANSPORT_TCP
|
צריך לשלוח את שאילתת ה-DNS דרך UDP. |
OT_DNS_TRANSPORT_UDP
|
לא צוינה תעבורת DNS. |
ערכי דף
otDnsAddressCallback
void(* otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
המצביע מופעל כשמתקבלת תגובת DNS עבור שאילתה של פענוח כתובת.
בקריאה החוזרת (callback), המשתמש יכול להשתמש בפונקציות otDnsAddressResponseGet{Item}()
יחד עם הסמן aResponse
כדי לקבל מידע נוסף על התשובה.
ניתן להשתמש במצביע aResponse
רק במסגרת הקריאה החוזרת (callback) הזו ולאחר חזרה מהפונקציה הזו, הוא לא יישאר תקף, כך שאין למשתמש אפשרות לשמור את הסמן aResponse
לשימוש עתידי.
השדה aError
יכול להיות:
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
- OT_ERROR_NONE תגובה התקבלה בהצלחה.
- OT_ERROR_ABORT עסקת DNS בוטלה על ידי סטאק.
- OT_ERROR_BROWSER_OFFSET לא התקבלה תגובת 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 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 לפענוח כתובת.
מצביעים למופע מהסוג הזה ניתנים מ-callback otDnsAddressCallback
.
otDnsBrowseCallback
void(* otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext)
המערכת מפעילה את המצביע כאשר מתקבלת תגובת DNS לשאילתת דפדוף (ספירת מופע של שירות).
בקריאה החוזרת (callback), המשתמש יכול להשתמש בפונקציות otDnsBrowseResponseGet{Item}()
יחד עם הסמן aResponse
כדי לקבל מידע נוסף על התשובה.
ניתן להשתמש במצביע aResponse
רק במסגרת הקריאה החוזרת (callback) הזו ולאחר חזרה מהפונקציה הזו, הוא לא יישאר תקף, כך שאין למשתמש אפשרות לשמור את הסמן aResponse
לשימוש עתידי.
הרשימה המלאה של ערכים אפשריים עבור aError
מופיעה בכתובת otDnsAddressCallback()
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otDnsBrowseResponse
struct otDnsBrowseResponse otDnsBrowseResponse
ייצוג אטום של תגובה לשאילתת DNS של דפדוף (ספירת מופע של שירות).
מצביעים למופע מהסוג הזה ניתנים מ-callback otDnsBrowseCallback
.
otDnsQueryConfig
struct otDnsQueryConfig otDnsQueryConfig
מייצג הגדרה של שאילתת DNS.
ניתן להגדיר כל שדה במבנה הזה כאפס, כדי לציין שהוא לא צוין. אופן הטיפול בשדות שלא צוינו נקבע על ידי הפונקציה שמשתמשת במופע של otDnsQueryConfig
.
otDnsServiceCallback
void(* otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext)
המצביע מופעל כשמתקבלת תגובת DNS עבור שאילתה של פענוח מופע שירות.
בקריאה החוזרת (callback), המשתמש יכול להשתמש בפונקציות otDnsServiceResponseGet{Item}()
יחד עם הסמן aResponse
כדי לקבל מידע נוסף על התשובה.
ניתן להשתמש במצביע aResponse
רק במסגרת הקריאה החוזרת (callback) הזו ולאחר חזרה מהפונקציה הזו, הוא לא יישאר תקף, כך שאין למשתמש אפשרות לשמור את הסמן aResponse
לשימוש עתידי.
הרשימה המלאה של ערכים אפשריים עבור aError
מופיעה בכתובת otDnsAddressCallback()
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otDnsServiceResponse
struct otDnsServiceResponse otDnsServiceResponse
ייצוג אטום של תגובה לשאילתת DNS לפענוח מופע של שירות.
מצביעים למופע מהסוג הזה ניתנים מ-callback otDnsAddressCallback
.
otDnsTxtEntry
struct otDnsTxtEntry otDnsTxtEntry
מייצגת רשומת TXT שמייצגת צמד מפתח/ערך (RFC 6763 - סעיף 6.3).
מאגרי הנתונים הזמניים של מחרוזת שעליהם מצביעות mKey
ו-mValue
חייבים לפעול ללא שינוי ולהישאר ללא שינוי אחרי שמופע של מבנה כזה מועבר ל-OpenThread (כחלק ממופע של otSrpClientService
).
מערך של otDnsTxtEntry
רשומות נמצא בשימוש ב-otSrpClientService
כדי לציין את רשומת ה-TXT המלאה (רשימת רשומות).
otDnsTxtEntryIterator
struct otDnsTxtEntryIterator otDnsTxtEntryIterator
מייצג איטרטור לרשומות של רשומות TXT (צמדי מפתח/ערך).
שדות הנתונים במבנה הזה מיועדים לשימוש על ידי ליבת OpenThread והמתקשר לא יכול לקרוא או לשנות אותם.
פונקציות
otDnsAddressResponseGetAddress
otError otDnsAddressResponseGetAddress( const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
מקבלת כתובת IPv6 שמשויכת לתגובת DNS לפענוח כתובת.
חובה להשתמש רק החל מ-otDnsAddressCallback
.
התגובה עשויה לכלול כמה רשומות של כתובות IPv6. אפשר להשתמש ב-aIndex
כדי לבצע חזרה דרך רשימת הכתובות. אינדקס אפס מקבל את הכתובת הראשונה וכן הלאה. כשמגיעים לסוף הרשימה, הערך OT_ERROR_NOT_FOUND
מוחזר.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
ערכים מוחזרים |
|
otDnsAddressResponseGetHostName
otError otDnsAddressResponseGetHostName( const otDnsAddressResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
הפונקציה מקבלת את שם המארח המלא שמשויך לתגובת DNS לפענוח כתובת.
חובה להשתמש רק החל מ-otDnsAddressCallback
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otDnsBrowseResponseGetHostAddress
otError otDnsBrowseResponseGetHostAddress( const otDnsBrowseResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
הפונקציה מקבלת את כתובת ה-IPv6 של המארח מתגובת עיון ב-DNS (ספירת מכונות שירות).
חובה להשתמש רק החל מ-otDnsBrowseCallback
.
התגובה יכולה לכלול אפס רשומות או יותר של כתובות IPv6. אפשר להשתמש ב-aIndex
כדי לבצע חזרה דרך רשימת הכתובות. אינדקס אפס מקבל את הכתובת הראשונה וכן הלאה. כשמגיעים לסוף הרשימה, הערך OT_ERROR_NOT_FOUND
מוחזר.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||
ערכים מוחזרים |
|
otDnsBrowseResponseGetServiceInfo
otError otDnsBrowseResponseGetServiceInfo( const otDnsBrowseResponse *aResponse, const char *aInstanceLabel, otDnsServiceInfo *aServiceInfo )
הפונקציה מקבלת מידע על מופע של שירות מתגובה של דפדוף ב-DNS (ספירת מכונות שירות).
חובה להשתמש רק החל מ-otDnsBrowseCallback
.
תגובת DNS לדפדוף יכולה לכלול רשומות SRV, TXT ו-AAAA למופעי השירות הרשומים. זוהי דרישה ולא חובה, ושרתים/פותרים לא נדרשים לספק זאת. הפונקציה הזו מנסה לאחזר את המידע הזה לגבי מופע של שירות נתון, כשהוא זמין.
- אם לא נמצאה רשומת SRV תואמת ב-
aResponse
, מוחזרOT_ERROR_NOT_FOUND
. במקרה כזה, לא ייקראו רשומות נוספות (לא רשומות TXT ו/או AAAA). - אם נמצאת רשומת SRV תואמת ב-
aResponse
, מתבצע עדכון שלaServiceInfo
ומוחזרOT_ERROR_NONE
. - אם לא נמצאה רשומת TXT תואמת ב-
aResponse
, הערךmTxtDataSize
ב-aServiceInfo
יוגדר כאפס. - אם האורך של נתוני ה-TXT גדול מ-
mTxtDataSize
, הוא נקרא באופן חלקי ו-mTxtDataTruncated
מוגדר כ-true. - אם לא נמצאה רשומת AAAA תואמת ב
aResponse
,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
.
התגובה עשויה לכלול כמה רשומות של מופעי שירות. אפשר להשתמש ב-aIndex
כדי לחזור על הרשימה. האינדקס אפס מציין את הרשומה הראשונה. כשמגיעים לסוף הרשימה, הערך OT_ERROR_NOT_FOUND
מוחזר.
הערה: הפונקציה הזו מקבלת את התווית של מופע השירות ולא את שם המופע של השירות המלא בפורמט
.
פרטים | |||||||||
---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||
ערכים מוחזרים |
|
otDnsBrowseResponseGetServiceName
otError otDnsBrowseResponseGetServiceName( const otDnsBrowseResponse *aResponse, char *aNameBuffer, uint16_t aNameBufferSize )
הפונקציה מקבלת את שם השירות שמשויך לתגובת עיון ב-DNS (ספירת מכונות שירות).
חובה להשתמש רק החל מ-otDnsBrowseCallback
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
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()
) תשמש כתצורה של השאילתה הזו. בשדה aConfig
שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||
ערכים מוחזרים |
|
otDnsClientGetDefaultConfig
const otDnsQueryConfig * otDnsClientGetDefaultConfig( otInstance *aInstance )
הפונקציה מקבלת את הגדרת ברירת המחדל הנוכחית של השאילתה שמשמשת את לקוח ה-DNS.
כשמחסנית OpenThread מופעלת, ההגדרה של שאילתת ה-DNS נקבעת כברירת מחדל על סמך קבוצה של אפשרויות תצורה ב-OT כמו OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS
, _DEFAULT_SERVER_PORT
, _DEFAULT_RESPONSE_TIMEOUT
וכו' (כל אפשרויות ההגדרה הקשורות ל-config/dns_client.h
מפורטות).
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
הפניה להגדרה הנוכחית המוגדרת כברירת מחדל, שמשמשת את לקוח ה-DNS.
|
otDnsClientResolveAddress
otError otDnsClientResolveAddress( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
נשלחת שאילתת DNS לפענוח כתובת עבור רשומות AAAA (IPv6) של שם מארח נתון.
הערך של aConfig
יכול להיות NULL. במקרה הזה, הגדרת ברירת המחדל (מ-otDnsClientGetDefaultConfig()
) תשמש כתצורה של השאילתה הזו. בשדה aConfig
שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||
ערכים מוחזרים |
|
otDnsClientResolveIp4Address
otError otDnsClientResolveIp4Address( otInstance *aInstance, const char *aHostName, otDnsAddressCallback aCallback, void *aContext, const otDnsQueryConfig *aConfig )
נשלחת שאילתת DNS לפענוח כתובת עבור רשומות A (IPv4) של שם מארח נתון.
נדרשת וזמינה כשמדיניות OPENTHREAD_CONFIG_DNS_CLIENT_NAT64_ENABLE
מופעלת.
כאשר תגובה מתקבלת בהצלחה, הכתובות מוחזרות מ-aCallback
כגרסאות מתורגמות של NAT64 IPv6 לכתובות IPv4 מתגובת השאילתה.
הערך של aConfig
יכול להיות NULL. במקרה הזה, הגדרת ברירת המחדל (מ-otDnsClientGetDefaultConfig()
) תשמש כתצורה של השאילתה הזו. בשדה aConfig
שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||
ערכים מוחזרים |
|
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()
) תשמש כתצורה של השאילתה הזו. בשדה aConfig
שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.
הפונקציה שולחת שאילתות לרשומות SRV ו/או TXT עבור מופע השירות הנתון. השדה mServiceMode
ב-otDnsQueryConfig
קובע אילו רשומות יש לשלוח שאילתה (SRV בלבד, TXT בלבד, או גם SRV ו-TXT) ואת אופן הביצוע של השאילתה (יחד באותה הודעה, בנפרד במקביל, או במצב אופטימיזציה שבו הלקוח ינסה קודם כל את אותה הודעה ולאחר מכן בנפרד אם הוא לא יצליח לקבל תשובה).
רשומת ה-SRV מספקת מידע על יציאת השירות, העדיפות והמשקל, יחד עם שם המארח המשויך למופע השירות. הפונקציה הזו לא מבצעת פענוח כתובת עבור שם המארח שהתגלה מרשומת SRV. השרת/הפותר יכולים לספק רשומות AAAA/A עבור שם המארח בקטע 'נתונים נוספים' של התגובה לשאילתת SRV/TXT, וניתן לאחזר את המידע הזה באמצעות otDnsServiceResponseGetServiceInfo()
ב-otDnsServiceCallback
. למשתמשים של ה-API הזה אסור להניח שכתובת המארח תמיד תהיה זמינה החל מ-otDnsServiceResponseGetServiceInfo()
.
פרטים | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||
ערכים מוחזרים |
|
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()
) תשמש כתצורה של השאילתה הזו. בשדה aConfig
שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל. אי אפשר להשתמש בפונקציה הזו כאשר mServiceMode
בתצורת DNS מוגדרת ל-OT_DNS_SERVICE_MODE_TXT
(כלומר, שליחת שאילתות על רשומת TXT בלבד) והיא תחזיר OT_ERROR_INVALID_ARGS
.
פועלת בדומה ל-otDnsClientResolveService()
שליחת שאילתות עבור רשומות SRV ו-TXT. עם זאת, אם השרת/הפותר לא מספק רשומות AAAA/A עבור שם המארח בתגובה לשאילתת SRV (בקטע 'נתונים נוספים'), הוא יבצע פענוח של שם המארח (בשליחת שאילתת AAAA) עבור שם המארח שהתגלה מרשומת ה-SRV. הקריאה החוזרת (callback) aCallback
מופעלת כאשר מתקבלות תשובות לכל השאילתות (כלומר, אחרי שיסתיים הטיפול בתשובות גם של השירות וגם של כתובת המארח).
פרטים | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||||
ערכים מוחזרים |
|
otDnsClientSetDefaultConfig
void otDnsClientSetDefaultConfig( otInstance *aInstance, const otDnsQueryConfig *aConfig )
המדיניות הזו קובעת את ההגדרות האישיות של השאילתה בלקוח DNS.
הערך שלaConfig
יכול להיות NULL. במקרה כזה, הגדרות ברירת המחדל יהיו ברירת המחדל מתוך אפשרויות התצורה OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
של OT. הפעולה הזו מאפסת את הגדרת ברירת המחדל של השאילתה חזרה להגדרות כשמתחיל מחסנית OpenThread.
בשדה aConfig
שאינו NULL, המתקשר יכול להשאיר חלק מהשדות במכונה של otDnsQueryConfig
לא צוינו (הערך אפס). השדות שלא צוינו מוחלפים בהגדרות המתאימות של אפשרות תצורת OT OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_{}
כדי ליצור את ברירת המחדל של הגדרת השאילתה.
כאשר OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_ADDRESS_AUTO_SET_ENABLE
מופעל, כתובת ה-IPv6 של השרת בהגדרת ברירת המחדל מוגדרת ומעודכנת באופן אוטומטי על ידי לקוח DNS. הדבר נעשה רק כאשר המשתמש לא מגדיר או מציין זאת במפורש. התנהגות זו מחייבת הפעלה של לקוח SRP ושל תכונת ההפעלה האוטומטית שלו. לקוח SRP יעקוב לאחר מכן אחר נתוני רשת Thread עבור רשומות שירות 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()
לפני הקריאה לפונקציה הזו, ומאגר הנתונים הזמני של TXT שמשמש לאתחול האיטרטור חייב להישאר ללא שינוי. אחרת, ההתנהגות של הפונקציה הזו לא מוגדרת.
אם האורך של מחרוזת המפתח המנותחת קטן מ-OT_DNS_TXT_KEY_ITER_MAX_LENGTH
או שווה לו, מחרוזת המפתח מוחזרת בערך mKey
ב-aEntry
. לעומת זאת, אם המפתח ארוך יותר, הערך mKey
מוגדר ל-NULL וכל מחרוזת ה-TXT המקודדת מוחזרת ב-mValue
וב-mValueLength
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||
ערכים מוחזרים |
|
otDnsInitTxtEntryIterator
void otDnsInitTxtEntryIterator( otDnsTxtEntryIterator *aIterator, const uint8_t *aTxtData, uint16_t aTxtDataLength )
מפעיל איטרטור של רשומות TXT.
מצביע המאגר aTxtData
והתוכן שלו חייבים להישאר ללא שינוי בזמן השימוש באובייקט aIterator
.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
otDnsIsNameCompressionEnabled
bool otDnsIsNameCompressionEnabled( void )
האפשרות מציינת אם המצב 'דחיסת שם DNS' מופעל או לא.
אפשרות זו מיועדת לבדיקה בלבד, וזמינה כאשר ההגדרה OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
מופעלת.
פרטים | |
---|---|
החזרות |
TRUE אם המצב 'דחיסת שמות DNS' מופעל, FALSE אם לא.
|
otDnsServiceResponseGetHostAddress
otError otDnsServiceResponseGetHostAddress( const otDnsServiceResponse *aResponse, const char *aHostName, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl )
הפונקציה מקבלת את כתובת ה-IPv6 של המארח מתגובת רזולוציה של מופע של שירות DNS.
חובה להשתמש רק החל מ-otDnsServiceCallback
.
התגובה יכולה לכלול אפס רשומות או יותר של כתובות IPv6. אפשר להשתמש ב-aIndex
כדי לבצע חזרה דרך רשימת הכתובות. אינדקס אפס מקבל את הכתובת הראשונה וכן הלאה. כשמגיעים לסוף הרשימה, הערך OT_ERROR_NOT_FOUND
מוחזר.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||
ערכים מוחזרים |
|
otDnsServiceResponseGetServiceInfo
otError otDnsServiceResponseGetServiceInfo( const otDnsServiceResponse *aResponse, otDnsServiceInfo *aServiceInfo )
הפונקציה מקבלת מידע על מופע של שירות מתגובת רזולוציה של מופע של שירות DNS.
חובה להשתמש רק מ-otDnsServiceCallback
שהופעל מ-otDnsClientResolveService()
או otDnsClientResolveServiceAndHostAddress()
.
כשמשתמשים בהגדרה הזו מקריאה חוזרת (callback) של otDnsClientResolveService()
, תגובת ה-DNS מהשרת או מהפותר עשויה לכלול רשומות AAAA בקטע 'נתונים נוספים' של שם המארח שמשויך למופע של השירות שטופל. זוהי דרישה ולא חובה, ולכן שרתים/פותרים לא נדרשים לספק זאת. הפונקציה הזו מנסה לנתח רשומות AAAA, אם הן נכללות בתגובה. אם הוא לא כלול, הערך mHostAddress
יקבל את כל האפסים (כתובת שלא צוינה). כדי לזהות גם את כתובת המארח, המשתמש יכול להשתמש בפונקציית ה-API של לקוח ה-DNS otDnsClientResolveServiceAndHostAddress()
, לביצוע פענוח של השירות ולאחר מכן שאילתה לפענוח כתובת של שם המארח (כאשר השרת או הפותר לא מספקים את רשומות ה-AAAA בתגובה לשאילתת ה-SRV).
- אם נמצאה רשומת SRV תואמת ב-
aResponse
, הערךaServiceInfo
מתעדכן. - אם לא נמצאה רשומת SRV תואמת, הפונקציה
OT_ERROR_NOT_FOUND
מוחזרת אלא אם הגדרת השאילתה של השאילתה הזו משתמשת ב-OT_DNS_SERVICE_MODE_TXT
עבורmServiceMode
(כלומר, הבקשה הייתה עבור רשומת TXT בלבד). במקרה הזה, אנחנו עדיין מנסים לנתח את רשומת ה-SRV מקטע הנתונים הנוספים בתגובה (אם השרת סיפק את המידע). - אם לא נמצאה רשומת TXT תואמת ב-
aResponse
, הערךmTxtDataSize
ב-aServiceInfo
יוגדר כאפס. - אם האורך של נתוני ה-TXT גדול מ-
mTxtDataSize
, הוא נקרא באופן חלקי ו-mTxtDataTruncated
מוגדר כ-true. - אם לא נמצאה רשומת AAAA תואמת ב
aResponse
,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
.
פרטים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
פרמטרים |
|
||||||||||
ערכים מוחזרים |
|
otDnsSetNameCompressionEnabled
void otDnsSetNameCompressionEnabled( bool aEnabled )
המדיניות מפעילה או משביתה את המצב 'דחיסת שם DNS'.
דחיסת שם ה-DNS מופעלת כברירת מחדל. כשהאפשרות הזו מושבתת, שמות DNS מתווספים כמלאים ואף פעם לא דחוסים. אפשרות זו רלוונטית למודולים של לקוח/שרת DNS ו-SRP של OpenThread.
אפשרות זו מיועדת לבדיקה בלבד, וזמינה כאשר ההגדרה OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE
מופעלת.
חשוב לשים לב שבמקרה שנעשה שימוש ב-OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE
, המצב הזה חל על כל המופעים של OpenThread (כלומר קריאה לפונקציה הזו מפעילה או משביתה את מצב הדחיסה בכל המופעים של OpenThread).
פרטים | |||
---|---|---|---|
פרמטרים |
|
פקודות מאקרו
OT_DNS_MAX_LABEL_SIZE
OT_DNS_MAX_LABEL_SIZE 64
גודל מקסימלי של מחרוזת תווית (כולל תו ריק בסוף המחרוזת).
OT_DNS_MAX_NAME_SIZE
OT_DNS_MAX_NAME_SIZE 255
הגודל המקסימלי של מחרוזת השם (כולל תו ריק בסוף המחרוזת).
OT_DNS_TXT_KEY_ITER_MAX_LENGTH
OT_DNS_TXT_KEY_ITER_MAX_LENGTH 64
האורך המקסימלי של מחרוזת מפתח TXT הנתמך על ידי otDnsTxtEntryIterator
.
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. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.