added some more fine grain logging control, update to packet parser

This commit is contained in:
enus.linden
2009-02-06 06:45:03 +00:00
committed by Salad Dais
parent 5ef4a9adbd
commit 2f4cb4fc22
4 changed files with 35 additions and 12 deletions

View File

@@ -62,7 +62,7 @@ class PacketHandler():
handler(packet)
except AttributeError:
log(WARNING, "Received an unhandled packet: %s" % (packet.name))
log(INFO, "Received an unhandled packet: %s" % (packet.name))
pass
class PacketReceivedNotifier():

View File

@@ -167,7 +167,7 @@ class Region(object):
data = llsd.parse(response.body)
log(DEBUG, 'Get of cap %s response is: %s' % (self.region_uri, data))
if self.settings.ENABLE_CAPS_LOGGING: log(DEBUG, 'Get of cap %s response is: %s' % (self.region_uri, data))
return data
@@ -365,7 +365,7 @@ class Region(object):
#log(DEBUG, 'region event queue cap called, returned id: %s' % (self.last_id))
log(DEBUG, 'Region EventQueueGet result: %s' % (result))
if self.settings.ENABLE_CAPS_LOGGING: log(DEBUG, 'Region EventQueueGet result: %s' % (result))
class RegionSeedCapability(Capability):

View File

@@ -36,7 +36,7 @@ class Settings(object):
# Logging behaviors
self.ENABLE_BYTES_TO_HEX_LOGGING = True
self.ENABLE_CAPS_LOGGING = True
self.ENABLE_CAPS_LOGGING = False
# parameters for xmplrpc login
def get_default_xmlrpc_login_parameters(self):

View File

@@ -18,33 +18,50 @@ def main():
if options.verbose: enable_logging()
data = options.data
datatype = options.datatype
if options.file:
process_file(options.file)
else:
process_stream(options.data)
msg_buff = gen_message_buffer(data, datatype)
def process_file(file):
handle = open(file,"r")
lines = handle.readlines()
for line in lines:
process_stream(line.strip())
def process_stream(data):
msg_buff = gen_message_buffer(data)
deserializer = UDPPacketDeserializer(msg_buff)
packet = deserializer.deserialize()
#print packet.__dict__
display_packet(packet)
try:
display_packet(packet, data)
except AttributeError:
print 'Unable to parse hex stream'
def parse_options():
parser = OptionParser()
parser.add_option("-t", "--type", dest="datatype", default="hex", help="datatype to parse, default = hex")
#parser.add_option("-t", "--type", dest="datatype", default="hex", help="datatype to parse, default = hex")
parser.add_option("-d", "--data", dest="data", help="data to parse")
parser.add_option("-v", "--verbose", dest="verbose", default=True, action="store_false")
parser.add_option("-f", "--file", dest="file", help="parse data located in file")
(options, args) = parser.parse_args()
return options
def gen_message_buffer(data, datatype):
def gen_message_buffer(data, datatype='hex'):
if datatype == 'hex':
return message_buff_from_hex(data)
return message_buff_from_hex(data.strip())
return
@@ -52,8 +69,12 @@ def message_buff_from_hex(data):
return binascii.unhexlify(''.join(data.split()))
def display_packet(packet):
def display_packet(packet, data):
print "~~~~~~~~~~~~~~~~~~~"
print "Source data:"
print data
print "~~~~~~~~~~~~~~~~~~~"
delim = " "
print 'Packet Name:%s%s' % (delim, packet.name)
@@ -68,6 +89,8 @@ def display_packet(packet):
for avar in somevars.var_list:
zvar = somevars.get_variable(avar)
print "%s%s%s:%s%s" % (delim, delim, zvar.name, delim, zvar.get_data_as_string())
print "~~~~~~~~~~~~~~~~~~~"
#print '%s:\t%s' % (k, packet.__dict__[k])
#print '%s:\t%s (%s)' (k, packet.__dict__[k], type(packet.__dict__[k]))