dns.c הוא ריבוי כניסות, רקורסיבית וללא חסימת ספריית מפענח ה- DNS שנמצא בקובץ .ג sincle. עובד נהדר גם כפותר בדל.
API ליבה הבנוי סביב חבילת DNS בפועל; כמו הגנרית כDNS עצמו. זה עושה את שאילתות ומניפולציה רשומות אחרים מאשר, AAAA, וPTR הרבה יותר קל.
שיא iterators Restartable עם מיון למשתמש מסוים. Iterating על MX או רשומות SRV כדי סמנטי (כלומר העדפה וקדימות) הוא פשוט כמו:
dns_rr_foreach (& RR, מנות, .type = DNS_T_SRV, .sort = & dns_rr_i_order) {
& Nbsp; ...
}
או באופן restartable:
(מדינת אל->) מתג {
מקרה 0:
& Nbsp; dns_rr_i_init (ואל-> rr_i);
& Nbsp; אל-> rr_i.type = DNS_T_SRV;
& Nbsp; אל-> rr_i.sort = & dns_rr_i_order;
& Nbsp; > אל- מדינה ++;
מקרה 1:
& Nbsp; בעוד (dns_rr_grep (& RR, 1, ואל-> rr_i אל-> מנות, ושגיאה)) {
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; / * תמורה ל* אירוע לולאה /
& Nbsp; }
}
תומך בשאילתות "חכמות". כאשר מופעלים בפותר הליבה, שאילתות לNS, MX, ורשומות SRV תמיד ינסו לפתור את שם מארח קנוני RDATA לשיא. מארחים שאינם ו / או ב- שיפוט שהשרת הסמכותי אינו מספק דבק הם automagically נפתרו וחזרו במנת התשובה. נתמך עבור שני בדל וinstantiations פותר רקורסיבית. רזולוציה "חכמה" בנויה גם למידע הכתובת (כלומר getaddrinfo ()) API.
אקראי יציאות מקור וQIDs.
ללא חסימה, מחדש נכנס, getaddrinfo מבוסס איטרטור () ממשק: dns_ai_open (), dns_ai_nextent (), dns_ai_close (). סמנטי בדיוק כמו getaddrinfo (), אלא גם לוקח סוג רשומה. לחזר על (addrinfo struct) מתנגד גם כאשר שאילתות MX, NS, SRV מארח (et al). יש פחות זמן אחזור עושה שאילתות "חכמות" בדרך זו, שכן כל רקורסיה צורך אפשר לדחות (וככל הנראה לא יהיה צורך, שכן המארח הראשון הוא סביר מספיק).
מה חדש במהדורה זו:.
- באג תקן שבו dns_srv_print () לא הצליח להדפיס אופי NUL נגרר
מה חדש בגרסה 20100813:
- הוסף socket.c ל/ contrib. אני כבר משתמש ופיתוח זה במשך שנה או כך במסגרת פרויקטים אחרים. מבחינה מושגית זה עטיפה פשוטה סביב API שקעי BSD שמטפל בחיפושי DNS ומשא ומתן SSL בשקיפות ובאופן אסינכרוני.
מה חדש בגרסה 20100709:
- תקן MinGW לבנות על ידי הוספת dns_strsep הפנימי () וDNS_ETIMEDOUT.
מה חדש בגרסה 20100708:
- בדוק את תוקפו של האורך חזר על ידי dns_d_expand () לפני עובר בו כאורך המקור לdns_d_cleave () בתוך dns_hints_query () עוד אנחנו יכולים לעשות קריאה לא חוקית. תודה לאנונימי.
- תג rel-20,100,708. (d493a0f7d8f1d67ef312a7ca3e142660895b32d8)
- הערה: שכחתי להקפיץ DNS_V_REL לשחרור 20100708, וכי הממשק הסטטיסטיים החדש היה בתא המטען גם צריך נתקל DNS_V_API. עכשיו כבר מאוחר מדי.
מה חדש בגרסה 20100515:
- Loop על resolv.conf בשרתי שמות: פעמים options.attempts.
מה חדש בגרסה 20100416:.
- תמיכה נוסף SSHFP
- תג rel-20,100,416. (5bd9963e693510e485a1f081f6c98a95d84debfe)
- 90% שיעור מעבר על חבילת בדיקות OpenSPF. צריך לדמות פסקי זמן כדי לעבור את בדיקות TempError. חלק מבדיקות הדקדוק הם שנויים במחלוקת.
- מעבד חבילת בדיקות נוסף OpenSPF YAML. דורש libyaml.
מה חדש בגרסה 0.5:
- באג תקן שבו אנחנו לא fallback מ& quot; bind & quot ; שיטה ב & quot; קובץ & quot; שיטה אם הדגל רקורסיבית הושבת.
- גנרטור חיפוש אולי השתנה qname. אז, בdns_ai_nextent () canonicalize qname מהתשובה, לא qname הוגש במקור לפותר.
תגובות לא נמצא