net.dns: More reliable parsing of resolv.conf - allow multiple nameserver IPs on one line (thanks dersd)
--- a/net/dns.lua Fri Mar 05 16:45:46 2010 +0000
+++ b/net/dns.lua Fri Mar 05 18:15:08 2010 +0000
@@ -538,8 +538,13 @@
local resolv_conf = io.open("/etc/resolv.conf");
if resolv_conf then
for line in resolv_conf:lines() do
- local address = line:gsub("#.*$", ""):match('^%s*nameserver%s+(%d+%.%d+%.%d+%.%d+)%s*$');
- if address then self:addnameserver(address) end
+ line = line:gsub("#.*$", "")
+ :match('^%s*nameserver%s+(.*)%s*$');
+ if line then
+ line:gsub("%f[%d.](%d+%.%d+%.%d+%.%d+)%f[^%d.]", function (address)
+ self:addnameserver(address)
+ end);
+ end
end
end
if not self.server or #self.server == 0 then