Commit Graph

230 Commits (9eeffdc5eb4495446e4869d3b31306a930c44af4)

Author SHA1 Message Date
Guy Harris d13b8ea13c Get rid of HAVE_REMOTE.
We never test for it - we test for HAVE_PCAP_REMOTE - so there's no need
to set it in config.h.

While we're at it, note that "PCAP" in "HAVE_PCAP_REMOTE" can refer to
libpcap as well as WinPcap, given that, at least in the tip of the
master branch, you can configure remote support in libpcap, although
it's not enabled by default (it needs to be vetted for security, as it
increases the attack surface of a machine running the server *and* of an
application using libpcap with remote support).

Change-Id: I3c96cf16bbda19ec7c085f74cffc6f125198d45b
Reviewed-by: Guy Harris <>
2017-05-10 21:16:29 +00:00
Ahmad Fatoum cfab5ef035 Add libxml2 as optional dependency
This can be used by dissectors that need to parse out-of-band

Change-Id: I13c0a2f408fb5c21bad7ab3d7971e0fa8ed7d783
Reviewed-by: Roland Knall <>
2017-04-19 10:41:55 +00:00
Pascal Quantin 74784bdb3e Update Windows binaries to GeoIP 1.6.10 with a local GeoIP_free function
This solves a crash occurring when trying to free memory allocated by
GeoIP (cross-compiled with mingw(32|64)) with MSVC function

Bug: 13598
Change-Id: I757cff13660bd485d7ea91d10660e9bf86404728
Petri-Dish: Pascal Quantin <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Guy Harris <>
2017-04-14 17:53:09 +00:00
Guy Harris 357cfd3b03 A bunch of "{Mac} OS X" -> "macOS" changes.
Avoid anachronisms, however; there was no "macOS 10.0" or even "OS X
10.0", for example.  It was "Mac OS X" until 10.8 (although 10.7 was
sometimes called "OS X" and sometimes called "Mac OS X"), and it was "OS
X" from 10.8 to 10.11.

Change-Id: Ie4a848997dcc6c45c2245c1fb84ec526032375c3
Reviewed-by: Guy Harris <>
2017-04-05 19:16:22 +00:00
Peter Wu 6b84ddee83 Make Libgcrypt a mandatory dependency
Removed all guards for HAVE_LIBGCRYPT, change autotools and CMake to
error out if it is not available. Update release notes, developer
documentation and README with the new status. Clarify relation with
GnuTLS in Install Libgcrypt via brew script.

Motivation for this change is that many dissectors depend on Libgcrypt
and having it optional increases the maintenance burden (there have been
several compile issues in the past due to the optional status).
Furthermore, wsutil has crypto code that can be replaced by Libgcrypt.

Change-Id: Idf0021b8c4cd5db70b8766f7dcc2a8b3acbf042f
Petri-Dish: Peter Wu <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Pascal Quantin <>
Reviewed-by: Peter Wu <>
2017-02-13 18:35:47 +00:00
Pascal Quantin fc4bb7eb74 Change SpanDSP capitalization
Many capitalization can be found for this library (spandsp, Spandsp, SpanDSP),
let's use the one found in the library README and in its spec file.

Change-Id: Ia66b723e5d582a6218da1b6366b7d4859272f80c
Reviewed-by: Peter Wu <>
2016-12-07 00:51:14 +00:00
Peter Wu f5e22a1487 codecs: Add support for G.722 and G.726
Integrate the Spandsp library for G.722 and G.726 support. Adds support
for G.722 and all eight variants of G.726.

Note: this also fixes a crash in Qt (buffer overrun, reading too much
data) caused by confusion of the larger output buffer (resample_buff)
with the smaller input buffer (decode_buff). It was not triggered before
because the sample rate was always 8k, but with the addition of the new
codecs, a different sample rate became possible (16k).

Fix also a crash which occurs when the RTP_STREAM_DEBUG macro is enabled
and the VOIP Calls dialog is opened (the begin frame, start_fd, is not
yet known and therfore a NULL dereference could occur).

Passes testing (plays normally without bad RTP timing errors) with
SampleCaptures files: sip-rtp-g722.pcap and sip-rtp-g726.pcap. Tested
with cmake (Qt), autotools (Qt and GTK+) with ASAN enabled.

Bug: 5619
Change-Id: I5661908d193927bba50901079119eeff0c04991f
Petri-Dish: Peter Wu <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Alexis La Goutte <>
Reviewed-by: Peter Wu <>
2016-12-06 17:51:47 +00:00
Guy Harris 5f68435a07 Fix the #defines for the presence of structure names.
AC_CHECK_MEMBER() and AC_CHECK_MEMBERS() use a standard name for the
{structurename} being the name of the structure type, complete with
"struct" if a typedef wasn't used, and with all letters mapped to upper
case, and with {membername} being the name of the structure member, with
all letters mapped to upper case.

check_struct_has_member() lets you choose the name; choose the same name
that the autoconf macros use, and fix the code to check for them.

Change-Id: Ifb3cf65e7e94907ad0a2f8aacca0c21a531f0c5b
Petri-Dish: Guy Harris <>
Reviewed-by: Guy Harris <>
2016-10-22 09:53:19 +00:00
Guy Harris 528894e72f On UN*X, st_ctime is the last status change time, not the creation time.
That's the time the file's inode last changed, so size changes,
permission changes, etc. affect it.  It's *not* the time the file was
created; most UN*Xes don't provide that.  Newer versions of FreeBSD,
NetBSD, OpenBSD, and macOS do, but other UN*Xes don't appear to.

On Windows, at least according to Microsoft's documentation, st_ctime
*is* the creation time.  Hopefully that's not the result of confusion on
the part of somebody at Microsoft.

Change-Id: I20743703f6ef66e40dff9004dc91bed46af6fad0
Reviewed-by: Guy Harris <>
2016-10-22 05:20:22 +00:00
Benoît Canet 47649d1c7f cql: add lz4 and snappy decompression
We do not use the STARTUP negotiation since a stream
can be captured in its middle but try to decompress
if the flag is present and fallback if it fails.

