[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