# HG changeset patch # User Matthew Wild # Date 1264078568 0 # Node ID 7be72eca566604c3fdeb40de3bac963f253668e2 # Parent a08ba94c2a29cfa885bf8365bc70e871925dc6c6 net.server_{select,event}: Fail gracefully if socket doesn't have a setoption method (LuaSec issue I think) diff -r a08ba94c2a29 -r 7be72eca5666 net/server_event.lua --- a/net/server_event.lua Thu Jan 21 12:23:13 2010 +0000 +++ b/net/server_event.lua Thu Jan 21 12:56:08 2010 +0000 @@ -420,7 +420,10 @@ end function interface_mt:setoption(option, value) - return self.conn:setoption(option, value); + if self.conn.setoption then + return self.conn:setoption(option, value); + end + return false, "setoption not implemented"; end -- Stub handlers diff -r a08ba94c2a29 -r 7be72eca5666 net/server_select.lua --- a/net/server_select.lua Thu Jan 21 12:23:13 2010 +0000 +++ b/net/server_select.lua Thu Jan 21 12:56:08 2010 +0000 @@ -354,7 +354,10 @@ return shutdown( socket, pattern ) end handler.setoption = function (self, option, value) - return socket:setoption(option, value); + if socket.setoption then + return socket:setoption(option, value); + end + return false, "setoption not implemented"; end handler.close = function( self, forced ) if not handler then return true; end