aboutsummaryrefslogtreecommitdiffstats
path: root/extcap.c
AgeCommit message (Collapse)AuthorFilesLines
2019-01-04extcap: fix --extcap-version argument to include the versionPeter Wu1-1/+1
Change-Id: I727864ae0a210fea2dc90624102b793f5a98e395 Fixes: v2.9.0rc0-2648-g9ae02a5918 ("extcap: run --extcap-config in parallel to reduce startup time") Reviewed-on: https://code.wireshark.org/review/31367 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-01-03extcap: remove redundant casts.Dario Lombardo1-3/+3
Found by clang-tidy. Change-Id: Icd4a72d840092ce9c5e18e3d16a94b785b4521dc Reviewed-on: https://code.wireshark.org/review/31333 Petri-Dish: Dario Lombardo <lomato@gmail.com> Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-11-25extcap: run --extcap-config in parallel to reduce startup timePeter Wu1-59/+257
While --extcap-interfaces is now run in parallel, --extcap-config (for each discovered interface) would only run sequentially after that. Make sure that the latter command also fully parallel and do not wait for all extcap interfaces to be discovered first. This saves another 80ms startup time on Linux (unoptimized ASAN+Debug). Change-Id: I303fd8fda647b304d5bdaf048a3d1628ec9e02b4 Ping-Bug: 15295 Reviewed-on: https://code.wireshark.org/review/30773 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-22extcap: discover interfaces in a parallelPeter Wu1-128/+106
Split interface discovery in three stages: discover available programs (extcap_get_extcap_paths), obtain outputs for each (extcap_run_all) and processing of the output (process_new_extcap). The second step is most expensive, do it in parallel in multiple threads. extcap_foreach used to call extcap_if_exists, but as "cb_info.ifname" is always NULL for interface discovery, it would always pass. Remove this check and all other unused functions. This saves 100ms startup time on Linux with 7 extcap tools. Change-Id: I511e491d3b23c0a7f2fe2447842e87a9bd75adbe Ping-Bug: 15295 Reviewed-on: https://code.wireshark.org/review/30766 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-22extcap: simplify execution of single extcap programsPeter Wu1-30/+33
extcap_foreach has two purposes: discovery of all interfaces for each tool and querying info for an extcap interface. Observe that the latter requires extcap_if_exists(ifname) to be true. This makes extcap_foreach match exactly one interface, so we can avoid some complexity. Change-Id: I1842f50aa19553608ee5f2bb7bd8d94bba9629f2 Reviewed-on: https://code.wireshark.org/review/30764 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-22ws_pipe_spawn_sync: mark arguments as const where possiblePeter Wu1-2/+2
This avoids an unnecessary explicit cast. For clarity, rename the working directory argument to match g_spawn_sync. Change-Id: Idf7072cd590e686294d953f77da2a52c861a89c0 Reviewed-on: https://code.wireshark.org/review/30763 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-13extcap: Allow ASCII '0' in preference nameStig Bjørlykke1-1/+1
Update another regex to also allow '0' in the preference name. Change-Id: I61e39a160d86195c989ab53623bc5887a10dcaad Reviewed-on: https://code.wireshark.org/review/30606 Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2018-11-13extcap: Allow ASCII '0' in preference nameStig Bjørlykke1-1/+1
Update the regex to also allow '0' in the preference name. Change-Id: I881079b579b9193dd31dda2150d9a50c000c0dd3 Reviewed-on: https://code.wireshark.org/review/30602 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-02extcap: use the correct values for comparing.Dario Lombardo1-2/+2
Change-Id: Ieb9c0940065aeff1234998aaec37f05fb7f80ed9 Reviewed-on: https://code.wireshark.org/review/30484 Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-11-02extcap: small fix.Dario Lombardo1-1/+1
Change-Id: I043bef4eb1f1fe74f277bcdb3d7a3d1c8d2ec1a9 Reviewed-on: https://code.wireshark.org/review/30485 Reviewed-by: Dario Lombardo <lomato@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-11-02extcap: add check before using pipedata.Dario Lombardo1-14/+16
In line 1131 the check assumes that pipedata can be NULL. All subsequent uses require it is not NULL, otherwise it may result in a NULL dereference. Found by Clang. Change-Id: I9bd35b6213adfb41de2e96d5cc6da2b3bac4dd95 Reviewed-on: https://code.wireshark.org/review/30478 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Roland Knall <rknall@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-01wsutil: introduce ws_pipe_close() helper and use it to terminate mmdbresolvePascal Quantin1-4/+1
We were not calling TerminateProcess() to stop mmdbresolve.Exe process on Windows. Bug: 15248 Change-Id: Ic90cf438a8003a6fefb023b7056984681ce09b46 Reviewed-on: https://code.wireshark.org/review/30449 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-10-17extcap: Close stdout_fd and stderr_fd when doneStig Bjørlykke1-0/+10
The documentation for g_spawn_async_with_pipes() states that stdout_fd and stderr_fd must be closed when they are no longer in use. Ping-Bug: 15205 Change-Id: I943eaa68058b0828686469672ea3611e67390b2f Reviewed-on: https://code.wireshark.org/review/30221 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2018-10-14extcap: Read stderr on extcap error without an infinite loopStig Bjørlykke1-1/+1
Check if data is available on stderr before doing a blocking read() to avoid an infinite read loop when having less data than STDERR_BUFFER_SIZE. Append data instead of overwrite when doing multiple read() to fetch available data. This is a regression from g6a949ed155. Bug: 15205 Change-Id: I84b232aeafb6123f77f3f5d48bbe89326fe7eb0f Reviewed-on: https://code.wireshark.org/review/30209 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-07-26Revert "Pass all arguments to options as --option=argument."Guy Harris1-5/+2
This reverts commit 137d45f52c6ff3deb56721a6e37be5c4ed8f095a. Don't. Make. The. Argument. To. Your. Extcap. Program. Specific. Options. Optional. (Unless they're Boolean, in which case we never pass an argument - we just pass the option if it's true and don't pass it if it's false.) Change-Id: I11e4ecaa196fd94c493d51e1f73e90267e1d9b1d Reviewed-on: https://code.wireshark.org/review/28866 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-26Pass all arguments to options as --option=argument.Guy Harris1-2/+5
For options with optional arguments, the only syntax that's *guaranteed* to be handled by getopt_long() is --option=argument, not --option argument. The BSD/macOS version of getopt_long() only supports the former, not the latter. Change-Id: Icfaec9eda49f5a947961251ebd377d7c1684c823 Reviewed-on: https://code.wireshark.org/review/28865 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-06-06extcap: Fix a potential leak of memory pointed to by 'toolbar_entry'Stig Bjørlykke1-6/+6
Initialize toolbar_entry after error checking is done to avoid a potential memory leak when exiting early from cb_load_interfaces(). Change-Id: I925d9296085964c6d5c3a9ccae85137285bf9220 Reviewed-on: https://code.wireshark.org/review/28060 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-05-16Eliminate some unneeded header checks.Guy Harris1-2/+0
sys/stat.h and sys/types.h date back to V7 UNIX, so they should be present on all UN*Xes, and we're assuming they're available on Windows, so, unless and until we ever support platforms that are neither UN*Xes nor Windows, we don't need to check for them. Remove the CMake checks for them, remove the HAVE_ values from cmakeconfig.h.in, and remove all tests for the HAVE_ values. Change-Id: I90bb2aab37958553673b03b52f4931d3b304b9d0 Reviewed-on: https://code.wireshark.org/review/27603 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-05-02extcap.c: fix compilation with gcc 8Pascal Quantin1-7/+9
extcap.c:228:37: error: cast between incompatible function types from ‘void (*)(iface_toolbar_value *)’ {aka ‘void (*)(struct _iface_toolbar_value *)’} to ‘void (*)(void *, void *)’ [-Werror=cast-function-type] extcap.c:246:39: error: cast between incompatible function types from ‘void (*)(iface_toolbar_control *)’ {aka ‘void (*)(struct _iface_toolbar_control *)’} to ‘void (*)(void *, void *)’ [-Werror=cast-function-type] extcap.c:521:32: error: cast between incompatible function types from ‘void (*)(void *)’ to ‘void (*)(void *, void *)’ [-Werror=cast-function-type] extcap.c:1440:35: error: cast between incompatible function types from ‘void (*)(void *)’ to ‘void (*)(void *, void *)’ [-Werror=cast-function-type] Change-Id: I2422e9b59c288907882c9ffd57cbae12011f7832 Reviewed-on: https://code.wireshark.org/review/27264 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-04-16glib: Get rid of GLIB_CHECK_VERSION as we now require 2.32.0Anders1-1/+0
Change-Id: Ie95cf37f9cd283545693e290340a7489cc989c95 Reviewed-on: https://code.wireshark.org/review/26970 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-04-11extcap: Fix crash in extcap_verify_capture_filterStig Bjørlykke1-2/+2
This fixes a regression issue from g57fed5d1 when freeing the arguments passed to extcap. Change-Id: Ic4d6a129569f9e691fd2608e0229342b8b5e9783 Reviewed-on: https://code.wireshark.org/review/26870 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2018-04-11extcap: Fix whitespace issuesStig Bjørlykke1-13/+13
Change-Id: I70066077a55b094eb2e667d31190ae80c3b97b5f Reviewed-on: https://code.wireshark.org/review/26871 Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2018-04-07extcap: Always use byte mode in pipesStig Bjørlykke1-7/+6
The original PipeMode parameter to CreateNamedPipe() was wrong but when running gave a correct value. The changes in g00373a1f tried to fix this parameter but this gave incorrect values. Bug: 14532 Change-Id: Ia1e8e9ba54abfcc3bd0856fd715b7c69ee54ccfe Reviewed-on: https://code.wireshark.org/review/26786 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Reviewed-by: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2018-04-06extcap: Fix version requestRoland Knall1-29/+55
The original implementation lead to multiple extcap interfaces being loaded, as well as an error output from the default example. This fixes both Change-Id: Icb6fbda7bcb11ed0d14cb683ddcdabdc20a7070d Reviewed-on: https://code.wireshark.org/review/26773 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-04-06Fix handling of --extcap-version with an argument.Guy Harris1-3/+1
Not all versions of getopt_long() allow, for an option for which the argument is optional, --xyzzy {value}; at least some of them, such as the *BSD/macOS one, require --xyzzy={value}. Make it so. Change-Id: I856d9f253535d804c7674d209054bc6ce10ee91d Reviewed-on: https://code.wireshark.org/review/26772 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-04-05extcap: Reload values on requestRoland Knall1-0/+63
Allow certaing elements to be reloaded upon request. The way this works is, certain elements can be configured to be reloadable. By doing so, the extcap is asked once more just for the values list of this item, together with all already set options, and reloads the available options depending on the response. Only supported for selector. Radio and Multiselect will need additional patches, also moving those parts outside of extcap_argument.cpp might make sense before hand. Change-Id: I2e9e3d109b334bf878835a7cc9354f468bc22dee Reviewed-on: https://code.wireshark.org/review/26223 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-04-05extcap: Tell utilities the wireshark versionRoland Knall1-1/+24
Add an optional argument to extcap-version, which tells the utilities the wireshark version and therefore allows them to handle different versions differently. If no version is provided, the utility has to assume it is dealing with a Wireshark 2.x version (default behavior). Change-Id: I51658300f28f503ca8050d204b73749f1a54df16 Reviewed-on: https://code.wireshark.org/review/26752 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-04-04extcap: Move extcap_foreach to a GListRoland Knall1-33/+36
Allow for a higher flexibility of the arguments passed to extcap_foreach Change-Id: I19708ac9d6c2aceecd88d0f691b5155bb8027675 Reviewed-on: https://code.wireshark.org/review/26736 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2018-03-02More spawned process handling updates.Gerald Combs1-6/+7
Document ws_pipe.h. Define invalid PIDs in one place. Extcap didn't use stdin before 1a0987904f. Make sure we close it. Change-Id: I7a69cd9b5137ae82435e64628a22e4d812d58f89 Reviewed-on: https://code.wireshark.org/review/26226 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-03-02Generalize our process spawning code.Gerald Combs1-37/+34
Move the contents of extcap_spawn to ws_pipe. Rename various extcap_* prefixes to ws_pipe_*. Open stdin when we spawn processes. Change-Id: I9286295443ee955bb6328b0ed6f945ee0bb2a798 Reviewed-on: https://code.wireshark.org/review/26216 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-03-01Simplify the mode passed to CreateNamedPipe().Guy Harris1-4/+10
There's one mode you use if byte_mode is true, and another mode you use if it's false. My head hurts when I try to pretend to be a top-down parser for C and feed myself the existing expression, and Visual Studio Code Analyzer says "are you sure that's what you had in mind?", so I'm guessing the modes are: byte mode: PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT not byte mode: PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT and am just using one test of byte_mode to choose between them. Put the entire function under an #ifdef, so we can mark the byte_mode argument as unused on UN*X but not on Windows. Change-Id: Ib2d0b80f870b1789c1375ccb017bd90e93dca5ce Reviewed-on: https://code.wireshark.org/review/26201 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-08replace SPDX identifier GPL-2.0+ with GPL-2.0-or-later.Dario Lombardo1-1/+1
The first is deprecated, as per https://spdx.org/licenses/. Change-Id: I8e21e1d32d09b8b94b93a2dc9fbdde5ffeba6bed Reviewed-on: https://code.wireshark.org/review/25661 Petri-Dish: Anders Broman <a.broman58@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-14extcap: check preference in extcap_ensure_interface().Dario Lombardo1-0/+3
Change-Id: I2b854b410e54b9f85ce26212d908c474f4611929 Reviewed-on: https://code.wireshark.org/review/25289 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-14extcap: check preference in extcap_loaded_interfaces().Dario Lombardo1-0/+3
Change-Id: Ie1fd214eb8f9d55f1ce400b7227ad9887f05da76 Reviewed-on: https://code.wireshark.org/review/25286 Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-12extcap: add more checks for extcap disabled.Dario Lombardo1-0/+6
Change-Id: I914efbb4293518a8a3f8aaa8739c9915c63d941c Reviewed-on: https://code.wireshark.org/review/25278 Petri-Dish: Roland Knall <rknall@gmail.com> Reviewed-by: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-09extcap: add preference to prevent interfaces loading.Dario Lombardo1-0/+3
Change-Id: Ia5865a40c75e582f28408a0515c5c0b38e43a916 Reviewed-on: https://code.wireshark.org/review/25188 Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org> Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2017-12-23Put special pipe-handling code into libwsutil.Guy Harris1-56/+4
Ask, in a comment, why we're doing PeekNamedPipe() when we're trying to read everyting in the pipe, up to the EOF, into a string. On UN*X, do the same "read up to an EOF and then NUL-terminate the result" stuff that we did on Windows; nothing guarantees that, on all UN*Xes, in all circumstances, until the end of time, world without end, amen, we can do one read and get the entire string. Change-Id: I578802b23fec1051139eaefd9a09fe2a6de06a11 Reviewed-on: https://code.wireshark.org/review/24959 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-23extcap: null terminate the string that will be used in strlen (CID 1364684).Dario Lombardo1-1/+7
Change-Id: Ie4c7eed2ac24327292af9a45ffc7e4630338a6b4 Reviewed-on: https://code.wireshark.org/review/24948 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-12-21NULL check some g_log statements for extcap.Michael Mann1-4/+7
"Yes, on *most* UN*Xes, that causes "(null)" to be printed, but it causes a crash on at least some versions of Solaris, so Don't Do It." - Guy Harris Bug: 14194 Change-Id: Iff0d59803d78b1e87a564e8bcdc5c84af485eea6 Reviewed-on: https://code.wireshark.org/review/24922 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-11-09Start using SPDX license identifiers.Gerald Combs1-13/+1
A while back Graham pointed out the SPDX project (spdx.org), which is working on standardizing license specifications: https://www.wireshark.org/lists/wireshark-dev/201509/msg00119.html Appendix V of the specification describes a short identifier (SPDX-License-Identifier) that you can use in place of boilerplate in your source files: https://spdx.org/spdx-specification-21-web-version#h.twlc0ztnng3b Start the conversion process with our top-level C and C++ files. Change-Id: Iba1d835776714deb6285e2181e8ca17f95221878 Reviewed-on: https://code.wireshark.org/review/24302 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Reviewed-by: Balint Reczey <balint@balintreczey.hu> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-08-31extcap: fix parameters save in preferences filePascal Quantin1-10/+0
Since g583150198b, extcap_arg structures holds a pointer to the current preference value. So let's not update its value outside of the prefs API otherwise the call to prefs_set_string_value() with pref_current done afterwards will never notify the change and the updated value will not be written in the preference file. Moreover update ExtcapArgument::resetValue() method to have an empty string instead of a NULL pointer. Otherwise prefs_set_string_value() will not notify the change and save the restored default value in the preference file either. Change-Id: Ie70e79d471c75e25705c7654e420a7706ebc4032 Reviewed-on: https://code.wireshark.org/review/23308 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-29extcap: check that argument parameter is not null before adding it to ↵Pascal Quantin1-1/+1
command line Without this test, we add an argument with an empty parameter Bug: 14006 Change-Id: I7e5313f652691808735f54b533cf5a7f7adeeae1 Reviewed-on: https://code.wireshark.org/review/23271 Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com>
2017-08-28iface_lists: Access ifaces member by referenceMikael Kanstrup1-94/+84
Change access of ifaces elements from by val to by reference. With this change unnecessary copying of the whole struct is avoided but even more important is that elements no longer have to be removed and inserted whenever data is updated. This change aims to make it more clear that ifaces elements shall never directly be removed from the array. Instead use function capture_opts_del_iface NOTE: Code for GTK UI not updated Ping-Bug: 13864 Change-Id: I04b65d5ee36526b30d959b8e5a2a48a3c7c4f15b Reviewed-on: https://code.wireshark.org/review/23204 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-28extcap: Interface Toolbar support on WindowsHåkon Øye Amundsen1-10/+45
Add support for extcap control pipes on Windows. Improved read loop in InterfaceToolbarReader. Delay opening control pipes until extcap has opened the fifo pipe. Make extcap_example.py work on Windows. Bug: 13833 Change-Id: I4b47d25452637759b8a3be53be48eee5365bc0e4 Reviewed-on: https://code.wireshark.org/review/23211 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-23extcap: Create unique pipe names for each interfaceStig Bjørlykke1-22/+22
On Windows the pipe names does not get random characters appended. Add the interface name and pipe type to make it unique. This partly fixes the issue with capturing from multiple extcap interfaces on Windows. Ping-Bug: 13653 Ping-Bug: 13833 Change-Id: I4290b37cf789bf77608993682a803aca29513d28 Reviewed-on: https://code.wireshark.org/review/23158 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-22Add hardware timestamping supportAhmad Fatoum1-0/+1
pcap provides a pcap_set_tstamp_type function, which can be used to request hardware timestamps from a supporting kernel. This patch adds support for aforementioned function as well as two new command line options to dumpcap, wireshark and tshark: --list-time-stamp-types List time stamp types supported for the interface --time-stamp-type <type> Change the interface's timestamp method Name choice mimics those used by tcpdump(1), which already supports this feature. However, unlike tcpdump, we provide both options unconditionally. If Wireshark was configured without pcap_set_tstamp_type being available, --list-time-stamp-types reports an empty list. Change-Id: I418a4b2b84cb01949cd262aad0ad8427f5ac0652 Signed-off-by: Ahmad Fatoum <ahmad.fatoum@siemens.com> Reviewed-on: https://code.wireshark.org/review/23113 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-08-15extcap: use options as they are shown in the dialog.Dario Lombardo1-18/+8
Bug: 13051 Change-Id: I287a4e1d529cc281aaae4a786010358c108d5f93 Reviewed-on: https://code.wireshark.org/review/22933 Petri-Dish: Roland Knall <rknall@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-06-30extcap: another round of memory leak fixesPeter Wu1-4/+14
Fix assorted memory leaks. Note that _tool_for_ifname is cleaned up at exit by extcap_cleanup, but lacked key/value destructors, so add them. After this, ASAN reports no more extcap memleaks. Change-Id: Ie5f4b1e2453a0beb52d617670202973839ca1416 Reviewed-on: https://code.wireshark.org/review/22466 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>
2017-05-30Qt: Add support to verify extcap capture filterMichael Mann1-0/+49
Bug: 11668 Change-Id: Ib218d87c1905e53ffdab4e3dd6f93ba2c3d07c8b Reviewed-on: https://code.wireshark.org/review/21770 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net> Reviewed-by: Roland Knall <rknall@gmail.com>
2017-05-03Extcap: use glib-compat for g_list_free_full()Martin Mathieson1-0/+1
Change-Id: I13e6a465b0e169f2f4ce134df3c873c416737b33 Reviewed-on: https://code.wireshark.org/review/21476 Petri-Dish: Martin Mathieson <martin.r.mathieson@googlemail.com> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>