diff options
author | Daniel Drake <dsd@laptop.org> | 2011-06-28 22:01:12 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2011-06-29 12:50:08 (GMT) |
commit | e14ee657476f4ad026705b7762d4a505a37d276f (patch) | |
tree | a371c816540565b618edb6f60d57217c61e3458b | |
parent | 095d9b0f63d7c14cdeb41de71f333546d43c9df2 (diff) |
GlibTCPServer: defer shutdown_request to avoid closing the socket too early OLPC #10906
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@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
Tested-by: Gonzalo Odiard <gonzalo@laptop.org>
Tested-by: Simon Schampijer <simon@laptop.org>
-rw-r--r-- | 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 |