Commit Graph

73 Commits

Author SHA1 Message Date
Guy Harris ee78dbb925 Get rid of the static capture_opts pointer - it collides with parameter
names, as noted by John Smith.

svn path=/trunk/; revision=25542
2008-06-23 20:21:46 +00:00
Guy Harris e731e24b51 capture_opts_print_statistics() has nothing to do with capture options
setting, and is used only in dumpcap.c, and needs to get at information
set by dumpcap's signal handlers so it can respond to ^C; move it to
dumpcap.c, rename it print_statistics_loop(), and make it set ld.go to
TRUE before looping and loop only as long as ld.go is TRUE.

That fixes bug 2592 (at least on Mac OS X, and probably on other UN*Xes;
it should fix it on Windows as well).

svn path=/trunk/; revision=25492
2008-06-20 00:09:47 +00:00
Anders Broman 36d89bb79c Fix some of the Errors/warnings detected by checkapi.
svn path=/trunk/; revision=25368
2008-05-23 05:55:34 +00:00
Jeff Morriss a5cee04fad Move the file utility functions from wiretap to libwsutil so that
libwireshark (and the plugins using those functions) do not depend on
wiretap on Windows.

While doing that, rename the eth_* functions to ws_*.

svn path=/trunk/; revision=25354
2008-05-22 15:46:27 +00:00
Bill Meier 398e06e875 Fix a few typos.
svn path=/trunk/; revision=24724
2008-03-24 18:32:15 +00:00
Gerald Combs ec74de5957 dumpcap.c: Fix a typo.
INSTALL: Add entries for libcap.

svn path=/trunk/; revision=24722
2008-03-24 16:22:30 +00:00
Bill Meier e843df87f6 Fix (aka workaround) for bug #2228.
Essentially: if using libcap, drop capabilities
after doing pcap_open_live. 
See comment in main() for details.

svn path=/trunk/; revision=24716
2008-03-22 19:04:26 +00:00
Gerald Combs c288c1ae05 Don't call cap_set_proc() unless we were started with elevated
privileges.  Otherwise, we might print

dumpcap: cap_set_proc() fail return: Operation not permitted

to stderr.

svn path=/trunk/; revision=24704
2008-03-20 19:18:33 +00:00
Bill Meier 2c07da3195 Fix for handling dumpcap errmsgs when wireshark does 'dumpcap -D -M', etc
svn path=/trunk/; revision=24507
2008-02-29 18:48:29 +00:00
Jeff Morriss 404c087195 Use plain old strcmp() instead of g_ascii_strcasecmp() when searching for -Z.
On glib-1.2 systems g_ascii_strcasecmp() is in libwireshark (which we don't
want to include in dumpcap) and anyway our code should be the only thing
calling dumpcap with "-Z"--so hopefully there's no need for doing a
case-insensitive comparison.

(This is another argument for adding a "utils" library.)

svn path=/trunk/; revision=24462
2008-02-25 20:43:03 +00:00
Bill Meier 8d4f01eea7 Ensure tshark/wireshark always get good err msgs from dumpcap:
1. Clean up dumpcap 'as a child' err msg handling so that:
   - all err msgs are properly formatted when being sent 
     back to the parent.
   - any log Critical, Warning, etc messages
     are sent back to parent and are properly formatted.
2. Change handling of -w <...> slightly in capture_opts.c
   so that wireshark provides a good error message if
   there is a 'write permissions' issue on the file.
   (Previously the error popup said only 
   "Child exited with status 2").
   This fixes bug #2288.

Add some conditionalized DEBUG_CHILD_DUMPCAP code for
   dumpcap debug logging to a file.

svn path=/trunk/; revision=24446
2008-02-23 19:59:38 +00:00
Guy Harris 8d8800f3e9 dumpcap doesn't need stuff declared in capture.h; it just needs what's
declared in capture_opts.h.

svn path=/trunk/; revision=24352
2008-02-16 08:44:33 +00:00
Guy Harris 7eac554d02 One include of epan/unicode-utils.h suffices - and the routines it
declares are called only on Windows.

