aboutsummaryrefslogtreecommitdiffstats
path: root/dumpcap.c
AgeCommit message (Collapse)AuthorFilesLines
2020-10-24dumpcap: fix the macOS "no permission to capture" message.Guy Harris1-3/+4
The macOS installer works differently from the way it did when that message was written (it's now a drag-install for Wireshark, with separate installers for ChmodBPF and for files to add the Wireshark binary directory to the default $PATH), and the macOS main screen now offers a "click this to install" link, running the ChmodBPF installer, if the user doesn't have permissions to capture. Update the message to reflect that (although that's wrong if you directly run dumpcap or run it via TShark - this needs to be cleaned up in some fashion). Fix a capitalization error while we're at it. In the code that generates the main screen message to which the dumpcap message refers, add a comment saying that, if the main screen message changes, dumpcap's message should also be updated.
2020-10-02Clean up URLs.Guy Harris1-1/+1
Add ui/urls.h to define some URLs on various of our websites. Use the GitLab URL for the wiki. Add a macro to generate wiki URLs. Update wiki URLs in comments etc. Use the #defined URL for the docs page in WelcomePage::on_helpLabel_clicked; that removes the last user of topic_online_url(), so get rid of it and swallow it up into topic_action_url().
2020-08-08Dumpcap: print closed ring-buffer file namesDavid Perry1-0/+12
This proposal adds a new option '-b printname:<filename>' to dumpcap. If used, dumpcap will print the name of each ring buffer file it creates after it is closed. Allows the use of '-'/'stdout' and 'stderr'. Use case: Since the file name is printed after the file is closed for writing, an automated capture process can do something like the following with the guarantee that the file in question will not be changed. dumpcap -i eth0 -b files:2 -b printname:stdout [-b ...] | \ while read cap_file_name ; do # Do something with $cap_file_name done This sort of scripting is difficult in dumpcap's current form. Dumpcap prints the names of new files to stderr as it *opens* them, so a script attempting to use this must sleep for "-b duration:value" seconds plus some fudge time to be sure it's getting a closed, unchanging file. Change-Id: Idb288cc7c8c30443256d35c8cd4460a2e3f0861c Reviewed-on: https://code.wireshark.org/review/37994 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-07-14Don't call any routines from WinPcap/Npcap packet32.dll.Guy Harris1-4/+0
We aren't using them now; stick to libpcap APIs (including Windows-only libpcap APIs). Change-Id: I812eaa31ba1e6e611418853105d3e00c9130a420 Reviewed-on: https://code.wireshark.org/review/37852 Petri-Dish: Guy Harris <gharris@sonic.net> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <gharris@sonic.net>
2020-05-21dumpcap: Initialize a couple of variables.Gerald Combs1-3/+3
Initialize err in capture_loop_init_output, as caught by both clang's scan-build and Visual Studio's code analysis. Initialze err in capture_loop_init_pcapng_output to match. Move another variable to the code block in which it is used. Change-Id: I0306ae6a02a02a8e1ebda89b7c574a7cae01b68f Reviewed-on: https://code.wireshark.org/review/37274 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2020-04-01Handle -k better on platforms that don't support it.Guy Harris1-7/+12
Have ws80211_init() return an indication that channel setting isn't supported on those platforms. In dumpcap, try to set up ws80211 before checking the channel argument and, if it fails, report the failure, rather than failing because the "convert channel name to channel code" routine fails. See https://ask.wireshark.org/question/15535/dumpcap-k-is-not-accepting-channel-type-values/ for an example of confusion caused by the previous behavior. Change-Id: I303f560704700bbcd4f0ecea041f8632744212f3 Reviewed-on: https://code.wireshark.org/review/36659 Petri-Dish: Guy Harris <gharris@sonic.net> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <gharris@sonic.net>
2020-03-28Write the if_hardware option, if available, to pcapng files when capturing.Guy Harris1-0/+2
Change-Id: Ib9ff78d148a2364c84d84b4a9b020b3d783654a3 Reviewed-on: https://code.wireshark.org/review/36602 Petri-Dish: Guy Harris <gharris@sonic.net> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <gharris@sonic.net>
2020-03-15Don't check for ancient libpcap versions on HP-UX.Guy Harris1-31/+3
We require libpcap 0.8 or later, so somebody's *really* have to go out of their way to get a version of Wireshark running with a pre-0.6 libpcap. Change-Id: I329b3a37cd37ca5d9e76db447daabfe1dc47e75d Reviewed-on: https://code.wireshark.org/review/36422 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2020-03-13Require at least libpcap 0.8/WinPcap 3.1.Guy Harris1-72/+2
2004 called, they want their libpcap/WinPcap back. RHEL 6 initially shipped with libpcap 1.0; even old Enterprise(TM) versions of OSes ship with something shinier than 0.7.x these days. This lets us get rid of a bunch of #ifdefs and workaround code for missing APIs. Change-Id: I862cb027418b0a0c0f45a26979acea82f93f833b Reviewed-on: https://code.wireshark.org/review/36383 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-12-20Use g_file_open_tmp within create_tempfileMichael Mann1-4/+4
Much better to use a known library than create it ourselves. Also remove get_tempfile_path as it's not used. Bug: 15992 Change-Id: I17b9bd879e8bdb540f79db83c6c138f8ee724764 Reviewed-on: https://code.wireshark.org/review/34420 Reviewed-by: Tomasz Moń <desowin@gmail.com> Petri-Dish: Tomasz Moń <desowin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2019-12-13cmdline: cleanup option string definitionsJaap Keuter1-5/+5
Option string composition has grown organically over time and is depending on compilation options also. This results in somewhat complex macro definitions and the use of the string concatenation feature of the C compiler. This change tries to clean up some of this magic by removing definitions of empty strings and merging of adjacent strings. Change-Id: I968449ea9b564915bee468a0cac0e114983ceebe Reviewed-on: https://code.wireshark.org/review/35429 Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-11-30Documentation: update (long) cmd line optionsJaap Keuter1-16/+25
Documentation of the Tshark and dumpcap command line options between help text, manual page and user's guide diverged over time. One aspect of this is the implementation of more long options. This change tries to update all documentation to be complete and in sync again. Change-Id: Ie8bee013df8d209080fcf288072774f18f9ff51f Reviewed-on: https://code.wireshark.org/review/35261 Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Petri-Dish: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2019-11-11dumpcap: Add support for TCP@IPv6 socket capturesJoão Valverde1-41/+10
Bug: 15820 Change-Id: Id32f376190c115b0808ba72e5b63e019e2a70274 Reviewed-on: https://code.wireshark.org/review/35030 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
2019-10-06dumpcap: fix capture library version display on WindowsPascal Quantin1-13/+11
Ensure to call load_wpcap() berfore building the version info string. Bug: 16108 Change-Id: Ida7ecf6ad5186f816e1bf33902a0ae70f7f36b40 Reviewed-on: https://code.wireshark.org/review/34719 Reviewed-by: Pascal Quantin <pascal@wireshark.org> Petri-Dish: Pascal Quantin <pascal@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-09-23extcap: Multiple extcap instance support on WindowsTomasz Moń1-44/+50
Wireshark does create named pipes and waits for the child process to connect. The named pipe server handle is inheritable and thus available in child dumpcap process. Pass the handle identifier instead of named pipe name so dumpcap can use it. Bug: 13653 Change-Id: Id2c019f67a63f1ea3d98b9da2153d6de5078cd01 Reviewed-on: https://code.wireshark.org/review/34503 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-09-21MSVC: Warn about unused formal parametersTomasz Moń1-2/+3
Provide _U_ macro definition for Visual Studio. Change the way _U_ macro is ifdefed for some targets to allow Visual Studio to recognize it. Ping-Bug: 15832 Change-Id: Ic7ce145cbe9e8aa751d64c9c09ce8ba6c1bbbd30 Reviewed-on: https://code.wireshark.org/review/34530 Tested-by: Petri Dish Buildbot Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-08-20Boost the maximum packet size for LINKTYPE_USBPCAP in pcap/pcapng.Guy Harris1-15/+15
Bug: 15985 Change-Id: I8e043431bbf874d640d4407335d525a44815ee73 Reviewed-on: https://code.wireshark.org/review/34327 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-07-28HTTPS In Even More Places, update some links.Guy Harris1-2/+2
Fall back on the Wayback Machine for some links. Change-Id: I6a44a2caaeb4fa521c2f08196e7c36069e3bb842 Reviewed-on: https://code.wireshark.org/review/34103 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-07-08dumpcap: fix uninitialized memory read on dumpcap -d errorsPeter Wu1-0/+1
Reproduce with: dumpcap -pdf bad Change-Id: I8c1f80c9d88262bc57651e886740083ea8e6ad52 Fixes: 4d6cb744df ("Add a "-d" flag to dumpcap") Reviewed-on: https://code.wireshark.org/review/33863 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-07-01Distinguish "Interface went down" from "Interface disappeared".Guy Harris1-6/+12
Have separate errors for "the interface went down" on Linux and "the interface no longer exists" on *BSD/Darwin/Windows. Change-Id: I1951c647e88eb7ebeb20a72d9e03a2072168c8e5 Reviewed-on: https://code.wireshark.org/review/33794 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-07-01Libpcap may now say "The interface disappeared" if it did.Guy Harris1-1/+2
A recent change to libpcap means that the error message if an interface disappears (e.g., removing a hot-pluggable device, or shutting down a PPP connection that was dynamically set up) is "The interface disappeared" rather than "The interface went down" - on FreeBSD, DragonFly BSD, OpenBSD, and Darwin-based OSes, capturing continues with no error if the interface is configured down, but either ENXIO or EIO (depending on the OS) is delivered if the interface disappears. Treat that error as another one to show the user without the "report this to the Wireshark developers" note. Change-Id: I477d87957ce30a52385f07f4b47a7824e3fca2c7 Reviewed-on: https://code.wireshark.org/review/33790 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-06-30Update a comment, and shuffle tests.Guy Harris1-5/+10
Linux isn't the only platform where libpcap may return "The interface went down". Put the test for "The interface went down" first. Change-Id: I5241f0744bd12eb5e090b8e1717268bdf8392ea7 Reviewed-on: https://code.wireshark.org/review/33785 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-05-24dumpcap: use typedefs instead of structs.Dario Lombardo1-26/+26
pcapng.h defines some typedefs for its structs for more readability. Use them in dumpcap. Change-Id: I7f4cc47819314732ddcd5076b38f68c52aedb071 Reviewed-on: https://code.wireshark.org/review/33329 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-05-14Fix comment.Guy Harris1-1/+1
Change-Id: I8adeddc4de0bf0bf7837004c45bd706044b301d8 Reviewed-on: https://code.wireshark.org/review/33195 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-05-14Explain that not handling byte-swapped pcap files breaks the tests.Guy Harris1-3/+24
No, not every machine on which Wireshark is built, run, and tested is little-endian. See bugs 15772 and 15754. Change-Id: Ice1d012e1a788f6a7bb031bdf0e2f01f523a91ec Reviewed-on: https://code.wireshark.org/review/33192 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-05-10dumpcap: remove legacy code.Dario Lombardo1-16/+10
Change-Id: Ifd25d8fb0a299378273ade94ac0f1fd1d313fd6e Reviewed-on: https://code.wireshark.org/review/33149 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-05-04Dumpcap: Use win32strerror in more places.Gerald Combs1-43/+12
Replace some FormatMessage calls with win32strerror. Change-Id: Ibfbcb9f1dcedbbe5f23a8e49396569f57d58f7f9 Reviewed-on: https://code.wireshark.org/review/33058 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>
2019-05-02Move the Winsock initialization and cleanup to wsutil routines.Guy Harris1-18/+13
Those routines exist on both Windows and UN*X, but they don't do anything on UN*X (they could if it were ever necessary). That eliminates some #ifdefs, and also means that the gory details of initializing Winsock, including the Winsock version being requested, are buried in one routine. The initialization routine returns NULL on success and a pointer to a g_malloc()ated error message on failure; report the error to the user, along with a "report this to the Wireshark developers" suggestion. That means including wsutil/socket.h, which obviates the need to include some headers for socket APIs, as it includes them for you. Change-Id: I9327bbf25effbb441e4217edc5354a4d5ab07186 Reviewed-on: https://code.wireshark.org/review/33045 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-05-01Dumpcap: Call WSAStartup+WSACleanup once.Gerald Combs1-74/+9
We only need to call WSAStartup and WSACleanup once, so do so. If we encounter an error, report it using win32strerror. Use win32strerror instead of FormatMessage in cap_open_socket. Change-Id: I59868d6baecb1dfc98946dc68c2346b79436d2c7 Reviewed-on: https://code.wireshark.org/review/33044 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu> Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-05-01Don't use the result of please_report_bug() as a format string.Guy Harris1-1/+2
It prevents format checking; use "%s" as the format string. Change-Id: Ic05ed64f4b2b6c243f072b0b306e0e06aa1eb3fd Reviewed-on: https://code.wireshark.org/review/33041 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-05-01Windows: Modernize our WSAStartup usage.Gerald Combs1-3/+1
Make sure we link each application that calls WSAStartup with ws2_32.lib. Pass version 2.2 to WSAStartup. Wikipedia says it was introduced in 1996, so we should be OK. Ping-Bug: 15711 Change-Id: I431839e930e7c646669af7373789640b5180ec28 Reviewed-on: https://code.wireshark.org/review/33033 Petri-Dish: Gerald Combs <gerald@wireshark.org> Reviewed-by: Tomasz Moń <desowin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-04-21dumpcap: Fix pipe read deadlock on WindowsTomasz Moń1-0/+6
The deadlock would occur if pipe was closed before the requested number of bytes was read. Bug: 15695 Change-Id: I1236dd397d3c268dd52233ea78fb58165d0c9398 Reviewed-on: https://code.wireshark.org/review/32907 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-03-24Add routines to return "Please report this as a bug" message strings.Guy Harris1-15/+8
(Routines, so that if we internationalize strings not in the Qt code, this can return the appropriately translated version.) Change-Id: I1c169d79acde2f0545af7af2a737883d58f52509 Reviewed-on: https://code.wireshark.org/review/32549 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-03-14dumpcap: Initialize the stats variableVasil Velichkov1-6/+1
This fixes several "Use of uninitialised value" and "Conditional jump or move depends on uninitialised value(s)" errors detected by valgrind. Change-Id: I682bd4a1d2e5ef23969baf34b3e438fcd7499bd5 Reviewed-on: https://code.wireshark.org/review/32397 Reviewed-by: Anders Broman <a.broman58@gmail.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-03-10Dumpcap: Set a bigger IO buffer (64KiB).Anders Broman1-2/+27
Set a bigger IO buffer to avoid syscall overhead. See https://github.com/the-tcpdump-group/libpcap/issues/792 Change-Id: If370da5ab2b70a9d0c925dd7c4c5c135c675c3f6 Reviewed-on: https://code.wireshark.org/review/31326 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-02-08Convert WinPcap references to Npcap.Gerald Combs1-6/+6
Convert WinPcap references and URLs in error messages and the FAQ to their Npcap equivalents. Remove some obsolete FAQ entries. Change-Id: I695d358a2c9cff0939f4ea84ba02d4c62ad7dd01 Reviewed-on: https://code.wireshark.org/review/31943 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2019-01-26dumpcap: fix memory leak in ringbuffer modePeter Wu1-7/+20
'save_file' is used both for holding the -w command-line argument as well as the current filename that is being written. In ringbuffer mode, the former is already freed while the latter changes after rotation. Be sure to free all ringbuffer filenames on exit. Fixes test failures due to ASAN reporting memory leaks for: test_dumpcap_ringbuffer_filesize test_dumpcap_pcapng_single_in_multi_out test_dumpcap_pcapng_multi_in_multi_out test_dumpcap_ringbuffer_packets Change-Id: Ib817d8340275d7afa7e149dcfbbc59ed78293c34 Reviewed-on: https://code.wireshark.org/review/31739 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-24dumpcap: fix memleak if multi_files_on is enabledPeter Wu1-2/+0
Capture tests fail under ASAN due to leaking capture_opts->save_file. Since v2.9.0rc0-1493-g787d61c0a4, capture_opts_cleanup takes care of freeing "save_file", so avoid clearing the pointer. Change-Id: Ice90efe0959cc8016f47db20970bd2397909e28d Reviewed-on: https://code.wireshark.org/review/31727 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2019-01-18ebhscr: increasing ebhscr snaplenPantar Ana1-0/+9
Change-Id: Ie033196c099927912b1e7849299e786dc8416923 Reviewed-on: https://code.wireshark.org/review/31554 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-02cli_main: remove real_main from stack traces for non-WindowsPeter Wu1-1/+1
Restore the "main" name since that is used everywhere else except for Windows. On Windows, "main" is renamed via a macro to avoid a conflict with "wmain" and to allow it to be called in cli_main.c. For those wondering, GUI applications (such as Qt) have a different entry point, namely WinMain. In Qt5, src/winmain/qtmain_win.cpp defines WinMain, but seems to convert its arguments from Unicode to CP_ACP (ASCII). It might not support UTF-8, but I did not verify this. Change-Id: I93fa59324eb2ef95a305b08fc5ba34d49cc73bf0 Reviewed-on: https://code.wireshark.org/review/31208 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-01Move some command-line-oriented routines from wsutil to ui.Guy Harris1-2/+2
cmdarg_err() is for reporting errors for command-line programs and command-line errors in GUI programs; it's not something for any of the Wireshark libraries to use. The various routines for parsing numerical command-line arguments are not for general use, they're just for use when parsing arguments. Change-Id: I100bd4a55ab8ee4497f41d9651b0c5670e6c1e7f Reviewed-on: https://code.wireshark.org/review/31281 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-12-31Improve capture-on-pipe error messages.Guy Harris1-7/+26
Add "Please report this to us" and "Please report this to whoever wrote the program that's writing to the pipe" secondary error messages. Use the latter for most of the errors, as the most likely cause is that the program writing to the pipe is messing up somehow. If we don't recoginze the first 4 bytes of the file, say "Data written to the pipe is neither in a supported pcap format nor in pcapng format." - it's not necessarily a pcap file. Speak of "pcap" rather than "libpcap" format - it's not completely tied to libpcap (although two of the libraries not called "libpcap" that read it are basically libpcap+a Windows driver+a library for the Windows driver, at this point), and the suffix generally used it ".pcap". Change-Id: Ifb5518af5cade788294c93a7ac416893f57f6bc8 Reviewed-on: https://code.wireshark.org/review/31273 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-12-31Use size_t, not int, for sizes.Guy Harris1-60/+89
Change-Id: I421acce006692d6415a3d647b262843d38858cf7 Reviewed-on: https://code.wireshark.org/review/31272 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-12-29Add interface name when outputting packets dropped.Michael Mann1-4/+3
Add interface name (colon delimited) to SP_DROPS ('D') message so when dropped packets are outputted, they include the interface name for clarity. Bug: 13498 Change-Id: I68cdde4f20a574580f089dc5096d815cde5d3357 Reviewed-on: https://code.wireshark.org/review/31218 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-12-18writecap: rename pcapng_write_session_block to _section_blockJaap Keuter1-1/+1
The pcapng file format specification speaks of a secion block, not a session block. Let the function name reflect the proper name of the block it writes. Change-Id: Id399fae3648c93f4750fedaa297b18f95f2bb96f Signed-off-by: Jaap Keuter <jaap.keuter@xs4all.nl> Reviewed-on: https://code.wireshark.org/review/31099 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-12-13Move more version-info-related stuff to version_info.c.Guy Harris1-30/+6
Have a ws_init_version_info() routine that, given an application name string: constructs the app-name-and-version-information string, and saves it; adds the initial crash information on platforms that support it, and saves it. Have show_version() use the saved information and take no arguments. Add a show_help_header() routine to print the header for --help command-line options, given a description of the application; it prints the application name and version information, the description, and the "See {wireshark.org URL}" line. Use those routines in various places, including providing the "application name" string in pcapng SHBs. Change-Id: I0042a8fcc91aa919ad5c381a8b8674a007ce66df Reviewed-on: https://code.wireshark.org/review/31029 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-12-13Put the main() and wmain() routines for CLI programs into a separate file.Guy Harris1-22/+2
That means that code is only in one place, rather than having copies of it in each of those programs. CLI programs that, on Windows, should get UTF-8 arguments rather than arguments in the local code page should: include the top-level cli_main.h header; define the main function as real_main(); be built with the top-level cli_main.c file. On UN*X, cli_main.c has a main() program, and just passes the arguments on to real_main(). On Windows, cli_main.c has a wmain() function that converts the UTF-16 arguments it's handed to UTF-8 arguments, using WideCharToMultiByte() so that it doesn't use any functions other than those provided by the system, and then calls real_main() with the argument count and UTF-8 arguments. Change-Id: I8b11f01dbc5c63fce599d1bef9ad96cd92c3c01e Reviewed-on: https://code.wireshark.org/review/31017 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-11-27Dumpcap: Adjust pcapng headers when we write them.Gerald Combs1-31/+25
When we capture from multiple interfaces, we won't necessarily write our IDBs in the same order we read them. This means that we need to call pcapng_adjust_block when we write packets, not when we read them. Otherwise we might map a given capture source's local interface number to the wrong global IDB entry. Bug: 15311 Change-Id: Ia787d7f167dcd18d432020a715e2321f4060b851 Reviewed-on: https://code.wireshark.org/review/30798 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-11-16Dumpcap: Fix writing SHBs and IDBs.Gerald Combs1-154/+277
If we have a single capture source and that capture source is pcapng and we're writing a pcapng file, do the following: - Pass its SHB and IDBs through unmodified. Don't save or write command line interface IDBs. - Save the most recent SHB and IDBs so that we can write them when we're writing multiple output files. If we have multiple capture sources, do the following: - Write Dumpcap's SHB. - Keep a global list of IDBs, consisting of both command line interfaces and IDBs read from pcapng sources. - When reading an EPB or ISB, remap its local interface number to its corresponding global number. Add Dumpcap pcapng section tests. Make the application IDs in the "many_interfaces" captures unique. Change-Id: I2005934c1f83d839727421960005f106d6c682dd Reviewed-on: https://code.wireshark.org/review/30085 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-11-15Dumpcap: Update our pipe closed logic.Gerald Combs1-10/+12
Check for pipe status only when we no longer have packets. This keeps us from flushing packets that we should have written. Change-Id: I714f52597da792a0b228b5e1a1dd3a993dc93681 Reviewed-on: https://code.wireshark.org/review/30651 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>