net/server_select: Check arguments to add_server correctly
authordaurnimator <quae@daurnimator.com>
Wed, 18 Dec 2013 22:51:27 +0000 (17:51 -0500)
committerdaurnimator <quae@daurnimator.com>
Wed, 18 Dec 2013 22:51:27 +0000 (17:51 -0500)
net/server_select.lua

index 322c0b5770f5f5901e004297b72db39afc800380..62c889e961a82f3d9602cbd7e54ef44bc574d2cc 100644 (file)
@@ -723,11 +723,13 @@ end
 ----------------------------------// PUBLIC //--
 
 addserver = function( addr, port, listeners, pattern, sslctx ) -- this function provides a way for other scripts to reg a server
+       addr = addr or "*"
        local err
        if type( listeners ) ~= "table" then
                err = "invalid listener table"
-       end
-       if type( port ) ~= "number" or not ( port >= 0 and port <= 65535 ) then
+       elseif type ( addr ) ~= "string" then
+               err = "invalid address"
+       elseif type( port ) ~= "number" or not ( port >= 0 and port <= 65535 ) then
                err = "invalid port"
        elseif _server[ addr..":"..port ] then
                err = "listeners on '[" .. addr .. "]:" .. port .. "' already exist"
@@ -738,7 +740,6 @@ addserver = function( addr, port, listeners, pattern, sslctx ) -- this function
                out_error( "server.lua, [", addr, "]:", port, ": ", err )
                return nil, err
        end
-       addr = addr or "*"
        local server, err = socket_bind( addr, port, _tcpbacklog )
        if err then
                out_error( "server.lua, [", addr, "]:", port, ": ", err )