Skip to content
Snippets Groups Projects
Commit 3b67e90a authored by Henrik (Grubba) Grubbström's avatar Henrik (Grubba) Grubbström
Browse files

Fixed several bugs.

Rev: lib/modules/Protocols.pmod/DNS.pmod:1.10
parent 8d35ffaa
No related branches found
No related tags found
No related merge requests found
...@@ -213,9 +213,9 @@ class client { ...@@ -213,9 +213,9 @@ class client {
static private int is_ip(string ip) static private int is_ip(string ip)
{ {
return(replace(rest, return(replace(ip,
({ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "." }), ({ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "." }),
({ "", "", "", "", "", "", "", "", ""; "", "" })) == ""); ({ "", "", "", "", "", "", "", "", "", "", "" })) == "");
} }
static private mapping etc_hosts; static private mapping etc_hosts;
...@@ -225,17 +225,17 @@ class client { ...@@ -225,17 +225,17 @@ class client {
if (!etc_hosts) { if (!etc_hosts) {
string raw = Stdio.read_file("/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) { if (raw) {
foreach(raw/"\n", string line) { foreach(raw/"\n", string line) {
// Handle comments, and split the line on white-space // Handle comments, and split the line on white-space
line = replace((line/"#")[0], "\t", " "); line = lower_case(replace((line/"#")[0], "\t", " "));
array arr = (line/" ") - ({ "" }); array arr = (line/" ") - ({ "" });
if (sizeof(arr) > 1) { if (sizeof(arr) > 1) {
if (is_ip(arr[0])) { if (is_ip(arr[0])) {
foreach(arr[1..], name) { foreach(arr[1..], string name) {
etc_hosts[name] = arr[0]; etc_hosts[name] = arr[0];
} }
} else { } else {
...@@ -247,7 +247,7 @@ class client { ...@@ -247,7 +247,7 @@ class client {
// Couldn't read /etc/hosts. // Couldn't read /etc/hosts.
} }
} }
return(etc_hosts[host]); return(etc_hosts[lower_case(host)]);
} }
array(string) nameservers = ({}); array(string) nameservers = ({});
...@@ -306,6 +306,12 @@ class client { ...@@ -306,6 +306,12 @@ class client {
} }
if(domain) if(domain)
domains = ({ domain }) + domains; domains = ({ domain }) + domains;
domains = Array.map(domains, lambda(string d) {
if (d[-1] == '.') {
return d[..sizeof(d)-2];
}
return d;
});
} else { } else {
nameservers= ({ server }); nameservers= ({ server });
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment