Ethereal-users: Re: [Ethereal-users] Capturing IPv6 without IPv4 address assigned?
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Guy Harris <gharris@xxxxxxxxxxxx>
Date: Tue, 31 Oct 2000 23:32:00 -0800
> Ethereal could either > > 1) let you do it and warn you *every time* with a message box, > which might get annoying; ... > 3) let you do it and not warn you. I've chosen 3). (It uses a netmask of 0. This means that filters that check for IP broadcast addresses won't necessarily work correctly; so it goes.) For Tethereal, I have it warn the user, as warnings are less likely to be irritating. Here's a patch to do both of those, which I'll check in.
? errs
? wiretap/gzio.c
? wiretap/zlib-1.1.3
Index: capture.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/capture.c,v
retrieving revision 1.130
diff -c -r1.130 capture.c
*** capture.c 2000/10/21 04:20:07 1.130
--- capture.c 2000/11/01 07:28:04
***************
*** 1179,1187 ****
if (cfile.cfilter && !ld.from_pipe) {
/* A capture filter was specified; set it up. */
if (pcap_lookupnet (cfile.iface, &netnum, &netmask, err_str) < 0) {
! snprintf(errmsg, sizeof errmsg,
! "Can't use filter: Couldn't obtain netmask info (%s).", err_str);
! goto error;
}
if (pcap_compile(pch, &cfile.fcode, cfile.cfilter, 1, netmask) < 0) {
snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).",
--- 1179,1194 ----
if (cfile.cfilter && !ld.from_pipe) {
/* A capture filter was specified; set it up. */
if (pcap_lookupnet (cfile.iface, &netnum, &netmask, err_str) < 0) {
! /*
! * Well, we can't get the netmask for this interface; it's used
! * only for filters that check for broadcast IP addresses, so
! * we just punt and use 0. It might be nice to warn the user,
! * but that's a pain in a GUI application, as it'd involve popping
! * up a message box, and it's not clear how often this would make
! * a difference (only filters that check for IP broadcast addresses
! * use the netmask).
! */
! netmask = 0;
}
if (pcap_compile(pch, &cfile.fcode, cfile.cfilter, 1, netmask) < 0) {
snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).",
Index: tethereal.c
===================================================================
RCS file: /usr/local/cvsroot/ethereal/tethereal.c,v
retrieving revision 1.52
diff -c -r1.52 tethereal.c
*** tethereal.c 2000/10/31 08:15:26 1.52
--- tethereal.c 2000/11/01 07:28:07
***************
*** 592,600 ****
if (cfile.cfilter) {
/* A capture filter was specified; set it up. */
if (pcap_lookupnet (cfile.iface, &netnum, &netmask, err_str) < 0) {
! snprintf(errmsg, sizeof errmsg,
! "Can't use filter: Couldn't obtain netmask info (%s).", err_str);
! goto error;
}
if (pcap_compile(ld.pch, &cfile.fcode, cfile.cfilter, 1, netmask) < 0) {
snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).",
--- 592,605 ----
if (cfile.cfilter) {
/* A capture filter was specified; set it up. */
if (pcap_lookupnet (cfile.iface, &netnum, &netmask, err_str) < 0) {
! /*
! * Well, we can't get the netmask for this interface; it's used
! * only for filters that check for broadcast IP addresses, so
! * we just warn the user, and punt and use 0.
! */
! fprintf(stderr,
! "Warning: Couldn't obtain netmask info (%s)\n.", err_str);
! netmask = 0;
}
if (pcap_compile(ld.pch, &cfile.fcode, cfile.cfilter, 1, netmask) < 0) {
snprintf(errmsg, sizeof errmsg, "Unable to parse filter string (%s).",
- Prev by Date: [Ethereal-users] ADV: Search Engine Registration
- Next by Date: Re: [ethereal-users] can't open an interface without IPv4 address assigned
- Previous by thread: [Ethereal-users] ADV: Search Engine Registration
- Next by thread: Re: [ethereal-users] can't open an interface without IPv4 address assigned
- Index(es):