summaryrefslogtreecommitdiff
path: root/echld/echld-int.h
diff options
context:
space:
mode:
authorLuis Ontanon <luis.ontanon@gmail.com>2013-07-05 23:57:07 +0000
committerLuis Ontanon <luis.ontanon@gmail.com>2013-07-05 23:57:07 +0000
commit880e19ac3d8e1b14448c3729af2ca2c62879a25f (patch)
tree92ac6e6d9ca13162c114eca25dcf344109b21d90 /echld/echld-int.h
parent34cd52a8e5f0515947cb9a08041ba8ed7a3be88f (diff)
downloadwireshark-880e19ac3d8e1b14448c3729af2ca2c62879a25f.tar.gz
Yet another iteration:
- improve the parameter api - Add a parameter set message to the NEW child message to set parameters in bulk in the child - some more harvestig from tshark svn path=/trunk/; revision=50393
Diffstat (limited to 'echld/echld-int.h')
-rw-r--r--echld/echld-int.h50
1 files changed, 39 insertions, 11 deletions
diff --git a/echld/echld-int.h b/echld/echld-int.h
index 32fa26ed73..0c9b58d0a1 100644
--- a/echld/echld-int.h
+++ b/echld/echld-int.h
@@ -48,6 +48,7 @@
#include <stdarg.h>
#include <errno.h>
#include <signal.h>
+#include <locale.h>
#include <arpa/inet.h>
@@ -62,11 +63,16 @@
#include "capture_ifinfo.h"
#include "capture_sync.h"
#include "version_info.h"
+#include "cfile.h"
#include "wsutil/crash_info.h"
#include "wsutil/privileges.h"
#include "epan/filesystem.h"
#include "epan/epan.h"
#include "epan/prefs.h"
+#include "epan/ex-opt.h"
+#include "epan/funnel.h"
+#include "epan/prefs.h"
+#include "epan/timestamp.h"
#include "disabled_protos.h"
#include "echld.h"
@@ -149,6 +155,15 @@ typedef struct _param {
const char* desc;
} param_t;
+extern param_t* paramset_find (param_t* paramsets, char* name, char** err);
+
+extern char* paramset_apply_get (param_t* paramsets, char* name, char** err);
+extern echld_bool_t paramset_apply_set (param_t* paramsets, char* name, char* val, char** err);
+extern echld_bool_t paramset_apply_em(param_t* paramset, enc_msg_t* em, char** err);
+
+#define PARAM_LIST_FMT "%s(%s): %s\n" /* name, rw|ro|wo, desc */
+char* paramset_get_params_list(param_t* paramsets,const char* fmt);
+
#define PARAM_STR(Name, Default) static char* param_ ## Name = Default; \
static char* param_get_ ## Name (char** err _U_ ) { return (param_ ## Name) ? g_strdup(param_ ## Name) : (*err = g_strdup( #Name " not set"), NULL); } \
static echld_bool_t param_set_ ## Name (char* val , char** err _U_) { if (param_ ## Name) g_free(param_ ## Name); param_ ## Name = g_strdup(val); return TRUE; } \
@@ -165,6 +180,15 @@ typedef struct _param {
#define RO_PARAM(Name,Desc) {#Name, param_get_ ## Name, NULL, Desc}
#define WO_PARAM(Name,Desc) {#Name, NULL, param_set_ ## Name, Desc}
+typedef struct _echld_epan_stuff_t {
+#ifdef HAVE_LIBPCAP
+ capture_session cap_sess;
+ capture_options cap_opts;
+ capture_file cfile;
+#endif
+ e_prefs* prefs;
+} echld_epan_stuff_t;
+
/* the call_back used by read_frame() */
typedef long (*read_cb_t)(guint8*, size_t, echld_chld_id_t, echld_msg_type_t, echld_reqh_id_t, void*);
@@ -216,7 +240,7 @@ extern long echld_read_frame(echld_reader_t* r, read_cb_t cb, void* cb_data);
extern long echld_write_frame(int fd, GByteArray* ba, guint16 chld_id, echld_msg_type_t type, guint16 reqh_id, void* data);
-extern void echld_child_initialize(echld_chld_id_t chld_id, int pipe_from_parent, int pipe_to_parent, int reqh_id);
+extern void echld_child_initialize(echld_chld_id_t chld_id, int pipe_from_parent, int pipe_to_parent, int reqh_id, echld_epan_stuff_t* es);
extern int echld_child_loop(void);
/* never returns*/
@@ -242,21 +266,25 @@ extern void echld_unused(void);
#define DISP_KILLED_CHILD_WAIT 100000 /* 0.1s */
/* fatalities */
-#define BROKEN_PARENT_PIPE 123
-#define BROKEN_DUMPCAP_PIPE 124
-#define BROKEN_READFILE 125
-#define DISPATCHER_DEAD 126
-#define UNIMPLEMENTED 127
-#define CANNOT_FORK 128
-#define SHOULD_HAVE_EXITED_BEFORE 129
-#define DISPATCHER_PIPE_FAILED 130
-#define TERMINATED 140
-#define CANNOT_PREINIT_EPAN 141
+#define BROKEN_PARENT_PIPE 9
+#define BROKEN_DUMPCAP_PIPE 10
+#define BROKEN_READFILE 11
+#define DISPATCHER_DEAD 12
+#define UNIMPLEMENTED 13
+#define CANNOT_FORK 14
+#define SHOULD_HAVE_EXITED_BEFORE 15
+#define DISPATCHER_PIPE_FAILED 16
+#define TERMINATED 17
+#define CANNOT_PREINIT_EPAN 18
+#define NO_INITIALIZER 19
#ifndef DEBUG_BASE
#define echld_common_set_dbg(a,b,c)
#endif
+
+
+
#ifdef __cplusplus
extern "C" {
#endif