aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/tcp_graph.c
AgeCommit message (Collapse)AuthorFilesLines
2006-03-20waste a couple of bytes per tcp conversation and make the tree for ↵Ronnie Sahlberg1-0/+1
acked_packets (i.e. packets that have interesting tcp properties such as being retransmissions etc) hang off the per conversation tcpd struct instead of being global. while this should improve performance by unmeasurably little it does have the sideeffect that once we finish the rewrite tcp analysis might actually work and work well even for tcp over tcp tunnelling. this also means that if you include packet-tcp.h you also need to include emem.h . svn path=/trunk/; revision=17681
2006-03-19Get rid of a declaration of a non-existent function.Guy Harris1-1/+0
svn path=/trunk/; revision=17673
2006-03-09There is a one-to-one mapping between each graph and its "toplevel" andGerald Combs1-85/+18
drawing_area widgets. Instead of canoodling around with a global list of graphs, simply associate a graph to its widgets using OBJECT_SET_DATA. This should take care of Coverity CIDs 50 - 59. Clean up whitespace. svn path=/trunk/; revision=17554
2006-03-08Make calculation of TCP Graph bounds more robust. The calculation might have ↵Lars Roland1-13/+17
failed in unusual conditions. This bug was discovered while looking at defects #130 and #131 discovered by coverity. This patch also fixes these non-severe defects. svn path=/trunk/; revision=17531
2005-12-22From Bill Meier:Gerald Combs1-102/+131
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-09-17Move a pile of protocol-related headers from the top-level sourceGuy Harris1-2/+2
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-14Have cf_retap_packets() take an argument that indicates whether toGuy Harris1-1/+1
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-08-24EVERYTHING IN THE BUILDBOT IS GOING TO BE RED!!! Sorry! Ulf Lamping1-8/+8
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-21As per a suggestion by Ulf Lamping, rename gtk_*.[ch] to gui_*.[ch], soGuy Harris1-1/+1
that it doesn't appear to be part of GTK+. svn path=/trunk/; revision=15501
2005-08-21Add a "register_dfilter_stat()", to register stats that take a displayGuy Harris1-4/+5
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-20- Declare some functions staticJörg Mayer1-2/+2
- 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-20renamed ui_util.c/.h to gui_utils.c/.h to prevent confusion with identical ↵Ulf Lamping1-1/+1
named ui_util.h in / dir svn path=/trunk/; revision=15465
2005-08-19Move the APIs for registering and processing "-z" command-line argumentsGuy Harris1-5/+5
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-08fix some MSVC const warningsUlf Lamping1-2/+2
svn path=/trunk/; revision=15263
2005-08-06Last set of char -> const char trivial warning fixes.Jörg Mayer1-15/+15
svn path=/trunk/; revision=15244
2005-08-05replace malloc and alike calls by their GLib pendants -> g_mallocUlf Lamping1-40/+40
svn path=/trunk/; revision=15232
2005-07-10Just pass &cfile to select_tcpip_session(); we don't need to passGuy Harris1-17/+16
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-10Fix some comment typos.Guy Harris1-2/+2
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-10Get rid of an unused argument.Guy Harris1-5/+5
svn path=/trunk/; revision=14892
2005-07-10It works reasonably well with extensive testing so here goes :Ronnie Sahlberg1-249/+304
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-02-04huge cleanup of capture file API (functions in file.c/file.h).Ulf Lamping1-2/+2
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
2004-12-29Make the tone of the error messages a bit less formal, by usingGuy Harris1-1/+1
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-09-29Move various tables into the epan directory.Guy Harris1-1/+1
svn path=/trunk/; revision=12130
2004-09-11Use _WIN32 rather than WIN32 to determine if we're compiling on Win32;Guy Harris1-8/+9
according to Gisle Vanem, WIN32 isn't a built-in in MSVC, but _WIN32 is. svn path=/trunk/; revision=11972
2004-07-18Set the svn:eol-style property on all text files to "native", so thatGuy Harris1-1/+1
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-06-17move font related stuff to new file font_utils.c/.hUlf Lamping1-6/+2
do some font related renaming/code cleanup svn path=/trunk/; revision=11166
2004-06-10"delete_event" is an event, so its handler takes three arguments, notGuy Harris1-32/+42
two, and it returns a gboolean. svn path=/trunk/; revision=11133
2004-05-26more code cleanup from dialog things:Ulf Lamping1-7/+3
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-23use new functions in window API (ui_util.h),Ulf Lamping1-25/+21
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-04-12added a close button to the dialogs,Ulf Lamping1-13/+25
use the dlg_window_new function for all dialogs svn path=/trunk/; revision=10586
2004-03-17Use "g_ntohs()" rather than "ntohs()".Guy Harris1-3/+3
svn path=/trunk/; revision=10390
2004-03-13replaced sprintf / snprintf by g_snprintf,Ulf Lamping1-14/+10
various other string related changes svn path=/trunk/; revision=10373
2004-02-27cosmetic update to tcp graphs.Ronnie Sahlberg1-3/+17
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-23minor changeUlf Lamping1-5/+5
svn path=/trunk/; revision=10206
2004-02-23Changed all items to "Endpoint List" and get rid of the "Host List" group.Ulf Lamping1-5/+5
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-23statistics menu redesigned, now looking more like the former menu,Ulf Lamping1-5/+5
items now again grouped by function, not by ISO layer svn path=/trunk/; revision=10202
2004-02-22tcp_graph.h is no longer needed, as the tap mechanism is now usedUlf Lamping1-2/+1
svn path=/trunk/; revision=10182
2004-02-22Redesigned the menu structure of the former statistics stuff,Ulf Lamping1-2/+26
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-13Add a "window_new()" routine that creates a window of a given type, setsGuy Harris1-24/+16
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-06replaced every appearance of gtk_scrolled_window_new() withUlf Lamping1-4/+10
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-01-31Pass ESD_BTN_OK rather than NULL as a second argument toGuy Harris1-14/+14
"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-31renamed ESD_TYPE_CRIT to ESD_TYPE_ERROR toUlf Lamping1-2/+2
better reflect the real error text svn path=/trunk/; revision=9913
2004-01-25Have the Wiretap open, read, and seek-and-read routines return, inGuy Harris1-4/+5
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-21implemented dlg_button_row_new to get a standard function forUlf Lamping1-16/+23
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-21use stock buttons whereever possible,Ulf Lamping1-7/+2
added some ethereal specific stock icons svn path=/trunk/; revision=9763
2004-01-13Make the variable into which values fromGuy Harris1-5/+5
"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-10using button compatibility macrosUlf Lamping1-8/+3
svn path=/trunk/; revision=9636
2004-01-10removed two MSVC warnings (GTK2 related)Ulf Lamping1-3/+3
svn path=/trunk/; revision=9628
2004-01-05removed some MSVC warnings (level 3)Ulf Lamping1-9/+9
svn path=/trunk/; revision=9560
2003-12-23removed some MSVC warnings (conversions between double/float and int)Ulf Lamping1-30/+30
svn path=/trunk/; revision=9422