Commit Graph

85 Commits

Author SHA1 Message Date
Gerald Combs 0027278005 From Bill Meier:
After investigating the time-sequence graphs (Stevens and tcptrace) produced 
using an FTP capture file supplied by Eduardo Segura 
(see http://www.ethereal.com/lists/ethereal-users/200512/msg00153.html ) 
I've identified several problems in tcp_trace.c.

The problems mostly involve incorrect determination of the lower/upper 
sequence number bounds (for the Y axis) in certain cases (e.g. having to do
with 'partial' conversations).

I've reworked the '...get_bounds' code to handle cases such as:

1. out of order data segments (e.g.: the first segment in a captured
conversation has a higher sequence number than a later segment);

2. 'ack' sequence numbers for initial ack segments in a conversation lower
than the sequence numbers of the initial data segments;

3. maximum 'ack + win' sequence number in a conversation greater than the 
max data sequence number;

4. Stevens graph: only use data segment sequence numbers when 
determining bounds;

5. TCP RST packet without 'ack' flag: do not try to use the 'ack' seq num from
the packet in this case. (This was the specific cause of the originally reported
problem).


I've also reworked the tcptrace display code slightly to properly handle 
the initial ack packet of a sequence;

As an example of the some of the fixes the Ethereal tcptrace style graph 
of the following conversation fragment will now be similar to the graph 
produced by Tcptrace.

data:  seq 10000 len 100
data:  seq 10100 len 200
ack:   ack 5000  win 6000
ack:   ack 5400  win 5600 


svn path=/trunk/; revision=16874
2005-12-22 01:23:27 +00:00
Guy Harris b7b80d94be Move a pile of protocol-related headers from the top-level source
directory to the epan directory.  Some of them should perhaps ultimately
be moved to epan/dissectors, if they pertain only to stuff exported by a
particular dissector.

Fix Gerald's e-mail address in files we're moving.

svn path=/trunk/; revision=15844
2005-09-17 00:02:31 +00:00
Guy Harris f34e1a97c6 Have cf_retap_packets() take an argument that indicates whether to
generate columns; use cf_retap_packets instead of cf_redissect_packets()
when running taps (the general flow graph stat uses the Info column).

svn path=/trunk/; revision=15793
2005-09-14 08:59:41 +00:00
Ulf Lamping 6f43fbb2f0 EVERYTHING IN THE BUILDBOT IS GOING TO BE RED!!! Sorry!
I've done more than a day to change the timestamp resolution from microseconds to nanoseconds. As I really don't want to loose those changes, I'm going to check in the changes I've done so far. Hopefully someone else will give me a helping hand with the things left ...

What's done: I've changed the timestamp resolution from usec to nsec in almost any place in the sources. I've changed parts of the implementation in nstime.s/.h and a lot of places elsewhere.

As I don't understand the editcap source (well, I'm maybe just too tired right now), hopefully someone else might be able to fix this soon.

Doing all those changes, we get native nanosecond timestamp resolution in Ethereal. After fixing all the remaining issues, I'll take a look how to display this in a convenient way...

As I've also changed the wiretap timestamp resolution from usec to nsec we might want to change the wiretap version number...

svn path=/trunk/; revision=15520
2005-08-24 21:31:56 +00:00
Guy Harris 13e0b409cf As per a suggestion by Ulf Lamping, rename gtk_*.[ch] to gui_*.[ch], so
that it doesn't appear to be part of GTK+.

svn path=/trunk/; revision=15501
2005-08-21 19:24:11 +00:00
Guy Harris a0e68da918 Add a "register_dfilter_stat()", to register stats that take a display
filter as an argument on the command line and have a dialog box to enter
the display filter through the GUI.  Use it for all stats using
"gtk_tap_dfilter_dlg_cb()".

Add a top-level "stat_menu.h" file to declare "REGISTER_STAT_GROUP_E"
for the benefit of the declaration of "register_dfilter_stat()" in the
top-level "tap_dfilter_dlg.h".  Rename the "stat_menu.h" in the gtk
directory to "gtk_stat_menu.h", so as not to have two headers with the
same name.

Get rid of headers not declaring any functions not being used in the
module.

svn path=/trunk/; revision=15493
2005-08-21 09:48:27 +00:00
Jörg Mayer 0edcc8920e - Declare some functions static
- Add plugins_dlg.h
- Include .h files in their respective .c files
- Include .h and remove extern declarations in .c files
- set eol-style and keywords on gui_utils.[hc]

svn path=/trunk/; revision=15471
2005-08-20 14:02:00 +00:00
Ulf Lamping eafbbbcabb renamed ui_util.c/.h to gui_utils.c/.h to prevent confusion with identical named ui_util.h in / dir
svn path=/trunk/; revision=15465
2005-08-20 12:09:48 +00:00
Guy Harris b2807e2ab6 Move the APIs for registering and processing "-z" command-line arguments
and "Statistics" menu items into "stat.h" and "stat.c", to separate them
from the core tapping APIs.  A tap could conceivably not register as a
"-z" command-line argument or "Statistics" menu item, and a stat could
conceivably not be implemented as a tap, and dissectors that implement
tapping points don't need the UI-related stuff from "stat.h", they just
want the tap-related stuff in <epan/tap.h>.

