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:206:
return m; } }; class client { inherit protocol; static private int is_ip(string ip) {
-
return(replace(
rest
,
+
return(replace(
ip
,
({ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "." }),
-
({ "", "", "", "", "", "", "", "", ""
;
"", "" })) == "");
+
({ "", "", "", "", "", "", "", "", ""
,
"", "" })) == "");
} static private mapping etc_hosts; static private string match_etc_hosts(string host) { if (!etc_hosts) { string raw = Stdio.read_file("/etc/hosts");
-
etc_hosts = ([ "localhost"
,
"127.0.0.1" ]);
+
etc_hosts = ([ "localhost"
:
"127.0.0.1" ]);
if (raw) { foreach(raw/"\n", string line) { // Handle comments, and split the line on white-space
-
line = replace((line/"#")[0], "\t", " ");
+
line =
lower_case(
replace((line/"#")[0], "\t", " ")
)
;
array arr = (line/" ") - ({ "" }); if (sizeof(arr) > 1) { if (is_ip(arr[0])) {
-
foreach(arr[1..], name) {
+
foreach(arr[1..],
string
name) {
etc_hosts[name] = arr[0]; } } else { // Bad /etc/hosts entry ignored. } } } } else { // Couldn't read /etc/hosts. } }
-
return(etc_hosts[host]);
+
return(etc_hosts[
lower_case(
host
)
]);
} array(string) nameservers = ({}); array domains = ({}); void create(void|string server) { if(!server) { string domain; string resolv_conf = Stdio.read_file("/etc/resolv.conf");
pike.git/lib/modules/Protocols.pmod/DNS.pmod:299:
nameservers += ({ rest }); } break; } } if (!sizeof(nameservers)) { nameservers = ({ "127.0.0.1" }); } if(domain) domains = ({ domain }) + domains;
+
domains = Array.map(domains, lambda(string d) {
+
if (d[-1] == '.') {
+
return d[..sizeof(d)-2];
+
}
+
return d;
+
});
} else { nameservers= ({ server }); } } // Warning: NO TIMEOUT mapping do_sync_query(string s) { object udp=spider.dumUDP();