Change-Id: Iecbf49a45220b04be7808869c9884548eb1e7694
Signed-off-by: Benoît Canet <>
Reviewed-by: Pascal Quantin <>
2016-10-17 18:28:45 +00:00
Balint Reczey b1cc056b12 Remove nghttp2 code and use system' nghttp2
Update debian, macos (setup / homebrew) download script
Update testsuite (don't try HPACK when build without nghttp2)

Change-Id: I365e5e17bc4fab4acd81b4c39ea7189a5d1ee112
Reviewed-by: Gerald Combs <>
Reviewed-by: Peter Wu <>
Petri-Dish: Gerald Combs <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Michael Mann <>
2016-10-13 19:26:10 +00:00
Michael Mann acc018b8d1 Allow create_tempfile to support a suffix.
Ping-Bug: 10203
Change-Id: Ifa24870d711449b87e9839dd46af614e4aa28fde
Petri-Dish: Michael Mann <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Martin Mathieson <>
2016-06-01 06:24:05 +00:00
Jeff Morriss 708f4f9dd8 Don't bother checking for getaddrinfo(): we don't use it.
Since Ie5e670b769eb0674950f3679ef511047641c2873 we no longer support
synchronous name resolution.

Change-Id: Icc65bd665bd610d89f894549e77608cfb5ef4c53
Petri-Dish: Jeff Morriss <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Anders Broman <>
2016-04-30 07:21:34 +00:00
João Valverde ed6eecd79e [GTK] Check for xdg-open at run time
Remove HTML_VIEWER compile-time setting.

If xdg-open doesn't exist use user web browser preference as fallback.

Change-Id: I3b4a4a1a36b0192d75f2c97595f37d0d88a0941e
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Peter Wu <>
Tested-by: Peter Wu <>
Reviewed-by: João Valverde <>
2016-04-09 23:40:51 +00:00
Peter Wu 57b2a84f3d Use a single WS_NORETURN macro
Having to define two macros for marking a function as never returning
seems a bit redundant. Merge the MSVC and GCC-like attributes into a

Tested with Clang 3.7.1, GCC 4.4.7 and even GCC 4.1.2 using this small
program (-Wall -Wextra, the first two generate warnings for
uninitialized variables, the last one compiles without warnings):

    #include <stdlib.h>
    __attribute__((noreturn)) void foo() { exit(1); }
    __attribute__((noreturn)) void bar();
    void bar() { exit(1); }
    int main() {
      int j, i;
      if (i) { bar(); return j; }
      return j;

Change-Id: I7d19c15e61b8f8fa4936864407199c4109f8cc82
Petri-Dish: Peter Wu <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Guy Harris <>
Reviewed-by: Peter Wu <>
2016-04-08 17:34:10 +00:00
João Valverde 7f873d92cb Use AC_REPLACE_FUNCS and LTLIBOBJS
Change-Id: I0f46167fe900c39d678560809cd5391c2a9bc4d2
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: João Valverde <>
2016-04-04 23:58:41 +00:00
João Valverde ecb4dc396e Include ws_diag_control.h in config.h
Change-Id: Ia394071710ecda3b0e6686a51fbca45a8ff20317
Petri-Dish: João Valverde <>
Petri-Dish: Gerald Combs <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: João Valverde <>
2016-04-04 23:05:31 +00:00
João Valverde 6f98a0fac3 Rename "libz" to "zlib"
Change-Id: I12f92c983d587c2a4751428cdf299635090c9f0b
Reviewed-by: João Valverde <>
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Anders Broman <>
2016-04-04 06:58:41 +00:00
João Valverde e005bc819c Remove synchronous DNS name resolution
Change-Id: Ie5e670b769eb0674950f3679ef511047641c2873
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Alexis La Goutte <>
Reviewed-by: Anders Broman <>
2016-04-04 06:49:55 +00:00
João Valverde 04a4b53509 Use AC_CHECK_MEMBERS
Change-Id: I18779ad869c97a6ddd12e39fe2f7a1f7b0c8cf56
Petri-Dish: Alexis La Goutte <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: João Valverde <>
2016-04-02 22:19:00 +00:00
João Valverde ae9e311480 Use AC_STRUCT_TIMEZONE
Change-Id: I96c12dce662691d37d6eb6c1893c5e9d91a8ea6f
Petri-Dish: Alexis La Goutte <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: João Valverde <>
2016-04-02 22:18:46 +00:00
João Valverde 7a1d3f67ac Remove ADNS support
Relevant mailing list message:

Change-Id: I0cff6d4d64fb52a651bcf6b28c183e43653b1cc2
Reviewed-by: João Valverde <>
2016-03-21 19:32:00 +00:00
Alexis La Goutte 4f3a88989e Add conflict check filter
Set ENABLE_CHECK_FILTER to 1 for get list of display filter with conflict...

Change-Id: I8d56b1573120d1a29d437aae1088be242e15e9a3
Petri-Dish: Alexis La Goutte <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Michael Mann <>
Reviewed-by: Alexis La Goutte <>
2016-03-07 07:57:29 +00:00
Dario Lombardo 68d4ba212c extcap: add local_interfaces_to_list() to wsutil.
This new function abstracts the creation of a list of the local
interfaces that will be used by future extcaps to generate specific
filters. Sshdump now uses it to create a pcap filter.

Change-Id: I5b75a266f81104b3c9bcb3e51de246b7cc8785ce
Reviewed-by: João Valverde <>
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Roland Knall <>
2016-03-04 05:53:56 +00:00
Mikael Kanstrup 9f27e5d7d1 dumpcap: Add support for 802.11ac monitor modes
Add dumpcap support for configuring 80MHz, 80+80MHz, 160MHz monitor
modes via nl80211.

Change-Id: I2ae8955670c2a9b5051e2223d45ce522459f2c5f
Petri-Dish: Alexis La Goutte <>
Petri-Dish: Gerald Combs <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Michael Mann <>
2016-03-01 15:23:44 +00:00
João Valverde 8bee8bad81 Add inet_pton/inet_ntop interface to libwsutil
Change-Id: Ifc344ed33f2f7ca09a6912a5adb49dc35f07c81f
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: João Valverde <>
2016-02-19 15:55:09 +00:00
João Valverde d762a895ab GTK: Check if lrint() is usable, fix warnings [-Wbad-function-cast]
Change-Id: I4714ba6cfbd18847d99650f5c5cdc60dd2e7af26
Petri-Dish: João Valverde <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: João Valverde <>
2016-02-07 23:22:11 +00:00
João Valverde 5a26599a4b cmake: Fix platform introspection for inet_aton() [-Wredundant-decls]
Change-Id: Icd6b8de0a70dd33e70bb0ad4d5c39ffc15454e8c
Reviewed-by: Guy Harris <>
2015-12-12 04:10:22 +00:00
João Valverde fad15654b1 Remove configure --enable-ipv6 option
It's an ancient obsolete option with a confusing name.

Change-Id: Ib10330cf859cdea18fed2077c6539e56350ef380
Reviewed-by: Alexis La Goutte <>
Petri-Dish: Alexis La Goutte <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Michael Mann <>
2015-11-23 04:07:37 +00:00
Dario Lombardo d6da95231e extcap: add sshdump.
sshdump is an extcap module that allows dumping from a remote host using an ssh connection.
It goes with the existing extcap plugin interface.

Change-Id: I8987614fdd817b8173a50130812bc643a4833bca
Petri-Dish: Alexis La Goutte <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Anders Broman <>
2015-11-19 15:29:18 +00:00
Peter Wu 01f82ee84c cmake: fix kerberos library lookup, support Heimdal
A build with the gold linker broke with:

    run/ error: undefined reference to 'krb5_c_decrypt'

Fix this my restructuring the FindKERBEROS module to use the libraries
found by pkg-config.

While at it, check for MIT and Heimdal instead of assuming MIT. Remove
HAVE_KEYTYPE_ARCFOUR_56 as this macro is not used.

Change-Id: Iab23d79bc3f25e9c0fd7203b6f050f875fb4a2b5
Petri-Dish: Peter Wu <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Jörg Mayer <>
Reviewed-by: Peter Wu <>
2015-10-13 07:36:30 +00:00
Gerald Combs 3687d39304 Qt: Initial RTP playback.
Note the "initial". This is woefully incomplete.  See the "to do" lists
below and in the code.

This differs a bit from the GTK+ version in that you specify one or more
streams to be decoded.

Instead of showing waveforms in individual widgets, add them all to a
single QCustomPlot. This conserves screen real estate and lets us more
easily take advantage of the QCP API. It also looks better IMHO.

Change a bunch of checks for QtMultimediaWidgets to QtMultimedia. We
probably won't use the widgets until we make 5.0 our minimum Qt
version and plain old QtMultimedia lets us support Qt 4 more easily
(in theory at least).

Add resampling code from libspeex. I initially used this to resample
each packet to match the preferred rate of our output device, but this
resulted in poorer audio quality than expected. Leave it in and use to
create visual samples for QCP and to match rates any time the rate
changes. The latter is currently untested.

Add some debugging macros.

Note that both the RTP player and RTP analysis dialogs decode audio data
using different code.

Note that voip_calls_packet and voip_calls_init_tap appear to be dead

To do:

- Add silence frames where needed.
- Implement the jitter buffer.
- Implement the playback timing controls.
- Tapping / scanning streams might be too slow.

Change-Id: I20dd3b66d3df53c9b1f3501262dc01458849f6b4
Bug: 9007
Petri-Dish: Gerald Combs <>
Reviewed-by: Gerald Combs <>
2015-10-02 18:26:05 +00:00
michal.orynicz 448e122ea5 [Androiddump] Fix CMake install path for androiddump
Changed path from "share" to one based on plugns path
For example /usr/local/lib/wireshark/extcap

Change-Id: I8f4a9f274b1cec897ed45de9e05679ac3f230301
Reviewed-by: Michal Labedzki <>
Petri-Dish: Michal Labedzki <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Balint Reczey <>
Tested-by: Balint Reczey <>
2015-04-21 12:49:48 +00:00
Michal Labedzki b99cf21c25 extcap: Add support for Android - androiddump
androiddump is extcap program that can be used with Android devices
(need Android SDK in system PATH). Supported is Logcat/Logger logs and
Bluetooth interfaces for all Android to this day (Lollipop).

Please note that it will work also for FirefoxOS.

1. Logcat Main (binary or text)
2. Logcat System (binary or text)
3. Logcat Events (binary or text)
4. Logcat Radio (binary or text)
5. Logcat Crash (text; Lollipop)
6. Bluetooth Hcidump (<Kitkat)
7. Bluetooth Bluedroid External Parser (Kitkat)
8. Bluetooth BtsnoopNet (Lollipop)

Change-Id: I26e4cd1a37a6af805f8b932399b4aa44ee7b5a80
Petri-Dish: Michal Labedzki <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Alexis La Goutte <>
Reviewed-by: Michal Labedzki <>
Tested-by: Michal Labedzki <>
2015-04-08 09:57:24 +00:00
Guy Harris c3c8552aa1 Add the new #defines to
Unlike autoconf, which can generate based on the contents of
the configure script, CMake requires that be updated

Change-Id: I78ead3bae41667bd7c452329485a819ac34bce5e
Reviewed-by: Guy Harris <>
2015-03-30 22:55:49 +00:00
Guy Harris 083f6b6e6d Have a #define for whether the capture buffer size can be set.
It can be set if either 1) this is Windows (where we're assumed to be
using WinPcap, which includes calls to set the buffer size) or 2) we
have pcap_create() (in which case we also have pcap_set_buffer_size(),
at least in a normal libpcap release).

