added some more fine grain logging control, update to packet parser
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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]))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user