Commit graph

316 commits

Author SHA1 Message Date
Ulf Lamping
d9be4670a7 move global capture_child flag into capture_options
svn path=/trunk/; revision=12855
2004-12-29 12:37:06 +00:00
Ulf Lamping
2ed93e96bd Don't use a global capture_opts in the capturing engine (this isn't a good idea). Do some more "housekeeping" in the capturing part.
Hopefully the unspecified forward declaration of capture_options_t in main.h is portable, but buildbot will tell me. This way I need the internals of that struct only at the places I really use it.

svn path=/trunk/; revision=12853
2004-12-29 09:09:35 +00:00
Ulf Lamping
6ed03bd482 bugfix: button in capture info dialog has to stop capturing
svn path=/trunk/; revision=12506
2004-11-10 17:58:16 +00:00
Guy Harris
a522ab7fad Move some #defines and #includes around, and add some other #includes,
to make it compile on UN*X.  Get rid of some #includes that don't appear
to be needed, at least on OS X 10.3 (they might be needed on other
platforms).

svn path=/trunk/; revision=12453
2004-10-30 23:26:47 +00:00
Guy Harris
caa9fca431 Get rid of forward declarations of functions not defined in this file.
svn path=/trunk/; revision=12452
2004-10-30 23:05:48 +00:00
Ulf Lamping
7445ecfd05 split capture_loop from capture.c, some more code cleanup
svn path=/trunk/; revision=12451
2004-10-30 17:50:51 +00:00
Ulf Lamping
bdfe1d7fc8 move quit_after_cap into capture_opts
svn path=/trunk/; revision=12449
2004-10-30 14:30:52 +00:00
Ulf Lamping
3e5ac87520 code cleanup: split capture_sync from capture.c into it's own file.
That's the part used, when "Update list of packets in real time" is used while capturing.

svn path=/trunk/; revision=12445
2004-10-30 11:44:06 +00:00
Guy Harris
bbe7f89742 Move prefs.c and prefs.h into the epan subdirectory.
svn path=/trunk/; revision=12115
2004-09-27 22:55:15 +00:00
Guy Harris
01f8ed1c48 If we have "pcap_datalink_val_to_name()", use it when we construct a
"-y" argument for the capture subprocess - the capture subprocess will
expect a symbolic value, not a numeric value, if we have
"pcap_datalink_name_to_val()".  (We assume that if one is present the
other will be present as well.)

svn path=/trunk/; revision=12064
2004-09-22 09:42:57 +00:00
Gilbert Ramirez
669db206cb Move dissectors to epan/dissectors directory.
Also move ncp222.py, x11-fields, process-x11-fields.pl,
make-reg-dotc, and make-reg-dotc.py.

Adjust #include lines in files that include packet-*.h
files.

svn path=/trunk/; revision=11410
2004-07-18 18:06:47 +00:00
Guy Harris
8a8b883450 Set the svn:eol-style property on all text files to "native", so that
they have LF at the end of the line on UN*X and CR/LF on Windows;
hopefully this means that if a CR/LF version is checked in on Windows,
the CRs will be stripped so that they show up only when checked out on
Windows, not on UN*X.

svn path=/trunk/; revision=11400
2004-07-18 00:24:25 +00:00
Guy Harris
272a2055ab On at least some platforms, a #define of O_BINARY is needed even if
<fcntl.h> is included, as <fcntl.h> doesn't define it.

svn path=/trunk/; revision=11276
2004-06-30 06:58:59 +00:00
Ulf Lamping
a24b176c32 define of O_BINARY not needed, if fcntl.h is included
other #include related cleanups

svn path=/trunk/; revision=11272
2004-06-29 20:51:26 +00:00
Ulf Lamping
7e8187df20 added an option to "avoid" the capture info dialog completely.
This matters for "update of list in real time" (sync_mode) only,
as in normal mode you wouldn't otherwise have the possibility
to stop the capture.

