pike.git
/
lib
/
modules
/
Protocols.pmod
/
DNS.pmod
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/lib/modules/Protocols.pmod/DNS.pmod:1:
-
// $Id: DNS.pmod,v 1.
91
2007
/
04
/
07
13
:
30
:
13
grubba Exp $
+
// $Id: DNS.pmod,v 1.
92
2008
/
01
/
05
14
:
45
:
21
grubba Exp $
// Not yet finished -- Fredrik Hubinette //! Domain Name System //! RFC 1035 #pike __REAL_VERSION__ constant NOERROR=0; constant FORMERR=1; constant SERVFAIL=2;
pike.git/lib/modules/Protocols.pmod/DNS.pmod:467:
m->qr=(m->c1>>7)&1; m->rcode=m->c2&15; m->cd=(m->c2>>4)&1; m->ad=(m->c2>>5)&1; m->ra=(m->c2>>7)&1; m->length=sizeof(s); array(string) tmp=({});
-
int e;
+
array(int) next=({12}); m->qd = allocate(m->qdcount); for(int i=0; i<m->qdcount; i++) { m->qd[i]=(["name":decode_domain(s,next)]); sscanf(s[next[0]..next[0]+3],"%2c%2c",m->qd[i]->type, m->qd[i]->cl); next[0]+=4; } m->an=decode_entries(s,m->ancount,next); m->ns=decode_entries(s,m->nscount,next);
pike.git/lib/modules/Protocols.pmod/DNS.pmod:1317:
void ip_to_host(string ip, function callback, mixed ... args) { do_query(arpa_from_ip(ip), C_IN, T_PTR, generic_get, -1, 0, T_PTR, "ptr", ip, callback, @args); } void get_mx_all(string host, function callback, mixed ... args) {
-
mapping m;
+
if(sizeof(domains) && host[-1] != '.' && sizeof(host/".") < 3) { do_query(host, C_IN, T_MX, generic_get, 0, 1, T_MX, "mx", host, callback, @args); } else { do_query(host, C_IN, T_MX, generic_get, -1, 1, T_MX, "mx", host, callback, @args); } } void get_mx(string host, function callback, mixed ... args)