summaryrefslogtreecommitdiff
path: root/capture_opts.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2008-06-20 00:09:47 +0000
committerGuy Harris <guy@alum.mit.edu>2008-06-20 00:09:47 +0000
commite731e24b51a26a4c10098292b5eb5ebc4d202780 (patch)
treee0ff8b126c891c723b754fb1202cac2e8ca4e775 /capture_opts.c
parent01de1202bcadfadeb42dfb11160088a09a588428 (diff)
downloadwireshark-e731e24b51a26a4c10098292b5eb5ebc4d202780.tar.gz
capture_opts_print_statistics() has nothing to do with capture options
setting, and is used only in dumpcap.c, and needs to get at information set by dumpcap's signal handlers so it can respond to ^C; move it to dumpcap.c, rename it print_statistics_loop(), and make it set ld.go to TRUE before looping and loop only as long as ld.go is TRUE. That fixes bug 2592 (at least on Mac OS X, and probably on other UN*Xes; it should fix it on Windows as well). svn path=/trunk/; revision=25492
Diffstat (limited to 'capture_opts.c')
-rw-r--r--capture_opts.c93
1 files changed, 0 insertions, 93 deletions
diff --git a/capture_opts.c b/capture_opts.c
index b75cf5affe..a7fbfdad8a 100644
--- a/capture_opts.c
+++ b/capture_opts.c
@@ -71,11 +71,6 @@
#include "capture-pcap-util.h"
#include <wsutil/file_util.h>
-typedef struct {
- char *name;
- pcap_t *pch;
-} if_stat_t;
-
static gboolean capture_opts_output_to_pipe(const char *save_file, gboolean *is_pipe);
@@ -705,94 +700,6 @@ capture_opts_list_interfaces(gboolean machine_readable)
return 0;
}
-/* Print the number of packets captured for each interface until we're killed. */
-int
-capture_opts_print_statistics(gboolean machine_readable)
-{
- GList *if_list, *if_entry, *stat_list = NULL, *stat_entry;
- if_info_t *if_info;
- if_stat_t *if_stat;
- int err;
- gchar *err_str;
- pcap_t *pch;
- char errbuf[PCAP_ERRBUF_SIZE];
- struct pcap_stat ps;
-
- if_list = get_interface_list(&err, &err_str);
- if (if_list == NULL) {
- switch (err) {
- case CANT_GET_INTERFACE_LIST:
- cmdarg_err("%s", err_str);
- g_free(err_str);
- break;
-
- case NO_INTERFACES_FOUND:
- cmdarg_err("There are no interfaces on which a capture can be done");
- break;
- }
- return err;
- }
-
- for (if_entry = g_list_first(if_list); if_entry != NULL; if_entry = g_list_next(if_entry)) {
- if_info = if_entry->data;
-#ifdef HAVE_PCAP_OPEN
- pch = pcap_open(if_info->name, MIN_PACKET_SIZE, 0, 0, NULL, errbuf);
-#else
- pch = pcap_open_live(if_info->name, MIN_PACKET_SIZE, 0, 0, errbuf);
-#endif
-
- if (pch) {
- if_stat = g_malloc(sizeof(if_stat_t));
- if_stat->name = g_strdup(if_info->name);
- if_stat->pch = pch;
- stat_list = g_list_append(stat_list, if_stat);
- }
- }
-
- if (!stat_list) {
- cmdarg_err("There are no interfaces on which a capture can be done");
- return 2;
- }
-
- if (!machine_readable) {
- printf("%-15s %10s %10s\n", "Interface", "Received",
- "Dropped");
- }
-
- while (1) { /* XXX - Add signal handling? */
- for (stat_entry = g_list_first(stat_list); stat_entry != NULL; stat_entry = g_list_next(stat_entry)) {
- if_stat = stat_entry->data;
- pcap_stats(if_stat->pch, &ps);
-
- if (!machine_readable) {
- printf("%-15s %10d %10d\n", if_stat->name,
- ps.ps_recv, ps.ps_drop);
- } else {
- printf("%s\t%d\t%d\n", if_stat->name,
- ps.ps_recv, ps.ps_drop);
- fflush(stdout);
- }
- }
-#ifdef _WIN32
- Sleep(1 * 1000);
-#else
- sleep(1);
-#endif
- }
-
- /* XXX - Not reached. Should we look for 'q' in stdin? */
- for (stat_entry = g_list_first(stat_list); stat_entry != NULL; stat_entry = g_list_next(stat_entry)) {
- if_stat = stat_entry->data;
- pcap_close(if_stat->pch);
- g_free(if_stat->name);
- g_free(if_stat);
- }
- g_list_free(stat_list);
- free_interface_list(if_list);
-
- return 0;
-}
-
void capture_opts_trim_snaplen(capture_options *capture_opts, int snaplen_min)
{