Add routines to create anonymous handles for new-style dissectors (ones
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 28 Apr 2002 00:13:05 +0000 (00:13 +0000)
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>
Sun, 28 Apr 2002 00:13:05 +0000 (00:13 +0000)
that return an "int", giving either an indication of how much data was
dissected, an indication of how much more data is needed from TCP to
dissect, or 0, meaning "this isn't one of my packets").

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@5260 f5534014-38df-0310-8fa8-9805f1628bb7

epan/packet.c
epan/packet.h

index 7e9a9421a242d388a57a17416e6995ea9000fc9e..769c0df11dc1981545547dd03ee498b2dd291c2f 100644 (file)
@@ -1,7 +1,7 @@
 /* packet.c
  * Routines for packet disassembly
  *
- * $Id: packet.c,v 1.67 2002/03/28 09:12:00 guy Exp $
+ * $Id: packet.c,v 1.68 2002/04/28 00:13:05 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -990,6 +990,20 @@ create_dissector_handle(dissector_t dissector, int proto)
        return handle;
 }
 
+dissector_handle_t
+new_create_dissector_handle(new_dissector_t dissector, int proto)
+{
+       struct dissector_handle *handle;
+
+       handle = g_malloc(sizeof (struct dissector_handle));
+       handle->name = NULL;
+       handle->is_new = TRUE;
+       handle->dissector.new = dissector;
+       handle->proto_index = proto;
+
+       return handle;
+}
+
 /* Register a dissector by name. */
 void
 register_dissector(const char *name, dissector_t dissector, int proto)
index 8429ee445727b258853ed7557b2c802c7601a192..24e0cb29f4aeffade5b0508d4c2bab73f216fddc 100644 (file)
@@ -1,7 +1,7 @@
 /* packet.h
  * Definitions for packet disassembly structures and routines
  *
- * $Id: packet.h,v 1.54 2002/02/26 11:55:39 guy Exp $
+ * $Id: packet.h,v 1.55 2002/04/28 00:13:05 guy Exp $
  *
  * Ethereal - Network traffic analyzer
  * By Gerald Combs <gerald@ethereal.com>
@@ -212,6 +212,8 @@ extern dissector_handle_t find_dissector(const char *name);
 /* Create an anonymous handle for a dissector. */
 extern dissector_handle_t create_dissector_handle(dissector_t dissector,
     int proto);
+extern dissector_handle_t new_create_dissector_handle(new_dissector_t dissector,
+    int proto);
 
 /* Call a dissector through a handle. */
 extern int call_dissector(dissector_handle_t handle, tvbuff_t *tvb,