Skip to content

Commit 66e17fb

Browse files
fixed memory leak on rejected connections
Fixes miguelgrinberg/Flask-SocketIO#574
1 parent 90b226d commit 66e17fb

File tree

3 files changed

+4
-1
lines changed

3 files changed

+4
-1
lines changed

socketio/server.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,8 @@ def _handle_connect(self, sid, namespace):
422422
self.manager.disconnect(sid, namespace)
423423
self._send_packet(sid, packet.Packet(packet.ERROR,
424424
namespace=namespace))
425+
if sid in self.environ: # pragma: no cover
426+
del self.environ[sid]
425427
return False
426428
else:
427429
self._send_packet(sid, packet.Packet(packet.CONNECT,

tests/test_server.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ def test_handle_connect_rejected(self, eio):
204204
handler.assert_called_once_with('123', 'environ')
205205
self.assertEqual(s.manager.connect.call_count, 1)
206206
self.assertEqual(s.manager.disconnect.call_count, 1)
207+
self.assertEqual(s.environ, {})
207208
s.eio.send.assert_called_once_with('123', '4', binary=False)
208209

209210
def test_handle_connect_namespace_rejected(self, eio):

tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ basepython=python3.6
2222
deps=
2323
flake8
2424
commands=
25-
flake8 --exclude=".*" --ignore=E402 socketio tests
25+
flake8 --exclude=".*" --ignore=E402,E722 socketio tests
2626

2727
[testenv:docs]
2828
basepython=python2.7

0 commit comments

Comments
 (0)