# HG changeset patch
# User Kim Alvefur <zash@zash.se>
# Date 1356701607 -3600
# Node ID e8f7962056f50038cf2a21264808a0a5b14c214f
# Parent  f79be67e56661243c574daccb89e56746eae1c32
net.server_select: Add pause and resume methods

diff -r f79be67e5666 -r e8f7962056f5 net/server_select.lua
--- a/net/server_select.lua	Fri Dec 28 14:32:22 2012 +0100
+++ b/net/server_select.lua	Fri Dec 28 14:33:27 2012 +0100
@@ -197,6 +197,25 @@
 		--mem_free( )
 		out_put "server.lua: closed server handler and removed sockets from list"
 	end
+	handler.pause = function()
+		if not handler.paused then
+			socket:close( )
+			_sendlistlen = removesocket( _sendlist, socket, _sendlistlen )
+			_readlistlen = removesocket( _readlist, socket, _readlistlen )
+			_socketlist[ socket ] = nil
+			socket = nil;
+			handler.paused = true;
+		end
+	end
+	handler.resume = function()
+		if handler.paused then
+			socket = socket_bind( ip, serverport );
+			socket:settimeout( 0 )
+			_readlistlen = addsocket(_readlist, socket, _readlistlen)
+			_socketlist[ socket ] = handler
+			handler.paused = false;
+		end
+	end
 	handler.ip = function( )
 		return ip
 	end