Boolean fields are just like other fields - if you use the field name
[obnox/wireshark/wip.git] / packet-clnp.c
index 82bfa8910fca9a02cc123940c86646007d5170f7..8e385813505c1c2f8a334ac95ac17844ccfb181b 100644 (file)
@@ -1,7 +1,7 @@
 /* packet-clnp.c
  * Routines for ISO/OSI network and transport protocol packet disassembly
  *
- * $Id: packet-clnp.c,v 1.19 2000/12/23 23:06:50 guy Exp $
+ * $Id: packet-clnp.c,v 1.24 2001/01/22 08:03:44 guy Exp $
  * Laurent Deniel <deniel@worldnet.fr>
  * Ralf Schneider <Ralf.Schneider@t-online.de>
  *
@@ -1571,12 +1571,10 @@ static void dissect_clnp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
   proto_tree *discpdu_tree;
   tvbuff_t   *next_tvb;
 
-  CHECK_DISPLAY_AS_DATA(proto_clnp, tvb, pinfo, tree);
-
-  pinfo->current_proto = "CLNP";
-
   if (check_col(pinfo->fd, COL_PROTOCOL))
     col_set_str(pinfo->fd, COL_PROTOCOL, "CLNP");
+  if (check_col(pinfo->fd, COL_INFO))
+    col_clear(pinfo->fd, COL_INFO);
 
   cnf_proto_id = tvb_get_guint8(tvb, P_CLNP_PROTO_ID);
   if (cnf_proto_id == NLPID_NULL) {
@@ -1873,11 +1871,11 @@ void proto_register_clnp(void)
 
   module_t *clnp_module;
 
-  proto_clnp = proto_register_protocol(PROTO_STRING_CLNP, "clnp");
+  proto_clnp = proto_register_protocol(PROTO_STRING_CLNP, "CLNP", "clnp");
   proto_register_field_array(proto_clnp, hf, array_length(hf));
   proto_register_subtree_array(ett, array_length(ett));
 
-  clnp_module = prefs_register_module("clnp", "CLNP", NULL);
+  clnp_module = prefs_register_protocol(proto_clnp, NULL);
   prefs_register_uint_preference(clnp_module, "tp_nsap_selector",
        "NSAP selector for Transport Protocol (last byte in hexa)",
        "NSAP selector for Transport Protocol (last byte in hexa)",
@@ -1899,14 +1897,15 @@ void proto_register_cotp(void)
                &ett_cotp,
        };
 
-        proto_cotp = proto_register_protocol(PROTO_STRING_COTP, "cotp");
+        proto_cotp = proto_register_protocol(PROTO_STRING_COTP, "COTP", "cotp");
  /*       proto_register_field_array(proto_cotp, hf, array_length(hf));*/
        proto_register_subtree_array(ett, array_length(ett));
 
 /* subdissector code */
        register_heur_dissector_list("cotp_is", &cotp_is_heur_subdissector_list);
 
-       register_dissector("ositp", dissect_ositp);
+       /* XXX - what about CLTP? */
+       register_dissector("ositp", dissect_ositp, proto_cotp);
 }
 
 void proto_register_cltp(void)
@@ -1919,7 +1918,7 @@ void proto_register_cltp(void)
                &ett_cltp,
        };
 
-        proto_cltp = proto_register_protocol(PROTO_STRING_CLTP, "cltp");
+        proto_cltp = proto_register_protocol(PROTO_STRING_CLTP, "CLTP", "cltp");
  /*       proto_register_field_array(proto_cotp, hf, array_length(hf));*/
        proto_register_subtree_array(ett, array_length(ett));
 }
@@ -1927,6 +1926,10 @@ void proto_register_cltp(void)
 void
 proto_reg_handoff_clnp(void)
 {
-       dissector_add("osinl", NLPID_ISO8473_CLNP, dissect_clnp);
-       dissector_add("osinl", NLPID_NULL, dissect_clnp);       /* Inactive subset */
+       dissector_add("osinl", NLPID_ISO8473_CLNP, dissect_clnp,
+           proto_clnp);
+       dissector_add("osinl", NLPID_NULL, dissect_clnp,
+           proto_clnp);        /* Inactive subset */
+       dissector_add("fr.ietf", NLPID_ISO8473_CLNP, dissect_clnp,
+           proto_clnp);        /* Inactive subset */
 }