aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--capture.h118
-rw-r--r--capture_loop.c1
-rw-r--r--capture_loop.h71
-rw-r--r--capture_opts.c1
-rw-r--r--capture_opts.h112
-rw-r--r--capture_sync.h4
-rw-r--r--dumpcap.c1
-rw-r--r--gtk/capture_info_dlg.c1
-rw-r--r--gtk/main.c2
9 files changed, 194 insertions, 117 deletions
diff --git a/capture.h b/capture.h
index 14e27345f8..671fe281e0 100644
--- a/capture.h
+++ b/capture.h
@@ -31,86 +31,7 @@
* Capture related things.
*/
-/** Name we give to the child process when doing a "-S" capture. */
-#define CHILD_NAME "ethereal-capture"
-
-
-/* Current state of capture engine. XXX - differentiate states */
-typedef enum {
- CAPTURE_STOPPED, /**< stopped */
- CAPTURE_PREPARING, /**< preparing, but still no response from capture child */
- CAPTURE_RUNNING /**< capture child signalled ok, capture is running now */
-} capture_state;
-
-
-/** Capture options coming from user interface */
-typedef struct capture_options_tag {
- /* general */
- void *cf; /**< handle to cfile (note: untyped handle) */
- gchar *cfilter; /**< Capture filter string */
- gchar *iface; /**< the network interface to capture from */
-
-#ifdef _WIN32
- int buffer_size; /**< the capture buffer size (MB) */
-#endif
- gboolean has_snaplen; /**< TRUE if maximum capture packet length
- is specified */
- int snaplen; /**< Maximum captured packet length */
- gboolean promisc_mode; /**< Capture in promiscuous mode */
- int linktype; /**< Data link type to use, or -1 for
- "use default" */
- gchar *save_file; /**< the capture file name */
-
- /* GUI related */
- gboolean real_time_mode; /**< Update list of packets in real time */
- gboolean show_info; /**< show the info dialog */
- gboolean quit_after_cap; /** Makes a "capture only mode". Implies -k */
- gboolean restart; /**< restart after closing is done */
-
- /* multiple files (and ringbuffer) */
- gboolean multi_files_on; /**< TRUE if ring buffer in use */
-
- gboolean has_file_duration; /**< TRUE if ring duration specified */
- gint32 file_duration; /* Switch file after n seconds */
- gboolean has_ring_num_files;/**< TRUE if ring num_files specified */
- guint32 ring_num_files; /**< Number of multiple buffer files */
-
- /* autostop conditions */
- gboolean has_autostop_files;/**< TRUE if maximum number of capture files
- are specified */
- gint32 autostop_files; /**< Maximum number of capture files */
-
- gboolean has_autostop_packets; /**< TRUE if maximum packet count is
- specified */
- int autostop_packets; /**< Maximum packet count */
- gboolean has_autostop_filesize; /**< TRUE if maximum capture file size
- is specified */
- gint32 autostop_filesize; /**< Maximum capture file size */
- gboolean has_autostop_duration; /**< TRUE if maximum capture duration
- is specified */
- gint32 autostop_duration; /**< Maximum capture duration */
-
- /* internally used (don't touch from outside) */
- int fork_child; /**< If not -1, in parent, process ID of child */
-#ifdef _WIN32
- int signal_pipe_fd; /**< the pipe to signal the child */
-#endif
- capture_state state; /**< current state of the capture engine */
-} capture_options;
-
-
-/* initialize the capture_options with some reasonable values */
-extern void
-capture_opts_init(capture_options *capture_opts, void *cfile);
-
-extern void
-capture_opts_add_opt(capture_options *capture_opts, int opt, const char *optarg, gboolean *start_capture);
-
-/* log content of capture_opts */
-extern void
-capture_opts_log(const char *log_domain, GLogLevelFlags log_level, capture_options *capture_opts);
-
-
+#include "capture_opts.h"
/**
* Start a capture session.
@@ -155,41 +76,4 @@ extern void capture_input_error_message(capture_options *capture_opts, char *err
extern void capture_input_closed(capture_options *capture_opts);
-
-/** Do the low-level work of a capture (start the capture child).
- * Returns TRUE if it succeeds, FALSE otherwise. */
-extern int capture_loop_start(capture_options *capture_opts, gboolean *stats_known, struct pcap_stat *stats);
-
-/** Stop a low-level capture (stops the capture child). */
-extern void capture_loop_stop(void);
-
-
-
-/** Current Capture info. */
-typedef struct {
- /* handles */
- gpointer callback_data; /**< capture callback handle */
- gpointer ui; /**< user interfaces own handle */
-
- /* capture info */
- packet_counts *counts; /**< protocol specific counters */
- time_t running_time; /**< running time since last update */
- gint new_packets; /**< packets since last update */
-} capture_info;
-
-
-/** Create the capture info dialog */
-extern void capture_info_create(
-capture_info *cinfo,
-gchar *iface);
-
-/** Update the capture info counters in the dialog */
-extern void capture_info_update(
-capture_info *cinfo);
-
-/** Destroy the capture info dialog again */
-extern void capture_info_destroy(
-capture_info *cinfo);
-
-
#endif /* capture.h */
diff --git a/capture_loop.c b/capture_loop.c
index 77e6ad2f86..2e6beefad9 100644
--- a/capture_loop.c
+++ b/capture_loop.c
@@ -68,6 +68,7 @@
#include <epan/packet.h>
#include "capture.h"
+#include "capture_loop.h"
#include "capture_sync.h"
#include "pcap-util.h"
diff --git a/capture_loop.h b/capture_loop.h
new file mode 100644
index 0000000000..9b57499706
--- /dev/null
+++ b/capture_loop.h
@@ -0,0 +1,71 @@
+/* capture_loop.h
+ * Do the low-level work of a capture
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+/** @file
+ *
+ * Do the low-level work of a capture.
+ *
+ */
+
+#ifndef __CAPTURE_LOOP_H__
+#define __CAPTURE_LOOP_H__
+
+/** Do the low-level work of a capture.
+ * Returns TRUE if it succeeds, FALSE otherwise. */
+extern int capture_loop_start(capture_options *capture_opts, gboolean *stats_known, struct pcap_stat *stats);
+
+/** Stop a low-level capture (stops the capture child). */
+extern void capture_loop_stop(void);
+
+
+
+/** Current Capture info. */
+typedef struct {
+ /* handles */
+ gpointer callback_data; /**< capture callback handle */
+ gpointer ui; /**< user interfaces own handle */
+
+ /* capture info */
+ packet_counts *counts; /**< protocol specific counters */
+ time_t running_time; /**< running time since last update */
+ gint new_packets; /**< packets since last update */
+} capture_info;
+
+
+/** Create the capture info dialog */
+extern void capture_info_create(
+capture_info *cinfo,
+gchar *iface);
+
+/** Update the capture info counters in the dialog */
+extern void capture_info_update(
+capture_info *cinfo);
+
+/** Destroy the capture info dialog again */
+extern void capture_info_destroy(
+capture_info *cinfo);
+
+
+#endif /* capture_loop.h */
diff --git a/capture_opts.c b/capture_opts.c
index df66d6b3a3..38da616b64 100644
--- a/capture_opts.c
+++ b/capture_opts.c
@@ -38,6 +38,7 @@
#include <epan/packet.h>
#include "capture.h"
+#include "capture_opts.h"
#include "ringbuffer.h"
#include "clopts_common.h"
#include "cmdarg_err.h"
diff --git a/capture_opts.h b/capture_opts.h
new file mode 100644
index 0000000000..2708f80e61
--- /dev/null
+++ b/capture_opts.h
@@ -0,0 +1,112 @@
+/* capture_opts.h
+ * Capture options (all parameters needed to do the actual capture)
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+
+/** @file
+ *
+ * Capture options (all parameters needed to do the actual capture)
+ *
+ */
+
+#ifndef __CAPTURE_OPTS_H__
+#define __CAPTURE_OPTS_H__
+
+
+/* Current state of capture engine. XXX - differentiate states */
+typedef enum {
+ CAPTURE_STOPPED, /**< stopped */
+ CAPTURE_PREPARING, /**< preparing, but still no response from capture child */
+ CAPTURE_RUNNING /**< capture child signalled ok, capture is running now */
+} capture_state;
+
+
+/** Capture options coming from user interface */
+typedef struct capture_options_tag {
+ /* general */
+ void *cf; /**< handle to cfile (note: untyped handle) */
+ gchar *cfilter; /**< Capture filter string */
+ gchar *iface; /**< the network interface to capture from */
+
+#ifdef _WIN32
+ int buffer_size; /**< the capture buffer size (MB) */
+#endif
+ gboolean has_snaplen; /**< TRUE if maximum capture packet length
+ is specified */
+ int snaplen; /**< Maximum captured packet length */
+ gboolean promisc_mode; /**< Capture in promiscuous mode */
+ int linktype; /**< Data link type to use, or -1 for
+ "use default" */
+ gchar *save_file; /**< the capture file name */
+
+ /* GUI related */
+ gboolean real_time_mode; /**< Update list of packets in real time */
+ gboolean show_info; /**< show the info dialog */
+ gboolean quit_after_cap; /** Makes a "capture only mode". Implies -k */
+ gboolean restart; /**< restart after closing is done */
+
+ /* multiple files (and ringbuffer) */
+ gboolean multi_files_on; /**< TRUE if ring buffer in use */
+
+ gboolean has_file_duration; /**< TRUE if ring duration specified */
+ gint32 file_duration; /* Switch file after n seconds */
+ gboolean has_ring_num_files;/**< TRUE if ring num_files specified */
+ guint32 ring_num_files; /**< Number of multiple buffer files */
+
+ /* autostop conditions */
+ gboolean has_autostop_files;/**< TRUE if maximum number of capture files
+ are specified */
+ gint32 autostop_files; /**< Maximum number of capture files */
+
+ gboolean has_autostop_packets; /**< TRUE if maximum packet count is
+ specified */
+ int autostop_packets; /**< Maximum packet count */
+ gboolean has_autostop_filesize; /**< TRUE if maximum capture file size
+ is specified */
+ gint32 autostop_filesize; /**< Maximum capture file size */
+ gboolean has_autostop_duration; /**< TRUE if maximum capture duration
+ is specified */
+ gint32 autostop_duration; /**< Maximum capture duration */
+
+ /* internally used (don't touch from outside) */
+ int fork_child; /**< If not -1, in parent, process ID of child */
+#ifdef _WIN32
+ int signal_pipe_fd; /**< the pipe to signal the child */
+#endif
+ capture_state state; /**< current state of the capture engine */
+} capture_options;
+
+
+/* initialize the capture_options with some reasonable values */
+extern void
+capture_opts_init(capture_options *capture_opts, void *cfile);
+
+extern void
+capture_opts_add_opt(capture_options *capture_opts, int opt, const char *optarg, gboolean *start_capture);
+
+/* log content of capture_opts */
+extern void
+capture_opts_log(const char *log_domain, GLogLevelFlags log_level, capture_options *capture_opts);
+
+
+#endif /* capture_opts.h */
diff --git a/capture_sync.h b/capture_sync.h
index 614747ee5e..d734641d41 100644
--- a/capture_sync.h
+++ b/capture_sync.h
@@ -34,6 +34,10 @@
#ifndef __CAPTURE_SYNC_H__
#define __CAPTURE_SYNC_H__
+/** Name we give to the child process when doing a "-S" capture. */
+#define CHILD_NAME "ethereal-capture"
+
+
/**
* Start a new capture session.
* Create a capture child which is doing the real capture work.
diff --git a/dumpcap.c b/dumpcap.c
index 63476bc9e1..a31d06bb05 100644
--- a/dumpcap.c
+++ b/dumpcap.c
@@ -53,6 +53,7 @@
#include "pcap-util.h"
#include "capture.h"
+#include "capture_loop.h"
#ifdef _WIN32
#include "capture-wpcap.h"
diff --git a/gtk/capture_info_dlg.c b/gtk/capture_info_dlg.c
index 1d182a33f6..6ab480fd83 100644
--- a/gtk/capture_info_dlg.c
+++ b/gtk/capture_info_dlg.c
@@ -38,6 +38,7 @@
#include <epan/packet.h>
#include "capture.h"
+#include "capture_loop.h"
#include "globals.h"
#include "capture_ui_utils.h"
#include "dlg_utils.h"
diff --git a/gtk/main.c b/gtk/main.c
index a9173e939f..9a764d0937 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -91,6 +91,8 @@
#include <pcap.h>
#include "pcap-util.h"
#include "capture.h"
+#include "capture_loop.h"
+#include "capture_sync.h"
#endif
#ifdef _WIN32