Use that rather than testing "defined(_WIN32) ||
defined(HAVE_PCAP_CREATE)"; that makes it a bit more obvious what's
being tested.

Change-Id: Id9f8455019d19206b04dd6820a748cb97ae5ad12
Reviewed-by: Guy Harris <>
2015-03-25 03:22:33 +00:00
Jeff Morriss a308aef89d Look for and use gethostbyname() if we don't have getaddrinfo(). Fail to
configure if we can't find any name resolver (autotools only).

This puts back the gethostbyname()/gethostbyname2() code removed in
I3348179626e97daaddfbc89e3ed21e39915e3de4 and
If59ce8a038776eadd6cd1794ed0e2dad8bf8a22c but as a last-resort option (only
if we don't have a better or more modern name resolver).

As suggested/requested by Guy in

Change-Id: I706dbbd65135f47c67d3d8d88a61ad7273914c47
Petri-Dish: Jeff Morriss <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Jeff Morriss <>
2015-03-03 15:02:08 +00:00
Gerald Combs 999bbc9b70 Qt: Add more version and packaging information to the main window.
Add a "flavor" (for lack of a better word) banner, which can be set at
"Development Build" by default. This effectively migrates the
"DEVELOPMENT VERSION" logo image text from the GTK+ UI.

Add full release and automatic update information at the bottom.

Remove the short version from the welcome banner (top left).

To do:

- Add back support for gui_version_placement.

- Move the version and repository branch to the flavor label?

- Add update links as appropriate to the bottom.

- Clean up layout and spacing.

Change-Id: I28af33e6c2beb855f803a2dfedef49f3e8389057
Reviewed-by: Gerald Combs <>
2015-02-19 22:09:34 +00:00
Guy Harris a64fc6cf44 Don't check for C89 headers.
1988 called, they want their lack of a C standard back.  We don't need
to check whether we have stdarg.h, stddef.h, stdlib.h, or string.h, as
they're specified by C89 and I don't think there are any platforms we
care about that don't have a C89 environment in which we could be built.

Change-Id: I447551181284fab7722354b62774625ed8ee94bc
Petri-Dish: Guy Harris <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Guy Harris <>
2015-02-14 09:10:56 +00:00
Guy Harris f62353755b We use GLib's directory-reading routines, so we don't need <dire[cn]t.h>.
Change-Id: Id86e5d6d0ab24adb1bfff0688f33a40f2fdaed8d
Petri-Dish: Guy Harris <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Guy Harris <>
2015-02-14 07:23:20 +00:00
Gerald Combs 881ff5df92 Remove gethostbyaddr and gethostbyaddr2.
They've been deprecated for a very long time. Replace them with
getaddrinfo. Note that we might not want to do synchronous name
resolution at all.

Add HAVE_GETADDRINFO to the KfW win-mac.h collision list.

Change-Id: If59ce8a038776eadd6cd1794ed0e2dad8bf8a22c
Reviewed-by: Gerald Combs <>
Petri-Dish: Gerald Combs <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Anders Broman <>
2015-02-06 08:07:10 +00:00
Graham Bloice 528a857258 Fix CMake generation and use of Windows .rc files
CMake now generates local copies of .rc files for all the Windows
components and uses the files in the build of the components.

The files that include an icon were modified to allow the icon
path to be set by CMake.  The path is removed for nmake builds.

Updated build architecture detection, required for

Change-Id: I7b1ff43050e9b0efb861d1041636fb4aef49a4f8
Petri-Dish: Graham Bloice <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Graham Bloice <>
2015-01-11 20:22:32 +00:00
Guy Harris fc39b9b151 In CMake, check for thousands-grouping support in the GLib printf routines.
We do that with the autotools; do it with CMake as well.

We could, in theory, handle thosands-grouping ourselves, on all
platforms supporting ANSI C (for which read "all platforms we care
about") by using localeconv()'s thousands_sep and grouping items, but
that's a bit more work.

Fix autotools' comment for that item while we're at it (it checks the
GLib printf routines, not the system printf routines).

Change-Id: I000f0f3b955d9b192ade15e3fabc46d6b48a052e
Reviewed-by: Guy Harris <>
2015-01-05 01:44:12 +00:00
Guy Harris 05fd11ee3d Add a check for NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP.
Just as we check for it in autotools, check for it in CMake.

Change-Id: I342a3fcde6a5f8190dac67260f25c070b6f5430f
Reviewed-by: Guy Harris <>
2015-01-05 00:12:31 +00:00
Guy Harris 2f1ac87700 Clean up handling of INET6.
We wire it on, so we don't need a commented out wiring-it-on on Windows.

Explain *why* we're wiring it on rather than doing checks for IPv6

Change-Id: I205ba2456160f9dad48041f27c63a09cdcdc12d3
Reviewed-by: Guy Harris <>
2015-01-04 22:11:24 +00:00
Guy Harris 553cdfd4cc No need to #define HAVE_PYTHON.
We don't check it (we don't support Python as an extension language -
the experimental support was dropped).

Change-Id: Iedbe1dc5095614676c7eb3026d02f421bdba0d1d
Reviewed-by: Guy Harris <>
2015-01-04 21:20:09 +00:00
Guy Harris 0a0ce2b78f Check for optreset in CMake as well.
Change-Id: I74aae1d68f48702b0cd1289cdafdfff8d817b5f4
Reviewed-by: Guy Harris <>
2014-12-27 02:21:35 +00:00
Guy Harris 20503c7047 Check for getopt_long(), not getopt().
We support three types of platforms:

	1) UN*Xes that have both getopt() and getopt_long();

	2) UN*Xes that have getopt() but not getopt_long();

	3) Windows, which has neither.

