Commit graph

2343 commits

Author SHA1 Message Date
Guy Harris
af093a380e Don't set the "prefs.gui_XXX" values until the "fetch" routine for the
GUI preferences is called.

Pull all the code for creating option menus for enumerated
"prefs.gui_XXX" items into a common routine.

svn path=/trunk/; revision=2328
2000-08-21 22:30:04 +00:00
Laurent Deniel
ab47385543 Add prefs.gui_marked_[fb]g color preferences for the
color of marked frames.

They are currently only available from preferences file,
but I will add the color selection in GUI later.

svn path=/trunk/; revision=2327
2000-08-21 21:24:15 +00:00
Laurent Deniel
c7d9d83ebc Cosmetic change (close button at the right place :-).
svn path=/trunk/; revision=2326
2000-08-21 20:11:51 +00:00
Laurent Deniel
dea8f0c202 Add some menu items related to the "frame mark" feature in
the Edit menu which allow you to:

- mark (or unmark) the currently selected frame
- mark all _displayed_ frames
- unmark all _displayed_ frames

Should I be more precise in the menu label ?
(e.g. "Mark All Displayed Frame" instead of "Mark All Frames"
  and "Mark Selected Frame" instead of "Mark Frame" ?)

svn path=/trunk/; revision=2325
2000-08-21 19:36:19 +00:00
Guy Harris
879a38b412 Change from Andreas Sikkema to change the "old" and "new" members of the
"dissector" union in the "conversation_t" structure to "old_d" and
"new_d", to avoid using a C++ reserved word.

Add "old_conversation_set_dissector()" and
"conversation_set_dissector()" routines to set the dissector for a
conversation, to hide the details of how that's done (e.g., details such
as whether there's a union at all - eventually, when all dissectors have
been tvbuffified, there won't be a need for the union - and what the
names of the union members are, and so on).  Convert all dissectors to
use those routines (they had to be changed anyway, due to the name
change).

svn path=/trunk/; revision=2324
2000-08-21 18:36:35 +00:00
Laurent Deniel
05984d233d Add the number of marked packets in the summary window.
svn path=/trunk/; revision=2323
2000-08-21 18:20:19 +00:00
Laurent Deniel
8fbd65cc7f Frames in the packet list can now be marked by the user using
the middle mouse button. The marked packets are displayed in
reverse video but this should change in the future (the color
should be configurable via the GUI).

Then,  the marked packets can be saved (via the "Save as"
window dialog).

Other features will be added in the future (I am waiting for
your comments and wishes).

svn path=/trunk/; revision=2322
2000-08-21 15:45:33 +00:00
Laurent Deniel
ff42c86f9a Put an indentation in hexdump display of a TCP stream
only if both directions are displayed.

svn path=/trunk/; revision=2321
2000-08-21 13:04:05 +00:00
Richard Sharpe
dbd0407127 Revert the last silly change ... :-)
svn path=/trunk/; revision=2320
2000-08-21 12:53:10 +00:00
Richard Sharpe
3df2d60b80 A small change ...
svn path=/trunk/; revision=2319
2000-08-21 12:48:05 +00:00
Laurent Deniel
a3d48f0972 Make work better the (hexdump) popup menus.
- have popup_menu_handler return TRUE or FALSE according
  to the fact that the event is really processed or not.
- use gtk_signal_connect instead of gtk_signal_connect_object
  to have the widget that emitted the signal _and_ the popup
  menu widget.
- call gtk_signal_emit_stop_by_name to abort the propagation
  if the signal was processed.

svn path=/trunk/; revision=2318
2000-08-21 12:33:22 +00:00
Guy Harris
aeaaaf65f4 Instead of each set of built-in preferences having "ok", "save",
"cancel", and "delete" methods, give them:

	"fetch" - fetch from the notebook tab any values not already
	stored in "prefs", and store them there, but doesn't apply them;

	"apply" - apply the settings in "prefs";

	"destroy" - clean up any windows created from the tab.

As we no longer have "cancel" methods, we don't have per-preference code
to revert preference values; instead, we have the common preference
dialog box code make a copy of all the current preferences, and, when
the "Cancel" button is clicked, free the current preferences and copy
the saved preferences to it, and apply the preferences.

Add an "Apply" button to the preference dialog box, which applies the
current preferences without closing the dialog box.

Treat a request to delete the preferences dialog box as equivalent to
clicking "Cancel".

