DNS

המודול הזה כולל פונקציות ששולטות בתקשורת ה-DNS.

סיכום

הפונקציות במודול הזה זמינות רק אם התכונה OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE מופעלת.

ספירות

otDnsNat64Mode{
  OT_DNS_NAT64_UNSPECIFIED = 0,
  OT_DNS_NAT64_ALLOW = 1,
  OT_DNS_NAT64_DISALLOW = 2
}
טיפוסים בני מנייה (enum)
Type מייצג את מצב NAT64 ב-otDnsQueryConfig.
otDnsRecursionFlag{
  OT_DNS_FLAG_UNSPECIFIED = 0,
  OT_DNS_FLAG_RECURSION_DESIRED = 1,
  OT_DNS_FLAG_NO_RECURSION = 2
}
טיפוסים בני מנייה (enum)
Type מייצג את הדגל "Recursion Desired" (RD) ב-otDnsQueryConfig.
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)
המאפיין Type מייצג את מצב רזולוציית השירות ב-otDnsQueryConfig.
otDnsTransportProto{
  OT_DNS_TRANSPORT_UDP = 1,
  OT_DNS_TRANSPORT_TCP = 2
}
טיפוסים בני מנייה (enum)
הסוג מייצג את פרוטוקול תעבורת ה-DNS ב-otDnsQueryConfig.

ערכי דף

otDnsAddressCallback)(otError aError, const otDnsAddressResponse *aResponse, void *aContext) typedef
void(*
המצביע מופעל כשמתקבלת תגובת DNS עבור שאילתה של פענוח כתובת.
otDnsAddressResponse typedef
ייצוג אטום של תגובה לשאילתת DNS לפענוח כתובת.
otDnsBrowseCallback)(otError aError, const otDnsBrowseResponse *aResponse, void *aContext) typedef
void(*
המערכת מפעילה את המצביע כאשר מתקבלת תגובת DNS לשאילתת דפדוף (ספירת מופע של שירות).
otDnsBrowseResponse typedef
ייצוג אטום של תגובה לשאילתת DNS של דפדוף (ספירת מופע של שירות).
otDnsQueryConfig typedef
מייצג הגדרה של שאילתת DNS.
otDnsServiceCallback)(otError aError, const otDnsServiceResponse *aResponse, void *aContext) typedef
void(*
המצביע מופעל כשמתקבלת תגובת DNS עבור שאילתה של פענוח מופע שירות.
otDnsServiceInfo typedef
מספק מידע למופע של שירות DNS.
otDnsServiceResponse typedef
ייצוג אטום של תגובה לשאילתת DNS לפענוח מופע של שירות.
otDnsTxtEntry typedef
struct otDnsTxtEntry
מייצגת רשומת TXT שמייצגת צמד מפתח/ערך (RFC 6763 - סעיף 6.3).
otDnsTxtEntryIterator typedef
מייצג איטרטור לרשומות של רשומות TXT (צמדי מפתח/ערך).

פונקציות

otDnsAddressResponseGetAddress(const otDnsAddressResponse *aResponse, uint16_t aIndex, otIp6Address *aAddress, uint32_t *aTtl)
מקבלת כתובת 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)
הפונקציה מקבלת את הגדרת ברירת המחדל הנוכחית של השאילתה שמשמשת את לקוח ה-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 יכול להיות:

פרטים
פרמטרים
[in] aError
התוצאה של טרנזקציית DNS.
[in] aResponse
המצביע על התשובה (הוא תמיד לא NULL).
[in] aContext
הפניה להקשר ספציפי לאפליקציה.

  • 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().

פרטים
פרמטרים
[in] aError
התוצאה של טרנזקציית DNS.
[in] aResponse
המצביע על התשובה (הוא תמיד לא NULL).
[in] aContext
הפניה להקשר ספציפי לאפליקציה.

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().

פרטים
פרמטרים
[in] aError
התוצאה של טרנזקציית DNS.
[in] aResponse
המצביע על התשובה (הוא תמיד לא NULL).
[in] aContext
הפניה להקשר ספציפי לאפליקציה.

otDnsServiceInfo

struct otDnsServiceInfo otDnsServiceInfo

מספק מידע למופע של שירות DNS.

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 מוחזר.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[in] aIndex
האינדקס של רשומת הכתובת שצריך לאחזר.
[out] aAddress
מצביע לכתובת IPv6 ליצירת פלט של הכתובת (חייב לא להיות NULL).
[out] aTtl
מצביע אל uint32_t כדי להפיק TTL עבור הכתובת. הערך יכול להיות NULL אם המתקשר לא רוצה לקבל את ה-TTL.
ערכים מוחזרים
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.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[out] aNameBuffer
מאגר נתונים זמני למערך char כדי להפיק את שם המארח המלא (אסור שיהיה 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
)

הפונקציה מקבלת את כתובת ה-IPv6 של המארח מתגובת עיון ב-DNS (ספירת מכונות שירות).

חובה להשתמש רק החל מ-otDnsBrowseCallback.