svn path=/trunk/; revision=24351
2008-02-16 08:38:23 +00:00
Guy Harris 7aa5f3f1ad Directly call capture_loop_packet_cb(), rather than making a pointer to
the callback function part of the loop_data structure - we always call
capture_loop_packet_cb().

svn path=/trunk/; revision=24350
2008-02-16 08:09:56 +00:00
Guy Harris 95f3802ae9 If we don't have libcap, relinquish special privileges just after
opening the capture device.  That somewhat fixes bug 2273, although the
second and subsequent files don't have the right group ownership,
probably because of the problem described in the comment before
relinquish_special_privs_perm().

We should also relinquish special privileges *before* trying to open the
capture pipe, so that we can't open a pipe to which the real user
doesn't have access.

svn path=/trunk/; revision=24347
2008-02-16 03:18:36 +00:00
Guy Harris 4aac1e2c0b Pull capture_loop.c into dumpcap.c, as dumpcap is the only program that
does capturing any more.  (We will be inserting a call to give up
privileges after the pcap_open_live(), which should fix 2273; we're
currently only giving up privileges on platforms with libcap.)

svn path=/trunk/; revision=24345
2008-02-16 02:39:58 +00:00
Bill Meier 8f6398d5ba Fix typo in help text
svn path=/trunk/; revision=24148
2008-01-20 23:12:12 +00:00
Tomas Kukosa 08bbd29c71 Support for RPCAP features in GUI (from Boris Misenov, see Bug 1366)
- retrieving the list of remote PCAP interfaces
  - password authentication support
  - UDP data fransfer
  - packet sampling (available in WinPcap 4.x)
  etc.

fix problem if non-default rpcap port is used

svn path=/trunk/; revision=23750
2007-12-04 11:19:29 +00:00
Bill Meier bfc4f6d466 Rename Windows ConsoleCtrHandlerRoutine --> capture_cleanup to match SVN #23537 change
svn path=/trunk/; revision=23540
2007-11-22 00:33:22 +00:00
Guy Harris d722f061f4 Catch SIGINT, SIGHUP, and SIGTERM on UN*X, so we cleanly exit if, for
example, we're ^C'ed.  This should fix bug 2003.

svn path=/trunk/; revision=23538
2007-11-21 22:49:02 +00:00
Gerald Combs 58914b5248 If libcap is present, have dumpcap use it to drop privileges while
retaining CAP_NET_ADMIN and CAP_NET_RAW.  Update some Makefile
dependencies for dumpcap.

svn path=/trunk/; revision=23511
2007-11-20 16:53:01 +00:00
Gerald Combs 8f05294027 For the Wireshark/TShark -> dumpcap signal pipe on Windows, use a named
pipe instead of stdin.  Add an argument (currently the parent PID) back
to the "-Z" flag and use it to construct the pipe name.  This lets us
pass the parent's stdin handle to dumpcap, which lets us capture from
stdin on Windows.  Add a comment about checking for the parent process.

In capture_loop.c, remove the wait_forever argument from cap_pipe_select()
since it was always FALSE.  Set the timeout under Windows to 250 ms
instead of 250000 ms.

svn path=/trunk/; revision=23279
2007-10-26 16:32:28 +00:00
Guy Harris e8ea45d6ed Make the sync pipe the standard error, not the standard output, of
dumpcap, when using it as a capture child; leave the standard output
alone, in case tshark was told to write the capture to the standard
error.

Get rid of the argument to the "-Z" option to dumpcap; it might not work
on Windows.

svn path=/trunk/; revision=23124
2007-10-10 01:31:36 +00:00
Guy Harris 61e8c424b3 "get_compiled_version_info()" appends to the string text starting with
"with", so we shouldn't put our own "with" in there.

svn path=/trunk/; revision=23037
2007-09-30 22:34:15 +00:00
Guy Harris 322d44d416 Make the "-Z" argument to dumpcap take an argument that's the file
descriptor to use as the sync pipe.  For now, always pass 1, so the sync
pipe is the standard output of dumpcap.