Checking for getopt_long() lets us distinguish between 1) and 2) and
build getopt_long() for them.

Change-Id: Iaf0f142f9bebaa2eed2128d544ec9786711def45
Reviewed-by: Guy Harris <>
2014-12-25 01:11:10 +00:00
Guy Harris 1b37f4c5ef Cmake: check for popcount, and build it from wsutil/popcount.c if missing.
Change-Id: Id646a9f0b1fc6acafa99a78725e3f0ec8a48c170
Reviewed-by: Guy Harris <>
2014-12-23 05:04:17 +00:00
Guy Harris 4b8639f049 Add a check for floorl().
Also, we don't use NEED_STRPTIME_H, we use HAVE_STRPTIME.

Change-Id: I330e8ce408c05b74c50f3369691283e35e68505c
Reviewed-by: Guy Harris <>
2014-12-20 05:19:04 +00:00
Gerald Combs 4921e55990 Qt: Initial VoIP Calls dialog.
Add Telephony menu items for VoIP Calls and SIP Flows. Put VoIP Calls at
the top, since that seems to be the primary item.

Add configure-time checks for QtMultimediaWidgets in anticipation of
adding a VoIP playback dialog.

Add an icon for the playback button. (Yes, I've been avoiding
GNOME-level gratuitous icons so far but this is one of the rare
occiasions where it makes sense.)