התגובה יכולה לכלול אפס רשומות או יותר של כתובות IPv6. אפשר להשתמש ב-aIndex כדי לבצע חזרה דרך רשימת הכתובות. אינדקס אפס מקבל את הכתובת הראשונה וכן הלאה. כשמגיעים לסוף הרשימה, הערך OT_ERROR_NOT_FOUND מוחזר.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[in] aHostName
שם המארח שיש לקבל את הכתובת (חייב להיות NULL).
[in] aIndex
האינדקס של רשומת הכתובת שצריך לאחזר.
[out] aAddress
מצביע לכתובת IPv6 ליצירת פלט של הכתובת (חייב לא להיות NULL).
[out] aTtl
מצביע אל uint32_t כדי להפיק TTL עבור הכתובת. הערך יכול להיות NULL אם המתקשר לא רוצה לקבל את ה-TTL.
ערכים מוחזרים
OT_ERROR_NONE
הכתובת נקראה בהצלחה.
OT_ERROR_NOT_FOUND
אין רשומת כתובת עבור aHostname ב-aResponse בשעה aIndex.
OT_ERROR_PARSE
לא ניתן לנתח את הרשומות בaResponse.

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 usingotDnsBrowseResponseGetHostAddress()`.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[in] aInstanceLabel
תווית מופע השירות (אסור שיהיה NULL).
[out] aServiceInfo
A ServiceInfo להפקת פלט של פרטי מופע השירות (אסור שיהיה NULL).
ערכים מוחזרים
OT_ERROR_NONE
פרטי המופע של השירות נקראו. האפליקציה aServiceInfo עודכנה.
OT_ERROR_NOT_FOUND
לא נמצאה רשומת SRV תואמת עבור aInstanceLabel.
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.

התגובה עשויה לכלול כמה רשומות של מופעי שירות. אפשר להשתמש ב-aIndex כדי לחזור על הרשימה. האינדקס אפס מציין את הרשומה הראשונה. כשמגיעים לסוף הרשימה, הערך 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
לא נרשמה מופע של שירות ב-aResponse בשעה aIndex.
OT_ERROR_PARSE
לא ניתן לנתח את הרשומות בaResponse.

otDnsBrowseResponseGetServiceName

otError otDnsBrowseResponseGetServiceName(
  const otDnsBrowseResponse *aResponse,
  char *aNameBuffer,
  uint16_t aNameBufferSize
)

הפונקציה מקבלת את שם השירות שמשויך לתגובת עיון ב-DNS (ספירת מכונות שירות).

חובה להשתמש רק החל מ-otDnsBrowseCallback.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[out] aNameBuffer
מאגר נתונים זמני למערך char כדי להפיק את שם השירות (אסור שיהיה 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()) תשמש כתצורה של השאילתה הזו. בשדה aConfig שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.

פרטים
פרמטרים
[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 נקבעת כברירת מחדל על סמך קבוצה של אפשרויות תצורה ב-OT כמו OPENTHREAD_CONFIG_DNS_CLIENT_DEFAULT_SERVER_IP6_ADDRESS, _DEFAULT_SERVER_PORT, _DEFAULT_RESPONSE_TIMEOUT וכו' (כל אפשרויות ההגדרה הקשורות ל-config/dns_client.h מפורטות).

פרטים
פרמטרים
[in] aInstance
מצביע למופע של OpenThread.
החזרות
הפניה להגדרה הנוכחית המוגדרת כברירת מחדל, שמשמשת את לקוח ה-DNS.

otDnsClientResolveAddress

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

נשלחת שאילתת DNS לפענוח כתובת עבור רשומות AAAA (IPv6) של שם מארח נתון.

הערך של aConfig יכול להיות NULL. במקרה הזה, הגדרת ברירת המחדל (מ-otDnsClientGetDefaultConfig()) תשמש כתצורה של השאילתה הזו. בשדה aConfig שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.

פרטים
פרמטרים
[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
לא ניתן לשלוח שאילתה כי ממשק Thread אינו פעיל.

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, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל.

פרטים
פרמטרים
[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
לא ניתן לשלוח שאילתה כי ממשק Thread אינו פעיל.

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().

פרטים
פרמטרים
[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()) תשמש כתצורה של השאילתה הזו. בשדה aConfig שאינו NULL, ניתן להשאיר חלק מהשדות לא מזוהים (הערך אפס). השדות שלא צוינו יוחלפו בערכים מהגדרת ברירת המחדל. אי אפשר להשתמש בפונקציה הזו כאשר mServiceMode בתצורת DNS מוגדרת ל-OT_DNS_SERVICE_MODE_TXT (כלומר, שליחת שאילתות על רשומת TXT בלבד) והיא תחזיר OT_ERROR_INVALID_ARGS.

פועלת בדומה ל-otDnsClientResolveService() שליחת שאילתות עבור רשומות SRV ו-TXT. עם זאת, אם השרת/הפותר לא מספק רשומות AAAA/A עבור שם המארח בתגובה לשאילתת SRV (בקטע 'נתונים נוספים'), הוא יבצע פענוח של שם המארח (בשליחת שאילתת AAAA) עבור שם המארח שהתגלה מרשומת ה-SRV. הקריאה החוזרת (callback) 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. במקרה כזה, הגדרות ברירת המחדל יהיו ברירת המחדל מתוך אפשרויות התצורה 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 בתצורת ברירת המחדל.

פרטים
פרמטרים
[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 קודדו בהצלחה, aTxtData ו-aTxtDataLength עודכנו.
OT_ERROR_INVALID_ARGS
הערך aTxtEntries לא חוקי.
OT_ERROR_NO_BUS
לא ניתן להתאים את הנתונים המקודדים במאגר הנתונים הזמני aTxtData ל-aTxtDataLength שלו.

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.

פרטים
פרמטרים
[in] aIterator
מצביע לאטרטור (אסור שיהיה NULL).
[out] aEntry
מצביע למבנה של otDnsTxtEntry כדי להפיק פלט של הרשומה המנותחת/נקראה (אסור שיהיה NULL).
ערכים מוחזרים
OT_ERROR_NONE
הערך הבא נותח בהצלחה. האפליקציה aEntry עודכנה.
OT_ERROR_NOT_FOUND
אין יותר רשומות בנתוני ה-TXT.
OT_ERROR_PARSE
הפורמט של נתוני ה-TXT מ-aIterator לא תקין.

otDnsInitTxtEntryIterator

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

מפעיל איטרטור של רשומות TXT.

מצביע המאגר aTxtData והתוכן שלו חייבים להישאר ללא שינוי בזמן השימוש באובייקט aIterator.

פרטים
פרמטרים
[in] aIterator
מצביע לאטרטור שיש לאתחל (לא צריך להיות NULL).
[in] aTxtData
מצביע למאגר המכיל את נתוני ה-TXT המקודדים.
[in] aTxtDataLength
האורך (מספר הבייטים) של aTxtData.

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 מוחזר.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[in] aHostName
שם המארח שיש לקבל את הכתובת (חייב להיות NULL).
[in] aIndex
האינדקס של רשומת הכתובת שצריך לאחזר.
[out] aAddress
מצביע לכתובת IPv6 ליצירת פלט של הכתובת (חייב לא להיות NULL).
[out] aTtl
מצביע אל uint32_t כדי להפיק TTL עבור הכתובת. הערך יכול להיות NULL אם המתקשר לא רוצה לקבל את ה-TTL.
ערכים מוחזרים
OT_ERROR_NONE
הכתובת נקראה בהצלחה.
OT_ERROR_NOT_FOUND
אין רשומת כתובת עבור aHostname ב-aResponse בשעה aIndex.
OT_ERROR_PARSE
לא ניתן לנתח את הרשומות בaResponse.

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 usingotDnsServiceResponseGetHostAddress()'.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[out] aServiceInfo
A 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.

פרטים
פרמטרים
[in] aResponse
לחיצה על העכבר כדי להגיע לתשובה.
[out] aLabelBuffer
מאגר נתונים זמני למערך תווים שיפלט את התווית של מופע השירות (אסור שיהיה NULL).
[in] aLabelBufferSize
גודל של aLabelBuffer.
[out] aNameBuffer
מאגר זמני למערך char כדי להפיק את הפלט של שאר שם השירות (יכול להיות NULL אם המשתמש לא מעוניין לקבל את השם.
[in] aNameBufferSize
גודל של aNameBuffer.
ערכים מוחזרים
OT_ERROR_NONE
שם השירות נקרא בהצלחה.
OT_ERROR_NO_BUFS
התווית או השם לא מתאימים למאגרי האחסון הנתונים.

otDnsSetNameCompressionEnabled

void otDnsSetNameCompressionEnabled(
  bool aEnabled
)

המדיניות מפעילה או משביתה את המצב 'דחיסת שם DNS'.

דחיסת שם ה-DNS מופעלת כברירת מחדל. כשהאפשרות הזו מושבתת, שמות DNS מתווספים כמלאים ואף פעם לא דחוסים. אפשרות זו רלוונטית למודולים של לקוח/שרת DNS ו-SRP של OpenThread.

אפשרות זו מיועדת לבדיקה בלבד, וזמינה כאשר ההגדרה OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE מופעלת.

חשוב לשים לב שבמקרה שנעשה שימוש ב-OPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE, המצב הזה חל על כל המופעים של OpenThread (כלומר קריאה לפונקציה הזו מפעילה או משביתה את מצב הדחיסה בכל המופעים של OpenThread).

פרטים
פרמטרים
[in] aEnabled
TRUE כדי להפעיל את המצב 'דחיסת שמות DNS' ו-FALSE כדי להשבית.

פקודות מאקרו

OT_DNS_MAX_LABEL_SIZE

 OT_DNS_MAX_LABEL_SIZE 64

גודל מקסימלי של מחרוזת תווית (כולל תו ריק בסוף המחרוזת).

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. אפשר לקרוא מידע נוסף או לתרום למסמכי התיעוד שלנו בדף מקורות מידע.