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:620:
next[0]=tmp+m->len; ret+=({m}); } return ret; } mapping decode_res(string s) { mapping m=([]);
-
sscanf(s,"%2c%c%c%2c%2c%2c%2c",
+
if (
sscanf(s,"%2c%c%c%2c%2c%2c%2c",
m->id, m->c1, m->c2, m->qdcount, m->ancount, m->nscount,
-
m->arcount);
+
m->arcount)
!= 7)
+
error("Bad DNS request, failed to parse header\n")
;
m->rd=m->c1&1; m->tc=(m->c1>>1)&1; m->aa=(m->c1>>2)&1; m->opcode=(m->c1>>3)&15; 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;