Add a help link define for the VoIP calls dialog.

Change-Id: I5d0799685c598ad9af76fe9667f8ea7d14b66050
Petri-Dish: Gerald Combs <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Gerald Combs <>
2014-12-09 21:25:33 +00:00
David Ameiss afae2b64e2 Allow building under OSX Yosemite using cmake.
CFPropertyListCreateFromStream() has been deprecated in Yosemite, in favor of CFPropertyListCreateWithStream(). The autotools
build checks for the existence of the new function, but the cmake build does not. So, add a check for it to CMakeLists.txt, and
update to provide the "template" for HAVE_CFPROPERTYLISTCREATEWITHSTREAM.

Change-Id: I1a4e3e1ce83092ecf7725527b921eeca80b18d4b
Note: CFPropertyListCreateWithStream() works under Mavericks as well.
Reviewed-by: Stig Bjørlykke <>
Tested-by: Stig Bjørlykke <>
2014-11-10 22:03:26 +00:00
Guy Harris 7522497b67 With CMake, define WANT_PACKET_EDITOR in config.h.
Just as we do with autotools and nmake, define it in config.h, so it's
defined the same for every single file, rather than defining it in one
particular directory's Makefiles, so that it's defined for some code but
not all.

Change-Id: Ic41cd10f2b502e0be76c134cbeaad94dff7623f8
Reviewed-by: Guy Harris <>
2014-10-21 05:29:48 +00:00
Guy Harris 392c41ce30 Add support for getting nanosecond time stamp resolution when capturing.
If we have pcap_set_tstamp_precision(), use it to request nanosecond
time stamp resolution *if* we're writing a pcap-ng file; any code that
reads those files and can't handle nanosecond time stamp resolution is
broken and needs to be fixed.

