pike.git / lib / modules / Protocols.pmod / DNS.pmod

version» Context lines:

pike.git/lib/modules/Protocols.pmod/DNS.pmod:1782:       send(nameservers[nsno],53,r->req);    call_out(retry,RETRY_DELAY,r,nsno+1);    }       //!    void do_query(string domain, int cl, int type,    function(string,mapping,mixed...:void) callback,    mixed ... args)    { +  if (!callback) return UNDEFINED;    for(int e=next_client ? 100 : 256;e>=0;e--)    {    int lid = random(65536);    if(!catch { requests[lid]++; })    {    string req=low_mkquery(lid,domain,cl,type);       object r=Request();    r->req=req;    r->domain=domain;
pike.git/lib/modules/Protocols.pmod/DNS.pmod:1843:    protected private void generic_get(string d,    mapping answer,    int multi,    int all,    int type,    string field,    string domain,    function callback,    mixed ... args)    { +  if (!callback) return UNDEFINED;    if(!answer || !answer->an || !sizeof(answer->an))    {    if(multi == -1 || multi >= sizeof(domains)) {    // Either a request without multi (ip, or FQDN) or we have tried all    // domains.    callback(domain,0,@args);    } else {    // Multiple domain request. Try the next one...    do_query(domain+"."+domains[multi], C_IN, type,    generic_get, ++multi, all, type, field, domain,
pike.git/lib/modules/Protocols.pmod/DNS.pmod:2016:    string writebuf="",readbuf="";       void create()    {    sock=Stdio.File();    sock->async_connect(nameservers[0], 53, connectedcb);    }       void connectedcb(int ok)    { +  if (!callback) return;    if (!ok) {callback(domain, 0, @args); return;}    sock->set_nonblocking(readcb, writecb, closecb);    writebuf=sprintf("%2H",req);    writecb();    }       void readcb(mixed id,string data)    {    readbuf+=data;    if (sscanf(readbuf,"%2H",string ret))