Age | Commit message (Collapse) | Author | Files | Lines |
|
Using ccache by default for compilation if it is available on the system
might confuse people and in rare cases also lead to unexpected results.
Thus, from now on the use of ccache for compilation has to explicitely
specified by setting the CCACHE make variable to the name/path of the
ccache binary, i.e. `make CCACHE=ccache'
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
When running the configure script with `CC=clang ./configure' clang
fails all the compile test programs due to the main() function not
having return type int. Change it, so we can use clang as a compiler in
the configure script.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Some older systems (e.g. RHEL 6) don't have tpacket v3 available, but
only tpacket v2. However, since commit d8cdc6a ("ring: netsniff-ng:
migrate capture only to TPACKET_V3") we solely rely on tpacket v3 for
capturing packets.
This patch restores the possibility to capture using tpacket v2. For now
this is just a fallback if the configure script doesn't detect tpacket
v3 (and thus HAVE_TPACKET3 isn't set). Thus, on most modern systems this
shouldn't change anything and they will continue using tpacket v3.
For now this fix contains quite a bit of ugly #ifdefery which should be
cleaned up in the future.
Fixes #76
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Up to now, the lookup of TCP/UDP port names and Ethernet types was
tightly integrated with the dissector infrastructure, since it is its
main user. However, flowtop also makes use of the name lookup
functionality without needing the actual dissector infrastructure. Thus,
the basic dissector infrastructure also needs to be linked into flowtop
without actually being used.
Fix this by extracting the port/ethertype lookup into an own module
which can then be used either directly (for flowtop) or as part of the
dissector infrastructure (for netsniff-ng).
This also reverts the quick & dirty fix introduced in commit f3322c6
("flowtop: Include netlink dissector to fix build temporarily").
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
flowtop links in the dissector modules just for the TC/UDP port lookup
feature. Since dissector.h now includes libnl headers, we also need to
include the libnl CFLAGS for flowtop build and thus also make it depend
on libnl.
The real fix for this in the future would be to extract the port lookup
from dissector_eth.c and the just link in this module into flowtop
instead of the entire dissector stuff.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Both tools are already prepared to handle NULL return values of the
geoip_* lookup functions, so we might as well build them without geoip
support if not needed/present.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
If libgeoip is present, CONFIG_GEOIP will be set later on depending on
HAVE_LIBGEOIP, we thus don't need to write CONFIG_LIBGEOIP to Config.
This symbol isn't used anywhere in the build process.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
alternative lib
This way one can simply set an alternative lib like libsodium for
linking the curvetun binary.
The current default linking against libnacl is preserved!
To link curvetun against libsodium you can set NACL_LIB=sodium
Signed-off-by: Christian Wiese <chris@opensde.org>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
For some reason the Debian ncurses version does not
contain a ncurses.pc pkg-config file.
Fix this by echoing "-lncurses" if the command fails:
pkg-config --libs ncurses
This fix will make ifpps compile on Debian Squeeze 6.0.8.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
|
|
Make sure all messages use a max. text width of 70 characters (in order
for them to be easily pasteable into an email), remove a trailing
whitespace and reword some bits.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
On machines like RHEL6 that do not have support for TPACKET_V3, we
should still allow at least trafgen to be built for network testing.
Thus, do something useful with the TPACKET_V3 configure check and
comment out in ring.h relevant structures.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Older versions of libcli lack an include in libcli.h. [1] fixed the
configure script to not fail in in the test [2], and an include into
cli.h was added as well for the main mausezahn build.
[1] http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-analyzer/netsniff-ng/files/netsniff-ng-0.5.8-libcli-test.patch?revision=1.1&view=markup
[2] http://b-4.xmw.de/var/log/portage/build/net-analyzer/netsniff-ng-0.5.8_rc2:20130805-055918.log
Reported-by: Michael Weber <michael@xmw.de>
Suggested-by: Michael Weber <michael@xmw.de>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
For each build that has no tag name (thus for all commits except
releases), we add a "+" version appendix to indicate that it is
further than the rc tag itself, like in the kernel. Do this during
configure automatically. This is useful in case someone wants to
package a relase, so that the full version name indicates that.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
This silences a complaint if the toolkit is not built within a Git
repository:
...
[*] Checking libnet ... [YES]
fatal: Not a git repository (or any of the parent directories): .git
[*] Generating config.h ...
[*] Looks good! All tools will be built!
This is not problematic as the build can be done without any problems.
It will just have an empty Git id in --version output. So simply
silence this complaint and move on.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Not sure how this came in with the last commit, but fix it to the
correct format.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
On errors in the configuration, redirect everything to config.log,
and not some parts to config.log and some others to $TMPDIR/config.log.
This will give a nice summary of what goes wrong to the user. Also,
in case everything looks fine, the config.log file will be created,
but with size 0 and no warning is thrown. So looks good.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
It looks like there are some incompatibilities in bash's expr match
among different versions. Using set -x, gives us on bash 4.2.45:
+ TOOLS=' netsniff-ng trafgen ifpps bpfc'
+ for tool in '$_tools'
+ case "$tool" in
++ expr match '"curvetun' 'astraceroute"' '$1'
expr: syntax error
+ m=
+ '[' '' == 0 ']'
So rather avoid using "expr match" and switch to "case" for substring
matching, which should be more portable.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
tools_remove "libnetfilter-conntrack" makes no sense, so replace it
with the actual correct tools_remove "flowtop".
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
If pkg-config doesn't find a library it prints an error to stderr.
Instead of directly printing them as part of the configure output,
redirect them to config.log and let the user know about it in case there
are any messages.
Suggested-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In netsniff-ng, we only use libz in combination with libgeoip, so if
we lack either one of them, do not link against the other either.
This would be a waste otherwise.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Geoip dependency should not be mandatory as it's not a core part of
netsniff-ng. This also facilitates compilation on platforms where
geoip is not available.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
flex and bison are needed for bpfc and trafgen, so check for their
existance. If they are not present, lets remove those two from the
build in case users do not want it.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
This patch is a bundle of multiple fixes.
1) Fix compilation of astraceroute when HAVE_LIBPCAP=1:
astraceroute doesn't need libpcap, so add an additional
guard/define to bpf.h and bpf_comp.c and netsniff-ng.c.
Also since we generate a config.h file, we do not need
to have this additional compile flag anymore.
2) Fix tstamping.{h,c} to use the configure script instead
of the Makefile. For doing this, also fix the object
inclusion in netsniff-ng/Makefile.
Last but not least, rename __WITH_... into HAVE_... as this
is more clean.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
While we're at it, also let configure script generate the config.h
file. The generation of it is currently quite static, but that could
change in future. While at it, we also generate a GITVERSION define,
that we will use for ``--version'' output of the individual tools for
being able to provide better support since we can see what concrete
commit people are using when building from Git repo.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
In case we have all dependencies, tell the user that all tools will be
built instead of listing the tools. Only list them when we do not have
all deps. This should facilitate usability a bit.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
netsniff-ng uses libpcap only for high-level filter compiling.
Thus, let netsniff-ng not "hard-depend" on libpcap, but rather
disable filter compiling in case the user does not want to
install libpcap.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Add a header comment to the configure script with Tobias as the primary
author, and also mention Tobias as an author in the Makefile itself for
his changes.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Also try compile-testing TPACKET_V2/3 flags that are used in some
particular versions, especially in TX_RING.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
1) netsniff-ng is also dependant on libnl (e.g. for raw 802.11 devices)
2) Only netsniff-ng depends on tpacket_v3, trafgen on tpacket_v2. Thus,
add checks for both.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Instead of halting out the entire build build if one dependency is not
available, only exclude the tools that link against it from building.
The configure script will now print a list of all tools that will be
built -- and in case some libaries are not available -- that will not be
built.
Also add checks for libcli and libnet which mausezahn depends on.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
libpcap is used to compile tcpdump-like filters in netsniff-ng, so check
for it in configure.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In order to cause the linker to get called and thus the check for the
presence of the library (not just the headers) to be performed, call
GeoIP_new(). Also pass the proper linker flag to $CC.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In order to cause the linker to get called and thus the check for the
presence of the library (not just the headers) to be performed, call
gzopen(). Also pass the proper linker flags to $CC.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Correct the type to struct nf_conntrack and call a function to prevent
the variable from getting optimized away by the compiler and cause a
linker call. Also add the proper linker flag.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Add a configure script extension that checks for liburcu as it is
currently needed by flowtop.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
Add a configure extension to check for libz that is needed for the
geoip updater.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
The check_libnf_ct function is implemented in configure, but it was
not executed currently. So from now on invoke it and check for
netfilter's conntrack library.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
We need to have: GEOIP_CITY_EDITION_REV1, GEOIP_CITY_EDITION_REV1_V6,
GEOIP_COUNTRY_EDITION, GEOIP_COUNTRY_EDITION_V6, GEOIP_ASNUM_EDITION,
GEOIP_ASNUM_EDITION_V6. Not all might be available on older versions.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
|
This will of course also lead to the flags getting redirected. Silly me.
While at it also remove the pointless warning flags to cc.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Define CONFIG_OK in the Config file generated in the configure script
and check for it being defined in the Makefile before attempting
anything else. This way we can better inform the user that she needs to
run ./configure first.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Redirect the output of pkg-config to /dev/null so it doesn't clutter the
output of the configure script.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Actually call some functions in the check program so they will need to
get linked.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Check whether pkg-config and ccache are in the PATH. A missing
pkg-config will cause the configure script to abort with an error. The
presence of ccache is written to Config and used by the Makefile to
conditionally make use of it.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Newer versions of GCC expect the linker flags after the object code, so
move the ouput of 'pkg-config --libs ncurses' there to not make the test
fail even if ncurses is present on the system.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
Check for some more libraries we make use of in the configure step.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|
|
In order to use an installation of NaCl provided by the distro or by
previous manual installation, provide a configure script which checks
for nacl's presence.
Also check of libnl-genl headers. More checks of the other libraries
depended on by netsniff-ng as well as checks for necessary kernel
headers should be added here too.
The configure script is preliminary and has not yet extensively been
tested on multiple systems.
The concept was inspired by the configure script of trinity and
iproute2.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
|