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:319:
return low_low_mkquery(dnameorquery); else return low_mkquery(random(65536),dnameorquery,cl,type); } string decode_domain(string msg, array(int) n) { int pos=n[0]; int next=-1; array(string) ret=({});
+
int labels = 0;
while(pos < sizeof(msg)) {
-
+
labels++;
+
if (labels > 255)
+
error("Bad domain name. Too many labels.\n");
switch(int len=msg[pos]) { case 0: if(next==-1) next=pos+1; n[0]=next; return ret*"."; case 1..63: pos+=len+1; ret+=({msg[pos-len..pos-1]});