svn path=/trunk/; revision=11194
2004-06-20 13:39:44 +00:00
Guy Harris
15af0f656f From Lars Roland: add support for building a libethereal.dll with MSVC:
add a config.nmake option to control whether to build
	libethereal.dll or not;

	remove "./wiretap" from PATH to prevent problems due to
	wrongly-loaded files;

	build dissector.lib with MSVC;

	move "print.c" and "ps.c" to the dissector helpers, as "print.c"
	imports variables from packet-frame.c and packet-data.c, which
	are in libethereal;

	move "g711.c" out of the dissector helpers, as they're used only
	by Ethereal in a tap, not in Tethereal or in any dissector;

	add a .def file for libethereal;

	arrange to declare global variables exported from libethereal
	with "__declspec(dllimport)" when building programs that import
	those variables;

	update the NSIS installer.

Make the "configure" script define ETH_VAR_IMPORT as "extern".

svn path=/trunk/; revision=10834
2004-05-09 10:03:41 +00:00
Guy Harris
76a4b357d8 Failures when capturing should be reported as errors.
svn path=/trunk/; revision=10620
2004-04-17 01:07:47 +00:00
Michael Tüxen
254aba8282 From Jon Oberheide: Add interface name to the capture and ethereal window
while capturing.

svn path=/trunk/; revision=10594
2004-04-13 18:01:40 +00:00
Guy Harris
d1738a8af1 Include "packet-ap1394.h" to declare "capture_ap1394()".
svn path=/trunk/; revision=10451
2004-03-23 06:48:31 +00:00
Guy Harris
30b2831847 Add support for DLT_APPLE_IP_OVER_IEEE_1394.
svn path=/trunk/; revision=10446
2004-03-23 01:02:41 +00:00
Ulf Lamping
6c9a1dc093 experimental: make usage of pcap_setbuff to increase the kernel buffer size
svn path=/trunk/; revision=10377
2004-03-13 22:49:30 +00:00
Ulf Lamping
672ec45f9e capture dialog limits now with units.
no gint "wrap around" tests implemented yet

svn path=/trunk/; revision=10304
2004-03-04 21:27:55 +00:00
Ulf Lamping
cb5a386901 fixed differences between capture GUI frontend and backend
svn path=/trunk/; revision=10303
2004-03-04 19:31:21 +00:00
Ulf Lamping
ecf2665992 implemented capture dialog 3rd (+x) proposal
svn path=/trunk/; revision=10279
2004-03-02 22:07:23 +00:00
Ulf Lamping
b151b6d215 Capturing: "Number of files" switches between normal and multiple mode,
"Use ring buffer" switches between multiple single run and real ring buffer

svn path=/trunk/; revision=10257
2004-02-28 16:21:11 +00:00
Ulf Lamping
b45b0f5547 bugfix from previous check in
svn path=/trunk/; revision=10170
2004-02-21 14:04:17 +00:00
Ulf Lamping
2509c20b61 quit_after_cap should be a gboolean, not an int, and it should be initialized
svn path=/trunk/; revision=10169
2004-02-21 13:40:06 +00:00
Ulf Lamping
ba50469654 rework of capture.c: better seperation of sync and capture pipe by using
explicit names and seperated functionality of do_capture(),
but no functional change!

svn path=/trunk/; revision=10168
2004-02-21 12:58:42 +00:00
Guy Harris
727b913bbd Add an "open_failure_alert_box()" routine to pop up an alert box for a
failed attempt to open/create a file.

Fix one call to pass the right value for the "for_writing" flag.

svn path=/trunk/; revision=10026
2004-02-11 01:23:25 +00:00
Ulf Lamping
1987113fa6 bugfix: close capture file again, if empty after capturing
(bug appears only, if "update list of packets ..." not used)

svn path=/trunk/; revision=10017
2004-02-09 19:19:19 +00:00
Guy Harris
4b5d510056 Tweak the error messages for bad capture filters.
svn path=/trunk/; revision=9974
2004-02-03 20:48:50 +00:00
Ulf Lamping
41cd2385c3 ups, moved previously missing %s to the right place
svn path=/trunk/; revision=9970
2004-02-03 19:54:08 +00:00
Guy Harris
1d7a46d039 Add a missing "%s" to the format string.
svn path=/trunk/; revision=9967
2004-02-03 18:39:52 +00:00
Ulf Lamping
1d2c791ab6 enhanced some dialog messages,
close capture file when user told so

