الاسم
- Provided by: manpages-ar-dev (Version: 4.31.0-1)
- Source: manpages-l10n
- Report a bug
مكتبة الحلّال (libresolv، -lresolv)
#include <netinet/in.h> #include <arpa/nameser.h> #include <resolv.h>
struct __res_state; typedef struct __res_state *res_state;
int res_ninit(res_state statep);
void res_nclose(res_state statep);
int res_nquery(int anslen;
res_state statep,
const char *dname,
int class, int type,
unsigned char answer[anslen], int anslen);
int res_nsearch(int anslen;
res_state statep,
const char *dname,
int class, int type,
unsigned char answer[anslen], int anslen);
int res_nquerydomain(int anslen;
res_state statep,
const char *name, const char *domain,
int class, int type,
unsigned char answer[anslen], int anslen);
int res_nmkquery(int datalen, int buflen;
res_state statep, int op,
const char *dname,
int class, int type,
const unsigned char data[datalen], int datalen,
const unsigned char *newrr,
unsigned char buf[buflen], int buflen);
int res_nsend(int msglen, int anslen;
res_state statep,
const unsigned char msg[msglen], int msglen,
unsigned char answer[anslen], int anslen);
int dn_comp(int length;
const char *exp_dn,
unsigned char comp_dn[length], int length,
unsigned char **dnptrs,
unsigned char **lastdnptr);
int dn_expand(int length;
const unsigned char *msg,
const unsigned char *eomorig,
const unsigned char *comp_dn,
char exp_dn[length], int length);
[[deprecated]] extern struct __res_state _res;
[[deprecated]] int res_init(void);
[[deprecated]]
int res_query(int anslen;
const char *dname,
int class, int type,
unsigned char answer[anslen], int anslen);
[[deprecated]]
int res_search(int anslen;
const char *dname,
int class, int type,
unsigned char answer[anslen], int anslen);
[[deprecated]]
int res_querydomain(int anslen;
const char *name, const char *domain,
int class, int type,
unsigned char answer[anslen], int anslen);
[[deprecated]]
int res_mkquery(int datalen, int buflen;
int op,
const char *dname,
int class, int type,
const unsigned char data[datalen], int datalen,
const unsigned char *newrr,
unsigned char buf[buflen], int buflen);
[[deprecated]]
int res_send(int msglen, int anslen;
const unsigned char msg[msglen], int msglen,
unsigned char answer[anslen], int anslen);
ملاحظة: هذه الصفحة غير مكتملة (دوال الحل المتنوعة المقدمة من glibc غير موصوفة) وربما قديمة.
الدوال الموصوفة أدناه تُجري استعلامات وتُفسر الردود من خوادم أسماء النطاقات على الإنترنت.
تتكون واجهة البرمجة من مجموعة دوال أكثر حداثة وقابلة لإعادة الدخول ومجموعة أقدم من الدوال غير القابلة لإعادة الدخول والتي تم استبدالها. تستخدم واجهات الحل التقليدية مثل res_init() و res_query() بعض الحالة الثابتة (العامة) المخزنة في بنية _res، مما يجعل هذه الدوال غير آمنة للخيوط. قدم BIND 8.2 مجموعة من الواجهات الجديدة res_ninit() و res_nquery() وهكذا، والتي تأخذ res_state كوسيطها الأول، لذا يمكنك استخدام حالة حل خاصة بكل خيط.
تقرأ الدالتان res_ninit() و res_init() ملفات الإعداد (انظر resolv.conf(5)) للحصول على اسم النطاق المبدئي وعنوان (عناوين) خادم الأسماء. إذا لم يُعطَ أي خادم، يُحاول المضيف المحلي. إذا لم يُعطَ أي نطاق، يُستخدم النطاق المرتبط بالمضيف المحلي. يمكن تجاوزه باستخدام متغير البيئة LOCALDOMAIN. تُنفذ res_ninit() أو res_init() عادةً بواسطة أول استدعاء لإحدى الدوال الأخرى. كل استدعاء لـ res_ninit() يتطلب استدعاءً مقابلًا لـ res_nclose() لتحرير الذاكرة المخصصة بواسطة res_ninit() والاستدعاءات اللاحقة لـ res_nquery().
تستعلم الدالتان res_nquery() و res_query() خادم الأسماء عن اسم النطاق المؤهل بالكامل name من type و class المحددين. يُترك الرد في المخزن المؤقت answer بطول anslen المقدم من المستدعي.
تُجري الدالتان res_nsearch() و res_search() استعلامًا وتنتظران الرد مثل res_nquery() و res_query()، ولكن بالإضافة إلى ذلك تنفذان القواعد المبدئية وقواعد البحث التي يتحكم بها RES_DEFNAMES و RES_DNSRCH (انظر وصف خيارات _res أدناه).
تُجري الدالتان res_nquerydomain() و res_querydomain() استعلامًا باستخدام res_nquery()/res_query() على تسلسل name و domain.
الدوال التالية هي إجراءات منخفضة المستوى تُستخدم بواسطة res_nquery()/res_query().
تبني الدالتان res_nmkquery() و res_mkquery() رسالة استعلام في buf بطول buflen لاسم النطاق dname. نوع الاستعلام op هو أحد التالي (عادةً QUERY):
newrr غير مستخدم حاليًا.
ترسل الدالتان res_nsend() و res_send() استعلامًا منسقًا مسبقًا مُعطى في msg بطول msglen وتعيدان الرد في answer الذي طوله anslen. ستستدعيان res_ninit()/res_init() إذا لم تكن قد استُدعيت بالفعل.
تضغط الدالة dn_comp() اسم النطاق exp_dn وتخزنه في المخزن المؤقت comp_dn بطول length. يستخدم الضغط مصفوفة من المؤشرات dnptrs إلى الأسماء المضغوطة سابقًا في الرسالة الحالية. يشير المؤشر الأول إلى بداية الرسالة وتنتهي القائمة بـ NULL. يُحدد حد المصفوفة بواسطة lastdnptr. إذا كان dnptr هو NULL، لا تُضغط أسماء النطاقات. إذا كان lastdnptr هو NULL، لا تُحدث قائمة التسميات.
توسع الدالة dn_expand() اسم النطاق المضغوط comp_dn إلى اسم نطاق كامل، يُوضع في المخزن المؤقت exp_dn بحجم length. الاسم المضغوط موجود في رسالة استعلام أو رد، ويشير msg إلى بداية الرسالة.
تستخدم إجراءات الحل معلومات الإعداد والحالة الموجودة في بنية __res_state (إما مُمررة كوسيط statep، أو في المتغير العام _res، في حالة الدوال الأقدم غير القابلة لإعادة الدخول). الحقل الوحيد من هذه البنية الذي يُتعامل معه عادةً من قبل المستخدم هو حقل options. يمكن أن يحتوي هذا الحقل على "أو" أحادي البت للخيارات التالية:
الدالتان res_ninit() و res_init() تُرجعان 0 عند النجاح، أو -1 إذا حدث خطأ.
الدوال res_nquery() و res_query() و res_nsearch() و res_search() و res_nquerydomain() و res_querydomain() و res_nmkquery() و res_mkquery() و res_nsend() و res_send() تُرجع طول الاستجابة، أو -1 إذا حدث خطأ.
الدالتان dn_comp() و dn_expand() تُرجعان طول الاسم المضغوط، أو -1 إذا حدث خطأ.
في حالة إرجاع خطأ من res_nquery() أو res_query() أو res_nsearch() أو res_search() أو res_nquerydomain() أو res_querydomain()، يمكن الرجوع إلى المتغير العام h_errno (انظر gethostbyname(3)) لتحديد الخطأ.
للاطلاع على شرح للمصطلحات المستخدمة في هذا القسم، انظر attributes(7).
| الواجهة | السمة | القيمة |
| res_ninit(), res_nclose(), res_nquery(), res_nsearch(), res_nquerydomain(), res_nsend() | سلامة الخيوط | المنطقة (locale) آمنة لتعدد المسالك (MT-Safe) |
| res_nmkquery(), dn_comp(), dn_expand() | سلامة الخيوط | MT-Safe |
لا شيء.
4.3BSD.
gethostbyname(3) و resolv.conf(5) و resolver(5) و hostname(7) و named(8)
ملف المصدر لمكتبة C لجنو هو resolv/README.
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.