Allways return true from recv_callback, rely on activly removing sources instead
This commit is contained in:
parent
8c9fc73550
commit
b5c6bc0442
@ -189,21 +189,19 @@ class Connection(object):
|
||||
def recv_callback(self, fd, flags):
|
||||
if flags & (gobject.IO_ERR | gobject.IO_HUP):
|
||||
self.stop()
|
||||
return False
|
||||
return True
|
||||
|
||||
try:
|
||||
data = self.sock.recv(4096)
|
||||
except socket.error as e:
|
||||
if e.errno in (errno.EWOULDBLOCK, errno.EINTR):
|
||||
return True
|
||||
self.stop()
|
||||
return False
|
||||
if e.errno not in (errno.EWOULDBLOCK, errno.EINTR):
|
||||
self.stop()
|
||||
return True
|
||||
|
||||
if not data:
|
||||
self.stop()
|
||||
return False
|
||||
|
||||
self.actor_ref.send_one_way({'received': data})
|
||||
else:
|
||||
self.actor_ref.send_one_way({'received': data})
|
||||
return True
|
||||
|
||||
def send_callback(self, fd, flags):
|
||||
|
||||
@ -419,17 +419,17 @@ class ConnectionTest(unittest.TestCase):
|
||||
self.mock.enable_send.assert_called_once_with()
|
||||
|
||||
def test_recv_callback_respects_io_err(self):
|
||||
self.assertFalse(network.Connection.recv_callback(self.mock,
|
||||
self.assertTrue(network.Connection.recv_callback(self.mock,
|
||||
sentinel.fd, gobject.IO_IN | gobject.IO_ERR))
|
||||
self.mock.stop.assert_called_once_with()
|
||||
|
||||
def test_recv_callback_respects_io_hup(self):
|
||||
self.assertFalse(network.Connection.recv_callback(self.mock,
|
||||
self.assertTrue(network.Connection.recv_callback(self.mock,
|
||||
sentinel.fd, gobject.IO_IN | gobject.IO_HUP))
|
||||
self.mock.stop.assert_called_once_with()
|
||||
|
||||
def test_recv_callback_respects_io_hup_and_io_err(self):
|
||||
self.assertFalse(network.Connection.recv_callback(self.mock,
|
||||
self.assertTrue(network.Connection.recv_callback(self.mock,
|
||||
sentinel.fd, gobject.IO_IN | gobject.IO_HUP | gobject.IO_ERR))
|
||||
self.mock.stop.assert_called_once_with()
|
||||
|
||||
@ -447,7 +447,7 @@ class ConnectionTest(unittest.TestCase):
|
||||
self.mock.sock = Mock(spec=socket.SocketType)
|
||||
self.mock.sock.recv.return_value = ''
|
||||
|
||||
self.assertFalse(network.Connection.recv_callback(
|
||||
self.assertTrue(network.Connection.recv_callback(
|
||||
self.mock, sentinel.fd, gobject.IO_IN))
|
||||
self.mock.stop.assert_called_once_with()
|
||||
|
||||
@ -463,7 +463,7 @@ class ConnectionTest(unittest.TestCase):
|
||||
self.mock.sock = Mock(spec=socket.SocketType)
|
||||
self.mock.sock.recv.side_effect = socket.error()
|
||||
|
||||
self.assertFalse(network.Connection.recv_callback(
|
||||
self.assertTrue(network.Connection.recv_callback(
|
||||
self.mock, sentinel.fd, gobject.IO_IN))
|
||||
self.mock.stop.assert_called_once_with()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user