svn path=/trunk/; revision=9965
2004-02-03 17:59:01 +00:00
Guy Harris
1980fa5dbf Pass ESD_BTN_OK rather than NULL as a second argument to
"simple_dialog()"; NULL might be #defined to be a pointer expression on
some platforms, causing compiler warnings (and, on platforms where a
null pointer doesn't have all its bits 0, possibly causing misbehavior,
although I don't think there are any such platforms on which Ethereal
runs).

Don't allow 0 as button mask argument to "simple_dialog()".

Squelch a compiler warning.

Report fatal problems as errors, not warnings.

Report file I/O errors with "file_open_error_message()".

Report file write errors (including those reported by "close()", e.g.
some errors writing to an NFS server) when saving raw packet data to a
file.

svn path=/trunk/; revision=9915
2004-01-31 03:22:42 +00:00
Guy Harris
61e26a56ba Add some more information to the error message for invalid capture
filters that look like display filters.

svn path=/trunk/; revision=9914
2004-01-31 02:29:19 +00:00
Ulf Lamping
25edd1c53e renamed ESD_TYPE_CRIT to ESD_TYPE_ERROR to
better reflect the real error text

svn path=/trunk/; revision=9913
2004-01-31 02:25:46 +00:00
Guy Harris
d90d26ece2 If "pcap_compile()" fails to compile an empty filter string (because,
for example, the libpcap code generator doesn't support the link-layer
type for the capture), "dfilter_compile()" will succeed but return a
null rfcode pointer.

In that case, instead of telling people that it looks like a valid
display filter (which it does, but it also looks like a complete list of
all the Basque words likely to be known by Hammurabi :-)), and then
crashing when we try to "free" that non-existent dfilter code, we just
report it as a "sorry, couldn't compile that capture filter.

svn path=/trunk/; revision=9912
2004-01-31 01:32:51 +00:00
Guy Harris
d6cd61061e Have the Wiretap open, read, and seek-and-read routines return, in
addition to an error code, an error info string, for
WTAP_ERR_UNSUPPORTED, WTAP_ERR_UNSUPPORTED_ENCAP, and
WTAP_ERR_BAD_RECORD errors.  Replace the error messages logged with
"g_message()" for those errors with g_strdup()ed or g_strdup_printf()ed
strings returned as the error info string, and change the callers of
those routines to, for those errors, put the info string into the
printed message or alert box for the error.

Add messages for cases where those errors were returned without printing
an additional message.

Nobody uses the error code from "cf_read()" - "cf_read()" puts up the
alert box itself for failures; get rid of the error code, so it just
returns a success/failure indication.

Rename "file_read_error_message()" to "cf_read_error_message()", as it
handles read errors from Wiretap, and have it take an error info string
as an argument.  (That handles a lot of the work of putting the info
string into the error message.)

Make some variables in "ascend-grammar.y" static.

Check the return value of "erf_read_header()" in "erf_seek_read()".

Get rid of an unused #define in "i4btrace.c".

svn path=/trunk/; revision=9852
2004-01-25 21:55:17 +00:00
Guy Harris
46848f0a9e Add a new "file_open_error_message()" routine in "epan/filesystem.c", to
translate UNIX errno values to a somewhat friendly message format
string.

Rename "file_open_error_message()" in "file.c" to
"cf_open_error_message()", make "cf_open_error_message()" use the new
"file_open_error_message()" for UNIX errno values, have "do_capture()"
in "capture.c" use "file_open_error_message()" to report errors from
"open()", and make "cf_open_error_message()" static as nothing outside
"file.c" uses it.

Do similar stuff in "tethereal.c".

svn path=/trunk/; revision=9821
2004-01-24 01:44:29 +00:00
Guy Harris
71887f8792 Use "fork_child" rather than "child_process" - on Win32, "child_process"
tracks "fork_child", and, on UNIX, "child_process" doesn't exist.

svn path=/trunk/; revision=9783
2004-01-22 20:45:49 +00:00
Ulf Lamping
cf57056f70 bugfix: wrong parameter name
svn path=/trunk/; revision=9778
2004-01-22 19:25:36 +00:00
Ulf Lamping
a0f78e3b8f moved GTK specific parts from capture.c to ui_util.c,
implemented Win32 "Capture Stop" when using
"update list of packets in realtime" while capturing