svn path=/trunk/; revision=15427
2005-08-19 09:29:41 +00:00
Ulf Lamping f3407856f4 fix some MSVC const warnings
svn path=/trunk/; revision=15263
2005-08-08 17:22:55 +00:00
Jörg Mayer 62b7cc3043 Last set of char -> const char trivial warning fixes.
svn path=/trunk/; revision=15244
2005-08-06 14:03:14 +00:00
Ulf Lamping 149786d563 replace malloc and alike calls by their GLib pendants -> g_malloc
svn path=/trunk/; revision=15232
2005-08-05 23:58:58 +00:00
Guy Harris 18527dc22e Just pass &cfile to select_tcpip_session(); we don't need to pass
cfile.current_frame to it separately.

Note that we shouldn't ever get a "Selected packet isn't a TCP segment"
error any more; we can now handle all link layers.

Give a little more detail in the message shown if there's *more than
one* TCP header in the packet.

svn path=/trunk/; revision=14895
2005-07-10 18:29:43 +00:00
Guy Harris 47e79c4961 Fix some comment typos.
Don't regenerate the packet list when generating the TCP stream graph -
it won't be changing; just redissect and run the tap.

svn path=/trunk/; revision=14894
2005-07-10 10:10:40 +00:00
Guy Harris b6b0ee7cf8 Get rid of an unused argument.
svn path=/trunk/; revision=14892
2005-07-10 09:21:57 +00:00
Ronnie Sahlberg 847bb5af7f It works reasonably well with extensive testing so here goes :
tcp-graph has been modified to extract tcp data from a TAP instead of reading and parsing directly from the capture file.

This makes tcp graph work for any type of capture and for any transport.




In the future someone with access to captures with TCP over something over TCP
to add a dialog where the user can specify WHICH of the multiple TCP sessions to graph.



svn path=/trunk/; revision=14889
2005-07-10 02:59:50 +00:00
Ulf Lamping 0861927ce3 huge cleanup of capture file API (functions in file.c/file.h).
This includes: all functions in file.h now have a cf_ prefix, will have doxygen tags, will have the capture_file *cf as the first parameter and I tried to generalize the return values for non trivial functions.

Hopefully, I didn't introduced any new bugs, as I had to change a lot of files...

