| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
That's not a fatal condition, unlike, for example, pcap_lookupnet()
getting a system call error trying to fetch the interface's IPv4 address.
|
| |
|
| |
|
|
|
|
|
|
| |
Leave CMAKE_EXE_LINKER_FLAGS and CMAKE_SHARED_LINKER_FLAGS alone;
instead, just add SANITIZER_FLAGS as the LINK_FLAGS property to shared
library and executable targets.
|
|
|
|
| |
They don't end with nothing.
|
| |
|
|
|
|
|
|
| |
One target for a pcap file
One target for a bpf filter
One target for pcap_offline_filter
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Mark argc and argv unused if we don't have remote-capture support, as
the arguments are only used to specify the remote server.
|
|
|
|
|
|
| |
We only support the -g flag if libpap is built with support for
debugging, so don't define the variable for the flag unless that support
is present.
|
|
|
|
|
|
|
| |
error() never returns, so code that follows an error() is unreachable.
Newer compilers support flagging routines as not returning, so the
compiler won't warn of main() not returning a value.
|
|
|
|
|
|
| |
If you're accumulating the lengths of strings, as returned by strlen(),
and passing the result to malloc(), it should be accumulated in a
size_t.
|
|
|
|
| |
Squelches a narrowing warning.
|
| |
|
|
|
|
| |
Clean up some other stuff while we're at it.
|
|
|
|
|
| |
The semi-automated conversion of bpf_validate() to
pcap_validate_filter() shouldn't have been done to the test programs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If net/bpf.h declares bpf_filter() one way and libpcap defines it
another way, even pcap-bpf.c needs a declaration that matches how
libpcap defines it, not how net/bpf.h (mistakenly) declares it.
("Mistakenly" because it should *not* be declaring the kernel's version
of bpf_filter() unless it's being used in a *kernel* build; other *BSDs,
and macOS, declare it only in kernel builds by testing for a #define
such as KERNEL or KERNEL_PRIVATE, but NetBSD doesn't - it *should*, but
it doesn't.)
So we rename the internal-to-pcap filtering routine as pcap_filter(),
which is not exported from libpcap, and have bpf_filter() be a wrapper
around pcap_filter() that is exported.
Use pcap_filter(), rather than bpf_filter(), for all filtering inside
libpcap (except for filtering that uses bpf_filter_with_aux_data(),
which we rename pcap_filter_with_aux_data()).
Do the same for bpf_validate(), which is *also* declared in net/bpf.h,
even for non-kernel builds, in NetBSD.
As we're not exporting pcap_filter_with_aux_data(), don't even *declare*
it in a public header; don't declare struct bpf_aux_data in a public
header, either. That way we can change it without worrying about
breaking APIs or ABIs; we may do that if, for example, we want to
support the "inbound" and "outbound" filters when reading pcapng files,
adding a direction indicator to that structure.
Declare bpf_filter() in pcap/bpf.h even on NetBSD and QNX; pcap-bpf.c
doesn't include pcap/bpf.h (it sets a #define to force pcap/pcap.h not
to include it), so we won't get any collisions if net/bpf.h (which it
does include) declares it. The only collisions will occur in programs
that include *both* pcap/pcap.h or pcap/bpf.h *and* net/bpf.h, and that
will occur only if net/bpf.h declares bpf_filter() even when building
userland code, and the correct fix for *that* is to fix net/bpf.h not to
declare them in non-kernel builds.
|
| |
|
|
|
|
|
|
| |
The remaining ocurrences are genuine and intentional.
warning: format string is not a string literal [-Wformat-nonliteral]
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of having -dddd mean "-ddd and print the CFG as a DOT graph",
have a separate -g flag to request the CFG.
Also, put the routines to set the "optimizer debug" and "print DOT
graph" flags into optimize.c, and make the flags in question static.
(And "CFG graph" is redundant, like "ATM machine", "PIN number", and "NT
technology"....)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We add:
PCAP_IF_WIRELESS, which indicates whether the interface is "wireless" or
not.
PCAP_IF_CONNECTION_STATUS, which is a bitmask for a two-bit field that
can have one of the values:
PCAP_IF_CONNECTION_STATUS_UNKNOWN if the status of whether the interface
is "connected" or "disconnected" is unknown;
PCAP_IF_CONNECTION_STATUS_CONNECTED if the interface is "connected";
PCAP_IF_CONNECTION_STATUS_DISCONNECTED if the interface is
"disconnected";
PCAP_IF_CONNECTION_STATUS_NOT_APPLICABLE if the notion of "connected" or
"disconnected" doesn't apply to this interface.
Take that into account when sorting interfaces in the interface list,
penalizing "disconnected" interfaces, as you won't see traffic on them
if they're not wireless and you'd have to be in some form of "monitor
mode" to see traffic on them if they're wireless.
This should address GitHub issue #700.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The 2.8.6 documentation doesn't mention COMPILE_OPTIONS, just
COMPILE_FLAGS.
|
|
We may have a directory of test files in the future, and we'd want to
call it "tests", paralleling tcpdump's directory of test files.
|