#!/usr/bin/env python2.4

import logging, pprint, sys
logging.getLogger('scapy').setLevel(1)
from scapy import *

# TODO: Do this properly (see 'class IPField' from scapy
class IPaddrField (Field):
	def __init__(self, name, default):
		Field.__init__(self, name, default, "8s")

class CTLMsg (Packet):
	name = 'CTL message'
	fields_desc = [	ShortField('swap', 1),
					LongField('size', 0),
					IntField('tag', 0),
					IntField('port', -1),
					IPaddrField('host', '127.0.0.1'),
					IntField('logID', -1) ]

def make_test (size=0, tag=0, logID=-1):
	return Ether()/IP()/CTLMsg(size=size, tag=tag, logID=logID)

def mysession ():
	#interact(mydict=globals(), mybanner='CTL sniffer v1.0')
	make_test().show()

def mysniffer ():
	try:
		sniffer = sniff(count=100, iface='lo')
		sniffer.nsummary()
	except socket.error, e:
		print >>sys.stderr, 'sniff(): %s' % str(e)
		sys.exit(1)

if __name__ == '__main__':
	#mysession()
	mysniffer()
