aboutsummaryrefslogtreecommitdiffstats
path: root/caputils/capture-pcap-util.c
Commit message (Collapse)AuthorAgeFilesLines
* Use g_slist_prepend, it should be faster if there's a lot of IP addressesAndersBroman2016-09-281-2/+6
| | | | | | | | Change-Id: I3861c0af24523315db6889b22ec93159174ba86f Reviewed-on: https://code.wireshark.org/review/17966 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
* pcap_list_datalinks() failing is an error.Guy Harris2016-01-071-10/+15
| | | | | | | | | | | Return an error string if that happens. If it doesn't fail, it will return a value >= 1; it will never return 0, so don't check for that. Change-Id: I6d7ee2683c1ceae73e9d9d61c0a6e6d30b2c4400 Reviewed-on: https://code.wireshark.org/review/13100 Reviewed-by: Guy Harris <guy@alum.mit.edu>
* Clean up #ifdeffed code.Guy Harris2016-01-071-40/+40
| | | | | | | | | | We only need is_linux_bonding_device() if we have pcap_create(). We need get_data_link_types() regardless of whether we have pcap_create() or not. Change-Id: I035f8ddcd57c0424662a2029f928bffa969a3f6c Reviewed-on: https://code.wireshark.org/review/13099 Reviewed-by: Guy Harris <guy@alum.mit.edu>
* Move more capture device handling to the caputils library.Guy Harris2016-01-071-1/+714
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the code to open capture devices and get properties of capture devices there, joining the code to get a list of capture devices. This lets us do a better job of handling pcap_create() in WinPcap, including handling both WinPcap with pcap_create() and WinPcap without pcap_create() at run time, just in case somebody tries using WinPcap 3.x with a Wireshark built with WinPcap 4.x. It also could make it easier to use libpcap/WinPcap directly in Wireshark and TShark, if we have versions of libpcap/WinPcap that run small helper utilities to do privileged functions, allowing programs using them never to need elevated privileges themselves. That might make it easier to fix some issues with running TShark when not saving to a file (we could avoid the file entirely) and with delays when stopping a capture in Wireshark (Wireshark could stop writing to the file as soon as you click the stop button, rather than letting dumpcap do so when the signal gets to it). It might also make it easier to handle future versions of libpcap/WinPcap that support using pcap_create()/pcap_activate() for remote captures, and other future extensions to libpcap/WinPcap. Rename some XXX_linktype routines to XXX_datalink to indicate that they work with DLT_ values rather than LINKTYPE_ values; future versions of libpcap might use LINKTYPE_ values in newer APIs. Check for pcap_create() on all platforms in CMake. Change-Id: Ia12e1692c96ec945c07a135d246958771a29c817 Reviewed-on: https://code.wireshark.org/review/13062 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
* Remove unnecessary includes.Guy Harris2016-01-061-3/+0
| | | | | | | | Change-Id: If4bbdfc4f185c3fb33211250d1e4aeff09d72d9c Reviewed-on: https://code.wireshark.org/review/13065 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
* For non-libwiretap code, use <wiretap/XXX.h> to include libwiretap headers.Guy Harris2016-01-051-3/+3
| | | | | | | | That makes it clearer that they're libwiretap headers. Change-Id: Ia78a3496913b901073ee59e62bfb72c1677450fa Reviewed-on: https://code.wireshark.org/review/13064 Reviewed-by: Guy Harris <guy@alum.mit.edu>
* Remove configure --enable-ipv6 optionJoão Valverde2015-11-231-4/+0
| | | | | | | | | | | It's an ancient obsolete option with a confusing name. Change-Id: Ib10330cf859cdea18fed2077c6539e56350ef380 Reviewed-on: https://code.wireshark.org/review/11967 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
* Fix various memleaksPeter Wu2015-10-041-0/+1
| | | | | | | | | | | | | | | | | | | | Found by starting Wireshark within an empty profile, opening Preferences, search for Protocol "IEEE 802.11" (because it has radio buttons), then close everything again. Many fixes are trivial, but the various recent_read_* functions in recent.c were changed to return a boolean such that the result can always be checked even if errno==0. QButtonGroup leak was hinted by Clang Static Analyzer, all other memleaks were found using ASAN/LSan. Change-Id: Ia73f5d4c09d92f22e72377be59e23342f8ad7211 Reviewed-on: https://code.wireshark.org/review/10776 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
* caputils/*.c: As needed: Add editor modelines & Fix indentationBill Meier2015-02-131-36/+49
| | | | | | Change-Id: I081446fbbc242c01f8ac9dede575c3ea77421c42 Reviewed-on: https://code.wireshark.org/review/7103 Reviewed-by: Bill Meier <wmeier@newsguy.com>
* Increase the error buffer size for rpcap.Gerald Combs2014-08-271-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | If the rpcap port is unreachable pcap_findalldevs_ex can write more than PCAP_ERRBUF_SIZE bytes to errbuf. E.g. if we try to capture from Google's all-eights public DNS server we get: ---- Can't get list of interfaces: Is the server properly installed on 8.8.8.8? connect() failed: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. (code 1 ---- Set the buffer to PCAP_ERRBUF_SIZE*4 bytes. Hopefully that's large enough. Change-Id: I19f34cda16050c1ba8b9d7d6ed2d8e77b945a2af Ping-Bug: 3554 Ping-Bug: 6922 Ping-Bug: 7021 Reviewed-on: https://code.wireshark.org/review/3880 Petri-Dish: Gerald Combs <gerald@wireshark.org> Reviewed-by: Evan Huus <eapache@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
* Extcap Capture InterfaceRoland Knall2014-08-211-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 interfaces. 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: http://youtu.be/Nn84T506SwU bug #9009 Also take a look in doc/extcap_example.py for a Python-example and in extcap.pod for the arguments grammer. Todo: - Integrate with Qt - currently no GUI is generated, but the interfaces are still usable Change-Id: I4f1239b2f1ebd8b2969f73af137915f5be1ce50f Signed-off-by: Mike Ryan <mikeryan+wireshark@lacklustre.net> Signed-off-by: Mike Kershaw <dragorn@kismetwireless.net> Signed-off-by: Roland Knall <rknall@gmail.com> Reviewed-on: https://code.wireshark.org/review/359 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
* Get rid of NO_INTERFACES_FOUND - it's not an error.Guy Harris2014-07-221-2/+2
| | | | | | | | | | | | | | | | | It just means "pcap didn't give me any interfaces, and didn't report an error". Hopefully, in the future, there will be pcap APIs that distinguish between the (admittedly unlikely, these days) case of "there really *are* no interfaces on which *anybody* can capture" and "you don't have sufficient permission to capture", and we can report the latter as an error. (Given that pcap supports more than just "regular interfaces", though, there are cases where you don't have permission to capture on those but you have permission to capture raw USB traffic, for example, so perhaps what's really needed is per-interface indications of permissions.) Change-Id: I7b8abb0829e8502f5259c95e8af31655f79d36a1 Reviewed-on: https://code.wireshark.org/review/3169 Reviewed-by: Guy Harris <guy@alum.mit.edu>
* Move utility routines for capturing into a libcaputils static library.Guy Harris2014-07-041-0/+639
Some of those routines are used only in dumpcap; others are used in TShark and Wireshark as well. Change-Id: I9d92483f2fcff57a7d8b6bf6bdf2870505d19fb7 Reviewed-on: https://code.wireshark.org/review/2841 Reviewed-by: Guy Harris <guy@alum.mit.edu>