# HG changeset patch # User Matthew Wild # Date 1267814102 0 # Node ID fd1d4d96a7080d2309919f087e25a02fd7f78b2a # Parent 27e8452cb42630eab80193b0095819c64a8c8d4d# Parent 6c0a081cd7665ed59d78064a668d40bab8fec5ea Merge with 0.7 diff -r 27e8452cb426 -r fd1d4d96a708 core/certmanager.lua --- a/core/certmanager.lua Mon Mar 01 21:03:17 2010 +0000 +++ b/core/certmanager.lua Fri Mar 05 18:35:02 2010 +0000 @@ -3,7 +3,7 @@ local ssl = ssl; local ssl_newcontext = ssl and ssl.newcontext; -local setmetatable = setmetatable; +local setmetatable, tostring = setmetatable, tostring; local prosody = prosody; @@ -39,8 +39,10 @@ reason = "Check that the path is correct, and the file exists."; elseif reason == "system lib" then reason = "Previous error (see logs), or other system error."; + elseif reason == "(null)" or not reason then + reason = "Check that the file exists and the permissions are correct"; else - reason = "Reason: "..tostring(reason or "unknown"):lower(); + reason = "Reason: "..tostring(reason):lower(); end log("error", "SSL/TLS: Failed to load %s: %s", file, reason); else diff -r 27e8452cb426 -r fd1d4d96a708 net/dns.lua --- a/net/dns.lua Mon Mar 01 21:03:17 2010 +0000 +++ b/net/dns.lua Fri Mar 05 18:35:02 2010 +0000 @@ -532,14 +532,19 @@ if not self.server or #self.server == 0 then -- TODO log warning about no nameservers, adding opendns servers as fallback self:addnameserver("208.67.222.222"); - self:addnameserver("208.67.220.220") ; + self:addnameserver("208.67.220.220"); end else -- posix 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 @@ -796,7 +801,7 @@ set(self.wanted, q.class, q.type, q.name, nil); end end - end + end return response; end diff -r 27e8452cb426 -r fd1d4d96a708 net/server_select.lua --- a/net/server_select.lua Mon Mar 01 21:03:17 2010 +0000 +++ b/net/server_select.lua Fri Mar 05 18:35:02 2010 +0000 @@ -430,7 +430,7 @@ end local _readbuffer = function( ) -- this function reads data local buffer, err, part = receive( socket, pattern ) -- receive buffer with "pattern" - if not err or (err == "wantread" or err == "timeout") or string_len(part) > 0 then -- received something + if not err or (err == "wantread" or err == "timeout") or (part and string_len(part) > 0) then -- received something local buffer = buffer or part or "" local len = string_len( buffer ) if len > maxreadlen then