Have a "remember_ptree_widget()" routine to remember all protocol tree
widgets, and use the list of those widgets when we set GUI preferences
for the protocol tree widgets, rather than setting the main protocol
tree widget and then using the list of packet windows.  Move that code
out of "main.c" to "proto_draw.c", as it's not used by anything in
"main.c", but is used by stuff in "proto_draw.c".

Make the font one of the preferences we can set on the fly for protocol
tree widgets.  Also make it something we can set on the fly for the
packet list widget.

svn path=/trunk/; revision=2317
2000-08-21 08:15:48 +00:00
Guy Harris
023bf363b5 Instead of each set of built-in preferences having "ok", "save",
"cancel", and "delete" methods, give them:

	"fetch" - fetch from the notebook tab any values not already
	stored in "prefs", and store them there, but doesn't apply them;

	"apply" - apply the settings in "prefs";

	"destroy" - clean up any windows created from the tab.

As we no longer have "cancel" methods, we don't have per-preference code
to revert preference values; instead, we have the common preference
dialog box code make a copy of all the current preferences, and, when
the "Cancel" button is clicked, free the current preferences and copy
the saved preferences to it, and apply the preferences.

Add an "Apply" button to the preference dialog box, which applies the
current preferences without closing the dialog box.

Treat a request to delete the preferences dialog box as equivalent to
clicking "Cancel".

Have a "remember_ptree_widget()" routine to remember all protocol tree
widgets, and use the list of those widgets when we set GUI preferences
for the protocol tree widgets, rather than setting the main protocol
tree widget and then using the list of packet windows.  Move that code
out of "main.c" to "proto_draw.c", as it's not used by anything in
"main.c", but is used by stuff in "proto_draw.c".

Make the font one of the preferences we can set on the fly for protocol
tree widgets.  Also make it something we can set on the fly for the
packet list widget.

svn path=/trunk/; revision=2316
2000-08-21 08:09:17 +00:00
Guy Harris
352f8f1603 "capture_child" isn't declared or defined if HAVE_LIBPCAP isn't defined;
check it only if HAVE_LIBPCAP is defined.

svn path=/trunk/; revision=2315
2000-08-21 01:52:57 +00:00
Laurent Deniel
e0a8d41556 Add a popup menu for the hexdump window. For now, it has only the
common items but let's prepare the future (e.g. Match selected)...

svn path=/trunk/; revision=2314
2000-08-20 21:55:58 +00:00
Laurent Deniel
ccdbb6ca6d Cleaning (remove comment and tcp_extra_data).
svn path=/trunk/; revision=2313
2000-08-20 20:48:55 +00:00
Laurent Deniel
475fd9fdf9 Fix a comment.
svn path=/trunk/; revision=2312
2000-08-20 19:40:47 +00:00
Laurent Deniel
b77c53270f "ascend" was not working as display filter...
svn path=/trunk/; revision=2311
2000-08-20 19:16:39 +00:00
Laurent Deniel
7440dd0ec8 - proto_bgp was not added in protocol tree, so "bgp" was not
working as display filter...

- add display filters.

svn path=/trunk/; revision=2310
2000-08-20 18:10:12 +00:00
Laurent Deniel
e74040c295 - do not issue the font warning if in the child process (used for real time
capture) since it has already been done at GUI startup.

- fix a font name in warning message.

svn path=/trunk/; revision=2309
2000-08-20 15:38:50 +00:00
Laurent Deniel
b634f019f4 SMTP is Simple *Mail* Transfer Protocol not Message.
Add [OLD_]CHECK_DISPLAY_AS_DATA call.

svn path=/trunk/; revision=2308
2000-08-20 15:25:17 +00:00
Guy Harris
c1214ede33 Use "memset()" to zero byte arrays, and "memcpy" to copy into them.
When copying IPv4 or IPv6 addresses, copy the minimum of the number of
bytes in the source and the destination, so that if the prefix length is
bogus, we don't overwrite the buffer.

"tvb_get_ptr()" returns a "guint8 *"; give the variable to which its
value is assigned that type.

svn path=/trunk/; revision=2307
2000-08-20 09:07:16 +00:00
Guy Harris
2f2614652a When the Win32 GTK+ constructs fake XLFD names for Windows fonts, it
uses "normal" rather than "medium" as the weight name for normal-weight
fonts; map "normal", as well as "medium", to "bold" when constructing
the name of the bold version of a font.

svn path=/trunk/; revision=2306
2000-08-20 09:02:29 +00:00
Guy Harris
ad934375fa Remove references to the "-b" option from the usage messages, as that
option has been removed.

