dns.c bir sincle C fayl yaşayır recursive və qeyri-blocker DNS resolver kitabxana reentrant edir. Həmçinin qaralama halındadır çözücü kimi böyük işləyir.
Faktiki DNS paket ətrafında inşa Core API; DNS özü kimi ümumi olaraq. Bu querying və A, AAAA və Ptr daha asan başqa qeydlər manipulyasiya edir.
Istifadəçi müəyyən çeşidlənməsi ilə restartable rekord iterators. MX və ya semantik üçün SRV qeydlər (yəni üstünlük və prioritet) üzərində iterating kimi sadədir:
dns_rr_foreach (və rr, paket, Növü = DNS_T_SRV, .sort = & dns_rr_i_order) {
& Nbsp; ...
}
Və ya restartable şəkildə:
switch (my-> ştat) {
halda 0:
& Nbsp; dns_rr_i_init (və my-> rr_i);
& Nbsp; my-> rr_i.type = DNS_T_SRV;
& Nbsp; my-> rr_i.sort = & dns_rr_i_order;
& Nbsp; my-> dövlət ++;
halda 1:
& Nbsp; isə (dns_rr_grep (və rr, 1 və my-> rr_i, my-> paket, və səhv)) {
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; / * Hadisə loop * daxil qaytarılması /
& Nbsp; }
}
"Ağıllı" sorğu dəstəkləyir. Əsas çözücü effektiv zaman, NS, MX və SRV qeydlər üçün sorğu həmişə bir rekord RDATA canonical host adı həll etməyə çalışacaqdır. Nüfuzlu server yapışqan təmin etmir deyil-bailiwick və / və ya olan olan Host automagically həll və cavab paket qaytarılır. Stub və recursive resolver instantiations üçün dəstəklənir. "Smart" Qətnamədə həmçinin ünvan info daxil (yəni getaddrinfo ()) API inşa edilmişdir.
Mənbə port və QIDs randomizə.
Qeyri-blocker, yenidən abituriyent, iterator-based getaddrinfo () interface: dns_ai_open (), dns_ai_nextent (), dns_ai_close (). Semantically yalnız getaddrinfo kimi (), həm də rekord növü edir. (Struct addrinfo) bir MX, NS, SRV (et al) ev sahibliyi querying hətta obyektlərin üzərində təkrarlamaq. Hər hansı zəruri recursion təxirə salına bilər (ilk host güman ki, kifayət çünki ehtimalla, lazım olmayacaq)-ci ildən bu şəkildə "ağıllı" sorğu bunu az gizlilik var.
nə Bu azad yeni .
- dns_srv_print () bir arxada NUL xarakter çap bilmədi Fix bug
versiyası 20100813 yeni nədir:
- contrib / daxil socket.c əlavə edin. Mən istifadə və bir il və ya belə ki, digər layihələr çərçivəsində bu inkişaf etdik. Konseptual Bu şəffaf və asynchronously DNS və SSL danışıqlar emal BSD sockets API ətrafında sadə banderol var.
- so_connect () və so_starttls (). zəng onlara başa çatdırmaq üçün, sonra (zəruri olduqda onlar EAGAIN qayıtmaq lazımdır) gözləmək, və ya daha çox rahat nəticə ignore və oxuyur və yazır cəhd birbaşa hərəkət edə bilər. EAGAIN, o cümlədən əvvəlki dövlətlər olan səhvlər, hər hansı bir oxumaq döndü və ya dövlətlər tam qədər cəhdləri yazmaq olacaq.
- yalnız dns.c həmkarları kimi istifadə so_pollfd () və so_events (). Onlar müvafiq olaraq, daxili dövlət icra edən asılı olaraq müvafiq descriptor və hadisə bayraqları qayıt. proqram yalnız məntiqi oxumaq / yazmaq əməliyyatları verilməsi narahat lazımdır.
So_open (), zəng müvafiq rejimi, məsələn, müəyyən bir yuva yaratmaq sonra
versiyası 20100709 yeni nədir:
- MinGW daxili dns_strsep () və DNS_ETIMEDOUT əlavə qurmaq Fix.
versiyası 20100708 yeni nədir:
- dns_d_expand geri uzunluğu qüvvədə edin () əvvəl dns_hints_query daxilində () dns_d_cleave mənbə uzunluğu kimi keçən () başqa biz yalnış oxu edə bilər. Anonymous üçün təşəkkür edirik.
- Tag rel-20100708 (d493a0f7d8f1d67ef312a7ca3e142660895b32d8).
- Qeyd: 20100708 buraxılması üçün DNS_V_REL qabar unutmusunuz və yeni stats interface yük idi, çünki, həmçinin DNS_V_API bumped olmalıdır. Çox gec indi.
versiyası 20100515 yeni nədir:
- Loop nameservers resolv.conf üzərində: options.attempts dəfə.
- SPF canonical adı sorğu məhdudiyyətlər həyata.
- öyrənmək dns_p_study () və mağaza bölmə silsilələri əlavə edin.
- hissəsinin takip edin dns_p_push dəyişir ().
- Refactor dns_p_merge () böyük paket performansını yaxşılaşdırılması üçün.
- malloc'ing və yeni paket başlatılıyor üçün dns_p_make () əlavə edin.
- SPF müddət sorğu məhdudiyyətlər həyata. MX və PTR host sorğu məhdudiyyətlər tətbiq ərəfəsində struct spf_limits layout dəyişdi.
- Fix bug.
MX və PTR mexanizmləri çalıştırırken
Artıq 255 jump göstəriciləri üçün VM təlimat generator
versiyası 20100416 yeni nədir.
- Added SSHFP dəstək
- Tag rel-20100416 (5bd9963e693510e485a1f081f6c98a95d84debfe).
- 90% keçid dərəcəsi. TempError test keçmək zaman aşımları simülasyonu lazımdır. Qrammatika testlər bəzi mübahisəli var.
- Added OpenSPF YAML test suite prosessor. Tələb libyaml.
OpenSPF test suite
nədir Versiya 0.5 Yeni
- Biz & quot olan fallback etməyib Fix bug, bind & quot ; fayl və quot; metodu quot & etmək; recurse bayrağı əlil əgər üsulu.
- Axtarış generator qname dəyişmiş ola bilər. Belə ki, dns_ai_nextent (The) cavab deyil, ilk çözücü təqdim qname olan qname canonicalize.
Şərhlər tapılmadı