[Neo-report] r1899 gregory - in /trunk/neo: handler.py tests/testHandler.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Mar 5 22:23:37 CET 2010
Author: gregory
Date: Fri Mar 5 22:23:37 2010
New Revision: 1899
Log:
Send a notification when a malformed packet is received.
Modified:
trunk/neo/handler.py
trunk/neo/tests/testHandler.py
Modified: trunk/neo/handler.py
==============================================================================
--- trunk/neo/handler.py [iso-8859-1] (original)
+++ trunk/neo/handler.py [iso-8859-1] Fri Mar 5 22:23:37 2010
@@ -32,15 +32,6 @@
def __repr__(self):
return self.__class__.__name__
- def _packetMalformed(self, conn, message='', *args):
- """Called when a packet is malformed."""
- args = (conn.getAddress()[0], conn.getAddress()[1], message)
- logging.error('malformed packet from %s:%d: %s', *args)
- response = Errors.ProtocolError(message)
- conn.notify(response)
- conn.abort()
- self.peerBroken(conn)
-
def __unexpectedPacket(self, conn, packet, message=None):
"""Handle an unexpected packet."""
if message is None:
@@ -66,8 +57,11 @@
method(conn, *args)
except UnexpectedPacketError, e:
self.__unexpectedPacket(conn, packet, *e.args)
- except PacketMalformedError, e:
- self._packetMalformed(conn, *e.args)
+ except PacketMalformedError:
+ logging.error('malformed packet from %s:%d', *(conn.getAddress()))
+ conn.notify(Packets.Notify('Malformed packet: %r' % (packet, )))
+ conn.abort()
+ self.peerBroken(conn)
except BrokenNodeDisallowedError:
conn.answer(Errors.Broken('go away'))
conn.abort()
Modified: trunk/neo/tests/testHandler.py
==============================================================================
--- trunk/neo/tests/testHandler.py [iso-8859-1] (original)
+++ trunk/neo/tests/testHandler.py [iso-8859-1] Fri Mar 5 22:23:37 2010
@@ -33,7 +33,11 @@
self.handler.packet_dispatch_table[self.fake_type] = method
def getFakePacket(self):
- return Mock({'getType': self.fake_type, 'decode': ()})
+ return Mock({
+ 'getType': self.fake_type,
+ 'decode': (),
+ '__repr__': 'Fake Packet',
+ })
def checkFakeCalled(self):
method = self.handler.packet_dispatch_table[self.fake_type]
@@ -60,7 +64,7 @@
raise PacketMalformedError('message')
self.setFakeMethod(fake)
self.handler.dispatch(conn, packet)
- self.checkErrorPacket(conn)
+ self.checkNotify(conn)
self.checkAborted(conn)
# raise BrokenNodeDisallowedError
conn.mockCalledMethods = {}
More information about the Neo-report
mailing list