svn path=/trunk/; revision=2305
2000-08-20 08:08:30 +00:00
Guy Harris
e697eb8e9f Instead of having the normal-weight and bold fonts set separately,
generate the name of the boldface font from the Roman font; if the two
fonts don't have the same widths, the display will look weird when a
field is selected, and it's a bit of a pain for the user to have to
select *two* fonts.

On UNIX/X, default to
"-*-fixed-medium-r-semicondensed-*-*-120-*-*-*-*-*-" rather than to
"-*-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1" - some
Linux distributions appear to lack the Lucida typewriter font.

Add a "gui.font_name" preference to the preferences file, specifying the
normal-weight font to use.  Have it settable from the "GUI" tab in the
Preferences dialog box - the "Font..." button, when clicked, pops up a
font selection dialog box.

If we either can't open the selected font or the boldfaced version of
the font, default to "6x13" and "6x13bold" as fallbacks - the former
will probably be "fixed", and the latter would be "fixedbold" if X
actually created such an alias, but it doesn't so we use "6x13bold"
instead.

svn path=/trunk/; revision=2304
2000-08-20 07:53:45 +00:00
Guy Harris
2962655ac5 This is an SMTP dissector, not a BXXP dissector; fix the comment at the
beginning.

Pass "pinfo->fd", not "fd", to "p_get_proto_data()", so that it'll
continue to work even when tvbuffified.

Use "strchr()", not "index()" - "strchr()" is in the ANSI C standard,
and may be in some systems that don't have "index()", whereas those
systems that had "index()" but not "strchr()" got with the ANSI C
program a while ago.

Use "old_dissector_add()" and "old_dissector_delete()" to register and
unregister the SMTP dissector, as it's not yet been tvbuffified.

svn path=/trunk/; revision=2303
2000-08-20 02:16:23 +00:00
Richard Sharpe
fe7540783e Added packet-smtp.c and modified packet.c to include code that was never
finished ...

The SMTP dissection is a good start, but does not handle the message
body at all ...

On to that next.

svn path=/trunk/; revision=2302
2000-08-19 23:06:51 +00:00
Richard Sharpe
0d41da6914 Adding the first part of packet-smtp.c ...
This needs some additional parts, and points to the
need for a dissector for the ident protocol, but I want to
try to automatically generate that ...

svn path=/trunk/; revision=2301
2000-08-19 23:00:06 +00:00
Laurent Deniel
9110dda9dc Add Mbit/sec to the summary window.
svn path=/trunk/; revision=2300
2000-08-19 21:36:51 +00:00
Laurent Deniel
8d95269d34 Fix buffer overflow on zlib uncompression errors.
svn path=/trunk/; revision=2299
2000-08-19 18:31:23 +00:00
Laurent Deniel
8bc95e98e4 Fix potential buffer overflows.
svn path=/trunk/; revision=2298
2000-08-19 18:20:59 +00:00
Laurent Deniel
69dce2464b - fix potential buffer overflow problems.
- fix potential memory allocation problems (e.g. if PF_DIR is changed
  to a longer string).

- add some #defines.

svn path=/trunk/; revision=2297
2000-08-19 17:53:02 +00:00
Guy Harris
d62f730035 Michael Tuexen's patch to add "sctp.port" as a dissector table so that
protocols running atop SCTP can register themselves with a particular
SCTP port number.

Also, clean up the credits for him - there were two entries, one for
some initial SCTP support in "ipprotostr()" and in the capture dialog,
and one for the SCTP dissector itself - the latter subsumes the former,
so just keep the latter.

svn path=/trunk/; revision=2296
2000-08-19 08:37:43 +00:00
Guy Harris
b0e0ec1763 Michael Tuexen's changes to define a port type for SCTP ports, handle
SCTP ports in "col_set_port()", and add a "get_sctp_port()" routine to
resolve SCTP port numbers to services.

Also, make the "get_XXX_port()" routines format the port number as an
unsigned integer, rather than a signed integer, if the service name for
the port isn't found (the port number passed in is unsigned).

svn path=/trunk/; revision=2295
2000-08-19 08:26:04 +00:00
Jun-ichiro itojun Hagino
e2eb846d0f avoid pointer typecast, which leads to unaligned access.
svn path=/trunk/; revision=2294
2000-08-18 15:52:02 +00:00
Laurent Deniel
9c05ee2741 - remove ^M
- add CHECK_DISPLAY_AS_DATA()

