dns.c yra Priimam kampas, grįžtamojo ir ne blokuoti DNS biblioteka, kuri gyvena sincle .c failas. Taip pat puikiai veikia kaip nebaigtas resolver.
Core API pastatytas aplink faktinį DNS paketo; kaip bendrinis, kaip pats DNS. Tai daro užklausų ir manipuliuoti, išskyrus A, aaaa, ir PTR daug lengviau įrašus.
Restartable įrašų iteratory vartotojo nurodytą rūšiavimo su. Iteracja per MX ar SRV įrašų semantinio kad (ty privilegijuotųjų ir prioritetinių) yra taip paprasta, kaip:
dns_rr_foreach (& rr, paketas, .type = DNS_T_SRV, .sort = & dns_rr_i_order) {
& Nbsp; ...
}
Arba į restartable būdu:
jungiklis (my-> valstybinė) {
atveju 0:
& Nbsp; dns_rr_i_init (& my-> rr_i);
& Nbsp; my-> rr_i.type = DNS_T_SRV;
& Nbsp; my-> rr_i.sort = & dns_rr_i_order;
& Nbsp; my-> valstybė ++;
1 atvejis:
& Nbsp; o (dns_rr_grep (& rr, 1, & my-> rr_i, my-> paketas, ir klaida)) {
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; / * Grįžimas į renginį kilpos * /
& Nbsp; }
}
Palaiko "protingus" klausimus. Kai įjungta į pagrindinę resolver, užklausos dėl NS, MX, ir SRV įrašus visada stengiasi išspręsti šį RDATA kanoninė kompiuterio vardą į rekordinį. Šeimininkai, kurie yra ne-Kompetencijos sritis ir / arba kurių autoritetingų serveris neteikia klijai yra Automagically išspręsta ir grįžo į atsakymų paketą. Palaikomos tiek nebaigtas ir rekursinis išsprendimo momentus. "Smart" rezoliucija taip pat pastatė į adresų info (ty getaddrinfo ()) API.
Atsitiktinių imčių kodo uostai ir QIDs.
Ne blokavimas, naujo dalyvio, iteratorius pagrindu getaddrinfo () sąsaja: dns_ai_open (), dns_ai_nextent (), dns_ai_close (). Semantiškai kaip getaddrinfo (), tačiau taip pat atsižvelgiama rekordinį tipą. Pakartoti per (konstrukto addrinfo) objektai, net jei užklausų MX, NS, SRV (ET AL) šeimininką. Yra mažiau latentinis daro "protingus" klausimus šiuo būdu, nes bet reikia rekursija gali būti atidėtas (ir greičiausiai nebus būtina, nes pirmasis kompiuteris tikriausiai pakanka).
Ką Kas naujo , šioje laidoje:.
- Nustatyti klaidą kur dns_srv_print () nepavyko išspausdinti krašte, pasiuntė kamuolį nul charakterį
Kas naujo versija 20100813:
- Pridėti socket.c į contrib /. Aš naudoju ir plėtoti tai per metus arba tiek per kitus projektus. Konceptualiai tai paprasta įvynioti aplink BSD lizdams API, kad rankenos DNS paieška "ir SSL derybos skaidriai ir asinchroniškai.
- Sukūrę jungtį su so_open (), skambintojo nustato atitinkamus režimus, pvz so_connect () ir so_starttls (). Skambintojo tada gali laukti jiems užbaigti (jie grįžti EAGAIN jei reikia), ar daugiau patogiai ignoruoti rezultatą ir perkelti tiesiai į bandant skaito ir rašo. Klaidos iš ankstesnių valstybių, įskaitant EAGAIN, bus grąžintas į bet skaityti ar rašyti bandymus, kol tos valstybės, yra baigta.
- Naudoti so_pollfd () ir so_events () kaip ir dns.c kolegomis. Jie grįžta, atitinkamai, tinkamus deskriptorių ir renginių vėliavas, priklausomai nuo kurios valstybės vidaus yra vykdomas. Prašymas nebūtinai nerimauti tik apie išdavimo loginius skaitymo / rašymo operacijos.
Kas naujo versija 20100709:
- Nustatyti MinGW statyti pridedant vidaus dns_strsep () ir DNS_ETIMEDOUT.
Kas naujo versija 20100708:
- Patikrinkite ilgio grąžina dns_d_expand galiojimą () prieš perduoti ją kaip šaltinio ilgio dns_d_cleave () viduje dns_hints_query () dar galime padaryti negaliojantį skaityti. Ačiū Anonymous.
- Tag sant-20100708 (d493a0f7d8f1d67ef312a7ca3e142660895b32d8).
- PASTABA: Pamiršote guzas DNS_V_REL už 20100708 išleidimo, ir dėl naujų statistika sąsaja buvo kamieno pat turėjo Iškilioji DNS_V_API. Per vėlu.
Kas naujo 20100515 versija:
- Baigus kartoti per vardų serveriai resolv.conf: options.attempts kartus.
- Įgyvendinti NPN kanoninė pavadinimas užklausos ribas, kai veikia MX ir PTR mechanizmus.
- Pridėti dns_p_study (), kad mokytis ir laikyti skyrių diapazonus.
- Sekite skyriuje svyruoja dns_p_push ().
- refactor dns_p_merge (), siekiant pagerinti efektyvumą didelėms paketus.
- Pridėti dns_p_make (), kad malloc'ing ir inicijuojant naują paketą.
- Įgyvendinti NPN laikotarpio užklausos ribas. Pakeitė struct spf_limits išdėstymą tikintis vykdymo ribas MX ir PTR priimančiųjų užklausomis.
- Nustatyti klaidą į VM instrukcijų generatorių už šuolis indeksų daugiau nei 255.
Kas naujo versija 20100416:.
- Pridėta SSHFP parama
- Tag sant-20100416 (5bd9963e693510e485a1f081f6c98a95d84debfe).
- 90% ištrauka norma OpenSPF bandymų komplektą. Reikia, kad būtų imituotos laikus perduoti TempError bandymus. Kai kurie iš gramatikos testus yra diskutuotinas.
- Pridėta OpenSPF yaml bandymo komplekto procesorius. Reikalingas libyaml.
Kas naujo versijoje 0.5:
- Nustatyti klaidą, jei mes ne atsarginis nuo & quot; įpareigoti & quot ; būdas & quot; failą & quot; metodas, jei recurse vėliava buvo išjungta.
- Paieška generatorius gali pasikeitė vertę QName. Taigi, dns_ai_nextent () canonicalize į vertę QName iš atsakymo, o ne vertę QName pradžių pateikiamas resolver.
Komentarai nerastas