#!/usr/bin/python '''Example use of the netarch.ip framework Searching and replacing "StinkyPinky" with your protocol's name would be a good start. ''' import sys from netarch import ip from netarch import unpack class StinkyPinkyPacket(ip.Packet): ''' StinkyPinky Protocol ''' def parse(self, data): '''Parse Packet Data This method deals with data on a packet level. Its job in life is to set parts, payload, and opcode. If any data is passed to this method is deemed to not be part of the packet's data, it should be returned. Likewise, if the Packet needs more data, raise ip.NeedsMoreData self.parts - a magic bag of values. self.parts[:-1] is highlighted when printed iff the value == length(self.payload) self.payload - non-header packet data self.opcode - an integer that triggers additional parsing, or special display ''' self.parts = unpack(" 1: s = None reseq = ip.Dispatch(*sys.argv[1:]) for h, d in reseq: srv, first, chunk = d if not s: s = StinkyPinkySession(first) s.handle(srv, first, chunk, reseq.last)