svn path=/trunk/; revision=2293
2000-08-18 15:45:30 +00:00
Gilbert Ramirez
729f85b1ad Add Zebra dissector from Jochen.
svn path=/trunk/; revision=2292
2000-08-18 15:26:52 +00:00
Laurent Deniel
e72d4317ed - move some #preprocessor directives at the fisrt column.
- do not silently ignore plugins with incomplete symbols
  or non compilable filter (but report the error to the user).

svn path=/trunk/; revision=2291
2000-08-18 14:22:20 +00:00
Laurent Deniel
f395740875 Modify the Gryphon plugin code in order to avoid an abort when the
plugin is enabled -> disabled -> re-enabled due to the fact that
the protocol registration is performed at each plugin_init() call
(and there is no protocol cleanup like with dfilter_cleanup).

Now we use the proto_xxx static variable to check if it is the first
activation or not (in this case, the proto_register_xxx routines are
not called.

svn path=/trunk/; revision=2290
2000-08-18 13:47:59 +00:00
Jun-ichiro itojun Hagino
73fae332dc add dissector for draft-ietf-ipngwg-icmp-name-lookups-06.txt
(icmp node information query).  not finished yet - need DNS decoding.
for DNS name queries/replies.

svn path=/trunk/; revision=2289
2000-08-18 12:05:27 +00:00
Jun-ichiro itojun Hagino
1304e78cec A6 records are now RFC 2874 (not i-d)
svn path=/trunk/; revision=2288
2000-08-18 09:05:02 +00:00
Laurent Deniel
c06276085e Add a comment about the use of prefs_register_module() in protocol dissectors
(the name should match the one specified at the proto_register_protocol() call).

svn path=/trunk/; revision=2287
2000-08-17 21:02:10 +00:00
Gilbert Ramirez
9e2ab759e5 Add comments about pointers.
svn path=/trunk/; revision=2286
2000-08-17 17:16:02 +00:00
Guy Harris
170f561bf2 Don't catch the "delete_event" signal for the "Help" window - we just
need to catch the "destroy" event, and have its handler clear the global
help window pointer.

That means that the "Close" button callback also need not clear that
pointer, it merely needs to destroy the widget; given that we're now
always passing it a pointer to the widget as the "data" argument, we
just have it destroy that widget.

svn path=/trunk/; revision=2285
2000-08-17 08:17:38 +00:00
Guy Harris
da88c237c2 It was silly of me to require that "forget_scrolled_window()" be called
explicitly; the right thing to do was to have
"remember_scrolled_window()" catch the "destroy" signal on the scrolled
window widget, and have the handler for that signal forget the scrolled
window.

Doing that obviates the need to have creators of scrolled windows keep
track of the windows they have and forget them when they're destroyed.

The signal for a "the window manager has requested that this window go
away" event is "delete_event", not "delete-event"; fix the
"gtk_signal_connect()" calls that were using "delete-event".

svn path=/trunk/; revision=2284
2000-08-17 07:56:44 +00:00
Laurent Deniel
ec5366cede Fix a long standing bug in the scrolled window handling in follow TCP stream
which make ethereal aborts if the preferences were modified (or cancel) after
the TCP window was closed.

Fix the same bug in the other scrolled window handling (help & protocols).

(forget_scrolled_window() was not called at the window closure).

svn path=/trunk/; revision=2283
2000-08-16 21:08:48 +00:00
Laurent Deniel
e4c5d20f3a The "Edit:protocols..." window is now sorted.
svn path=/trunk/; revision=2282
2000-08-16 20:14:24 +00:00
Laurent Deniel
df89199498 - remove "Match Selected" from the packet list popup menu.
- reorganise a bit the two right click popup menus :

  . the first part is common to the packet list and protocol tree menus
  . the second part is window-specific.

 (if we had a popup menu for the hexdump window, that would be the same).

svn path=/trunk/; revision=2281
2000-08-16 19:15:11 +00:00
Guy Harris
c8cb7ffb19 In "set_plist_sel_browse()", don't unselect the current packet if the
selection mode of the packet list window isn't actually going to be
changed - it's a bit annoying to have the protocol tree window clear out
from under you if all you've done is pop up the Edit->Preferences dialog
and cancelled it (or accepted it without changing any GUI preference).

svn path=/trunk/; revision=2280
2000-08-15 22:22:35 +00:00
Guy Harris
75a756e881 Rename the "Properties" pop-up menu item "Protocol Properties", to make
it clearer what properties it lets you edit.  (Perhaps it should say
"Edit Protocol Properties", to make it even clearer?)

svn path=/trunk/; revision=2279
2000-08-15 21:35:34 +00:00