From Didier Gautheron:
[obnox/wireshark/wip.git] / plugins / docsis / packet-regack.c
index 90eac4cd547bb4ba31b2565b1c4a3d1138c16fc2..62c4b68c2fa6343eaf4e4a0acf34d42c9966e4ae 100644 (file)
@@ -1,9 +1,11 @@
 /* packet-regack.c
  * Routines for Registration Acknowledge Message dissection
- * Copyright 2002, Anand V. Narwani <anarwani@cisco.com>
+ * Copyright 2002, Anand V. Narwani <anand[AT]narwani.org>
  *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
+ * $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
 # include "config.h"
 #endif
 
-#include "plugins/plugin_api.h"
-#include "plugins/plugin_api_defs.h"
-#include "moduleinfo.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-
-#include <gmodule.h>
-
-#ifdef NEED_SNPRINTF_H
-# include "snprintf.h"
-#endif
-
 #include <epan/packet.h>
 
 /* Initialize the protocol and registered fields */
@@ -68,15 +48,13 @@ dissect_regack (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
 {
 
   proto_item *it;
-  proto_tree *regack_tree;
+  proto_tree *regack_tree = NULL;
   guint16 sid;
-  guint16 tlv_data_len;
   guint8 response;
   tvbuff_t *next_tvb;
 
   sid = tvb_get_ntohs (tvb, 0);
   response = tvb_get_guint8 (tvb, 2);
-  tlv_data_len = tvb_length_remaining (tvb, 3);
 
   if (check_col (pinfo->cinfo, COL_INFO))
     {
@@ -88,8 +66,7 @@ dissect_regack (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
   if (tree)
     {
       it =
-       proto_tree_add_protocol_format (tree, proto_docsis_regack, tvb, 0,
-                                       tvb_length_remaining (tvb, 0),
+       proto_tree_add_protocol_format (tree, proto_docsis_regack, tvb, 0, -1,
                                        "Registration Acknowledge");
       regack_tree = proto_item_add_subtree (it, ett_docsis_regack);
       proto_tree_add_item (regack_tree, hf_docsis_regack_sid, tvb, 0, 2,
@@ -97,17 +74,17 @@ dissect_regack (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
       proto_tree_add_item (regack_tree, hf_docsis_regack_response, tvb, 2, 1,
                           FALSE);
 
-      /* Call Dissector for Appendix C TLV's */
-      next_tvb = tvb_new_subset (tvb, 3, tlv_data_len, tlv_data_len);
-      call_dissector (docsis_tlv_handle, next_tvb, pinfo, regack_tree);
     }
+    /* Call Dissector for Appendix C TLV's */
+    next_tvb = tvb_new_subset_remaining (tvb, 3);
+    call_dissector (docsis_tlv_handle, next_tvb, pinfo, regack_tree);
 
 }
 
 
 
 
-/* Register the protocol with Ethereal */
+/* Register the protocol with Wireshark */
 
 /* this format is require because a script is used to build the C function
    that calls all the protocol registration.
@@ -121,19 +98,19 @@ proto_register_docsis_regack (void)
 /* Setup list of header fields  See Section 1.6.1 for details*/
   static hf_register_info hf[] = {
     {&hf_docsis_regack,
-     {"Registration Request", "docsis.regack",
-      FT_BYTES, BASE_HEX, NULL, 0x0,
-      "Registration Request", HFILL}
+     {"Registration Request", "docsis_regack",
+      FT_BYTES, BASE_NONE, NULL, 0x0,
+      NULL, HFILL}
      },
     {&hf_docsis_regack_sid,
-     {"Service Identifier", "docsis.regack.sid",
+     {"Service Identifier", "docsis_regack.sid",
       FT_UINT16, BASE_DEC, NULL, 0x0,
-      "Service Identifier", HFILL}
+      NULL, HFILL}
      },
     {&hf_docsis_regack_response,
-     {"Response Code", "docsis.regack.respnse",
+     {"Response Code", "docsis_regack.respnse",
       FT_UINT8, BASE_DEC, VALS (docsis_conf_code), 0x0,
-      "Response Code", HFILL}
+      NULL, HFILL}
      },
   };