Ethereal-dev: [Ethereal-dev] patch to allow exceptions in plugins on win32
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Matthijs Melchior <mmelchior@xxxxxxxxx>
Date: Wed, 30 Apr 2003 17:20:03 +0200
Hi, here is a patch to add the public interface for exception handling to the win32 plugin address table. I do not have my win32 build environment available today and therefore this patch is not tested.., but I am eager to have it included in the imminent release....! I'll find some testing time tomorrow. Thanks. -- Regards, ---------------------------------------------------------------- -o) Matthijs Melchior Maarssen /\\ mmelchior@xxxxxxxxx Netherlands _\_v ---------------------------------------------------------------- ----
--- ./ethereal-0.9.11/epan/plugins.c-ORG Wed Apr 30 15:43:08 2003
+++ ./ethereal-0.9.11/epan/plugins.c Wed Apr 30 16:23:02 2003
@@ -517,6 +517,22 @@
patable.p_asn1_oid_decode = asn1_oid_decode;
patable.p_asn1_sequence_decode = asn1_sequence_decode;
patable.p_asn1_err_to_str = asn1_err_to_str;
+
+ patable.p_except_init = except_init;
+ patable.p_except_deinit = except_deinit;
+ patable.p_except_rethrow = except_rethrow;
+ patable.p_except_throw = except_throw;
+ patable.p_except_throwd = except_throwd;
+ patable.p_except_throwf = except_throwf;
+ patable.p_except_unhandled_catcher = except_unhandled_catcher;
+ patable.p_except_code = except_code;
+ patable.p_except_group = except_group;
+ patable.p_except_message = except_message;
+ patable.p_except_data = except_data;
+ patable.p_except_take_data = except_take_data;
+ patable.p_except_set_allocator = except_set_allocator;
+ patable.p_except_alloc = except_alloc;
+ patable.p_except_free = except_free;
#endif
--- ./ethereal-0.9.11/plugins/plugin_api.c-ORG Wed Apr 30 15:43:08 2003
+++ ./ethereal-0.9.11/plugins/plugin_api.c Wed Apr 30 16:33:26 2003
@@ -239,4 +239,20 @@
p_asn1_sequence_decode = pat->p_asn1_sequence_decode;
p_asn1_err_to_str = pat->p_asn1_err_to_str;
+ p_except_init = pat->p_except_init;
+ p_except_deinit = pat->p_except_deinit;
+ p_except_rethrow = pat->p_except_rethrow;
+ p_except_throw = pat->p_except_throw;
+ p_except_throwd = pat->p_except_throwd;
+ p_except_throwf = pat->p_except_throwf;
+ p_except_unhandled_catcher = pat->p_except_unhandled_catcher;
+ p_except_code = pat->p_except_code;
+ p_except_group = pat->p_except_group;
+ p_except_message = pat->p_except_message;
+ p_except_data = pat->p_except_data;
+ p_except_take_data = pat->p_except_take_data;
+ p_except_set_allocator = pat->p_except_set_allocator;
+ p_except_alloc = pat->p_except_alloc;
+ p_except_free = pat->p_except_free;
+
}
--- ./ethereal-0.9.11/plugins/plugin_api.h-ORG Wed Apr 30 15:43:08 2003
+++ ./ethereal-0.9.11/plugins/plugin_api.h Wed Apr 30 16:42:49 2003
@@ -269,6 +269,22 @@
#define asn1_sequence_decode (*p_asn1_sequence_decode)
#define asn1_err_to_str (*p_asn1_err_to_str)
+#define except_init (*p_except_init)
+#define except_deinit (*p_except_deinit)
+#define except_rethrow (*p_except_rethrow)
+#define except_throw (*p_except_throw)
+#define except_throwd (*p_except_throwd)
+#define except_throwf (*p_except_throwf)
+#define except_unhandled_catcher (*p_except_unhandled_catcher)
+#define except_code (*p_except_code)
+#define except_group (*p_except_group)
+#define except_message (*p_except_message)
+#define except_data (*p_except_data)
+#define except_take_data (*p_except_take_data)
+#define except_set_allocator (*p_except_set_allocator)
+#define except_alloc (*p_except_alloc)
+#define except_free (*p_except_free)
+
#endif
#include <epan/packet.h>
@@ -280,6 +296,7 @@
#include "packet-tcp.h"
#include "tap.h"
#include "asn1.h"
+#include "epan/except.h"
#include "plugin_table.h"
--- ./ethereal-0.9.11/plugins/plugin_api_decls.h-ORG Wed Apr 30 15:43:08 2003
+++ ./ethereal-0.9.11/plugins/plugin_api_decls.h Wed Apr 30 16:48:55 2003
@@ -277,3 +277,19 @@
addr_asn1_oid_decode p_asn1_oid_decode;
addr_asn1_sequence_decode p_asn1_sequence_decode;
addr_asn1_err_to_str p_asn1_err_to_str;
+
+addr_except_init p_except_init;
+addr_except_deinit p_except_deinit;
+addr_except_rethrow p_except_rethrow;
+addr_except_throw p_except_throw;
+addr_except_throwd p_except_throwd;
+addr_except_throwf p_except_throwf;
+addr_except_unhandled_catcher p_except_unhandled_catcher;
+addr_except_code p_except_code;
+addr_except_group p_except_group;
+addr_except_message p_except_message;
+addr_except_data p_except_data;
+addr_except_take_data p_except_take_data;
+addr_except_set_allocator p_except_set_allocator;
+addr_except_alloc p_except_alloc;
+addr_except_free p_except_free;
--- ./ethereal-0.9.11/plugins/plugin_table.h-ORG Wed Apr 30 16:09:58 2003
+++ ./ethereal-0.9.11/plugins/plugin_table.h Wed Apr 30 17:03:10 2003
@@ -314,6 +314,22 @@
typedef char *(*addr_asn1_err_to_str)(int );
+typedef int (*except_init)(void);
+typedef void (*except_deinit)(void);
+typedef void (*except_rethrow)(except_t *);
+typedef void (*except_throw)(long, long, const char *);
+typedef void (*except_throwd)(long, long, const char *, void *);
+typedef void (*except_throwf)(long, long, const char *, ...);
+typedef void (*(*except_unhandled_catcher)(void (*)(except_t *)))(except_t *);
+typedef unsigned long (*except_code)(except_t *);
+typedef unsigned long (*except_group)(except_t *);
+typedef const char *(*except_message)(except_t *);
+typedef void *(*except_data)(except_t *);
+typedef void *(*except_take_data)(except_t *);
+typedef void (*except_set_allocator)(void *(*)(size_t), void (*)(void *));
+typedef void *(*except_alloc)(size_t);
+typedef void (*except_free)(void *);
+
typedef struct {
#include "plugin_api_decls.h"
- Follow-Ups:
- Re: [Ethereal-dev] patch to allow exceptions in plugins on win32
- From: Guy Harris
- Re: [Ethereal-dev] patch to allow exceptions in plugins on win32
- From: Guy Harris
- Re: [Ethereal-dev] patch to allow exceptions in plugins on win32
- Prev by Date: [Ethereal-dev] Bug in packet_bpdu.c
- Next by Date: Re: [Ethereal-dev] Bug in packet_bpdu.c
- Previous by thread: Re: [Ethereal-dev] Bug in packet_bpdu.c
- Next by thread: Re: [Ethereal-dev] patch to allow exceptions in plugins on win32
- Index(es):