svn path=/trunk/; revision=23025
2007-09-29 01:36:03 +00:00
Guy Harris 6d065e2eb2 Don't hardcode the notion that the sync pipe is the standard output into
sync_pipe_errmsg_to_parent(); have it take the FD for the sync pipe as
an argument.

svn path=/trunk/; revision=23024
2007-09-29 01:15:11 +00:00
Guy Harris 72eed77ed7 We don't use NetSNMP any more.
svn path=/trunk/; revision=23022
2007-09-29 01:01:02 +00:00
Gerald Combs 89a2966ced Add a "-S" flag to dumpcap, which prints out interface statistics. Use
this in the GUI rather than calling pcap_stats() directly. This gets rid
of the last pcap_open_live() call in the GUI code. Update
README.packaging.

svn path=/trunk/; revision=22443
2007-08-02 21:45:27 +00:00
Gerald Combs c02e0c7b4a Remove the "-I" flag from dumpcap, and add a "-M" flag used to specify
that "-D" and "-L" should produce machine-readable output.  Use this to
move an indirect get_pcap_linktype() call from the GUI to dumpcap.

svn path=/trunk/; revision=22367
2007-07-20 21:43:07 +00:00
Gerald Combs e9f1a0b692 One more step in privilege separation.
Add a capture_interface_list(), which works similar to
get_interface_list() except that it forks dumpcap instead of calling
the pcap routines directly.  Use it in the GUI.

Add a "-I" flag to dumpcap, which prints out verbose interface
information.

Tested under Windows and Linux.

svn path=/trunk/; revision=22071
2007-06-11 03:58:58 +00:00
Bill Meier 4009deca1b Output error msgs when using dumpcap from cmd-line (stand-alone);
Also: minor cleanup for capture_loop.c

svn path=/trunk/; revision=20864
2007-02-19 20:25:56 +00:00
Jeff Morriss 0c17bfd3a8 From Eric Hall to fix bug 1289:
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1289

Rename 'svnversion' to 'wireshark_svnversion' to resolve a symbol conflict with
GTK 2.10.6 (hmm, shouldn't GTK not be exporting that symbol or at least naming
it so as to prevent such collisions? Well, so should we, so...)

From Andreas Fink: change #ifdef for size_t in airdcap_interop.h to fix
compile on MacOS X.


svn path=/trunk/; revision=20726
2007-02-06 02:27:59 +00:00
Jörg Mayer 23ce819952 Frederic Heem:
Fix some memleaks and overflows.

I haven't committed the changes that are not bug fixes.

svn path=/trunk/; revision=19777
2006-11-02 09:45:12 +00:00
Jaap Keuter 22a949a42f Make dumpcap complile again and other minor improvements.
svn path=/trunk/; revision=19624
2006-10-20 06:24:56 +00:00
Guy Harris 00d8ca2d45 Fix up the changes to put the Portaudio information at the end of the
version string, so the information comes out right for applications that
don't use Portaudio.

Get rid of an extra "with" in the version string for dumpcap.

Get rid of an extra blank after the libpcap version string, and get rid
of an extra newline before it.

Attempt to add more compiler version information and to prettify the
MSVC++ version information (both untested).

svn path=/trunk/; revision=19613
2006-10-19 18:43:12 +00:00
Gerald Combs 9e23f31e5f Add support for reading from stdin under Windows. Based on a patch sent
in last year by Gianluca Varenni.

Add partial support for reading from named pipes (currently disabled).

Move utf_8to16() and utf_16to8() to a separate module (unicode-utils.[ch])
so that we don't have to cut and paste code in dumpcap.c.

Fix up whitespace.

