Get rid of has_cfilter to simplify the handling of multiple interfaces.
svn path=/trunk/; revision=37478
This commit is contained in:
parent
6516aa9864
commit
8f8f0e9ad6
|
@ -56,13 +56,13 @@ void
|
||||||
capture_opts_init(capture_options *capture_opts, void *cf)
|
capture_opts_init(capture_options *capture_opts, void *cf)
|
||||||
{
|
{
|
||||||
capture_opts->cf = cf;
|
capture_opts->cf = cf;
|
||||||
capture_opts->cfilter = g_strdup(""); /* No capture filter string specified */
|
capture_opts->cfilter = NULL; /* No capture filter string specified */
|
||||||
capture_opts->iface = NULL; /* Default is "pick the first interface" */
|
capture_opts->iface = NULL; /* Default is "pick the first interface" */
|
||||||
capture_opts->iface_descr = NULL;
|
capture_opts->iface_descr = NULL;
|
||||||
capture_opts->ifaces = g_array_new(FALSE, FALSE, sizeof(interface_options));
|
capture_opts->ifaces = g_array_new(FALSE, FALSE, sizeof(interface_options));
|
||||||
capture_opts->default_options.name = NULL;
|
capture_opts->default_options.name = NULL;
|
||||||
capture_opts->default_options.descr = NULL;
|
capture_opts->default_options.descr = NULL;
|
||||||
capture_opts->default_options.cfilter = g_strdup("");
|
capture_opts->default_options.cfilter = NULL;
|
||||||
capture_opts->default_options.snaplen = WTAP_MAX_PACKET_SIZE;
|
capture_opts->default_options.snaplen = WTAP_MAX_PACKET_SIZE;
|
||||||
capture_opts->default_options.linktype = -1;
|
capture_opts->default_options.linktype = -1;
|
||||||
capture_opts->default_options.promisc_mode = TRUE;
|
capture_opts->default_options.promisc_mode = TRUE;
|
||||||
|
@ -658,7 +658,6 @@ capture_opts_add_opt(capture_options *capture_opts, int opt, const char *optarg_
|
||||||
capture_opts->autostop_packets = get_positive_int(optarg_str_p, "packet count");
|
capture_opts->autostop_packets = get_positive_int(optarg_str_p, "packet count");
|
||||||
break;
|
break;
|
||||||
case 'f': /* capture filter */
|
case 'f': /* capture filter */
|
||||||
capture_opts->has_cfilter = TRUE;
|
|
||||||
g_free(capture_opts->cfilter);
|
g_free(capture_opts->cfilter);
|
||||||
capture_opts->cfilter = g_strdup(optarg_str_p);
|
capture_opts->cfilter = g_strdup(optarg_str_p);
|
||||||
if (capture_opts->ifaces->len > 0) {
|
if (capture_opts->ifaces->len > 0) {
|
||||||
|
|
|
@ -105,7 +105,6 @@ typedef struct interface_options_tag {
|
||||||
typedef struct capture_options_tag {
|
typedef struct capture_options_tag {
|
||||||
/* general */
|
/* general */
|
||||||
void *cf; /**< handle to cfile (note: untyped handle) */
|
void *cf; /**< handle to cfile (note: untyped handle) */
|
||||||
gboolean has_cfilter; /**< TRUE if capture filter specified on command line */
|
|
||||||
gchar *cfilter; /**< Capture filter string
|
gchar *cfilter; /**< Capture filter string
|
||||||
*< XXX: Can finally be be removed.
|
*< XXX: Can finally be be removed.
|
||||||
*< Replaced by interface_options.cfilter */
|
*< Replaced by interface_options.cfilter */
|
||||||
|
|
|
@ -2518,7 +2518,7 @@ capture_loop_init_output(capture_options *capture_opts, loop_data *ld, char *err
|
||||||
}
|
}
|
||||||
successful = libpcap_write_interface_description_block(ld->pdh,
|
successful = libpcap_write_interface_description_block(ld->pdh,
|
||||||
interface_opts.name,
|
interface_opts.name,
|
||||||
interface_opts.cfilter,
|
interface_opts.cfilter?interface_opts.cfilter:"",
|
||||||
pcap_opts->linktype,
|
pcap_opts->linktype,
|
||||||
pcap_opts->snaplen,
|
pcap_opts->snaplen,
|
||||||
&ld->bytes_written,
|
&ld->bytes_written,
|
||||||
|
@ -2947,7 +2947,7 @@ do_file_switch_or_stop(capture_options *capture_opts,
|
||||||
pcap_opts = g_array_index(global_ld.pcaps, pcap_options *, i);
|
pcap_opts = g_array_index(global_ld.pcaps, pcap_options *, i);
|
||||||
successful = libpcap_write_interface_description_block(global_ld.pdh,
|
successful = libpcap_write_interface_description_block(global_ld.pdh,
|
||||||
interface_opts.name,
|
interface_opts.name,
|
||||||
interface_opts.cfilter,
|
interface_opts.cfilter?interface_opts.cfilter:"",
|
||||||
pcap_opts->linktype,
|
pcap_opts->linktype,
|
||||||
pcap_opts->snaplen,
|
pcap_opts->snaplen,
|
||||||
&(global_ld.bytes_written),
|
&(global_ld.bytes_written),
|
||||||
|
|
|
@ -2956,8 +2956,7 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if the user didn't supplied a capture filter, use the one to filter out remote connections like SSH */
|
/* if the user didn't supplied a capture filter, use the one to filter out remote connections like SSH */
|
||||||
if (!start_capture && strlen(global_capture_opts.cfilter) == 0) {
|
if (!start_capture && !global_capture_opts.cfilter) {
|
||||||
g_free(global_capture_opts.cfilter);
|
|
||||||
global_capture_opts.cfilter = g_strdup(get_conn_cfilter());
|
global_capture_opts.cfilter = g_strdup(get_conn_cfilter());
|
||||||
}
|
}
|
||||||
#else /* HAVE_LIBPCAP */
|
#else /* HAVE_LIBPCAP */
|
||||||
|
|
5
tshark.c
5
tshark.c
|
@ -1386,12 +1386,11 @@ main(int argc, char *argv[])
|
||||||
rfilter = get_args_as_string(argc, argv, optind);
|
rfilter = get_args_as_string(argc, argv, optind);
|
||||||
} else {
|
} else {
|
||||||
#ifdef HAVE_LIBPCAP
|
#ifdef HAVE_LIBPCAP
|
||||||
if (global_capture_opts.has_cfilter) {
|
if (global_capture_opts.cfilter) {
|
||||||
cmdarg_err("Capture filters were specified both with \"-f\""
|
cmdarg_err("Capture filters were specified both with \"-f\""
|
||||||
" and with additional command-line arguments");
|
" and with additional command-line arguments");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
global_capture_opts.has_cfilter = TRUE;
|
|
||||||
global_capture_opts.cfilter = get_args_as_string(argc, argv, optind);
|
global_capture_opts.cfilter = get_args_as_string(argc, argv, optind);
|
||||||
#else
|
#else
|
||||||
capture_option_specified = TRUE;
|
capture_option_specified = TRUE;
|
||||||
|
@ -1438,7 +1437,7 @@ main(int argc, char *argv[])
|
||||||
support in capture files we read). */
|
support in capture files we read). */
|
||||||
#ifdef HAVE_LIBPCAP
|
#ifdef HAVE_LIBPCAP
|
||||||
if (cf_name != NULL) {
|
if (cf_name != NULL) {
|
||||||
if (global_capture_opts.has_cfilter) {
|
if (global_capture_opts.cfilter) {
|
||||||
cmdarg_err("Only read filters, not capture filters, "
|
cmdarg_err("Only read filters, not capture filters, "
|
||||||
"can be specified when reading a capture file.");
|
"can be specified when reading a capture file.");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue