From 9dbd886c5df01a52cf04d94ddbcb58089f3d95ff Mon Sep 17 00:00:00 2001 From: short <> Date: Fri, 21 May 2004 04:53:09 +0000 Subject: [PATCH] Fixed endianity. Hex numbers are now printed uppercased. Fixed probe reply parsing from the right socket. --- src/packet.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/packet.c b/src/packet.c index fa86e88..8be08de 100644 --- a/src/packet.c +++ b/src/packet.c @@ -54,24 +54,20 @@ guint16 value_guint16_htonl; static void packet_assembly_data_guint32(GString *gstring,guint32 value_guint32) { -guint32 value_guint32_htonl=htonl(value_guint32); - g_return_if_fail(gstring!=NULL); - g_assert(4==sizeof(value_guint32_htonl)); - packet_assembly_guint32(gstring,sizeof(value_guint32_htonl)); - packet_assembly_guint32(gstring,value_guint32_htonl); + g_assert(4==sizeof(value_guint32)); + packet_assembly_guint32(gstring,sizeof(value_guint32)); + packet_assembly_guint32(gstring,value_guint32); } static void packet_assembly_data_guint16(GString *gstring,guint16 value_guint16) { -guint16 value_guint16_htonl=htons(value_guint16); - g_return_if_fail(gstring!=NULL); - g_assert(2==sizeof(value_guint16_htonl)); - packet_assembly_guint32(gstring,sizeof(value_guint16_htonl)); - packet_assembly_guint16(gstring,value_guint16_htonl); + g_assert(2==sizeof(value_guint16)); + packet_assembly_guint32(gstring,sizeof(value_guint16)); + packet_assembly_guint16(gstring,value_guint16); } static void packet_assembly_data_string(GString *gstring,const gchar *string) @@ -118,7 +114,7 @@ guint32 elem_type_uint32; case PACKET_ELEM_TYPE_DATA_GUINT32: packet_assembly_data_guint32(gstring,GPOINTER_TO_UINT(value)); if (optarg_verbose) - g_message(_("Assembled DATA_GUINT32: 0x%08x"),(unsigned)GPOINTER_TO_UINT(value)); + g_message(_("Assembled DATA_GUINT32: 0x%08X"),(unsigned)GPOINTER_TO_UINT(value)); break; case PACKET_ELEM_TYPE_CLIENT_PORT: packet_assembly_data_guint16(gstring,GPOINTER_TO_UINT(value)); @@ -278,6 +274,15 @@ guint16 value_guint16; return TRUE; } +gboolean packet_recognized(gconstpointer packet,size_t packet_length) +{ + if (strlen(PACKET_HEADER)>packet_length) + return FALSE; + if (memcmp(packet,PACKET_HEADER,strlen(PACKET_HEADER))) + return FALSE; + return TRUE; +} + GHashTable *packet_disassembly(gconstpointer packet,size_t packet_length) { GHashTable *r; @@ -340,7 +345,7 @@ err_packet_disassembly_destroy_value_destroy_func_items: if (!packet_disassembly_data_guint32(&value,elem_data,elem_data_length_guint32,&items)) goto err_packet_disassembly_destroy_value_destroy_func_items; if (optarg_verbose) - g_message(_("Decoded DATA_GUINT32: 0x%08x"),(unsigned)GPOINTER_TO_UINT(value)); + g_message(_("Decoded DATA_GUINT32: 0x%08X"),(unsigned)GPOINTER_TO_UINT(value)); break; case PACKET_ELEM_TYPE_CLIENT_PORT: if (!packet_disassembly_data_guint16(&value,elem_data,elem_data_length_guint32,&items)) @@ -351,12 +356,12 @@ err_packet_disassembly_destroy_value_destroy_func_items: default: if (elem_type_guint32&PACKET_ELEM_ATTR_MANDATORY) { if (optarg_verbose) - g_message(_("Decoding failed on ATTR_MANDATORY ELEM code 0x%08x"),(unsigned)elem_type_guint32); + g_message(_("Decoding failed on ATTR_MANDATORY ELEM code 0x%08X"),(unsigned)elem_type_guint32); goto err_packet_disassembly_destroy_value_destroy_func_items; } else { if (optarg_verbose) - g_message(_("Decoding ignores ATTR_OPTIONAL ELEM code 0x%08x"),(unsigned)elem_type_guint32); + g_message(_("Decoding ignores ATTR_OPTIONAL ELEM code 0x%08X"),(unsigned)elem_type_guint32); } continue; } -- 1.8.3.1