net.server_select: Only allow starttls if luasec is available (thanks Nolan)
[prosody.git] / net / dns.lua
index 9863164d071a1ded4eaae9ef455b910c7b87ce5a..10ac50a49c50d25935285c9277925426528fe80f 100644 (file)
@@ -183,7 +183,7 @@ end
 
 
 function dns.random(...)    -- - - - - - - - - - - - - - - - - - -  dns.random
-       math.randomseed(10000*socket.gettime());
+       math.randomseed(math.floor(10000*socket.gettime()));
        dns.random = math.random;
        return dns.random(...);
 end
@@ -723,7 +723,7 @@ function resolver:receive(rset)    -- - - - - - - - - - - - - - - - -  receive
        for i,sock in pairs(rset) do
 
                if self.socketset[sock] then
-                       local packet = sock:receive();
+                       local packet = sock.receive();
                        if packet then
                                response = self:decode(packet);
                                if response and self.active[response.header.id]
@@ -745,7 +745,7 @@ function resolver:receive(rset)    -- - - - - - - - - - - - - - - - -  receive
                                        if not next(self.active) then self:closeall(); end
 
                                        -- was the query on the wanted list?
-                                       local q = response.question;
+                                       local q = response.question[1];
                                        local cos = get(self.wanted, q.class, q.type, q.name);
                                        if cos then
                                                for co in pairs(cos) do
@@ -912,11 +912,6 @@ end
 -- module api ------------------------------------------------------ module api
 
 
-local function resolve(func, ...)    -- - - - - - - - - - - - - - resolver_get
-       return func(dns._resolver, ...);
-end
-
-
 function dns.resolver ()    -- - - - - - - - - - - - - - - - - - - - - resolver
        -- this function seems to be redundant with resolver.new ()
 
@@ -927,37 +922,35 @@ function dns.resolver ()    -- - - - - - - - - - - - - - - - - - - - - resolver
        return r;
 end
 
+local _resolver = dns.resolver();
+dns._resolver = _resolver;
 
 function dns.lookup(...)    -- - - - - - - - - - - - - - - - - - - - -  lookup
-       return resolve(resolver.lookup, ...);
+       return _resolver:lookup(...);
 end
 
-
 function dns.purge(...)    -- - - - - - - - - - - - - - - - - - - - - -  purge
-       return resolve(resolver.purge, ...);
+       return _resolver:purge(...);
 end
 
 function dns.peek(...)    -- - - - - - - - - - - - - - - - - - - - - - -  peek
-       return resolve(resolver.peek, ...);
+       return _resolver:peek(...);
 end
 
-
 function dns.query(...)    -- - - - - - - - - - - - - - - - - - - - - -  query
-       return resolve(resolver.query, ...);
+       return _resolver:query(...);
 end
 
-function dns.feed(...)    -- - - - - - - - - - - - - - - - - - - - - -  feed
-       return resolve(resolver.feed, ...);
+function dns.feed(...)    -- - - - - - - - - - - - - - - - - - - - - -  feed
+       return _resolver:feed(...);
 end
 
-function dns.cancel(...)   -- - - - - - - - - - - - - - - - - - - - - -  cancel
-       return resolve(resolver.cancel, ...);
+function dns.cancel(...)  -- - - - - - - - - - - - - - - - - - - - - -  cancel
+       return _resolver:cancel(...);
 end
 
-function dns:socket_wrapper_set(...)    -- - - - - - - - -  socket_wrapper_set
-       return resolve(resolver.socket_wrapper_set, ...);
+function dns.socket_wrapper_set(...)    -- - - - - - - - -  socket_wrapper_set
+       return _resolver:socket_wrapper_set(...);
 end
 
-dns._resolver = dns.resolver();
-
 return dns;