Serious source code cleanup.
authorjake <jake@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 4 Jan 2007 14:23:56 +0000 (14:23 +0000)
committerjake <jake@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 4 Jan 2007 14:23:56 +0000 (14:23 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@20308 f5534014-38df-0310-8fa8-9805f1628bb7

plugins/irda/packet-sir.c

index bdfe36959ea4c5d2d2fdf607ae9fc99b9ba93d2c..618713036042ce32a91bb3cb60dbc487e917d66f 100644 (file)
@@ -3,6 +3,12 @@
  * @copyright Copyright 2004 Shaun Jackman
  * @license GPL
  *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
@@ -21,9 +27,6 @@
 #ifdef HAVE_CONFIG_H
 # include "config.h"
 #endif
-#include "moduleinfo.h"
-
-#include <gmodule.h>
 
 #include <epan/packet.h>
 #include <epan/crc16.h>
@@ -62,109 +65,111 @@ static int hf_sir_preamble = -1;
 
 
 /** Unescapes the data. */
-static tvbuff_t*
-unescape_data( tvbuff_t* tvb, packet_info* pinfo)
+static tvbuff_t *
+unescape_data(tvbuff_t *tvb, packet_info *pinfo)
 {
-       if( tvb_find_guint8( tvb, 0, -1, SIR_CE) == -1) {
+       if (tvb_find_guint8(tvb, 0, -1, SIR_CE) == -1) {
                return tvb;
        } else {
-               guint8* data = g_malloc( tvb_length( tvb));
-               const guint8* src = tvb_get_ptr( tvb, 0, -1);
-               const guint8* end = src + tvb_length( tvb);
-               guint8* dst = data;
-               while( src < end) {
-                       guint8 c = *src++;
-                       switch( c) {
-                               case SIR_CE:
-                                       if( src < end)
-                                               c = SIR_ESCAPE( *src++);
-                               default:
-                                       *dst++ = c;
-                       }
-               }
+               guint length = tvb_length(tvb);
+               guint offset;
+               guint8 *data = g_malloc(length);
+               guint8 *dst = data;
+               tvbuff_t *next_tvb;
+
+               for (offset = 0; offset < length; )
                {
-                       tvbuff_t* next_tvb = tvb_new_real_data(
-                                       data, dst-data, dst-data);
-                       tvb_set_free_cb( next_tvb, g_free);
-                       tvb_set_child_real_data_tvbuff( tvb, next_tvb);
-                       add_new_data_source( pinfo, next_tvb, "Unescaped SIR");
-                       return next_tvb;
+                       guint8 c = tvb_get_guint8(tvb, offset++);
+                       if ((c == SIR_CE) && (offset < length))
+                               c = SIR_ESCAPE(tvb_get_guint8(tvb, offset++));
+                       *dst++ = c;
                }
+
+               next_tvb = tvb_new_real_data(data, dst-data, dst-data);
+               tvb_set_free_cb(next_tvb, g_free);
+               tvb_set_child_real_data_tvbuff(tvb, next_tvb);
+               add_new_data_source(pinfo, next_tvb, "Unescaped SIR");
+               return next_tvb;
        }
 }
 
 
 /** Checksums the data. */
-static tvbuff_t*
-checksum_data( tvbuff_t* tvb, proto_tree* tree)
+static tvbuff_t *
+checksum_data(tvbuff_t *tvb, proto_tree *tree)
 {
-       int len = tvb_length( tvb) - 2;
-       iflen < 0)
+       int len = tvb_length(tvb) - 2;
+       if (len < 0)
                return tvb;
-       iftree) {
-               guint16 actual_fcs = tvb_get_letohs( tvb, len);
-               guint16 calculated_fcs = crc16_ccitt_tvb( tvb, len);
-               ifcalculated_fcs == actual_fcs) {
-                       proto_tree_add_uint_format( tree, hf_sir_fcs,
+       if (tree) {
+               guint16 actual_fcs = tvb_get_letohs(tvb, len);
+               guint16 calculated_fcs = crc16_ccitt_tvb(tvb, len);
+               if (calculated_fcs == actual_fcs) {
+                       proto_tree_add_uint_format(tree, hf_sir_fcs,
                                        tvb, len, 2, actual_fcs,
                                        "Frame check sequence: 0x%04x (correct)",
                                        actual_fcs);
                } else {
-                       proto_tree_add_boolean_hidden( tree,
+                       proto_tree_add_boolean_hidden(tree,
                                        hf_sir_fcs_bad, tvb, len, 2, TRUE);
-                       proto_tree_add_uint_format( tree, hf_sir_fcs,
+                       proto_tree_add_uint_format(tree, hf_sir_fcs,
                                        tvb, len, 2, actual_fcs,
                                        "Frame check sequence: 0x%04x "
                                        "(incorrect, should be 0x%04x)",
                                        actual_fcs, calculated_fcs);
                }
        }
-       return tvb_new_subset( tvb, 0, len, len);
+       return tvb_new_subset(tvb, 0, len, len);
 }
 
 
 /** Dissects an SIR packet. */
 static void
-dissect_sir( tvbuff_t* tvb, packet_info* pinfo, proto_tree* root)
+dissect_sir(tvbuff_t *tvb, packet_info *pinfo, proto_tree *root)
 {
        gint offset = 0;
-       while( tvb_length_remaining( tvb, offset) > 0) {
-               gint bof_offset = tvb_find_guint8( tvb, offset, -1, SIR_BOF);
-               guint preamble_len = bof_offset - offset;
-               gint eof_offset = bof_offset == -1 ? -1 :
-                       tvb_find_guint8( tvb, bof_offset, -1, SIR_EOF);
-               gint data_offset = bof_offset + 1;
-               guint data_len = eof_offset - data_offset;
-               tvbuff_t* next_tvb = tvb_new_subset( tvb,
-                               data_offset, data_len, -1);
-               if( bof_offset == -1 || eof_offset == -1) {
-                       if( pinfo->can_desegment) {
+       gint bof_offset;
+       gint eof_offset;
+
+       while (tvb_length_remaining(tvb, offset) > 0) {
+               bof_offset = tvb_find_guint8(tvb, offset, -1, SIR_BOF);
+               eof_offset = (bof_offset == -1) ? -1 :
+                       tvb_find_guint8(tvb, bof_offset, -1, SIR_EOF);
+
+               if (bof_offset == -1 || eof_offset == -1) {
+                       if (pinfo->can_desegment) {
                                pinfo->desegment_offset = offset;
                                pinfo->desegment_len = 1;
                        }
                        return;
                } else {
-                       next_tvb = unescape_data( next_tvb, pinfo);
-                       if( root) {
-                               unsigned data_len = tvb_length( next_tvb) < 2 ? 0 :
-                                       tvb_length( next_tvb) - 2;
-                               proto_tree* ti = proto_tree_add_protocol_format( root,
+                       guint preamble_len = bof_offset - offset;
+                       gint data_offset = bof_offset + 1;
+                       guint data_len = eof_offset - data_offset;
+                       tvbuff_t* next_tvb = tvb_new_subset(tvb,
+                               data_offset, data_len, -1);
+                       next_tvb = unescape_data(next_tvb, pinfo);
+                       if (root) {
+                               unsigned data_len = tvb_length(next_tvb) < 2 ? 0 :
+                                       tvb_length(next_tvb) - 2;
+                               proto_tree* ti = proto_tree_add_protocol_format(root,
                                                proto_sir, tvb, offset, eof_offset - offset + 1,
                                                "Serial Infrared, Len: %d", data_len);
-                               proto_tree* tree = proto_item_add_subtree( ti, ett_sir);
-                               ifpreamble_len > 0)
-                                       proto_tree_add_item( tree, hf_sir_preamble, tvb,
+                               proto_tree* tree = proto_item_add_subtree(ti, ett_sir);
+                               if (preamble_len > 0)
+                                       proto_tree_add_item(tree, hf_sir_preamble, tvb,
                                                        offset, preamble_len, FALSE);
-                               proto_tree_add_item( tree, hf_sir_bof, tvb,
+                               proto_tree_add_item(tree, hf_sir_bof, tvb,
                                                bof_offset, 1, FALSE);
-                               proto_tree_add_uint( tree, hf_sir_length,
+                               proto_tree_add_uint(tree, hf_sir_length,
                                                next_tvb, 0, data_len, data_len);
-                               next_tvb = checksum_data( next_tvb, tree);
-                               proto_tree_add_item( tree, hf_sir_eof, tvb,
+                               next_tvb = checksum_data(next_tvb, tree);
+                               proto_tree_add_item(tree, hf_sir_eof, tvb,
                                                eof_offset, 1, FALSE);
-                       } else
-                               next_tvb = checksum_data( next_tvb, NULL);
-                       call_dissector( irda_handle, next_tvb, pinfo, root);
+                       } else {
+                               next_tvb = checksum_data(next_tvb, NULL);
+                       }
+                       call_dissector(irda_handle, next_tvb, pinfo, root);
                }
                offset = eof_offset + 1;
        }
@@ -173,20 +178,20 @@ dissect_sir( tvbuff_t* tvb, packet_info* pinfo, proto_tree* root)
 
 /** Registers this dissector with the parent dissector. */
 void
-proto_reg_handoff_irsir( void)
+proto_reg_handoff_irsir(void)
 {
-       dissector_add( "tcp.port", TCP_PORT_SIR, find_dissector( "sir"));
+       dissector_add("tcp.port", TCP_PORT_SIR, find_dissector("sir"));
 
-       data_handle = find_dissector( "data");
-       irda_handle = find_dissector( "irda");
-       ifirda_handle == 0)
+       data_handle = find_dissector("data");
+       irda_handle = find_dissector("irda");
+       if (irda_handle == 0)
                irda_handle = data_handle;
 }
 
 
 /** Initializes this protocol. */
 void
-proto_register_irsir( void)
+proto_register_irsir(void)
 {
        static gint* ett[] = { &ett_sir };
 
@@ -218,13 +223,13 @@ proto_register_irsir( void)
                { &hf_sir_preamble,
                        { "Preamble", "sir.preamble",
                                FT_BYTES, BASE_NONE, NULL, 0,
-                               "", HFILL }},
+                               "", HFILL }}
        };
 
        proto_sir = proto_register_protocol(
                        "Serial Infrared", "SIR", "sir");
-       register_dissector( "sir", dissect_sir, proto_sir);
-       proto_register_subtree_array( ett, array_length( ett));
+       register_dissector("sir", dissect_sir, proto_sir);
+       proto_register_subtree_array(ett, array_length(ett));
        proto_register_field_array(
-                       proto_sir, hf_sir, array_length( hf_sir));
+                       proto_sir, hf_sir, array_length(hf_sir));
 }