[Sugar-devel] [PATCH sugar-toolkit] GlibTCPServer: defer shutdown_request to avoid closing the socket too early OLPC #10906
Simon Schampijer
simon at schampijer.de
Wed Jun 29 08:44:53 EDT 2011
From: Daniel Drake <dsd at laptop.org>
In Python 2.7, shutdown_request was added to the BaseServer class and
TCPServer was adopted to use it instead of close_request in the
_handle_request_noblock() path.
GlibTCPServer must be adapted to account for this, so that
shutdown_request is not allowed to prematurely allowed to close the socket,
in the same way that close_request is ignored.
Fixes collaboration in activities that rely on this mechanism for
sharing (including ImageViewer and Read)
Signed-off-by: Daniel Drake <daniel at laptop.org>
Acked-by: Simon Schampijer <simon at laptop.org>
Tested-by: Gonzalo Odiard <gonzalo at laptop.org>
Tested-by: Simon Schampijer <simon at laptop.org>
---
src/sugar/network.py | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/sugar/network.py b/src/sugar/network.py
index 34d496c..217c077 100644
--- a/src/sugar/network.py
+++ b/src/sugar/network.py
@@ -75,6 +75,12 @@ class GlibTCPServer(SocketServer.TCPServer):
# let the request be closed by the request handler when its done
pass
+ def shutdown_request(self, request):
+ """Called to shutdown and close an individual request."""
+ # like close_request, let the request be closed by the request handler
+ # when done
+ pass
+
class ChunkedGlibHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
"""RequestHandler class that integrates with Glib mainloop. It writes
--
1.7.4.4
More information about the Sugar-devel
mailing list