net/server_select: addclient: Check arguments
authordaurnimator <quae@daurnimator.com>
Wed, 18 Dec 2013 22:55:03 +0000 (17:55 -0500)
committerdaurnimator <quae@daurnimator.com>
Wed, 18 Dec 2013 22:55:03 +0000 (17:55 -0500)
net/server_select.lua

index 14d55a329caf5105ab4594a88ce30c4fa2b48c7c..6191986340058c036ca5cce8d45f0aa236b060bd 100644 (file)
@@ -943,6 +943,21 @@ local wrapclient = function( socket, ip, serverport, listeners, pattern, sslctx
 end
 
 local addclient = function( address, port, listeners, pattern, sslctx )
+       local err
+       if type( listeners ) ~= "table" then
+               err = "invalid listener table"
+       elseif type ( addr ) ~= "string" then
+               err = "invalid address"
+       elseif type( port ) ~= "number" or not ( port >= 0 and port <= 65535 ) then
+               err = "invalid port"
+       elseif sslctx and not has_luasec then
+               err = "luasec not found"
+       end
+       if err then
+               out_error( "server.lua, addclient: ", err )
+               return nil, err
+       end
+
        local client, err = luasocket.tcp( )
        if err then
                return nil, err