svn path=/trunk/; revision=9777
2004-01-22 18:13:57 +00:00
Ulf Lamping
ef57df088f a.) saving GTK1 and GTK2 fontnames in different preference setting, to prevent problems when switching between GTK1 and GTK2 ethereal versions
b.) added new feature "Edit->Go To First Packet" "Edit->Go To Last Packet" with corresponding menu and toolbar items
c.) added new feature "View->Zoom In" / "View->Zoom Out" / View->Normal Size" with corresponding menu and toolbar items
This feature will act as a "size offset" to the current fontsize, so that the packet list/tree view/... will have a larger/smaller font size.
The value is stored inside the recent file.
d.) Win32 only: Try to get the win32 system font and fontsize at program startup and show the menus/dialogs and such with the same font and fontsize like other win32 windows.
This makes the program make a *lot* more feel like a normal win32 program.

svn path=/trunk/; revision=9753
2004-01-20 18:47:25 +00:00
Guy Harris
6033a79387 Update the Win32 information given when we fail to open a capture device
to note that the 3.0 and later versions of WinPcap don't support PPP/WAN
captures even on Windows OT.

svn path=/trunk/; revision=9709
2004-01-18 04:13:44 +00:00
Ulf Lamping
0d9679de8d removed some MSVC warnings (level 3)
svn path=/trunk/; revision=9561
2004-01-05 19:31:44 +00:00
Ulf Lamping
3b77bfee59 removed some MSVC warnings (moved pcap.h before glib.h)
svn path=/trunk/; revision=9393
2003-12-21 12:19:39 +00:00
Guy Harris
e65abd0ef4 Top-of-tree and top-of-0.8-branch libpcap support limited filtering on
DLT_LINUX_IRDA (empty expression and "link[M:N]" expressions), so don't
special-case IRDA adapters.

svn path=/trunk/; revision=9349
2003-12-18 21:18:34 +00:00
Guy Harris
b8299f0b98 From Jan Kiszka: IrDA support.
svn path=/trunk/; revision=9345
2003-12-18 19:07:14 +00:00
Guy Harris
08f3ea2cf3 Fix a typo.
svn path=/trunk/; revision=8983
2003-11-17 19:40:09 +00:00
Guy Harris
d9ad0a2062 Get rid of a no-longer-used variable.
svn path=/trunk/; revision=8980
2003-11-17 00:26:30 +00:00
Ulf Lamping
bca18fcf68 seperated capture dialog from capture.c and put into new gtk/capture_info_dlg.c
svn path=/trunk/; revision=8968
2003-11-15 08:48:14 +00:00
Guy Harris
f4d0c0d9c2 When it comes to whether to use "select()" or not, even if you're
building in Cygwin's pretend-it's-UNIX environment, we need to treat the
platform as Windows.

Get rid of the BSD #define - just check for the platforms on which we
mustn't use "select()".

svn path=/trunk/; revision=8967
2003-11-14 21:18:06 +00:00
Guy Harris
219b6cefa2 Based on a patch from Brian Fundakowski Feldman, add support for setting
link-layer type when capturing, using the "pcap_set_datalink()" and
related APIs.

svn path=/trunk/; revision=8848
2003-11-01 02:30:18 +00:00
Jörg Mayer
5d4949f2dd Part 3 of display vs. capture syntax confusion patches: Detect probable
use of display filter syntax where capture filter syntax need to be used
in Ethereal.

svn path=/trunk/; revision=8677
2003-10-11 21:49:56 +00:00
Guy Harris
b4746f3546 Make sure we return FALSE in all the failure paths in "do_capture()".
svn path=/trunk/; revision=8483
2003-09-15 23:48:42 +00:00
Guy Harris
2e98c97118 Don't pop up tap windows specified with "-z" options until we have a
capture file open.