svn path=/trunk/; revision=19291
2006-09-22 21:14:54 +00:00
Guy Harris 594cab8a63 Add to a comment.
svn path=/trunk/; revision=18987
2006-08-21 23:06:40 +00:00
Ulf Lamping 0cfb4a78d6 put utf_16to8 under #ifdef _WIN32, thanks Toralf
svn path=/trunk/; revision=18892
2006-08-13 15:33:23 +00:00
Ulf Lamping f7f96d52dd another place missing a call to utf_16to8(), the about box was showing "Windows XP S", where it should be "Windows XP Service Pack 2"
dumpcap uses this too, so I had to duplicate utf_16to8 there :-(

svn path=/trunk/; revision=18891
2006-08-13 12:12:06 +00:00
Anders Broman f68d6e4c8c Ethereal->Wireshark
svn path=/trunk/; revision=18235
2006-05-28 20:28:20 +00:00
Ronnie Sahlberg 89f022b12b name change
svn path=/trunk/; revision=18197
2006-05-21 05:12:17 +00:00
Guy Harris bd847a5617 Don't report the interface name unconditionally.
svn path=/trunk/; revision=17793
2006-04-03 03:15:29 +00:00
Guy Harris d260003026 Put the low-level sync routines into a common file so they can be shared
by dumpcap and Ethereal (so that, on UN*X, the child process can report
a detailed "can't exec dumpcap" error).

Rename most of the "sync_pipe_XXX_to_parent()" routines, as they're also
in Tethereal, which doesn't have a sync pipe.

svn path=/trunk/; revision=17789
2006-04-03 01:56:53 +00:00
Guy Harris 2de9620eea In Tethereal, don't save to a temporary file if "-w" isn't specified,
even if doing a live capture; just print the packets without saving
them.

In dumpcap:

	default to the capturing the entire packet;

	don't do the "Press any key" stuff when debugging on UN*X;

	do console logging (to the standard error) even when we're
	running as the capture child (the sync pipe should only be the
	standard output, not the standard error).

svn path=/trunk/; revision=17786
2006-04-03 00:52:59 +00:00
Ulf Lamping fe3c3029aa Various code cleanup in the capture pipe stuff
svn path=/trunk/; revision=17714
2006-03-24 02:23:48 +00:00
Ulf Lamping 069b26b2d9 fix bug #803: sync pipe on Win32 wasn't set to binary mode, so error message transport failed between Ethereal and dumpcap.
I've also changed the way the secondary error message is transported from former "header message 0 secondary 0" to "header header message 0 header secondary 0" as that might be a bit more clearer, and I'll need it for further development anyway.

I was using this while debugging and not recognizing the real problem - for about four hours :-(. I'll need this feature when doing the interface (and link layer type) browsing later (transferring this data from dumpcap to Ethereal) to get a full blown privilege seperation.

svn path=/trunk/; revision=17608
2006-03-13 00:30:51 +00:00
Guy Harris cbe69401cc Pass two strings in capture child messages, so the child can send
primary and secondary error messages and let the parent worry about how
to display them.  This means dumpcap doesn't need stub routines for
generating the formatting tags for the primary and secondary messages.

Have a separate message for capture filter errors, so that the parent
can check whether the capture filter looks like a display filter and
report the appropriate message.  This means that dumpcap doesn't need a
stub routine for compiling display filters (a stub routine also means
that Ethereal won't do the check for capture filters that look like
display filters!).

svn path=/trunk/; revision=17465
2006-03-05 03:14:16 +00:00
Ulf Lamping e6fb194094 update some comments, as dumpcap no longer uses console window stuff
svn path=/trunk/; revision=17403
2006-02-25 00:00:33 +00:00
Ulf Lamping 79053183c5 remove dependencies to pcap.h, so getting an idea what needs to be done by dumpcap in addition to the things already done now
various dumpcap related code cleanup: mainly #include's and capture engine related stuff

svn path=/trunk/; revision=17327
2006-02-17 02:18:48 +00:00
Guy Harris 4d8d477018 Move create_tempfile() to tempfile.c out of util.c. This means dumpcap
no longer needs util.c, so it no longer includes routines that use
host_ip_af(), so it no longer needs to define its own host_ip_af().

That also means dumpcap.c no longer needs to include <sys/socket.h>.

svn path=/trunk/; revision=17278
2006-02-12 21:52:18 +00:00