dns.c

Software screenshot:
dns.c
Dettagli del software:
Versione: 20120805
Data di caricamento: 20 Feb 15
Sviluppatore: William Ahern
Licenza: Libero
Popolarità: 84

Rating: nan/5 (Total Votes: 0)

dns.c è un rientrante, ricorsiva e non-blocking libreria resolver DNS che risiede in un file .c sincle. Funziona anche grande come resolver stub.
API core costruito intorno pacchetto DNS effettivo; il più generico DNS sé. Questo rende l'interrogazione e manipolazione record diversi da A, AAAA, e PTR molto più facile.
Riavviabili iteratori registrare con l'ordinamento specificato dall'utente. Iterazione di MX o record SRV in ordine semantico (cioè preferenze e priorità) è semplice come:
dns_rr_foreach (e rr, packet, .type = DNS_T_SRV, .Sort = & dns_rr_i_order) {
& Nbsp; ...
}
O in modo riavviabile:
interruttore (my-> Stato) {
cassa 0:
& Nbsp; dns_rr_i_init (e mio-> rr_i);
& Nbsp; my-> rr_i.type = DNS_T_SRV;
& Nbsp; my-> rr_i.sort = & dns_rr_i_order;
& Nbsp; my-> Stato ++;
Caso 1:
& Nbsp; while (dns_rr_grep (e rr, 1, e mio-> rr_i, mio-> pacchetto, e errore)) {
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; / * Ritorno in ciclo di eventi * /
& Nbsp; }
}
Supporta le query "intelligenti". Quando è abilitata nel resolver nucleo, query per NS, MX, e record SRV sempre tentare di risolvere il nome host canonico RDATA in un record. Host che non sono e / o per le quali in bailiwick il server autorevole non fornisce la colla sono automagically risolti e restituiti nel pacchetto risposta. Supportato sia stub e istanze resolver ricorsive. Risoluzione "Smart" è anche costruito in info (cioè getaddrinfo) () API.
Randomizzato porte sorgente e QIDS.
Non-bloccante, rientrante, getaddrinfo basato iteratore-() Interfaccia: dns_ai_open (), dns_ai_nextent (), dns_ai_close (). Semanticamente come getaddrinfo (), ma prende anche un tipo di record. Iterare su (struct addrinfo) gli oggetti, anche quando si interroga un MX, NS, SRV (et al) host. C'è meno latenza fare domande "intelligenti" in questo modo, dal momento che ogni ricorsione necessaria può essere rinviata (e con ogni probabilità non sarà necessario, dal momento che il primo ospite è probabile sufficiente).

Cosa è nuovo in questa versione:.

  • Fix bug dove dns_srv_print () non è riuscito a stampare un carattere NUL finale

Cosa c'è di nuovo in versione 20100813:

  • Aggiungi socket.c in contrib /. Sto usando e lo sviluppo di questo per un anno o giù di lì all'interno di altri progetti. Concettualmente si tratta di un semplice involucro intorno al socket BSD API che gestisce le ricerche DNS e negoziazione SSL in modo trasparente e in modo asincrono.
  • Dopo aver creato un socket con so_open (), il chiamante stabilisce le modalità appropriate, ad esempio, so_connect () e so_starttls (). Il chiamante può quindi attendere per loro di completare (torneranno EAGAIN se necessario), o più comodamente ignorare il risultato e passare direttamente al tentativo di lettura e scrittura. Errori degli stati precedenti, tra cui EAGAIN, saranno restituite su ogni lettura o scrittura tentativi fino a quando questi Stati sono completi.
  • Usa so_pollfd () e so_events () proprio come le controparti dns.c. Ritornano, rispettivamente, le opportune descrittore ed eventi bandiere a seconda di quale stato interno è in esecuzione. L'applicazione deve preoccuparsi solo di emissione operazioni di lettura / scrittura logici.

Cosa c'è di nuovo in versione 20100709:

  • Fix MinGW costruire aggiungendo dns_strsep interna () e DNS_ETIMEDOUT.

Cosa c'è di nuovo in versione 20100708:

  • Verificare la validità della lunghezza restituito da dns_d_expand () prima passando come la lunghezza di origine per dns_d_cleave () all'interno di dns_hints_query () altro potremmo fare una lettura valida. Grazie ad Anonymous.
  • tag rel-20100708 (d493a0f7d8f1d67ef312a7ca3e142660895b32d8).
  • NOTE: Ho dimenticato di urto DNS_V_REL per il rilascio 20100708, e perché la nuova interfaccia di statistiche era nel bagagliaio anche avrebbe dovuto urtato DNS_V_API. Troppo tardi.

Cosa c'è di nuovo in versione 20100515:

  • Loop su nameserver resolv.conf: options.attempts volte.
  • Applicare SPF nome canonico limiti di query durante l'esecuzione di meccanismi MX e PTR.
  • Aggiungi dns_p_study () per imparare e gamme di sezione negozio.
  • Tenere traccia di sezione varia in dns_p_push ().
  • Refactor dns_p_merge () per migliorare le prestazioni su grandi pacchetti.
  • Aggiungi dns_p_make () per malloc'ing e inizializzazione di un nuovo pacchetto.
  • Applicare SPF limiti di query termine. Cambiato il layout di spf_limits struct in previsione di far rispettare i limiti sulle query host MX e PTR.
  • Bug Fix nel generatore di istruzione VM per gli indici di salto di oltre 255.

Cosa c'è di nuovo in versione 20100416:.

  • Aggiunto il supporto SSHFP
  • tag rel-20100416 (5bd9963e693510e485a1f081f6c98a95d84debfe).
  • tasso di passaggio del 90% sulla suite di test OpenSPF. Bisogno di simulare timeout per superare le prove TempError. Alcuni dei test di grammatica sono discutibili.
  • Aggiunto OpenSPF YAML processore suite di test. Richiede libyaml.

Cosa c'è di nuovo in versione 0.5:

  • Fix bug dove non abbiamo fallback da & quot; bind & quot ; metodo per & quot; il file & quot; metodo se il flag recurse è stato disattivato.
  • generatore di ricerca potrebbe avere modificato il qname. Così, in dns_ai_nextent () canonicalize il qname dalla risposta, non la qname inizialmente presentato al risolutore.

Programmi simili

dnspython
dnspython

14 Apr 15

dnstracer
dnstracer

2 Jun 15

DNS.py
DNS.py

2 Jun 15

Commenti a dns.c

I commenti non trovato
Aggiungi commento
Accendere le immagini!