svn path=/trunk/; revision=8480
2003-09-15 23:15:32 +00:00
Guy Harris
14509164fc Rename various capture file routines to have names starting with "cf_".
svn path=/trunk/; revision=8479
2003-09-15 22:48:42 +00:00
Guy Harris
183fa7f482 Give a more detailed message when WSAStartup fails.
svn path=/trunk/; revision=8069
2003-07-23 05:01:15 +00:00
Laurent Deniel
3070b797d5 Implement a ring buffer switch duration:
when the new "Rotate capture file every n second(s)" checkbox or the
-b <# of file>[:<duration>] argument are used, [t]ethereal will skip to the
next ring buffer file if the specified duration has elapsed (even if the
specified capture size is not reached). This is useful when you want to have
separate capture files per hour or day for instance.

I let the autostop filesize parameter mandatory (i.e. the "rotate capture
file after n kilobytes") but this could be no longer strictly necessary when
that new feature is used ...

Another point: it might be interesting to really truncate the file at the
switch and not the closure ... According to user comments and my own real
case tests, I might plan to enhance this point and others (still ring buffer
related) in the future.

svn path=/trunk/; revision=7678
2003-05-15 13:40:20 +00:00
Guy Harris
eb8c0fb210 Don't ignore SIGCHLD - doing so means that, on many platforms, we don't
get any status information from the child process when it terminates,
and we want that status information (e.g., death due to a signal).

svn path=/trunk/; revision=7549
2003-04-24 09:07:36 +00:00
Guy Harris
5b1484f7b3 From a look at the Linux ARCNET code, it appears that no frame delivered
to the networking stack will have an exception frame header.

Note, however, that on the BSD's ARCNET might be a bit of a mess.

svn path=/trunk/; revision=6986
2003-01-23 09:04:54 +00:00
Guy Harris
498c94b10a Add a "capture_arcnet()" routine and use it when capturing.
In "dissect_arcnet_common()", fetch the protocol ID using the correct
offset rather than a hardwired 4.

svn path=/trunk/; revision=6982
2003-01-23 06:57:37 +00:00
Guy Harris
0a5be3f18b Rename WTAP_ENCAP_ATM_SNIFFER to WTAP_ENCAP_ATM_PDUS, as it's not just
used for the DOS-based ATM Sniffer.  (That's not a great name, but I
couldn't think of a better one.)

Add a new WTAP_ENCAP_ATM_PDUS_UNTRUNCATED encapsulation type for capture
files where reassembled frames don't have trailers, such as the AAL5
trailer, chopped off.  That's what at least some versions of the
Windows-based ATM Sniffer appear to have.

Map the ATM capture file type for NetXRay captures to
WTAP_ENCAP_ATM_PDUS_UNTRUNCATED, and put in stuff to fill in what we've
reverse-engineered, so far, for the pseudo-header; there's more that
needs to be done on it, e.g. getting the channel, AAL type, and traffic
type (or inferring them if they're not in the packet header).

svn path=/trunk/; revision=6840
2003-01-03 06:45:45 +00:00
Guy Harris
06803d2919 Re-word-wrap the "you can't capture on PPP/WAN interfaces on NT"
message, to make the margins more even and to bring the second line
under 80 characters.  (It's amazing how long Herman Hollerith's legacy
has lasted....)

svn path=/trunk/; revision=6835
2003-01-01 03:51:02 +00:00
Guy Harris
3534ae5454 Use _WIN32 rather than WIN32 throughout (both of them appear to work - I
don't know whether one is the "right" one to use and, if one is, which
one it is - and they're both used in Ethereal, but let's at least be
consistent within a given file).

svn path=/trunk/; revision=6828
2002-12-31 21:12:55 +00:00
Guy Harris
4ff2dcfcda Clean up the comments a bit.
svn path=/trunk/; revision=6827
2002-12-31 21:06:48 +00:00
Guy Harris
0b9234c3a3 Fix a typo.
svn path=/trunk/; revision=6821
2002-12-29 01:25:01 +00:00
Guy Harris
fac9a235d7 "&magic" is a "guint32 *", so adding a byte count to it points that
number of *32-bit words* into the magic number, not that number of
*bytes* into the magic number; cast it to "char *" before adding the
byte count.

svn path=/trunk/; revision=6820
2002-12-29 01:19:08 +00:00
Guy Harris
462a1b80b4 Correctly compute the minutes portion of the elapsed time.
svn path=/trunk/; revision=6797
2002-12-18 06:44:50 +00:00
Guy Harris
22496138e9 Add a capture routine for IP-over-FC, and call it from the capture code.
svn path=/trunk/; revision=6767
2002-12-08 22:35:30 +00:00
Guy Harris
926a65f2f0 Suppress compiler warnings on platforms where "time_t" is a "long",
without introducing warnings where it's an "int".

svn path=/trunk/; revision=6459
2002-10-19 07:52:12 +00:00
Guy Harris
b99f379f55 From Ulf Lamping: show total running time of capture in capture progress
dialog box.

svn path=/trunk/; revision=6440
2002-10-16 23:34:52 +00:00
Guy Harris
63d65a3f69 From Ulf Lamping: count ARP packets in capture progress dialog box.
svn path=/trunk/; revision=6416
2002-10-14 17:33:50 +00:00
Guy Harris
2dcc8ee1fc From Ulf Lamping: keep "Update list of packets in real time" from
crashing on Windows.

svn path=/trunk/; revision=6387
2002-10-09 08:18:37 +00:00
Gerald Combs
18061d6537 From Graeme Hewson:
It can sometimes happen that capturing is stopped just after Ethereal
  has switched to a new ring buffer.  The result is that no frames
  are displayed.  The patch to ringbuffer.c displays the previous ring
  buffer if the current buffer is empty on close.

  The patch to capture.c fixes a bug where an error return from
  ringbuf_wtap_dump_close was ignored, and tidies up the code around
  the call.

svn path=/trunk/; revision=6315
2002-09-22 16:17:41 +00:00
Guy Harris
5e8ecbaf46 From Graeme Hewson:
Currently Ethereal sets and uses a default directory for reading
	and writing, but only in some places.  This set of patches extends
	the setting of the default directory to the -w option as well as
	the -r option, and causes all file dialogs to use and set the
	default consistently.  (I haven't changed the
	Preferences/Printing/File dialog, though, as that's a special
	case.)

	There's also a fix for a bug where Ethereal was issuing the
	message "Ring buffer requested, but capture isn't being saved to
	a permanent file" even though a file was specified with -w.

There also appear to be some other cleanups in his patch.

svn path=/trunk/; revision=6238
2002-09-09 20:39:01 +00:00
Jörg Mayer
7c4176d868 Removed trailing whitespaces from .h and .c files using the
winapi_cleanup tool written by Patrik Stridvall for the wine
project.

svn path=/trunk/; revision=6117
2002-08-28 21:04:11 +00:00
Guy Harris
da901e7434 Not all compilers allow labels that don't have a statement following
them.  Put a "break;" statement after a case label that didn't have it.

svn path=/trunk/; revision=5990
2002-08-13 18:12:11 +00:00
Jörg Mayer
173fe5aef4 Replace the types from sys/types.h and netinet/in.h by their glib.h
equivalents for the toplevel directory. The removal of winsock2.h will
hopefully not cause any problems under MSVC++, as those files using
struct timeval still include wtap.h, which still includes winsock2.h.

svn path=/trunk/; revision=5932
2002-08-02 23:36:07 +00:00
Guy Harris
44d19627ef From Graeme Hewson:
Allow "-" as the output file name in Wiretap, referring to the
	standard error.

	Optimize the capture loop.

Fix some of the error-message printing code in Ethereal and Tethereal.

Have Wiretap check whether it can seek on a file descriptor, and pass
the results of that test to the file-type-specific "open for output"
routine.  Have the "open for output" routines for files where we need to
seek when writing the file return an error if seeks don't work.

svn path=/trunk/; revision=5884
2002-07-16 07:15:09 +00:00
Guy Harris
41dc7b1b59 From Graeme Hewson:
In sync mode, if the capture file written by the child can't be
	opened by the parent, ethereal will write two identical popup
	error messages.

	This patch fixes the problem.

svn path=/trunk/; revision=5883
2002-07-16 05:43:39 +00:00
Guy Harris
a77d6a14c2 Update the "NT sucks for PPP capture" note to include NT 5.1 (XP and
.NET Server).

Fix indentation.

svn path=/trunk/; revision=5882
2002-07-15 23:25:59 +00:00
Guy Harris
900c9f0ffc On Windows, there's no "pipe_fd", so don't refer to it.
svn path=/trunk/; revision=5734
2002-06-22 10:21:00 +00:00
Guy Harris
afa5eefe49 From Graeme Hewson: fix capture-from-pipe not to block when reading from
the pipe, and clean up various other things.

svn path=/trunk/; revision=5670
2002-06-13 21:23:02 +00:00
Guy Harris
c2b438ddfa Add a Wiretap routine to process packets captured via libpcap, possibly
extracting a pseudo-header, for the use of SunATM captures.

Add support for SunATM capture.

svn path=/trunk/; revision=5652
2002-06-07 21:11:24 +00:00
Guy Harris
1eadf370cd Just have "pcap_dispatch()" cons up a "strut pcap_pkthdr" and call
"capture_pcap_cb()", so it duplicates even less of the latter routine.

svn path=/trunk/; revision=5648
2002-06-07 11:12:43 +00:00
Guy Harris
748c6566f9 Have a common routine for doing the packet counter stuff, rather than
having two different versions, both broken in different ways.

Bump the count of total packets in the capture-from-pipe routine.

svn path=/trunk/; revision=5647
2002-06-07 10:54:03 +00:00
Guy Harris
b53c02b4ef Pass the captured length, not the full length, to the "capture_"
routines.

Call the 802.11 and Cisco HDLC capture routines for those packet types.

svn path=/trunk/; revision=5646
2002-06-07 10:36:57 +00:00
Guy Harris
358df4f2f4 From Michael Tuexen: remove the old workaround for "select()"s not
working on MacOS X.

It appears that the underlying problem with the timeout was that we
weren't treating MacOS X as a BSD, and the "select()" we were doing
presumably wasn't working as it doesn't work on BPF devices on many
BSDs; the workaround no longer appears to be necessary, with Michael's
fix to treat MacOS X as BSD.

(Presumably a select timeout with "tv_usec" set to 1000*1000
microseconds was treated as an error, or otherwise treated in such a way
that it didn't block waiting for the BPF device to say it could be
read.)

svn path=/trunk/; revision=5637
2002-06-06 19:03:39 +00:00
Guy Harris
2dbb4324e3 From Michael Tuexen: treat Darwin/MacOS X like the other BSDs, as its
BPF, in at least some OS versions, acts like the other BPFs in some
versions of other BSDs, and doesn't work with "select()".

svn path=/trunk/; revision=5620
2002-06-04 22:15:12 +00:00
Guy Harris
bc5a543e03 From Graeme Hewson:
This fixes some bugs:

	1. With the -S option under Linux, Capture/Stop or ^E was
	ignored until the next packet was read.  This is because
	capture.c wasn't checking for EINTR from select(), which is
	returned when the child receives SIGUSR1 from the parent.

	2. When reading from a pipe, a spurious error message from
	pcap_open_live() was written to stderr.

	3. Error messages from the child in Sync mode were displayed in
	a Warning alert box.

	Also, there's a new subroutine, popup_errmsg(), to replace
	several instances of duplicate code.

svn path=/trunk/; revision=5616
2002-06-04 11:19:59 +00:00
Guy Harris
6da70104fa From Joerg Mayer: get rid of some unused arguments, and mark others as
unused.

Put in a comment to note that if we fail to open the interface either as
a device or as a pipe, we report the error from the failed
"pcap_open_live()" (which explains why "pipe_open_live()" doesn't return
an error string).

svn path=/trunk/; revision=5381
2002-05-04 09:11:28 +00:00
Guy Harris
8a5d5f9bde From Joerg Mayer: get rid of extra arguments to capture routines.
svn path=/trunk/; revision=5233
2002-04-24 06:03:34 +00:00
Guy Harris
939b3c8e0a Add an encapsulation type for "802.11 with radio information"; that type
returns radio information such as signal strength, channel, and data
rate in a pseudo-header.  Add that pseudo-header.

Use the "802.11 with radio information" encapsulation type for Wireless
Sniffer files; extract the radio information from where it appears to be
in the header.

Add dissector code for that encapsulation type.

Fix an error in the code to put radio information into the AiroPeek
tree.

Make the "wrapped" flag for NetXRay/Windows Sniffer captures a
"gboolean".

svn path=/trunk/; revision=5122
2002-04-08 09:09:49 +00:00
Guy Harris
541c654ff0 Put all the capture options into a structure.
Move the ringbuffer capture options from the "capture_file" structure to
the structure for capture options, as they're a property of an
in-progress capture, not a property of a particular capture file.

svn path=/trunk/; revision=4799
2002-02-24 09:25:36 +00:00
Guy Harris
8bd63530ed "autostop_filesize" and "autostop_duration" don't need to be in the
"capture_file" structure - they're a property of an in-progress capture,
not a property of an open capture file.  Make them just variables.

The maximum number of packets to be captured should be a variable
separate from the "count" field in the "capture_file" structure - the
latter is a count of the packets in the capture file in question.

Have Boolean variables indicating whether a maximum packet count,
maximum capture file size, and maximum capture duration were specified.
If an option isn't set, and we're doing an "update list of packets in
real time" capture, don't pass the option to the child process with a
command-line argument.

Don't create "stop when the capture file reaches this size" or "stop
when the capture's run for this long" conditions if a maximum capture
file size or a maximum capture duration, respectively, haven't been
specified.  Don't test or free a condition if it wasn't created.

Don't allow a 0 argument to the "-c" flag - the absence of a "-c" flag
is the way you specify "no limit on the number of packets".

Initialize the check boxes and spin buttons for the "maximum packets to
capture", "maximum capture size", and "maximum capture duration" options
to the values they had in the last capture.  If an option wasn't
specified, don't read its value from the dialog box and set the
variable.

svn path=/trunk/; revision=4795
2002-02-24 03:33:05 +00:00
Guy Harris
89a4acb438 Have Wiretap set the snapshot length to 0 if it can't be derived from
reading the capture file.  Have callers of "wtap_snapshot_length()"
treat a value of 0 as "unknown", and default to WTAP_MAX_PACKET_SIZE (so
that, when writing a capture file in a format that *does* store the
snapshot length, we can at least put *something* in the file).

If we don't know the snapshot length of the current capture file, don't
display a value in the summary window.

Don't use "cfile.snap" as the snapshot length option when capturing -
doing so causes Ethereal to default, when capturing, to the snapshot
length of the last capture file that you read in, rather than to the
snapshot length of the last capture you did (or the initial default of
"no snapshot length").

Redo the "Capture Options" dialog box to group options into sections
with frames around them, and add units to the snapshot length, maximum
file size, and capture duration options, as per a suggestion by Ulf
Lamping.  Also add units to the capture count option.

Make the snapshot length, capture count, maximum file size, and capture
duration options into a combination of a check box and a spin button.
If the check box is not checked, the limit in question is inactive
(snapshot length of 65535, no max packet count, no max file size, no max
capture duration); if it's checked, the spinbox specifies the limit.
Default all of the check boxes to "not checked" and all of the spin
boxes to small values.

Use "gtk_toggle_button_get_active()" rather than directly fetching the
state of a check box.

svn path=/trunk/; revision=4709
2002-02-08 10:07:41 +00:00
Guy Harris
ee5ca25d31 Include files from the "epan" directory and subdirectories thereof with
"epan/..." pathnames, so as to avoid collisions with header files in any
of the directories in which we look (e.g., "proto.h", as some other
package has its own "proto.h" file which it installs in the top-level
include directory).

Don't add "-I" flags to search "epan", as that's no longer necessary
(and we want includes of "epan" headers to fail if the "epan/" is left
out, so that we don't re-introduce includes lacking "epan/").

svn path=/trunk/; revision=4586
2002-01-21 07:37:49 +00:00
Guy Harris
b3f81eb30c Separate the promiscuous mode, "Update list of packets in real time",
and "Automatic scrolling in live capture" options from the preference
settings for them, so that the preference settings affect the initial
values of those options, but changing those values in a capture don't
affect the preferences, and don't automatically get saved when you save
the preferences.

If we're building without libpcap, don't have an "Automatic scrolling in
live capture" option anywhere.

svn path=/trunk/; revision=4514
2002-01-10 11:05:50 +00:00