svn path=/trunk/; revision=13289
2005-02-04 18:44:44 +00:00
Guy Harris f1deabed56 Make the tone of the error messages a bit less formal, by using
contractions.  (Safari does, at least when you're trying to open a file
to which you don't have read access.)

svn path=/trunk/; revision=12852
2004-12-29 01:08:20 +00:00
Guy Harris eaadcc4c62 Move various tables into the epan directory.
svn path=/trunk/; revision=12130
2004-09-29 00:52:45 +00:00
Guy Harris f23f4ecf04 Use _WIN32 rather than WIN32 to determine if we're compiling on Win32;
according to Gisle Vanem, WIN32 isn't a built-in in MSVC, but _WIN32 is.

svn path=/trunk/; revision=11972
2004-09-11 23:03:36 +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
Ulf Lamping 25e6749eb4 move font related stuff to new file font_utils.c/.h
do some font related renaming/code cleanup

svn path=/trunk/; revision=11166
2004-06-17 16:35:26 +00:00
Guy Harris 045b535aed "delete_event" is an event, so its handler takes three arguments, not
two, and it returns a gboolean.

svn path=/trunk/; revision=11133
2004-06-10 10:09:58 +00:00
Ulf Lamping 7d37fc9d23 more code cleanup from dialog things:
changed window_xy (dialog) function calling in a lot of gtk files
cleanup of file selection code
cleanup in dlg_utils/file_dlg/ui_util
Please report any problems!!!

svn path=/trunk/; revision=11003
2004-05-26 03:49:24 +00:00
Ulf Lamping cc68368037 use new functions in window API (ui_util.h),
use window_new instead of dlg_window_new for the statistics windows
(as these are no dialog windows)
do some code cleanup

svn path=/trunk/; revision=10979
2004-05-23 23:24:07 +00:00
Ulf Lamping d4f93b305f added a close button to the dialogs,
use the dlg_window_new function for all dialogs

svn path=/trunk/; revision=10586
2004-04-12 09:48:19 +00:00
Guy Harris 1f845901ef Use "g_ntohs()" rather than "ntohs()".
svn path=/trunk/; revision=10390
2004-03-17 09:00:16 +00:00
Ulf Lamping 7b62a629e8 replaced sprintf / snprintf by g_snprintf,
various other string related changes

svn path=/trunk/; revision=10373
2004-03-13 15:15:26 +00:00
Ronnie Sahlberg c1a0db6cba cosmetic update to tcp graphs.
Put both capture filename and
 x.x.x.x:x -> y.y.y.y:y
describing the tcp session we are currently graphing in the menu text
of the window.

svn path=/trunk/; revision=10249
2004-02-27 10:03:48 +00:00
Ulf Lamping 5d0bcd0197 minor change
svn path=/trunk/; revision=10206
2004-02-23 22:23:46 +00:00
Ulf Lamping 09f8a69e4c Changed all items to "Endpoint List" and get rid of the "Host List" group.
called "IO stats" now "Throughput Graph" as this might be somewhat more descriptive IMHO.
Same applies to the "TCP Stream Analysis" -> "TCP Stream Graphs"

svn path=/trunk/; revision=10203
2004-02-23 20:28:31 +00:00
Ulf Lamping ed6148660b statistics menu redesigned, now looking more like the former menu,
items now again grouped by function, not by ISO layer

svn path=/trunk/; revision=10202
2004-02-23 19:19:39 +00:00
Ulf Lamping 9e6a900146 tcp_graph.h is no longer needed, as the tap mechanism is now used
svn path=/trunk/; revision=10182
2004-02-22 19:48:10 +00:00
Ulf Lamping cdebea69ce Redesigned the menu structure of the former statistics stuff,
now sorted by ISO-layer, than alphabetically (now longer by functionality).
Seperated the tap registering from the actual menu making stuff,
so the seperate step of registering the tap and the menu is no longer needed.
Removed all things related to this double registering.

svn path=/trunk/; revision=10180
2004-02-22 18:47:04 +00:00
Guy Harris 36ece5a17a Add a "window_new()" routine that creates a window of a given type, sets
the title, and arranges to set the icon for it.  Use that instead of
"gtk_window_new()" and separate calls to set the title and arrange to
set the icon.

Regularize #includes a bit.

Clean up white space.

svn path=/trunk/; revision=10054
2004-02-13 00:53:37 +00:00
Ulf Lamping 5297f06717 replaced every appearance of gtk_scrolled_window_new() with
scrolled_window_new().
added gtk_scrolled_window_set_policy(AUTOMATIC,AUTOMATIC) to
scrolled_window_new()
added GTK2's gtk_scrolled_window_set_shadow(GTK_SHADOW_IN)
to every place needed

svn path=/trunk/; revision=9999
2004-02-06 19:19:12 +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
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 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
Ulf Lamping 8e2a930023 implemented dlg_button_row_new to get a standard function for
layouting the dialog buttons, and use it where appropriate.
This will help us with the GTK1/2 conflict on button layouts and
will also result in a more consistent look of the dialogs at all.

svn path=/trunk/; revision=9771
2004-01-21 21:19:34 +00:00
Ulf Lamping e3dd2f5472 use stock buttons whereever possible,
added some ethereal specific stock icons

svn path=/trunk/; revision=9763
2004-01-21 03:54:32 +00:00
Guy Harris d3ee83c0a0 Make the variable into which values from
"gtk_spin_button_get_value_as_float()" be doubles rather than floats -
GTK+ 2.x's "gtk_spin_button_get_value_as_float()" actually returns
doubles.

svn path=/trunk/; revision=9654
2004-01-13 08:25:00 +00:00
Ulf Lamping 949f1f2d07 using button compatibility macros
svn path=/trunk/; revision=9636
2004-01-10 16:27:43 +00:00
Ulf Lamping 4c047130c8 removed two MSVC warnings (GTK2 related)
svn path=/trunk/; revision=9628
2004-01-10 12:43:04 +00:00
Ulf Lamping ba3b94790d removed some MSVC warnings (level 3)
svn path=/trunk/; revision=9560
2004-01-05 18:11:28 +00:00
Ulf Lamping 467c05b3ea removed some MSVC warnings (conversions between double/float and int)
svn path=/trunk/; revision=9422
2003-12-23 00:16:46 +00:00
Ulf Lamping 1f97bdc27a removed some more MSVC warnings (type casting)
svn path=/trunk/; revision=9326
2003-12-17 22:11:43 +00:00
Olivier Biot e42f094023 Mark parameter data as unused in callback_create_help().
svn path=/trunk/; revision=9226
2003-12-09 23:45:34 +00:00
Guy Harris f94108245d From Laurent Rabret:
handle 802.1Q frames;

	catch the destroy signal on the main Ethereal window and destroy
	our windows (avoids a crash).

Get the PPP type value for IP from "ppptypes.h" rather than defining it
ourselves.

svn path=/trunk/; revision=8537
2003-09-25 00:37:51 +00:00
Guy Harris 0cf18ffba8 Handle PPP with a pseudo-header.
svn path=/trunk/; revision=8486
2003-09-16 20:41:17 +00:00