Add an additional "protocol index" argument to "{old_}dissector_add()",
[obnox/wireshark/wip.git] / packet-tacacs.c
index d070d6984d9a76a37be96b4e4e6b20ba0b0e5489..dc9170f207ea962bff564d4ea5bad24437d9d456 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-tacacs.c
  * Routines for cisco tacacs/tacplus/AAA packet dissection
  *
- * $Id: packet-tacacs.c,v 1.4 2000/05/11 08:15:52 gram Exp $
+ * $Id: packet-tacacs.c,v 1.10 2001/01/09 06:31:44 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@zing.org>
@@ -57,8 +57,10 @@ dissect_tacacs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 {
        proto_tree      *tacacs_tree, *ti;
 
+       OLD_CHECK_DISPLAY_AS_DATA(proto_tacacs, pd, offset, fd, tree);
+
        if (check_col(fd, COL_PROTOCOL))
-               col_add_str(fd, COL_PROTOCOL, "TACACS");
+               col_set_str(fd, COL_PROTOCOL, "TACACS");
 
        if (check_col(fd, COL_INFO))
        {
@@ -68,21 +70,21 @@ dissect_tacacs(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
        if (tree) 
        {
-               ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, NULL);
+               ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, FALSE);
                tacacs_tree = proto_item_add_subtree(ti, ett_tacacs);
 
-               proto_tree_add_item(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "XTacacs");
+               proto_tree_add_string(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "XTacacs");
 
                if (pi.match_port == pi.destport)
                {
-                       proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_request, NullTVB,
+                       proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_request, NullTVB,
                                                   offset, END_OF_FRAME, TRUE);
                        proto_tree_add_text(tacacs_tree, NullTVB, offset, 
                                END_OF_FRAME, "Request: <opaque data>" );
                }
                else
                {
-                       proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_response, NullTVB,
+                       proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_response, NullTVB,
                                                   offset, END_OF_FRAME, TRUE);
                        proto_tree_add_text(tacacs_tree, NullTVB, offset, 
                                END_OF_FRAME, "Response: <opaque data>");
@@ -96,7 +98,7 @@ dissect_tacplus(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
        proto_tree      *tacacs_tree, *ti;
 
        if (check_col(fd, COL_PROTOCOL))
-       col_add_str(fd, COL_PROTOCOL, "TACACS");
+       col_set_str(fd, COL_PROTOCOL, "TACACS");
 
        if (check_col(fd, COL_INFO))
        {
@@ -106,21 +108,21 @@ dissect_tacplus(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
 
        if (tree) 
        {
-               ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, NULL);
+               ti = proto_tree_add_item(tree, proto_tacacs, NullTVB, offset, END_OF_FRAME, FALSE);
                tacacs_tree = proto_item_add_subtree(ti, ett_tacacs);
 
-               proto_tree_add_item(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "Tacacs+");
+               proto_tree_add_string(tacacs_tree, hf_tacacs_version, NullTVB, 0, 0, "Tacacs+");
 
                if (pi.match_port == pi.destport)
                {
-                       proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_request, NullTVB,
+                       proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_request, NullTVB,
                                                   offset, END_OF_FRAME, TRUE);
                        proto_tree_add_text(tacacs_tree, NullTVB, offset, 
                                END_OF_FRAME, "Request: <opaque data>" );
                }
                else
                {
-                       proto_tree_add_item_hidden(tacacs_tree, hf_tacacs_response, NullTVB,
+                       proto_tree_add_boolean_hidden(tacacs_tree, hf_tacacs_response, NullTVB,
                                                   offset, END_OF_FRAME, TRUE);
                        proto_tree_add_text(tacacs_tree, NullTVB, offset, 
                                END_OF_FRAME, "Response: <opaque data>");
@@ -149,7 +151,7 @@ proto_register_tacacs(void)
        static gint *ett[] = {
                &ett_tacacs,
        };
-       proto_tacacs = proto_register_protocol("TACACS", "tacacs");
+       proto_tacacs = proto_register_protocol("TACACS", "TACACS", "tacacs");
        proto_register_field_array(proto_tacacs, hf, array_length(hf));
        proto_register_subtree_array(ett, array_length(ett));
 }
@@ -157,6 +159,8 @@ proto_register_tacacs(void)
 void
 proto_reg_handoff_tacacs(void)
 {
-       dissector_add("udp.port", UDP_PORT_TACACS, dissect_tacacs);
-       dissector_add("tcp.port", TCP_PORT_TACACS, dissect_tacplus);
+       old_dissector_add("udp.port", UDP_PORT_TACACS, dissect_tacacs,
+           proto_tacacs);
+       old_dissector_add("tcp.port", TCP_PORT_TACACS, dissect_tacplus,
+           proto_tacacs);
 }