If we're writing a pcap file, don't ask for nanosecond resolution time
stamps, as that requires a different magic number for pcap files, and
not all code that reads pcap files can handle that.  (Unlike pcap-ng,
where the ability to have non-microsecond time stamp resolution was
present from Day One, it's a relatively recent addition to pcap.)  We
could add a command-line option/GUI option for that, like the option
recent versions of tcpdump have, if it matters.

Change-Id: I8fa464eb929feecb9a70be70712502c9f0cc5270
Reviewed-by: Guy Harris <>
2014-09-28 23:29:05 +00:00
Graham Bloice 06565a7424 Add WinSparkle to the CMake build to bring it into line with
the nmake build

Change-Id: I944d0fe15b396cad4d0054b6fc359acb42ae3c9c
Reviewed-by: Graham Bloice <>
2014-08-22 22:04:33 +00:00
Graham Bloice 5b5ef967d2 Fix CMake checks of PCap functions, along with AirPCap
Change-Id: If55498167d5e357258841f2194962749c0dfc81e
Reviewed-by: Graham Bloice <>
Petri-Dish: Graham Bloice <>
Reviewed-by: Roland Knall <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Jeff Morriss <>
2014-08-21 23:56:56 +00:00
Roland Knall bed29af46d Extcap Capture Interface
Extcap is a plugin interface, which allows for the usage
 of external capture interfaces via pipes using a predefined
 configuration language which results in a graphical gui.

 This implementation seeks for a generic implementation,
 which results in a seamless integration with the current
 system, and does add all external interfaces as simple

 Windows Note: Due to limitations with GTK and Windows,
 a gspawn-winXX-helper.exe, respective gspawn-winXX-helper-console.exe
 is needed, which is part of any GTK windows installation.

 The default installation directory from the build is an extcap
 subdirectory underneath the run directory. The folder used by
 extcap may be viewed in the folders tab of the about dialog.

 The default installation directory for extcap plugins with
 a pre-build or installer version of wireshark is the extcap
 subdirectory underneath the main wireshark directory.

 For more information see:
  bug #9009

 Also take a look in doc/ for a Python-example
 and in extcap.pod for the arguments grammer.

   - Integrate with Qt - currently no GUI is generated, but
     the interfaces are still usable

Change-Id: I4f1239b2f1ebd8b2969f73af137915f5be1ce50f
Signed-off-by: Mike Ryan <>
Signed-off-by: Mike Kershaw <>
Signed-off-by: Roland Knall <>
Petri-Dish: Michael Mann <>
Tested-by: Petri Dish Buildbot <>
Reviewed-by: Michael Mann <>
2014-08-21 03:34:02 +00:00
Gerald Combs 4388b5608a CMake: More Qt5WinExtras plumbing.
Change-Id: I7474e8373668ba554d3574193fec59daceafe00d
Reviewed-by: Gerald Combs <>
2014-08-14 00:49:51 +00:00
Alexis La Goutte a93d2eaef5 CMake : Set html viewer exe path in HTML_VIEWER variable (and no set or unset..), autotools only add exe name
Change-Id: I552ef5d20fc80d341ce97da76b665e97df856d18
Reviewed-by: Evan Huus <>
2014-07-09 19:29:46 +00:00
Graham Bloice 554c902bf0 Move the Windows build target OS definitions to Win XP
This doesn't preclude use on < XP but does potentially allow
use of API's that don't exist on Win2K, and doing so would then
stop the exe from running on 2K.

Change-Id: I08b58bd510b832ddabbb717dd73eb7a89264048e
Reviewed-by: Evan Huus <>
Reviewed-by: Michael Mann <>
2014-06-21 18:09:39 +00:00
Joerg Mayer cdb68020ee Make cmake build work for msvc 2013 (Graham Bloice)
Change-Id: I8e026dd75085723b95eb2542e102b4383379dfc8
Reviewed-by: Jörg Mayer <>
2014-06-19 23:48:58 +00:00
Joerg Mayer 544066530b Fix building uiqt on Windows with the cmake build system:
Protecting HAVE_PCAP_CREATE was not enough for the moc run in qt,
maybe it doesn't have _WIN32 set?  Don't even try to detect this
function on WIN32 for now.

Change-Id: I0d8a8b5b110cec164f86fe11f26a7add558eee1b
Reviewed-by: Jörg Mayer <>
2014-06-18 06:54:52 +00:00
Jeff Morriss f113306e0e More Python-bindings removal.
Change-Id: I4d82175781e65c73179f4c8e737a7900cb050bce
Reviewed-by: Jeff Morriss <>
2014-06-16 23:14:05 +00:00
Irene Ruengeler e14357032f Define INET6 for all platforms.
Show the addresses as a tooltip in capture interfaces.

Change-Id: I911784e09ed9479229a7d6f8a7f1476e2e1e6224
Reviewed-by: Evan Huus <>
Reviewed-by: Alexis La Goutte <>
2014-06-14 13:27:10 +00:00
Joerg Mayer 935280317a Backport autofoo simd optimization
Change-Id: I5d58154bf8266eabedf550b54f18845612f514c6
Reviewed-by: Jörg Mayer <>
2014-06-14 06:44:15 +00:00
Balint Reczey 7bf49b31ac Set PLUGIN_INSTALL_DIR properly for wireshark.pc
Change-Id: I64c04095ce780ce2cc44a54a68695506d27e5747
Reviewed-by: Alexis La Goutte <>
2014-05-30 12:48:08 +00:00
Michal Labedzki 5e27a39fc6 Add Bluetooth SBC Codec support in cmake
SBC Codec can be optionally linked with Wireshark to provide
ability to playing RTP/SBC stream by RTP Player.

Change-Id: Iffbae16a741ffbfd0fb55a300064739d2c27c2e5
Reviewed-by: Alexis La Goutte <>
Reviewed-by: Evan Huus <>
2014-02-17 21:44:17 +00:00
Jörg Mayer 2f76706a54 HAVE_PLUGINS was defined twice
svn path=/trunk/; revision=54627
2014-01-07 18:36:37 +00:00
Jeff Morriss a56494a526 Fix wireshark-qt startup coredump under autofoo and Windows: make cmake's
VERSION_* macros integers instead of numbers (and treat them as such in

svn path=/trunk/; revision=54563
2014-01-02 19:11:06 +00:00
Jörg Mayer 09770dbff4 At least winpcap checks for WIN32 and not for _WIN32, so
define it. This copies the behaviour of Makefile.nmake.

svn path=/trunk/; revision=53643
2013-11-29 09:45:44 +00:00
Guy Harris 3179493814 We don't check for lauxlib.h or lualib.h, and we don't need to - we just
check whether we have Lua or not.  Get rid of the cmakedefines for those
two headers.  (The autoconf script should perhaps do the check

svn path=/trunk/; revision=52533
2013-10-11 06:48:45 +00:00
Guy Harris e5336d281b Move the QT_MACEXTRAS_LIB cmakedefine in to the
equivalent location in, to simplify comparing the two files.

Add some tests from the autoconf script to CMake:

	check for setresgid() and setresuid();

	check for struct stat having an st_flags member.

Get rid of INTTYPES_H_DEFINES_FORMATS; we don't appear to check for it,
and we don't use it (we're using GLib's formatting functions, which have
their own way of handling 64-bit integers).

Get rid of STDC_HEADERS; it's in autoconf because autoconf was
originally developed back when you couldn't rely in ANSI C and has never
been removed, and something we're using for other purposes checks for
it, not because we explicitly test for it, but we don't test it in the
code, and CMake doesn't even check for it.

svn path=/trunk/; revision=52522
2013-10-10 23:54:53 +00:00
Gerald Combs 564797a2e7 Try to locate QtMacExtras.
svn path=/trunk/; revision=52518
2013-10-10 23:11:19 +00:00
Guy Harris baf34b0beb Don't check for pcap_version(); we don't use it.
Sort the #cmakedefines in to more closely match the
order in, to make it easier to make sure CMake and autofoo
are doing the same checks.  Remove some #cmakedefines that don't
correspond to check that are being done either by CMake or autofoo.

svn path=/trunk/; revision=52515
2013-10-10 21:02:50 +00:00
Guy Harris 260a3af9b7 Check for bpf_image(), just as the autoconf script does.
svn path=/trunk/; revision=52514
2013-10-10 20:36:11 +00:00
Guy Harris ce17930dae HAVE_LUA is for Lua, not some particular version thereof.
Reorder to match (which is autogenerated).

svn path=/trunk/; revision=52509
2013-10-10 20:14:12 +00:00
Guy Harris aeec217e18 Get rid of apparently-undefined and apparently-unused #defines.
svn path=/trunk/; revision=52508
2013-10-10 20:10:18 +00:00
Jörg Mayer 05908dea85 NEED_STRPTIME_H needs to be detected properly for windows.
Set it manually for now.

svn path=/trunk/; revision=52431
2013-10-07 00:21:23 +00:00
Jörg Mayer 0c25744c67 The code (at least) in dumpcap assumes that PCAP_CREATE is not
available on Windows - but we detect it in winpcap.

With this change dumpcap compiles and links

svn path=/trunk/; revision=52427
2013-10-06 22:17:24 +00:00
Jörg Mayer 0f8133c3f0 More copying of config.h.win32 stuff into cmake
svn path=/trunk/; revision=52419
2013-10-06 20:51:13 +00:00
Jörg Mayer db512010b3 Set some values for Windows manually where autodetection
does not yet work.

svn path=/trunk/; revision=52406
2013-10-06 16:11:50 +00:00
Jörg Mayer 29bcbc5515 (Hopefully) unbreak windows build (#define'ing to 0 is not

svn path=/trunk/; revision=52387
2013-10-05 22:41:09 +00:00
Jörg Mayer 07a5c7442f Invert NEED_INET_ATON_H to HAVE_INET_ATON_H

svn path=/trunk/; revision=52385
2013-10-05 21:56:23 +00:00
Jörg Mayer 30f0ea3846 ssize_t is missing on Windows, so typdef it.
svn path=/trunk/; revision=52370
2013-10-04 21:59:18 +00:00
Jörg Mayer bae2eee028 Implement in cmake:

> User: guy
> Date: 2013/08/12 01:01 PM
> Log:
>  Just check whether dladdr() is available; we check in the code whether
>  it succeeds, so there's no point in checking whether it succeeds in a
>  sample program.

svn path=/trunk/; revision=51334
2013-08-13 09:58:09 +00:00
Jörg Mayer 812f308620 Use largefile detection in cmake.
Move wiretap/file_wrapper.c back to clean sources.

svn path=/trunk/; revision=50825
2013-07-23 09:41:35 +00:00
Martin Kaiser cc82d38c8b set HAVE_GETOPT_H and HAVE_GETOPT variables
for both autotools and cmake builds

(in order to use getopt_long(), we have to check if we
 can include getopt.h)

svn path=/trunk/; revision=50680
2013-07-16 21:12:12 +00:00
Jörg Mayer c5548e1077 Add HAVE_TM_ZONE and HAVE_TZNAME detection to fix timezone display
in cmake builds.

svn path=/trunk/; revision=48932
2013-04-19 16:38:28 +00:00
Balint Reczey 1ebdb2e521 Export libwireshark symbols using WS_DLL_PUBLIC define
Also remove old WS_VAR_IMPORT define and related Makefile magic
everywhere in the project.

svn path=/trunk/; revision=47992
2013-03-01 23:53:11 +00:00
Evan Huus 97f5e101d9 Fix CMake build:
- add some new files to CMakeLists
- we do need _U_ for C++ now that we're sharing some headers between
  C and C++.

svn path=/trunk/; revision=45650
2012-10-18 22:20:36 +00:00
Jeff Morriss 5ee932193f *NIX (autofoo and cmake) part of the fix for :

Make VERSION_MAJOR, VERSION_MINOR, and VERSION_MICRO available in config.h so
(e.g.) dissector writers can #if around them as necessary to make a piece of
code compile with different versions of Wireshark.  (Hopefully VERSION_MICRO
is not important in this respect!)

Windows also defines VERSION_EXTRA which can be used to help identify custom
builds; this is not done for these build methods (yet?).

svn path=/trunk/; revision=44986
2012-09-18 21:42:13 +00:00
Jörg Mayer 8e66080f1d Copy over HAVE_NL80211 from autofoo
svn path=/trunk/; revision=44853
2012-09-10 20:24:51 +00:00
Jörg Mayer d8a7eed0a7 Get netlink detection working with cmake (not complete)
svn path=/trunk/; revision=44791
2012-09-06 10:37:17 +00:00
Anders Broman e6e6d6217b From Tony Trinh:
Update Lua from 5.1 to 5.2

svn path=/trunk/; revision=43482
2012-06-25 20:42:07 +00:00
Jörg Mayer c0da019caa Complete cmake support for netlink detection
svn path=/trunk/; revision=43421
2012-06-20 20:59:43 +00:00
Jörg Mayer 46e1e8643e Forgot to copy one more change
svn path=/trunk/; revision=43417
2012-06-20 19:03:27 +00:00
Jörg Mayer e64ba28e3b Do the changes to configure from r43354 in cmake as well.
 Start to have an generic wireless toolbar. Sligtly modified patch from
 Pontus Fuchs.

svn path=/trunk/; revision=43361
2012-06-19 14:21:08 +00:00
Jörg Mayer 137f3fc455 - Move setting _U_ into config.h, because
a) C++ has a standardized way of marking parameters as unused
  b) cmakes autoquoting magic failed when the compiler wasn't gcc
     but moc instead.
- qtshark: Don't try to compile the c source files inside ui/qt/
- qtshark: Only run moc on the files that need it.
- qtshark: It's too early to try any of the new qtshark files
  as clean.
- Make Qt detection actually work
- Add C++ to the list of languages for this project

svn path=/trunk/; revision=40807
2012-02-02 12:04:22 +00:00
Gerald Combs 7d442f4c22 Change the use of threads from "mostly always, depending on your
configure options and Gtk+ and GLib versions" to "always".

svn path=/trunk/; revision=39751
2011-11-07 23:42:53 +00:00
Jörg Mayer 03fe88b31f Mimic test for IPv6 support in GeoIP from autofoo
svn path=/trunk/; revision=39307
2011-10-08 06:09:38 +00:00
Stig Bjørlykke 5603cef9f2 Remove support for libpcre, we use GRegex in GLib.
svn path=/trunk/; revision=38683
2011-08-23 09:25:06 +00:00
Jörg Mayer 6332e88552 Copy over the commit 38437 to cmake.
svn path=/trunk/; revision=38438
2011-08-09 21:26:33 +00:00
Guy Harris 5a885f1a91 Get rid of HAVE_PCAP_SET_BUFFER_SIZE - nobody checks for
pcap_set_buffer_size() (if *pcap has pcap_create() it has
pcap_set_buffer_size(), as they were both introduced in libpcap 1.0.0),
and nobody looks at HAVE_PCAP_SET_BUFFER_SIZE.

svn path=/trunk/; revision=38382
2011-08-06 19:12:31 +00:00
Gerald Combs 53c550831b Define PACKAGE in config.h.
svn path=/trunk/; revision=38316
2011-08-02 21:23:00 +00:00
Jörg Mayer ada4a40003 Make USE_THREADS actually work with cmake
svn path=/trunk/; revision=38138
2011-07-21 00:13:14 +00:00
Jörg Mayer 950e4d19ad Add detection of rpcap support in libpcap and use it if available.
svn path=/trunk/; revision=37914
2011-07-06 09:28:40 +00:00
Stig Bjørlykke 8443bbbf75 Replace all strerror() with g_strerror().
Remove our local strerror implementation.
Mark strerror as locale unsafe API.

This fixes bug 5715.

svn path=/trunk/; revision=37812
2011-06-28 09:00:11 +00:00
Jörg Mayer 5b22003e93 Add configure options to make change the default file format
from pcap-ng to pcap.
Add a comment that GTK3 doesn't build yet.

svn path=/trunk/; revision=37701
2011-06-17 22:57:02 +00:00
Jeff Morriss b9b68170f0 Don't check for the existence of gzclearerr() any more.
Check for inflatePrime().

svn path=/trunk/; revision=36955
2011-04-29 18:29:26 +00:00
Stephen Fisher a96e3dbe3b A little more old packet list cleanup
svn path=/trunk/; revision=36172
2011-03-08 20:23:48 +00:00
Jaap Keuter 4dd920a9aa From Roland Knall:
WS_MSVC_NORETURN is undeclared under a non-Windows operating system, which
breaks compilation in the files epan/except.c and dumpcap.c as well as any
file including epan/except.h

svn path=/trunk/; revision=36023
2011-02-21 21:33:54 +00:00
Jörg Mayer f337b03f39 Copy behaviour of
to cmake.

svn path=/trunk/; revision=34205
2010-09-23 09:05:31 +00:00
Jeff Morriss d8310ff499 Assume we HAVE_GZCLEARERR on Windows and when using cmake
svn path=/trunk/; revision=34192
2010-09-23 05:50:10 +00:00
Anders Broman f9981411f1 Checking in Stigs changes from
BUT not activating the check for 
This should make it possible to build with support for setting the buffersize if not capturing 802.11 traffic.

The code for handling the 'B' option should be OK in any case.

svn path=/trunk/; revision=32688
2010-05-06 18:34:30 +00:00
Guy Harris e6ecddd41f Add CMake tests for pcap_datalink_val_to_description() and

Sort the CMake tests in cmake/modules/FindPCAP.cmake into the same order
as the tests in the autoconf script, and note that, in the autoconf
script, the checks for pcap_open_dead() and pcap_freecode() do more than
just look for the routines in the library.

svn path=/trunk/; revision=32225
2010-03-17 19:31:33 +00:00
Stig Bjørlykke 98024a007f Invert check for getopt: NEED_GETOPT_H -> HAVE_GETOPT_H
Rename getopt.[ch] -> wsgetopt.[ch] to avoid name collision.

svn path=/trunk/; revision=30370
2009-10-06 16:01:18 +00:00
Jörg Mayer 95182116aa CMake:
- Add opcua to the list of plugins to build
- Link the gtk stuff statically into wireshark
- Beginnings of "make install"
- Change a few things about install paths

svn path=/trunk/; revision=30029
2009-09-21 00:19:07 +00:00
Jörg Mayer 24fb135ffe Build the asn1 plugin. The only problem(?) is, that it is
name instead of

svn path=/trunk/; revision=29919
2009-09-15 12:22:13 +00:00
Jörg Mayer 7eed375f9d Make building with GeoIP, Python, Capabilities and c-ares
actually work.

svn path=/trunk/; revision=29870
2009-09-12 17:20:08 +00:00
Jörg Mayer ca6b1e2b21 CMAKE: Get most of of missing *build* pieces into place
svn path=/trunk/; revision=29819
2009-09-09 13:20:33 +00:00
Kovarththanan Rajaratnam 2a5826d250 Define some windows specific header files
svn path=/trunk/; revision=29660
2009-09-01 19:27:59 +00:00
Kovarththanan Rajaratnam f4c7321fc4 Check for mkdtemp()
svn path=/trunk/; revision=29659
2009-09-01 19:19:41 +00:00
Jörg Mayer 1925235323 Add check for HAVE_MKSTEMP to make build work again on
platforms that know about mkstemp().

svn path=/trunk/; revision=29645
2009-08-31 23:11:52 +00:00
Kovarththanan Rajaratnam 746124c935 CMake: Remove PRId64, PRIu64, PRIx64, PRIX64, and PRIo64 which are unused
svn path=/trunk/; revision=29639
2009-08-31 18:48:16 +00:00
Jörg Mayer 67d508edaf OK, so my last commit message was too optimistic - I was using
an installed version of wsutil. dumpcap now really builds on
Linux via cmake.

svn path=/trunk/; revision=28754
2009-06-16 04:12:30 +00:00
Jeff Morriss 86e10880c9 Remove iconv/libiconv checks from *NIX builds: GLIB-2 provides iconv replacements.
svn path=/trunk/; revision=25765
2008-07-18 12:11:08 +00:00
Sake Blok 5fe95468a2 Bug 1227 : From Frederic Heem:
* modify CMakeInstallDirs.cmake according to cmake developper wishes
* FindDBUSGLIB.cmake fixes
* remove DBus from CMakeLists.txt. 
* DBus support has its own application (capdbus) and is in a self contained directory. A separate patch will be provided

svn path=/trunk/; revision=23300
2007-10-28 23:49:15 +00:00
Jörg Mayer e26860607d Get rid of UCD SNMP support (it's not longer supported and
superseeded by net-snmp). Replace some_snmp by net_snmp
where appropriate.

svn path=/trunk/; revision=20071
2006-12-08 15:05:41 +00:00
Jörg Mayer e8a5a41045 Parts of
Frederic Heem:
* More cmake system checks. It compiles dumpcap without running configure,

svn path=/trunk/; revision=19672
2006-10-24 17:39:32 +00:00
Jörg Mayer d6417e0842 cmake/
Add some more (hackish) tests.
	Add a LICENSE file until I find the time to add it to all
	files individually.

	Add some addiotional stuff regarding options.
	Add (non-working) code to generate config.h
	Handle GTK1 vs GTK2 and GLIB1 vs GLIB2

svn path=/trunk/; revision=19168
2006-09-06 22:28:19 +00:00