aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-07-18 00:24:25 +0000
committerGuy Harris <guy@alum.mit.edu>2004-07-18 00:24:25 +0000
commit8a8b8834500043ea4f7d818aafa2b1edb353563a (patch)
treeb927867e72fe395b5060acacc1f9e827b3e430cd
parent16c252d77519048fbea9fee2e00f5ea66d534953 (diff)
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
-rw-r--r--Ethereal.desktop2
-rw-r--r--Makefile.am2
-rw-r--r--Makefile.common2
-rw-r--r--Makefile.nmake2
-rw-r--r--NEWS2
-rw-r--r--README2
-rw-r--r--README.aix2
-rw-r--r--README.bsd2
-rw-r--r--README.hpux2
-rw-r--r--README.irix2
-rw-r--r--README.linux2
-rw-r--r--README.macos2
-rw-r--r--README.tru642
-rw-r--r--README.vmware2
-rw-r--r--README.win322
-rw-r--r--TODO2
-rw-r--r--acinclude.m42
-rwxr-xr-xaclocal-flags2
-rw-r--r--adler32.c2
-rw-r--r--adler32.h2
-rw-r--r--afn.c2
-rw-r--r--afn.h2
-rw-r--r--aftypes.h2
-rw-r--r--alert_box.c2
-rw-r--r--alert_box.h2
-rw-r--r--arcnet_pids.h2
-rw-r--r--asn1.c2
-rw-r--r--asn1.h2
-rw-r--r--asn1/h235/h235.cnf2
-rw-r--r--asn1/h235/packet-h235-template.c2
-rw-r--r--asn1/h235/packet-h235-template.h2
-rwxr-xr-xautogen.sh2
-rw-r--r--bridged_pids.h2
-rw-r--r--capture-wpcap.c2
-rw-r--r--capture-wpcap.h2
-rw-r--r--capture.c2
-rw-r--r--capture.h2
-rw-r--r--capture_stop_conditions.c2
-rw-r--r--capture_stop_conditions.h2
-rw-r--r--cfile.c2
-rw-r--r--cfile.h2
-rw-r--r--chdlctypes.h2
-rw-r--r--cleanbld.bat2
-rw-r--r--color.h2
-rw-r--r--column.c2
-rw-r--r--column.h2
-rw-r--r--conditions.c2
-rw-r--r--conditions.h2
-rw-r--r--config.h.win322
-rw-r--r--config.nmake2
-rw-r--r--configure.in2
-rw-r--r--crc16.c2
-rw-r--r--crc16.h2
-rw-r--r--crc32.c2
-rw-r--r--crc32.h2
-rw-r--r--crypt-des.c2
-rw-r--r--crypt-des.h2
-rw-r--r--crypt-md4.c2
-rw-r--r--crypt-md4.h2
-rw-r--r--crypt-md5.c2
-rw-r--r--crypt-md5.h2
-rw-r--r--crypt-rc4.c2
-rw-r--r--crypt-rc4.h2
-rw-r--r--dftest.c2
-rw-r--r--disabled_protos.c2
-rw-r--r--disabled_protos.h2
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/Makefile.nmake2
-rw-r--r--doc/README.capture2
-rw-r--r--doc/README.design2
-rw-r--r--doc/README.developer8
-rw-r--r--doc/README.idl2eth2
-rw-r--r--doc/README.plugins2
-rw-r--r--doc/README.regression2
-rw-r--r--doc/README.tapping2
-rw-r--r--doc/README.tvbuff2
-rw-r--r--doc/README.xml-output2
-rwxr-xr-xdoc/dfilter2pod.pl2
-rw-r--r--doc/eproto2sgml2
-rw-r--r--doc/randpkt.txt2
-rw-r--r--editcap.c2
-rw-r--r--epan/Makefile.am2
-rw-r--r--epan/Makefile.common2
-rw-r--r--epan/Makefile.nmake2
-rw-r--r--epan/README2
-rw-r--r--epan/addr_and_mask.c2
-rw-r--r--epan/addr_and_mask.h2
-rw-r--r--epan/atalk-utils.c2
-rw-r--r--epan/atalk-utils.h2
-rw-r--r--epan/bitswap.c2
-rw-r--r--epan/bitswap.h2
-rw-r--r--epan/circuit.c2
-rw-r--r--epan/circuit.h2
-rw-r--r--epan/column-utils.c2
-rw-r--r--epan/column-utils.h2
-rw-r--r--epan/column_info.h2
-rw-r--r--epan/conversation.c2
-rw-r--r--epan/conversation.h2
-rw-r--r--epan/dfilter/Makefile.am2
-rw-r--r--epan/dfilter/Makefile.nmake2
-rwxr-xr-xepan/dfilter/README.dfilter214
-rw-r--r--epan/dfilter/dfilter-int.h2
-rw-r--r--epan/dfilter/dfilter.c2
-rw-r--r--epan/dfilter/dfilter.h2
-rw-r--r--epan/dfilter/dfvm.c2
-rw-r--r--epan/dfilter/dfvm.h2
-rw-r--r--epan/dfilter/drange.c2
-rw-r--r--epan/dfilter/drange.h2
-rw-r--r--epan/dfilter/gencode.c2
-rw-r--r--epan/dfilter/glib-util.c2
-rw-r--r--epan/dfilter/glib-util.h2
-rw-r--r--epan/dfilter/grammar.lemon2
-rw-r--r--epan/dfilter/scanner.l2
-rw-r--r--epan/dfilter/semcheck.c2
-rw-r--r--epan/dfilter/semcheck.h2
-rw-r--r--epan/dfilter/sttype-integer.c2
-rw-r--r--epan/dfilter/sttype-pointer.c2
-rw-r--r--epan/dfilter/sttype-range.c2
-rw-r--r--epan/dfilter/sttype-range.h2
-rw-r--r--epan/dfilter/sttype-string.c2
-rw-r--r--epan/dfilter/sttype-test.c2
-rw-r--r--epan/dfilter/sttype-test.h2
-rw-r--r--epan/dfilter/syntax-tree.c2
-rw-r--r--epan/dfilter/syntax-tree.h2
-rw-r--r--epan/epan.c2
-rw-r--r--epan/epan.h2
-rw-r--r--epan/epan_dissect.h2
-rw-r--r--epan/except.c4
-rw-r--r--epan/except.h2
-rw-r--r--epan/filesystem.c2
-rw-r--r--epan/filesystem.h2
-rw-r--r--epan/frame_data.c2
-rw-r--r--epan/frame_data.h2
-rw-r--r--epan/ftypes/Makefile.am2
-rw-r--r--epan/ftypes/Makefile.nmake2
-rw-r--r--epan/ftypes/ftype-bytes.c2
-rw-r--r--epan/ftypes/ftype-double.c2
-rw-r--r--epan/ftypes/ftype-integer.c2
-rw-r--r--epan/ftypes/ftype-ipv4.c2
-rw-r--r--epan/ftypes/ftype-none.c2
-rwxr-xr-xepan/ftypes/ftype-pcre.c2
-rw-r--r--epan/ftypes/ftype-string.c2
-rw-r--r--epan/ftypes/ftype-time.c2
-rw-r--r--epan/ftypes/ftype-tvbuff.c2
-rw-r--r--epan/ftypes/ftypes-int.h2
-rw-r--r--epan/ftypes/ftypes.c2
-rw-r--r--epan/ftypes/ftypes.h2
-rw-r--r--epan/gdebug.h2
-rw-r--r--epan/inet_aton.h2
-rw-r--r--epan/inet_ntop.c2
-rw-r--r--epan/inet_pton.c2
-rw-r--r--epan/inet_v6defs.h2
-rw-r--r--epan/int-64bit.c2
-rw-r--r--epan/int-64bit.h2
-rw-r--r--epan/ipv4.c2
-rw-r--r--epan/ipv4.h2
-rw-r--r--epan/ipv6-utils.h2
-rw-r--r--epan/nstime.h2
-rw-r--r--epan/osi-utils.c2
-rw-r--r--epan/osi-utils.h2
-rw-r--r--epan/packet.c2
-rw-r--r--epan/packet.h2
-rw-r--r--epan/packet_info.h2
-rw-r--r--epan/pint.h2
-rw-r--r--epan/plugins.c2
-rw-r--r--epan/plugins.h2
-rw-r--r--epan/proto.c2
-rw-r--r--epan/proto.h2
-rw-r--r--epan/report_err.h2
-rw-r--r--epan/resolv.c2
-rw-r--r--epan/resolv.h2
-rw-r--r--epan/slab.h2
-rw-r--r--epan/sna-utils.c2
-rw-r--r--epan/sna-utils.h2
-rw-r--r--epan/strutil.c2
-rw-r--r--epan/strutil.h2
-rwxr-xr-xepan/timestamp.c2
-rw-r--r--epan/timestamp.h2
-rw-r--r--epan/to_str.c2
-rw-r--r--epan/to_str.h2
-rw-r--r--epan/tvbtest.c2
-rw-r--r--epan/tvbuff.c2
-rw-r--r--epan/tvbuff.h2
-rw-r--r--epan/value_string.c2
-rw-r--r--epan/value_string.h2
-rw-r--r--ethereal_be.py2
-rw-r--r--ethereal_gen.py2
-rw-r--r--etypes.h2
-rw-r--r--file.c2
-rw-r--r--file.h2
-rw-r--r--filters.c2
-rw-r--r--filters.h2
-rw-r--r--follow.c2
-rw-r--r--follow.h2
-rw-r--r--format-oid.h2
-rw-r--r--g711.c2
-rw-r--r--g711.h2
-rw-r--r--getopt.c2
-rw-r--r--globals.h2
-rw-r--r--greproto.h2
-rw-r--r--gtk/Makefile.am2
-rw-r--r--gtk/Makefile.common2
-rw-r--r--gtk/Makefile.nmake2
-rw-r--r--gtk/about_dlg.c2
-rw-r--r--gtk/about_dlg.h2
-rw-r--r--gtk/ansi_a_stat.c2
-rw-r--r--gtk/ansi_map_stat.c2
-rw-r--r--gtk/bootp_stat.c2
-rw-r--r--gtk/capture_combo_utils.c2
-rw-r--r--gtk/capture_combo_utils.h2
-rw-r--r--gtk/capture_dlg.c3430
-rw-r--r--gtk/capture_dlg.h134
-rw-r--r--gtk/capture_if_dlg.c972
-rw-r--r--gtk/capture_info_dlg.c2
-rw-r--r--gtk/capture_prefs.c2
-rw-r--r--gtk/capture_prefs.h2
-rw-r--r--gtk/color_dlg.c2
-rw-r--r--gtk/color_dlg.h2
-rw-r--r--gtk/color_filters.c2
-rw-r--r--gtk/color_filters.h2
-rw-r--r--gtk/color_utils.c2
-rw-r--r--gtk/color_utils.h2
-rw-r--r--gtk/colors.c2
-rw-r--r--gtk/colors.h2
-rw-r--r--gtk/column_prefs.c2
-rw-r--r--gtk/column_prefs.h2
-rw-r--r--gtk/compat_macros.h2
-rw-r--r--gtk/dcerpc_stat.c2
-rw-r--r--gtk/decode_as_dlg.c2
-rw-r--r--gtk/decode_as_dlg.h2
-rw-r--r--gtk/dfilter_expr_dlg.c2
-rw-r--r--gtk/dfilter_expr_dlg.h2
-rw-r--r--gtk/dlg_utils.c2
-rw-r--r--gtk/dlg_utils.h2
-rw-r--r--gtk/endpoint_talkers_eth.c2
-rw-r--r--gtk/endpoint_talkers_fc.c2
-rw-r--r--gtk/endpoint_talkers_fddi.c2
-rw-r--r--gtk/endpoint_talkers_ip.c2
-rw-r--r--gtk/endpoint_talkers_ipx.c2
-rw-r--r--gtk/endpoint_talkers_table.c2
-rw-r--r--gtk/endpoint_talkers_table.h2
-rw-r--r--gtk/endpoint_talkers_tcpip.c2
-rw-r--r--gtk/endpoint_talkers_tr.c2
-rw-r--r--gtk/endpoint_talkers_udpip.c2
-rw-r--r--gtk/ethclist.c2
-rw-r--r--gtk/ethclist.h2
-rw-r--r--gtk/fc_stat.c2
-rw-r--r--gtk/file_dlg.c2
-rw-r--r--gtk/file_dlg.h2
-rw-r--r--gtk/filter_prefs.c2
-rw-r--r--gtk/filter_prefs.h2
-rw-r--r--gtk/find_dlg.c2
-rw-r--r--gtk/find_dlg.h2
-rw-r--r--gtk/follow_dlg.c2
-rw-r--r--gtk/follow_dlg.h2
-rw-r--r--gtk/font_utils.c2
-rw-r--r--gtk/font_utils.h2
-rw-r--r--gtk/goto_dlg.c2
-rw-r--r--gtk/goto_dlg.h2
-rw-r--r--gtk/gsm_a_stat.c2
-rw-r--r--gtk/gsm_map_stat.c2
-rw-r--r--gtk/gsm_map_stat.h2
-rw-r--r--gtk/gsm_map_summary.c2
-rw-r--r--gtk/gtk_stat_util.c2
-rw-r--r--gtk/gtk_stat_util.h2
-rw-r--r--gtk/gtkglobals.h2
-rw-r--r--gtk/gui_prefs.c2
-rw-r--r--gtk/gui_prefs.h2
-rw-r--r--gtk/h225_counter.c2
-rw-r--r--gtk/h225_ras_srt.c2
-rw-r--r--gtk/help_dlg.c2
-rw-r--r--gtk/help_dlg.h2
-rw-r--r--gtk/hostlist_eth.c2
-rw-r--r--gtk/hostlist_fc.c2
-rw-r--r--gtk/hostlist_fddi.c2
-rw-r--r--gtk/hostlist_ip.c2
-rw-r--r--gtk/hostlist_ipx.c2
-rw-r--r--gtk/hostlist_table.c2
-rw-r--r--gtk/hostlist_table.h2
-rw-r--r--gtk/hostlist_tcpip.c2
-rw-r--r--gtk/hostlist_tr.c2
-rw-r--r--gtk/hostlist_udpip.c2
-rw-r--r--gtk/http_stat.c2
-rw-r--r--gtk/io_stat.c2
-rw-r--r--gtk/isprint.h2
-rw-r--r--gtk/isup_stat.c2
-rw-r--r--gtk/keys.h2
-rw-r--r--gtk/layout_prefs.c2
-rw-r--r--gtk/layout_prefs.h2
-rw-r--r--gtk/ldap_stat.c2
-rw-r--r--gtk/main.c2
-rw-r--r--gtk/main.h2
-rw-r--r--gtk/menu.c3656
-rw-r--r--gtk/menu.h2
-rw-r--r--gtk/mgcp_stat.c2
-rw-r--r--gtk/mtp3_stat.c2
-rw-r--r--gtk/mtp3_stat.h2
-rw-r--r--gtk/mtp3_summary.c2
-rw-r--r--gtk/nameres_prefs.c2
-rw-r--r--gtk/nameres_prefs.h2
-rw-r--r--gtk/packet_list.c2
-rw-r--r--gtk/packet_list.h2
-rw-r--r--gtk/packet_win.c2
-rw-r--r--gtk/packet_win.h2
-rw-r--r--gtk/plugins_dlg.c2
-rw-r--r--gtk/prefs_dlg.c2
-rw-r--r--gtk/prefs_dlg.h2
-rw-r--r--gtk/print_dlg.c2
-rw-r--r--gtk/print_mswin.c2
-rw-r--r--gtk/print_mswin.h2
-rw-r--r--gtk/print_prefs.c2
-rw-r--r--gtk/print_prefs.h2
-rw-r--r--gtk/progress_dlg.c2
-rw-r--r--gtk/proto_dlg.c2
-rw-r--r--gtk/proto_dlg.h2
-rw-r--r--gtk/proto_draw.c2
-rw-r--r--gtk/proto_draw.h2
-rw-r--r--gtk/proto_hier_stats_dlg.c2
-rw-r--r--gtk/proto_hier_stats_dlg.h2
-rw-r--r--gtk/range_utils.c2
-rw-r--r--gtk/range_utils.h2
-rw-r--r--gtk/recent.c2
-rw-r--r--gtk/recent.h2
-rw-r--r--gtk/rpc_progs.c2
-rw-r--r--gtk/rpc_stat.c2
-rw-r--r--gtk/rtp_analysis.c2
-rw-r--r--gtk/rtp_analysis.h2
-rw-r--r--gtk/rtp_stream.c2
-rw-r--r--gtk/rtp_stream.h2
-rw-r--r--gtk/rtp_stream_dlg.c2
-rw-r--r--gtk/rtp_stream_dlg.h2
-rw-r--r--gtk/sat.h2
-rw-r--r--gtk/service_response_time_table.c2
-rw-r--r--gtk/service_response_time_table.h2
-rw-r--r--gtk/simple_dialog.c2
-rw-r--r--gtk/sip_stat.c2
-rw-r--r--gtk/smb_stat.c2
-rw-r--r--gtk/stream_prefs.c2
-rw-r--r--gtk/stream_prefs.h2
-rw-r--r--gtk/summary_dlg.c2
-rw-r--r--gtk/summary_dlg.h2
-rw-r--r--gtk/supported_protos_dlg.c2
-rw-r--r--gtk/supported_protos_dlg.h2
-rw-r--r--gtk/tap_dfilter_dlg.c2
-rw-r--r--gtk/tap_dfilter_dlg.h2
-rw-r--r--gtk/tap_menu.h2
-rw-r--r--gtk/tcp_graph.c2
-rw-r--r--gtk/text_page.c2
-rw-r--r--gtk/text_page.h2
-rw-r--r--gtk/toolbar.c2
-rw-r--r--gtk/toolbar.h2
-rw-r--r--gtk/ui_util.c2
-rw-r--r--gtk/ui_util.h2
-rw-r--r--gtk/webbrowser.h2
-rw-r--r--gtk/wsp_stat.c2
-rwxr-xr-xh225-persistentdata.c2
-rwxr-xr-xh225-persistentdata.h2
-rw-r--r--help/Makefile.am2
-rw-r--r--help/Makefile.nmake2
-rw-r--r--iax2_codec_type.h2
-rw-r--r--idl2eth.sh2
-rw-r--r--image/Makefile.nmake2
-rw-r--r--in_cksum.c2
-rw-r--r--in_cksum.h2
-rw-r--r--ip_opts.h2
-rw-r--r--ipproto.c2
-rw-r--r--ipproto.h2
-rw-r--r--isprint.h2
-rw-r--r--lapd_sapi.h2
-rw-r--r--llcsaps.h2
-rwxr-xr-xmake-authors-short.pl2
-rwxr-xr-xmake-faq2
-rwxr-xr-xmake-manuf2
-rwxr-xr-xmake-reg-dotc2
-rwxr-xr-xmake-reg-dotc.py2
-rwxr-xr-xmake-tapreg-dotc2
-rwxr-xr-xmake-version.pl2
-rw-r--r--manuf4
-rw-r--r--manuf.tmpl2
-rw-r--r--menu.h2
-rw-r--r--merge.c2
-rw-r--r--merge.h2
-rw-r--r--mergecap.c2
-rw-r--r--mkcap.c2
-rwxr-xr-xncp2222.py2
-rw-r--r--nlpid.h2
-rw-r--r--oui.h2
-rw-r--r--packaging/nsis/Makefile.nmake2
-rw-r--r--packet-3g-a11.c2
-rw-r--r--packet-aarp.c2
-rw-r--r--packet-acap.c2
-rw-r--r--packet-acse.c2
-rw-r--r--packet-acse.h2
-rw-r--r--packet-afp.c2
-rw-r--r--packet-afp.h2
-rw-r--r--packet-afs-defs.h2
-rw-r--r--packet-afs-macros.h2
-rw-r--r--packet-afs-register-info.h2
-rw-r--r--packet-afs.c2
-rw-r--r--packet-afs.h2
-rw-r--r--packet-aim-admin.c2
-rw-r--r--packet-aim-adverts.c2
-rw-r--r--packet-aim-bos.c2
-rw-r--r--packet-aim-buddylist.c2
-rw-r--r--packet-aim-chat.c2
-rw-r--r--packet-aim-chatnav.c2
-rw-r--r--packet-aim-directory.c2
-rw-r--r--packet-aim-generic.c2
-rw-r--r--packet-aim-icq.c2
-rw-r--r--packet-aim-invitation.c2
-rw-r--r--packet-aim-location.c2
-rw-r--r--packet-aim-messaging.c2
-rw-r--r--packet-aim-oft.c2
-rw-r--r--packet-aim-popup.c2
-rw-r--r--packet-aim-signon.c2
-rw-r--r--packet-aim-ssi.c2
-rw-r--r--packet-aim-stats.c2
-rw-r--r--packet-aim-translate.c2
-rw-r--r--packet-aim-userlookup.c2
-rw-r--r--packet-aim.c2
-rw-r--r--packet-aim.h2
-rw-r--r--packet-ajp13.c2
-rw-r--r--packet-alcap.c2
-rw-r--r--packet-ans.c2
-rw-r--r--packet-ansi_637.c2
-rw-r--r--packet-ansi_683.c2
-rw-r--r--packet-ansi_801.c2
-rw-r--r--packet-ansi_a.c2
-rw-r--r--packet-ansi_a.h2
-rw-r--r--packet-ansi_map.c2
-rw-r--r--packet-ansi_map.h2
-rw-r--r--packet-aodv.c2
-rw-r--r--packet-ap1394.c2
-rw-r--r--packet-ap1394.h2
-rw-r--r--packet-arcnet.c2
-rw-r--r--packet-arcnet.h2
-rw-r--r--packet-arp.c2
-rw-r--r--packet-arp.h2
-rw-r--r--packet-asap.c2
-rw-r--r--packet-ascend.c2
-rw-r--r--packet-asf.c2
-rw-r--r--packet-atalk.c2
-rw-r--r--packet-atalk.h2
-rw-r--r--packet-atm.c2
-rw-r--r--packet-atm.h2
-rw-r--r--packet-auto_rp.c2
-rw-r--r--packet-bacapp.c2
-rw-r--r--packet-bacnet.c2
-rw-r--r--packet-beep.c2
-rw-r--r--packet-ber.c2
-rw-r--r--packet-ber.h2
-rw-r--r--packet-bfd.c2
-rw-r--r--packet-bgp.c2
-rw-r--r--packet-bgp.h2
-rw-r--r--packet-bofl.c2
-rw-r--r--packet-bootp.c2
-rw-r--r--packet-bootparams.c2
-rw-r--r--packet-bootparams.h2
-rw-r--r--packet-bpdu.c2
-rw-r--r--packet-brdwlk.c2
-rw-r--r--packet-bssap.c2
-rw-r--r--packet-bssap.h2
-rw-r--r--packet-bssgp.c2
-rw-r--r--packet-bvlc.c2
-rw-r--r--packet-cast.c2
-rw-r--r--packet-ccsds.c2
-rw-r--r--packet-cdp.c2
-rw-r--r--packet-cgmp.c2
-rw-r--r--packet-chdlc.c2
-rw-r--r--packet-chdlc.h2
-rw-r--r--packet-cisco-oui.c2
-rw-r--r--packet-clearcase.c2
-rw-r--r--packet-clearcase.h2
-rw-r--r--packet-clip.c2
-rw-r--r--packet-clip.h2
-rw-r--r--packet-clnp.c2
-rw-r--r--packet-cops.c2
-rw-r--r--packet-cosine.c2
-rw-r--r--packet-cpfi.c2
-rw-r--r--packet-cpha.c2
-rw-r--r--packet-cups.c2
-rw-r--r--packet-data.c2
-rw-r--r--packet-data.h2
-rw-r--r--packet-dccp.c2
-rw-r--r--packet-dccp.h2
-rw-r--r--packet-dcerpc-afs4int.c2
-rw-r--r--packet-dcerpc-atsvc.c2
-rw-r--r--packet-dcerpc-atsvc.h2
-rw-r--r--packet-dcerpc-bossvr.c2
-rw-r--r--packet-dcerpc-browser.c2
-rw-r--r--packet-dcerpc-browser.h2
-rw-r--r--packet-dcerpc-budb.c2
-rw-r--r--packet-dcerpc-butc.c2
-rw-r--r--packet-dcerpc-cds_clerkserver.c2
-rw-r--r--packet-dcerpc-cds_solicit.c2
-rw-r--r--packet-dcerpc-conv.c2
-rw-r--r--packet-dcerpc-cprpc_server.c2
-rw-r--r--packet-dcerpc-dce122.c2
-rw-r--r--packet-dcerpc-dce122.h2
-rw-r--r--packet-dcerpc-dcom.h2
-rw-r--r--packet-dcerpc-dfs.c2
-rw-r--r--packet-dcerpc-dfs.h2
-rw-r--r--packet-dcerpc-dnsserver.c2
-rw-r--r--packet-dcerpc-dnsserver.h2
-rw-r--r--packet-dcerpc-drsuapi.c2
-rw-r--r--packet-dcerpc-drsuapi.h2
-rw-r--r--packet-dcerpc-dtsprovider.c2
-rw-r--r--packet-dcerpc-dtsstime_req.c2
-rwxr-xr-xpacket-dcerpc-efs.c1396
-rwxr-xr-xpacket-dcerpc-efs.h92
-rw-r--r--packet-dcerpc-epm.c2
-rw-r--r--packet-dcerpc-epm4.c2
-rw-r--r--packet-dcerpc-eventlog.c2
-rw-r--r--packet-dcerpc-eventlog.h2
-rw-r--r--packet-dcerpc-fldb.c2
-rw-r--r--packet-dcerpc-frsapi.c2
-rw-r--r--packet-dcerpc-frsapi.h2
-rw-r--r--packet-dcerpc-frsrpc.c2
-rw-r--r--packet-dcerpc-frsrpc.h2
-rw-r--r--packet-dcerpc-ftserver.c2
-rw-r--r--packet-dcerpc-icl_rpc.c2
-rw-r--r--packet-dcerpc-initshutdown.c2
-rw-r--r--packet-dcerpc-initshutdown.h2
-rw-r--r--packet-dcerpc-krb5rpc.c2
-rwxr-xr-xpacket-dcerpc-llb.c2
-rw-r--r--packet-dcerpc-lsa-ds.c2
-rw-r--r--packet-dcerpc-lsa.c2
-rw-r--r--packet-dcerpc-lsa.h2
-rw-r--r--packet-dcerpc-mapi.c2
-rw-r--r--packet-dcerpc-mapi.h2
-rw-r--r--packet-dcerpc-messenger.c2
-rw-r--r--packet-dcerpc-mgmt.c2
-rw-r--r--packet-dcerpc-ndr.c2
-rw-r--r--packet-dcerpc-netlogon.c2
-rw-r--r--packet-dcerpc-netlogon.h2
-rw-r--r--packet-dcerpc-nspi.c2
-rw-r--r--packet-dcerpc-nt.c2
-rw-r--r--packet-dcerpc-nt.h2
-rw-r--r--packet-dcerpc-oxid.c2
-rwxr-xr-xpacket-dcerpc-rdaclif.c2
-rw-r--r--packet-dcerpc-reg.c2
-rw-r--r--packet-dcerpc-reg.h2
-rw-r--r--packet-dcerpc-remact.c2
-rw-r--r--packet-dcerpc-rep_proc.c2
-rw-r--r--packet-dcerpc-roverride.c2
-rw-r--r--packet-dcerpc-rpriv.c2
-rw-r--r--packet-dcerpc-rs_acct.c2
-rw-r--r--packet-dcerpc-rs_attr.c2
-rwxr-xr-xpacket-dcerpc-rs_attr_schema.c2
-rw-r--r--packet-dcerpc-rs_bind.c2
-rw-r--r--packet-dcerpc-rs_misc.c2
-rw-r--r--packet-dcerpc-rs_pgo.c2
-rw-r--r--packet-dcerpc-rs_plcy.c2
-rw-r--r--packet-dcerpc-rs_prop_acct.c2
-rwxr-xr-xpacket-dcerpc-rs_prop_acl.c2
-rwxr-xr-xpacket-dcerpc-rs_prop_attr.c2
-rwxr-xr-xpacket-dcerpc-rs_prop_pgo.c2
-rwxr-xr-xpacket-dcerpc-rs_prop_plcy.c2
-rwxr-xr-xpacket-dcerpc-rs_pwd_mgmt.c2
-rw-r--r--packet-dcerpc-rs_repadm.c2
-rw-r--r--packet-dcerpc-rs_replist.c2
-rwxr-xr-xpacket-dcerpc-rs_repmgr.c2
-rw-r--r--packet-dcerpc-rs_unix.c2
-rw-r--r--packet-dcerpc-rsec_login.c2
-rw-r--r--packet-dcerpc-samr.c2
-rw-r--r--packet-dcerpc-samr.h2
-rw-r--r--packet-dcerpc-secidmap.c2
-rw-r--r--packet-dcerpc-spoolss.c2
-rw-r--r--packet-dcerpc-spoolss.h2
-rw-r--r--packet-dcerpc-srvsvc.c2
-rw-r--r--packet-dcerpc-srvsvc.h2
-rw-r--r--packet-dcerpc-svcctl.c2
-rw-r--r--packet-dcerpc-svcctl.h2
-rw-r--r--packet-dcerpc-tapi.c2
-rw-r--r--packet-dcerpc-tapi.h2
-rw-r--r--packet-dcerpc-tkn4int.c2
-rw-r--r--packet-dcerpc-trksvr.c2
-rw-r--r--packet-dcerpc-ubikdisk.c2
-rw-r--r--packet-dcerpc-ubikvote.c2
-rw-r--r--packet-dcerpc-update.c2
-rw-r--r--packet-dcerpc-wkssvc.c2
-rw-r--r--packet-dcerpc-wkssvc.h2
-rw-r--r--packet-dcerpc.c2
-rw-r--r--packet-dcerpc.h2
-rw-r--r--packet-dcm.c2
-rw-r--r--packet-ddtp.c2
-rw-r--r--packet-ddtp.h2
-rw-r--r--packet-dec-bpdu.c2
-rw-r--r--packet-dhcpv6.c2
-rw-r--r--packet-diameter-defs.h2
-rw-r--r--packet-diameter.c2
-rw-r--r--packet-diffserv-mpls-common.c2
-rw-r--r--packet-diffserv-mpls-common.h2
-rw-r--r--packet-distcc.c2
-rw-r--r--packet-dlsw.c2
-rw-r--r--packet-dnp.c2
-rw-r--r--packet-dns.c2
-rw-r--r--packet-dns.h2
-rw-r--r--packet-dsi.c2
-rw-r--r--packet-dvmrp.c2
-rw-r--r--packet-dvmrp.h2
-rw-r--r--packet-e164.c2
-rw-r--r--packet-e164.h2
-rw-r--r--packet-eap.c2
-rw-r--r--packet-eapol.c2
-rw-r--r--packet-echo.c2
-rw-r--r--packet-edonkey.c2
-rw-r--r--packet-edonkey.h2
-rw-r--r--packet-eigrp.c2
-rw-r--r--packet-enc.c2
-rw-r--r--packet-enip.c2
-rw-r--r--packet-enrp.c2
-rw-r--r--packet-esis.c2
-rw-r--r--packet-esis.h2
-rw-r--r--packet-eth.c2
-rw-r--r--packet-eth.h2
-rw-r--r--packet-etherip.c2
-rw-r--r--packet-ethertype.c2
-rw-r--r--packet-fc.c2
-rw-r--r--packet-fc.h2
-rw-r--r--packet-fcbls.h2
-rw-r--r--packet-fcct.c2
-rw-r--r--packet-fcct.h2
-rw-r--r--packet-fcdns.c2
-rw-r--r--packet-fcdns.h2
-rw-r--r--packet-fcels.c2
-rw-r--r--packet-fcels.h2
-rw-r--r--packet-fcfcs.c2
-rw-r--r--packet-fcfcs.h2
-rw-r--r--packet-fcfzs.c2
-rw-r--r--packet-fcfzs.h2
-rw-r--r--packet-fcip.c2
-rw-r--r--packet-fclctl.c2
-rw-r--r--packet-fclctl.h2
-rw-r--r--packet-fcp.c2
-rw-r--r--packet-fcp.h2
-rw-r--r--packet-fcsb3.c2
-rwxr-xr-xpacket-fcsb3.h2
-rwxr-xr-xpacket-fcsp.c2
-rwxr-xr-xpacket-fcsp.h2
-rw-r--r--packet-fcswils.c2
-rw-r--r--packet-fcswils.h2
-rw-r--r--packet-fddi.c2
-rw-r--r--packet-fddi.h2
-rw-r--r--packet-fix.c2
-rw-r--r--packet-fr.c2
-rw-r--r--packet-frame.c2
-rw-r--r--packet-frame.h2
-rw-r--r--packet-ftam.c2
-rw-r--r--packet-ftam.h2
-rw-r--r--packet-ftp.c2
-rw-r--r--packet-fw1.c2
-rw-r--r--packet-gift.c2
-rw-r--r--packet-giop.c2
-rw-r--r--packet-giop.h2
-rw-r--r--packet-gmrp.c2
-rw-r--r--packet-gnutella.c2
-rw-r--r--packet-gnutella.h2
-rw-r--r--packet-gprs-llc.c2
-rw-r--r--packet-gprs-ns.c2
-rw-r--r--packet-gre.c2
-rw-r--r--packet-gsm_a.c2
-rw-r--r--packet-gsm_a.h2
-rw-r--r--packet-gsm_map.c2
-rw-r--r--packet-gsm_map.h2
-rw-r--r--packet-gsm_sms.c2
-rw-r--r--packet-gsm_sms.h2
-rwxr-xr-xpacket-gsm_sms_ud.c2
-rw-r--r--packet-gsm_ss.c2
-rw-r--r--packet-gsm_ss.h2
-rw-r--r--packet-gssapi.c2
-rw-r--r--packet-gssapi.h2
-rw-r--r--packet-gtp.c2
-rw-r--r--packet-gtp.h2
-rw-r--r--packet-gvrp.c2
-rw-r--r--packet-h1.c2
-rw-r--r--packet-h225.c2
-rw-r--r--packet-h225.h2
-rw-r--r--packet-h235.c2
-rw-r--r--packet-h235.h2
-rw-r--r--packet-h245.c2
-rw-r--r--packet-h245.h2
-rw-r--r--packet-h261.c2
-rw-r--r--packet-h263.c2
-rw-r--r--packet-h450.c2
-rw-r--r--packet-hclnfsd.c2
-rw-r--r--packet-hclnfsd.h2
-rw-r--r--packet-hpext.c2
-rw-r--r--packet-hpext.h2
-rw-r--r--packet-hsrp.c2
-rw-r--r--packet-http.c2
-rw-r--r--packet-http.h2
-rw-r--r--packet-hyperscsi.c2
-rw-r--r--packet-iapp.c2
-rw-r--r--packet-iax2.c2
-rw-r--r--packet-iax2.h2
-rw-r--r--packet-ib.c2
-rw-r--r--packet-icap.c2
-rw-r--r--packet-icmpv6.c2
-rw-r--r--packet-icp.c2
-rw-r--r--packet-icq.c2
-rw-r--r--packet-ieee80211.c2
-rw-r--r--packet-ieee80211.h2
-rw-r--r--packet-ieee8023.c2
-rw-r--r--packet-ieee8023.h2
-rw-r--r--packet-igap.c2
-rw-r--r--packet-igap.h2
-rw-r--r--packet-igmp.c2
-rw-r--r--packet-igmp.h2
-rw-r--r--packet-igrp.c2
-rwxr-xr-xpacket-image-gif.c2
-rw-r--r--packet-image-jfif.c2
-rw-r--r--packet-imap.c2
-rw-r--r--packet-ip.c2
-rw-r--r--packet-ip.h2
-rw-r--r--packet-ipdc.c2
-rw-r--r--packet-ipdc.h2
-rw-r--r--packet-ipfc.c2
-rw-r--r--packet-ipfc.h2
-rw-r--r--packet-ipmi.c2
-rw-r--r--packet-ipp.c2
-rw-r--r--packet-ipsec-udp.c2
-rw-r--r--packet-ipsec.c2
-rw-r--r--packet-ipsec.h2
-rw-r--r--packet-ipv6.c2
-rw-r--r--packet-ipv6.h2
-rw-r--r--packet-ipvs-syncd.c2
-rw-r--r--packet-ipx.c2
-rw-r--r--packet-ipx.h2
-rw-r--r--packet-ipxwan.c2
-rw-r--r--packet-irc.c2
-rw-r--r--packet-isakmp.c2
-rw-r--r--packet-iscsi.c2
-rw-r--r--packet-isdn.c2
-rw-r--r--packet-isis-clv.c2
-rw-r--r--packet-isis-clv.h2
-rw-r--r--packet-isis-hello.c2
-rw-r--r--packet-isis-hello.h2
-rw-r--r--packet-isis-lsp.c2
-rw-r--r--packet-isis-lsp.h2
-rw-r--r--packet-isis-snp.c2
-rw-r--r--packet-isis-snp.h2
-rw-r--r--packet-isis.c2
-rw-r--r--packet-isis.h2
-rw-r--r--packet-isl.c2
-rw-r--r--packet-isl.h2
-rw-r--r--packet-ismp.c2
-rw-r--r--packet-isns.c2
-rw-r--r--packet-isup.c2
-rw-r--r--packet-isup.h2
-rw-r--r--packet-iua.c2
-rw-r--r--packet-jabber.c2
-rw-r--r--packet-kadm5.c2
-rw-r--r--packet-kerberos.c2
-rw-r--r--packet-kerberos.h2
-rw-r--r--packet-klm.c2
-rw-r--r--packet-klm.h2
-rw-r--r--packet-kpasswd.c2
-rw-r--r--packet-l2tp.c2
-rw-r--r--packet-lapb.c2
-rw-r--r--packet-lapbether.c2
-rw-r--r--packet-lapd.c2
-rw-r--r--packet-laplink.c2
-rw-r--r--packet-ldap.c2
-rw-r--r--packet-ldap.h2
-rw-r--r--packet-ldp.c2
-rw-r--r--packet-ldp.h2
-rw-r--r--packet-llc.c2
-rw-r--r--packet-llc.h2
-rw-r--r--packet-lmi.c2
-rw-r--r--packet-lmp.c2
-rw-r--r--packet-lpd.c2
-rw-r--r--packet-lwapp.c2
-rw-r--r--packet-m2pa.c2
-rw-r--r--packet-m2tp.c2
-rw-r--r--packet-m2ua.c2
-rw-r--r--packet-m3ua.c2
-rw-r--r--packet-mbtcp.c2
-rw-r--r--packet-mdshdr.c2
-rwxr-xr-xpacket-media.c2
-rw-r--r--packet-mip.c2
-rw-r--r--packet-mip6.c2
-rw-r--r--packet-mip6.h2
-rw-r--r--packet-mmse.c2
-rw-r--r--packet-mount.c2
-rw-r--r--packet-mount.h2
-rw-r--r--packet-mpeg1.c2
-rw-r--r--packet-mpls-echo.c2
-rw-r--r--packet-mpls.c2
-rw-r--r--packet-mq-pcf.c2
-rw-r--r--packet-mq.c2
-rw-r--r--packet-mq.h2
-rw-r--r--packet-mrdisc.c2
-rw-r--r--packet-mrdisc.h2
-rw-r--r--packet-msdp.c2
-rw-r--r--packet-msn-messenger.c2
-rw-r--r--packet-msnip.c2
-rw-r--r--packet-msnip.h2
-rw-r--r--packet-msproxy.c2
-rw-r--r--packet-mtp2.c2
-rw-r--r--packet-mtp3.c2
-rw-r--r--packet-mtp3.h2
-rw-r--r--packet-mtp3mg.c2
-rwxr-xr-xpacket-multipart.c2
-rw-r--r--packet-mysql.c2
-rw-r--r--packet-nbipx.c2
-rw-r--r--packet-nbns.c2
-rw-r--r--packet-ncp-int.h2
-rw-r--r--packet-ncp-nmas.c2
-rw-r--r--packet-ncp-nmas.h2
-rw-r--r--packet-ncp.c2
-rw-r--r--packet-ncp2222.inc2
-rw-r--r--packet-ndmp.c2
-rw-r--r--packet-ndps.c2
-rw-r--r--packet-ndps.h2
-rw-r--r--packet-netbios.c2
-rw-r--r--packet-netbios.h2
-rw-r--r--packet-netflow.c2
-rw-r--r--packet-nfs.c2
-rw-r--r--packet-nfs.h2
-rw-r--r--packet-nfsacl.c2
-rw-r--r--packet-nfsauth.c2
-rw-r--r--packet-nisplus.c2
-rw-r--r--packet-nisplus.h2
-rw-r--r--packet-nlm.c2
-rw-r--r--packet-nlm.h2
-rw-r--r--packet-nlsp.c2
-rw-r--r--packet-nntp.c2
-rw-r--r--packet-nt-oui.c2
-rw-r--r--packet-nt-sonmp.c2
-rw-r--r--packet-nt-tpcp.c2
-rw-r--r--packet-ntlmssp.c2
-rw-r--r--packet-ntp.c2
-rw-r--r--packet-ntp.h2
-rw-r--r--packet-null.c2
-rw-r--r--packet-null.h2
-rw-r--r--packet-olsr.c2
-rw-r--r--packet-osi-options.c2
-rw-r--r--packet-osi-options.h2
-rw-r--r--packet-osi.c2
-rw-r--r--packet-osi.h2
-rw-r--r--packet-ospf.c2
-rw-r--r--packet-pcnfsd.c2
-rw-r--r--packet-pcnfsd.h2
-rw-r--r--packet-per.c2
-rw-r--r--packet-per.h2
-rw-r--r--packet-pflog.c2
-rw-r--r--packet-pflog.h2
-rw-r--r--packet-pgm.c2
-rw-r--r--packet-pim.c2
-rw-r--r--packet-pim.h2
-rw-r--r--packet-pktc.c2
-rw-r--r--packet-pktc.h2
-rw-r--r--packet-pop.c2
-rw-r--r--packet-portmap.c2
-rw-r--r--packet-portmap.h2
-rw-r--r--packet-postgresql.c2
-rw-r--r--packet-ppp.c2
-rw-r--r--packet-ppp.h2
-rw-r--r--packet-pppoe.c2
-rw-r--r--packet-pptp.c2
-rw-r--r--packet-pres.c2
-rw-r--r--packet-pres.h2
-rw-r--r--packet-prism.c2
-rw-r--r--packet-prism.h2
-rw-r--r--packet-q2931.c2
-rw-r--r--packet-q931.c2
-rw-r--r--packet-q931.h2
-rw-r--r--packet-q933.c2
-rw-r--r--packet-qllc.c2
-rw-r--r--packet-quake.c2
-rw-r--r--packet-quake2.c2
-rw-r--r--packet-quake3.c2
-rw-r--r--packet-quakeworld.c2
-rw-r--r--packet-radiotap.c2
-rw-r--r--packet-radiotap.h2
-rw-r--r--packet-radius.c2
-rw-r--r--packet-ranap.c2
-rw-r--r--packet-raw.c2
-rw-r--r--packet-raw.h2
-rw-r--r--packet-rip.c2
-rw-r--r--packet-ripng.c2
-rw-r--r--packet-ripng.h2
-rw-r--r--packet-rlogin.c2
-rw-r--r--packet-rmcp.c2
-rw-r--r--packet-rmi.c2
-rw-r--r--packet-rmi.h2
-rw-r--r--packet-rmp.c2
-rw-r--r--packet-rpc.c2
-rw-r--r--packet-rpc.h2
-rw-r--r--packet-rpl.c2
-rw-r--r--packet-rquota.c2
-rw-r--r--packet-rquota.h2
-rw-r--r--packet-rsh.c2
-rw-r--r--packet-rstat.c2
-rw-r--r--packet-rsvp.c2
-rw-r--r--packet-rsvp.h2
-rw-r--r--packet-rsync.c2
-rw-r--r--packet-rtcp.c2
-rw-r--r--packet-rtcp.h2
-rw-r--r--packet-rtp-events.c2
-rw-r--r--packet-rtp-events.h2
-rw-r--r--packet-rtp.c2
-rw-r--r--packet-rtp.h2
-rw-r--r--packet-rtps.c2
-rw-r--r--packet-rtps.h2
-rw-r--r--packet-rtsp.c2
-rw-r--r--packet-rwall.c2
-rw-r--r--packet-rwall.h2
-rw-r--r--packet-rx.c2
-rw-r--r--packet-rx.h2
-rw-r--r--packet-sadmind.c2
-rw-r--r--packet-sap.c2
-rw-r--r--packet-sccp.c2
-rwxr-xr-xpacket-sccpmg.c2
-rw-r--r--packet-scsi.c2
-rw-r--r--packet-scsi.h2
-rw-r--r--packet-sctp.c2
-rw-r--r--packet-sctp.h2
-rw-r--r--packet-sdlc.c2
-rw-r--r--packet-sdp.c2
-rw-r--r--packet-sebek.c2
-rw-r--r--packet-ses.c2
-rw-r--r--packet-ses.h2
-rw-r--r--packet-sflow.c2
-rw-r--r--packet-sigcomp.c2
-rw-r--r--packet-sip.c2
-rwxr-xr-xpacket-sip.h2
-rw-r--r--packet-sipfrag.c2
-rw-r--r--packet-skinny.c2
-rw-r--r--packet-slimp3.c2
-rw-r--r--packet-sll.c2
-rw-r--r--packet-sll.h2
-rw-r--r--packet-slowprotocols.c2
-rw-r--r--packet-slsk.c2
-rw-r--r--packet-smb-browse.c2
-rw-r--r--packet-smb-browse.h2
-rw-r--r--packet-smb-common.c2
-rw-r--r--packet-smb-common.h2
-rw-r--r--packet-smb-logon.c2
-rw-r--r--packet-smb-mailslot.c2
-rw-r--r--packet-smb-mailslot.h2
-rw-r--r--packet-smb-pipe.c2
-rw-r--r--packet-smb-pipe.h2
-rw-r--r--packet-smb-sidsnooping.c2
-rw-r--r--packet-smb-sidsnooping.h2
-rw-r--r--packet-smb.c2
-rw-r--r--packet-smpp.c2
-rw-r--r--packet-smtp.c2
-rw-r--r--packet-sna.c2
-rw-r--r--packet-sna.h2
-rw-r--r--packet-snaeth.c2
-rw-r--r--packet-sndcp.c2
-rw-r--r--packet-snmp.c2
-rw-r--r--packet-snmp.h2
-rw-r--r--packet-socks.c2
-rw-r--r--packet-spnego.c2
-rw-r--r--packet-spray.c2
-rw-r--r--packet-spray.h2
-rw-r--r--packet-srvloc.c2
-rw-r--r--packet-sscop.c2
-rw-r--r--packet-ssh.c2
-rw-r--r--packet-ssl.c2
-rw-r--r--packet-stat-notify.c2
-rw-r--r--packet-stat-notify.h2
-rw-r--r--packet-stat.c2
-rw-r--r--packet-stat.h2
-rw-r--r--packet-stun.c2
-rw-r--r--packet-sua.c2
-rw-r--r--packet-symantec.c2
-rw-r--r--packet-syslog.c2
-rw-r--r--packet-t38.c2
-rw-r--r--packet-tacacs.c2
-rw-r--r--packet-tacacs.h2
-rw-r--r--packet-tcap.c2
-rw-r--r--packet-tcap.h2
-rw-r--r--packet-tcp.c2
-rw-r--r--packet-tcp.h2
-rw-r--r--packet-tds.c2
-rw-r--r--packet-teimanagement.c2
-rw-r--r--packet-telnet.c2
-rw-r--r--packet-teredo.c2
-rw-r--r--packet-text-media.c2
-rw-r--r--packet-tftp.c2
-rw-r--r--packet-time.c2
-rw-r--r--packet-tns.c2
-rw-r--r--packet-tns.h2
-rw-r--r--packet-tpkt.c2
-rw-r--r--packet-tpkt.h2
-rw-r--r--packet-tr.c2
-rw-r--r--packet-tr.h2
-rw-r--r--packet-trmac.c2
-rw-r--r--packet-tsp.c2
-rw-r--r--packet-tuxedo.c2
-rw-r--r--packet-tzsp.c2
-rw-r--r--packet-ucp.c2
-rw-r--r--packet-udp.c2
-rw-r--r--packet-udp.h2
-rw-r--r--packet-v120.c2
-rw-r--r--packet-vines.c2
-rw-r--r--packet-vines.h2
-rw-r--r--packet-vj.c2
-rw-r--r--packet-vlan.c2
-rw-r--r--packet-vlan.h2
-rw-r--r--packet-vrrp.c2
-rw-r--r--packet-vtp.c2
-rw-r--r--packet-wap.c2
-rw-r--r--packet-wap.h2
-rw-r--r--packet-wbxml.c2
-rw-r--r--packet-wccp.c2
-rw-r--r--packet-wccp.h2
-rw-r--r--packet-wcp.c2
-rw-r--r--packet-wfleet-hdlc.c2
-rw-r--r--packet-who.c2
-rw-r--r--packet-wlancap.c2
-rw-r--r--packet-wlancap.h2
-rw-r--r--packet-wsp.c2
-rw-r--r--packet-wsp.h2
-rw-r--r--packet-wtls.c2
-rw-r--r--packet-wtls.h2
-rw-r--r--packet-wtp.c2
-rw-r--r--packet-wtp.h2
-rw-r--r--packet-x11-keysym.h2
-rw-r--r--packet-x11-keysymdef.h2
-rw-r--r--packet-x11.c2
-rw-r--r--packet-x25.c2
-rw-r--r--packet-x29.c2
-rw-r--r--packet-xdmcp.c2
-rw-r--r--packet-xot.c2
-rw-r--r--packet-xyplex.c2
-rw-r--r--packet-yhoo.c2
-rw-r--r--packet-ymsg.c2
-rw-r--r--packet-ypbind.c2
-rw-r--r--packet-ypbind.h2
-rw-r--r--packet-yppasswd.c2
-rw-r--r--packet-yppasswd.h2
-rw-r--r--packet-ypserv.c2
-rw-r--r--packet-ypserv.h2
-rw-r--r--packet-ypxfr.c2
-rw-r--r--packet-ypxfr.h2
-rw-r--r--packet-zebra.c2
-rw-r--r--pcap-util-int.h2
-rw-r--r--pcap-util-unix.c2
-rw-r--r--pcap-util.c820
-rw-r--r--pcap-util.h214
-rw-r--r--plugins/Makefile.am2
-rw-r--r--plugins/Makefile.nmake2
-rw-r--r--plugins/acn/ChangeLog2
-rw-r--r--plugins/acn/Makefile.am2
-rw-r--r--plugins/acn/Makefile.nmake2
-rw-r--r--plugins/acn/packet-acn.c2
-rw-r--r--plugins/artnet/ChangeLog2
-rw-r--r--plugins/artnet/Makefile.am2
-rw-r--r--plugins/artnet/Makefile.nmake2
-rw-r--r--plugins/artnet/packet-artnet.c2
-rw-r--r--plugins/asn1/Makefile.am2
-rw-r--r--plugins/asn1/Makefile.nmake2
-rw-r--r--plugins/asn1/packet-asn1.c2
-rw-r--r--plugins/ciscosm/Makefile.am2
-rw-r--r--plugins/ciscosm/Makefile.nmake2
-rw-r--r--plugins/ciscosm/packet-sm.c2
-rw-r--r--plugins/docsis/Makefile.am2
-rw-r--r--plugins/docsis/Makefile.nmake2
-rw-r--r--plugins/docsis/packet-bpkmattr.c2
-rw-r--r--plugins/docsis/packet-bpkmreq.c2
-rw-r--r--plugins/docsis/packet-bpkmrsp.c2
-rw-r--r--plugins/docsis/packet-docsis.c2
-rw-r--r--plugins/docsis/packet-docsis.h2
-rw-r--r--plugins/docsis/packet-dsaack.c2
-rw-r--r--plugins/docsis/packet-dsareq.c2
-rw-r--r--plugins/docsis/packet-dsarsp.c2
-rw-r--r--plugins/docsis/packet-dscack.c2
-rw-r--r--plugins/docsis/packet-dscreq.c2
-rw-r--r--plugins/docsis/packet-dscrsp.c2
-rw-r--r--plugins/docsis/packet-dsdreq.c2
-rw-r--r--plugins/docsis/packet-dsdrsp.c2
-rw-r--r--plugins/docsis/packet-intrngreq.c2
-rw-r--r--plugins/docsis/packet-macmgmt.c2
-rw-r--r--plugins/docsis/packet-map.c2
-rw-r--r--plugins/docsis/packet-regack.c2
-rw-r--r--plugins/docsis/packet-regreq.c2
-rw-r--r--plugins/docsis/packet-regrsp.c2
-rw-r--r--plugins/docsis/packet-rngreq.c2
-rw-r--r--plugins/docsis/packet-rngrsp.c2
-rw-r--r--plugins/docsis/packet-tlv.c2
-rw-r--r--plugins/docsis/packet-tlv.h2
-rw-r--r--plugins/docsis/packet-type29ucd.c2
-rw-r--r--plugins/docsis/packet-uccreq.c2
-rw-r--r--plugins/docsis/packet-uccrsp.c2
-rw-r--r--plugins/docsis/packet-ucd.c2
-rw-r--r--plugins/docsis/packet-vendor.c2
-rw-r--r--plugins/enttec/ChangeLog2
-rw-r--r--plugins/enttec/Makefile.am2
-rw-r--r--plugins/enttec/Makefile.nmake2
-rw-r--r--plugins/enttec/packet-enttec.c2
-rw-r--r--plugins/giop/Makefile.am2
-rw-r--r--plugins/giop/Makefile.nmake2
-rw-r--r--plugins/gryphon/Makefile.am2
-rw-r--r--plugins/gryphon/Makefile.nmake2
-rw-r--r--plugins/gryphon/packet-gryphon.c2
-rw-r--r--plugins/gryphon/packet-gryphon.h2
-rw-r--r--plugins/irda/Makefile.am2
-rw-r--r--plugins/irda/Makefile.nmake2
-rw-r--r--plugins/irda/irda-appl.h2
-rw-r--r--plugins/irda/packet-ircomm.c2
-rw-r--r--plugins/irda/packet-irda.c2
-rw-r--r--plugins/lwres/Makefile.am2
-rw-r--r--plugins/lwres/Makefile.nmake2
-rw-r--r--plugins/lwres/packet-lwres.c2
-rw-r--r--plugins/megaco/Makefile.am2
-rw-r--r--plugins/megaco/Makefile.nmake2
-rw-r--r--plugins/megaco/packet-megaco.c2
-rw-r--r--plugins/mgcp/Makefile.am2
-rw-r--r--plugins/mgcp/Makefile.nmake2
-rw-r--r--plugins/mgcp/packet-mgcp.c2
-rwxr-xr-xplugins/mgcp/packet-mgcp.h2
-rw-r--r--plugins/pcli/Makefile.am2
-rw-r--r--plugins/pcli/Makefile.nmake2
-rw-r--r--plugins/pcli/packet-pcli.c2
-rw-r--r--plugins/plugin_api.c2
-rw-r--r--plugins/plugin_api.h2
-rw-r--r--plugins/plugin_api_decls.h2
-rw-r--r--plugins/plugin_api_defs.h2
-rw-r--r--plugins/plugin_api_list.c2
-rw-r--r--plugins/plugin_gen.py2
-rw-r--r--plugins/plugin_table.h2
-rw-r--r--plugins/rdm/Makefile.am2
-rw-r--r--plugins/rdm/Makefile.nmake2
-rw-r--r--plugins/rdm/packet-rdm.c2
-rw-r--r--plugins/rlm/Makefile.am2
-rw-r--r--plugins/rlm/Makefile.nmake2
-rw-r--r--plugins/rlm/packet-rlm.c2
-rw-r--r--plugins/rtnet/Makefile.am2
-rw-r--r--plugins/rtnet/Makefile.nmake2
-rw-r--r--plugins/rtnet/packet-rtnet.c2
-rw-r--r--plugins/rudp/Makefile.am2
-rw-r--r--plugins/rudp/Makefile.nmake2
-rw-r--r--plugins/rudp/packet-rudp.c2
-rw-r--r--plugins/v5ua/Makefile.am2
-rw-r--r--plugins/v5ua/Makefile.nmake2
-rw-r--r--ppptypes.h2
-rw-r--r--prefs-int.h2
-rw-r--r--prefs.c2
-rw-r--r--prefs.h2
-rw-r--r--print.c2
-rw-r--r--print.h2
-rw-r--r--process-x11-fields.pl2
-rw-r--r--progress_dlg.h2
-rw-r--r--proto_hier_stats.c2
-rw-r--r--proto_hier_stats.h2
-rw-r--r--ps.h2
-rw-r--r--ptvcursor.c2
-rw-r--r--ptvcursor.h2
-rw-r--r--randpkt.c2
-rw-r--r--range.c2
-rw-r--r--range.h2
-rw-r--r--rdps.c2
-rw-r--r--reassemble.c2
-rw-r--r--reassemble.h2
-rw-r--r--register.h2
-rw-r--r--req_resp_hdrs.c2
-rw-r--r--req_resp_hdrs.h2
-rw-r--r--ringbuffer.c2
-rw-r--r--ringbuffer.h2
-rw-r--r--rpc_defrag.h2
-rw-r--r--rtp_pt.h2
-rw-r--r--sctpppids.h2
-rw-r--r--simple_dialog.h2
-rw-r--r--smb.h2
-rw-r--r--snprintf-imp.h2
-rw-r--r--snprintf.c2
-rw-r--r--snprintf.h2
-rw-r--r--statusbar.h2
-rw-r--r--strerror.c2
-rw-r--r--strerror.h2
-rw-r--r--strptime.h2
-rw-r--r--summary.c2
-rw-r--r--summary.h2
-rw-r--r--t35.c2
-rw-r--r--t35.h2
-rw-r--r--tap-ansi_astat.c2
-rw-r--r--tap-bootpstat.c2
-rw-r--r--tap-dcerpcstat.c2
-rw-r--r--tap-gsm_astat.c2
-rw-r--r--tap-h225counter.c2
-rwxr-xr-xtap-h225rassrt.c2
-rw-r--r--tap-httpstat.c2
-rw-r--r--tap-iostat.c2
-rw-r--r--tap-iousers.c2
-rw-r--r--tap-mgcpstat.c2
-rw-r--r--tap-protocolinfo.c2
-rw-r--r--tap-protohierstat.c2
-rw-r--r--tap-rpcprogs.c2
-rw-r--r--tap-rpcstat.c2
-rw-r--r--tap-sipstat.c2
-rw-r--r--tap-smbsids.c2
-rw-r--r--tap-smbstat.c2
-rw-r--r--tap-wspstat.c2
-rw-r--r--tap.c2
-rw-r--r--tap.h2
-rw-r--r--tap_dfilter_dlg.h2
-rw-r--r--tethereal.c2
-rw-r--r--text2pcap-scanner.l2
-rw-r--r--text2pcap.c2
-rw-r--r--text2pcap.h2
-rw-r--r--timestats.c2
-rw-r--r--timestats.h2
-rw-r--r--tools/Makefile.am2
-rwxr-xr-xtools/Makefile.nmake2
-rw-r--r--tools/asn2eth.py2
-rwxr-xr-xtools/cvsdiff-fix.py2
-rwxr-xr-xtools/dfilter-test.py2
-rw-r--r--tools/lemon/Makefile.am2
-rw-r--r--tools/lemon/Makefile.nmake2
-rw-r--r--tools/lemon/README2
-rw-r--r--tools/lemon/cppmagic.h2
-rw-r--r--tools/lemon/lemon.c2
-rw-r--r--tools/lemon/lemonflex-head.inc2
-rw-r--r--tools/lemon/lemonflex-tail.inc2
-rw-r--r--ui_util.h2
-rw-r--r--util.c2
-rw-r--r--util.h2
-rw-r--r--version_info.c2
-rw-r--r--version_info.h2
-rw-r--r--wiretap/5views.c2
-rw-r--r--wiretap/5views.h2
-rw-r--r--wiretap/Makefile.am2
-rw-r--r--wiretap/Makefile.nmake2
-rw-r--r--wiretap/README2
-rw-r--r--wiretap/README.developer2
-rw-r--r--wiretap/acinclude.m42
-rw-r--r--wiretap/airopeek9.c2
-rw-r--r--wiretap/airopeek9.h2
-rw-r--r--wiretap/ascend-grammar.y2
-rw-r--r--wiretap/ascend-int.h2
-rw-r--r--wiretap/ascend-scanner.l2
-rw-r--r--wiretap/ascend.c2
-rw-r--r--wiretap/ascend.h2
-rw-r--r--wiretap/atm.c2
-rw-r--r--wiretap/atm.h2
-rw-r--r--wiretap/buffer.c2
-rw-r--r--wiretap/buffer.h2
-rw-r--r--wiretap/config.h.win322
-rw-r--r--wiretap/configure.in2
-rw-r--r--wiretap/cosine.c2
-rw-r--r--wiretap/cosine.h2
-rw-r--r--wiretap/csids.c2
-rw-r--r--wiretap/csids.h2
-rw-r--r--wiretap/dbs-etherwatch.c2
-rw-r--r--wiretap/dbs-etherwatch.h2
-rw-r--r--wiretap/erf.c2
-rw-r--r--wiretap/erf.h2
-rw-r--r--wiretap/etherpeek.c2
-rw-r--r--wiretap/etherpeek.h2
-rw-r--r--wiretap/eyesdn.c2
-rw-r--r--wiretap/eyesdn.h2
-rw-r--r--wiretap/file_access.c2
-rw-r--r--wiretap/file_wrappers.c2
-rw-r--r--wiretap/file_wrappers.h2
-rw-r--r--wiretap/hcidump.c2
-rw-r--r--wiretap/hcidump.h2
-rw-r--r--wiretap/i4b_trace.h2
-rw-r--r--wiretap/i4btrace.c2
-rw-r--r--wiretap/i4btrace.h2
-rw-r--r--wiretap/iptrace.c2
-rw-r--r--wiretap/iptrace.h2
-rw-r--r--wiretap/lanalyzer.c2
-rw-r--r--wiretap/lanalyzer.h2
-rw-r--r--wiretap/libpcap.c2
-rw-r--r--wiretap/libpcap.h2
-rw-r--r--wiretap/netmon.c2
-rw-r--r--wiretap/netmon.h2
-rw-r--r--wiretap/nettl.c2
-rw-r--r--wiretap/nettl.h2
-rw-r--r--wiretap/network_instruments.c2
-rw-r--r--wiretap/network_instruments.h2
-rw-r--r--wiretap/netxray.c2
-rw-r--r--wiretap/netxray.h2
-rw-r--r--wiretap/ngsniffer.c2
-rw-r--r--wiretap/ngsniffer.h2
-rw-r--r--wiretap/pppdump.c2
-rw-r--r--wiretap/pppdump.h2
-rw-r--r--wiretap/radcom.c2
-rw-r--r--wiretap/radcom.h2
-rw-r--r--wiretap/snoop.c2
-rw-r--r--wiretap/snoop.h2
-rw-r--r--wiretap/toshiba.c2
-rw-r--r--wiretap/toshiba.h2
-rw-r--r--wiretap/visual.c2
-rw-r--r--wiretap/visual.h2
-rw-r--r--wiretap/vms.c2
-rw-r--r--wiretap/vms.h2
-rw-r--r--wiretap/wtap-capture.h2
-rw-r--r--wiretap/wtap-int.h2
-rw-r--r--wiretap/wtap.c2
-rw-r--r--wiretap/wtap.def64
-rw-r--r--wiretap/wtap.h2
-rw-r--r--wka.tmpl2
-rw-r--r--x11-fields2
-rw-r--r--x264_prt_id.h2
-rw-r--r--xdlc.c2
-rw-r--r--xdlc.h2
-rw-r--r--xmlstub.c2
1303 files changed, 6794 insertions, 6794 deletions
diff --git a/Ethereal.desktop b/Ethereal.desktop
index 19315d3499..9ee810b045 100644
--- a/Ethereal.desktop
+++ b/Ethereal.desktop
@@ -1,5 +1,5 @@
[Desktop Entry]
-# $Id: Ethereal.desktop,v 1.3 2004/02/20 13:50:06 jmayer Exp $
+# $Id$
Name=Ethereal
Type=Application
TryExec=ethereal
diff --git a/Makefile.am b/Makefile.am
index be2e106b21..1dc6b42192 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
# Makefile.am
# Automake file for Ethereal
#
-# $Id: Makefile.am,v 1.738 2004/06/29 03:04:02 gerald Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/Makefile.common b/Makefile.common
index 0ccb1a9e49..9c6c9f1a2e 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -3,7 +3,7 @@
# a) common to both files and
# b) portable between both files
#
-# $Id: Makefile.common,v 1.53 2004/07/13 05:29:22 guy Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/Makefile.nmake b/Makefile.nmake
index 1c84796759..dd94a0926c 100644
--- a/Makefile.nmake
+++ b/Makefile.nmake
@@ -1,7 +1,7 @@
## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.426 2004/07/13 19:30:02 gerald Exp $
+# $Id$
include config.nmake
include <win32.mak>
diff --git a/NEWS b/NEWS
index beded3dd43..e57d032bed 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-$Id: NEWS,v 1.156 2004/07/07 22:20:42 gerald Exp $
+$Id$
== July 7, 2004
diff --git a/README b/README
index 35704711d2..4616c620cd 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-$Id: README,v 1.66 2004/02/11 20:30:27 guy Exp $
+$Id$
General Information
------- -----------
diff --git a/README.aix b/README.aix
index fe9f8ee4a5..d48f49eb4f 100644
--- a/README.aix
+++ b/README.aix
@@ -1,4 +1,4 @@
-$Id: README.aix,v 1.6 2002/10/08 07:30:08 guy Exp $
+$Id$
libpcap 0.7.1 and later appear to work on AIX when using AIX's native
BPF; that appears to work better than DLPI does. Note that you may have
diff --git a/README.bsd b/README.bsd
index 47c4e05074..c8098e10bb 100644
--- a/README.bsd
+++ b/README.bsd
@@ -1,4 +1,4 @@
-$Id: README.bsd,v 1.2 2002/04/24 23:19:38 guy Exp $
+$Id$
In order to capture packets (with Ethereal/Tethereal, tcpdump, or any
other packet capture program) on a BSD system, your kernel must have
diff --git a/README.hpux b/README.hpux
index 263f6bf848..c0ac6cae9d 100644
--- a/README.hpux
+++ b/README.hpux
@@ -1,4 +1,4 @@
-$Id: README.hpux,v 1.19 2002/06/29 04:38:31 guy Exp $
+$Id$
Contents:
diff --git a/README.irix b/README.irix
index cbd4cd190c..07ef2a0c02 100644
--- a/README.irix
+++ b/README.irix
@@ -1,4 +1,4 @@
-$Id: README.irix,v 1.4 2001/01/10 09:54:44 guy Exp $
+$Id$
1. Some problems seen by one person who tried to build Ethereal on IRIX;
your mileage may vary.
diff --git a/README.linux b/README.linux
index adc952e61a..b683a1c8a6 100644
--- a/README.linux
+++ b/README.linux
@@ -1,4 +1,4 @@
-$Id: README.linux,v 1.8 2003/12/03 07:46:34 guy Exp $
+$Id$
In order to capture packets (with Ethereal/Tethereal, tcpdump, or any
other libpcap-based packet capture program) on a Linux system, the
diff --git a/README.macos b/README.macos
index 072760461b..c5ed137d67 100644
--- a/README.macos
+++ b/README.macos
@@ -1,4 +1,4 @@
-$Id: README.macos,v 1.9 2004/07/03 21:46:59 tuexen Exp $
+$Id$
This file tries to help building Ethereal for Mac OS X (Ethereal does
not work on earlier versions of Mac OS).
diff --git a/README.tru64 b/README.tru64
index 2f3524ac86..eeea5ffa3f 100644
--- a/README.tru64
+++ b/README.tru64
@@ -1,4 +1,4 @@
-$Id: README.tru64,v 1.3 2001/01/24 06:50:16 guy Exp $
+$Id$
The following instructions are applicable to Tru64 UNIX
(formerly Digital UNIX (formerly DEC OSF/1)) version 4.0, and
diff --git a/README.vmware b/README.vmware
index 617f368c8b..8f5b882f49 100644
--- a/README.vmware
+++ b/README.vmware
@@ -1,4 +1,4 @@
-$Id: README.vmware,v 1.2 2000/01/21 19:19:23 gram Exp $
+$Id$
If you are a registered user of VMware on Linux, you can contact their
support staff via e-mail and ask for a libpcap patch which will allow
diff --git a/README.win32 b/README.win32
index 6fd13a0089..8300f6de7a 100644
--- a/README.win32
+++ b/README.win32
@@ -1,4 +1,4 @@
-$Id: README.win32,v 1.71 2004/06/14 22:38:57 ulfl Exp $
+$Id$
Installing Ethereal, Tethereal, and Editcap on Win32
====================================================
diff --git a/TODO b/TODO
index 4800e54a7d..dd6643cad2 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-$Id: TODO,v 1.17 2004/04/25 22:25:52 jmayer Exp $
+$Id$
Things to do:
=============
diff --git a/acinclude.m4 b/acinclude.m4
index 69b2b8ce3f..efbca17769 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2,7 +2,7 @@ dnl Macros that test for specific features.
dnl This file is part of the Autoconf packaging for Ethereal.
dnl Copyright (C) 1998-2000 by Gerald Combs.
dnl
-dnl $Id: acinclude.m4,v 1.79 2004/06/29 07:59:12 guy Exp $
+dnl $Id$
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/aclocal-flags b/aclocal-flags
index ca21fd4d9b..3de5290449 100755
--- a/aclocal-flags
+++ b/aclocal-flags
@@ -21,7 +21,7 @@
# "aclocal" will look in that directory twice, and get well and truly
# confused, reporting a ton of duplicate macro definitions.)
#
-# $Id: aclocal-flags,v 1.9 2004/07/03 21:35:30 tuexen Exp $
+# $Id$
#
#
diff --git a/adler32.c b/adler32.c
index 77a27be24e..df9db65d43 100644
--- a/adler32.c
+++ b/adler32.c
@@ -3,7 +3,7 @@
* 2003 Tomas Kukosa
* Based on code from RFC 1950 (Chapter 9. Appendix: Sample code)
*
- * $Id: adler32.c,v 1.2 2003/10/02 22:44:18 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/adler32.h b/adler32.h
index f0912bc433..4e0f051f4c 100644
--- a/adler32.h
+++ b/adler32.h
@@ -2,7 +2,7 @@
* Compute the Adler32 checksum (RFC 1950)
* 2003 Tomas Kukosa
*
- * $Id: adler32.h,v 1.2 2003/10/02 22:44:19 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/afn.c b/afn.c
index 403b255a01..a245f3ba74 100644
--- a/afn.c
+++ b/afn.c
@@ -1,7 +1,7 @@
/* afn.c
* RFC 1700 address family numbers
*
- * $Id: afn.c,v 1.4 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/afn.h b/afn.h
index c1c8338b9d..d621c44821 100644
--- a/afn.h
+++ b/afn.h
@@ -1,7 +1,7 @@
/* afn.h
* RFC 1700 address family numbers
*
- * $Id: afn.h,v 1.3 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/aftypes.h b/aftypes.h
index 6c43295458..a0efad1a5c 100644
--- a/aftypes.h
+++ b/aftypes.h
@@ -1,7 +1,7 @@
/* aftypes.h
* AF_ values on various flavors of BSD
*
- * $Id: aftypes.h,v 1.3 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/alert_box.c b/alert_box.c
index 03cc03f555..6c3dba26c3 100644
--- a/alert_box.c
+++ b/alert_box.c
@@ -2,7 +2,7 @@
* Routines to put up various "standard" alert boxes used in multiple
* places
*
- * $Id: alert_box.c,v 1.7 2004/05/09 10:03:36 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/alert_box.h b/alert_box.h
index fbe4b1c463..0cac35bd71 100644
--- a/alert_box.h
+++ b/alert_box.h
@@ -2,7 +2,7 @@
* Routines to put up various "standard" alert boxes used in multiple
* places
*
- * $Id: alert_box.h,v 1.5 2004/04/16 23:16:28 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/arcnet_pids.h b/arcnet_pids.h
index fc77f70584..59b815f29d 100644
--- a/arcnet_pids.h
+++ b/arcnet_pids.h
@@ -2,7 +2,7 @@
* ARCNET protocol ID values
* Copyright 2001-2002, Peter Fales <ethereal@fales-lorenz.net>
*
- * $Id: arcnet_pids.h,v 1.4 2003/01/23 09:54:54 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/asn1.c b/asn1.c
index 6fad37d4ea..ce734b7ef0 100644
--- a/asn1.c
+++ b/asn1.c
@@ -1,7 +1,7 @@
/* asn1.c
* Routines for ASN.1 BER dissection
*
- * $Id: asn1.c,v 1.23 2003/11/09 22:57:52 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/asn1.h b/asn1.h
index 87c23c60e8..5d751ff7fd 100644
--- a/asn1.h
+++ b/asn1.h
@@ -1,7 +1,7 @@
/* asn1.h
* Definitions for ASN.1 BER dissection
*
- * $Id: asn1.h,v 1.15 2003/11/09 22:57:52 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/asn1/h235/h235.cnf b/asn1/h235/h235.cnf
index d591161047..88abce10d9 100644
--- a/asn1/h235/h235.cnf
+++ b/asn1/h235/h235.cnf
@@ -2,7 +2,7 @@
# H235-SECURITY-MESSAGES conformation file
# 2004 Tomas Kukosa
-# $Id: h235.cnf,v 1.4 2004/06/24 21:50:04 sahlberg Exp $
+# $Id$
#.EXPORTS
diff --git a/asn1/h235/packet-h235-template.c b/asn1/h235/packet-h235-template.c
index 2cd3c58dda..b3ab237b12 100644
--- a/asn1/h235/packet-h235-template.c
+++ b/asn1/h235/packet-h235-template.c
@@ -2,7 +2,7 @@
* Routines for H.235 packet dissection
* 2004 Tomas Kukosa
*
- * $Id: packet-h235-template.c,v 1.3 2004/06/04 11:30:35 sahlberg Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/asn1/h235/packet-h235-template.h b/asn1/h235/packet-h235-template.h
index b0881cc41f..4dbee63285 100644
--- a/asn1/h235/packet-h235-template.h
+++ b/asn1/h235/packet-h235-template.h
@@ -2,7 +2,7 @@
* Routines for H.235 packet dissection
* 2004 Tomas Kukosa
*
- * $Id: packet-h235-template.h,v 1.1 2004/05/24 08:42:29 sahlberg Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/autogen.sh b/autogen.sh
index 217dd49350..529aa10a2b 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -2,7 +2,7 @@
#
# Run this to generate all the initial makefiles.
#
-# $Id: autogen.sh,v 1.36 2004/05/26 10:41:14 jmayer Exp $
+# $Id$
DIE=true
PROJECT="Ethereal"
diff --git a/bridged_pids.h b/bridged_pids.h
index db675c864a..4a1c8751ae 100644
--- a/bridged_pids.h
+++ b/bridged_pids.h
@@ -2,7 +2,7 @@
* Definitions of protocol IDs for the 00-80-C2 OUI, used for
* bridging various networks over ATM (RFC 2684) or Frame Relay (RFC 2427).
*
- * $Id: bridged_pids.h,v 1.2 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/capture-wpcap.c b/capture-wpcap.c
index 50e86fb92f..ad9d7f28dc 100644
--- a/capture-wpcap.c
+++ b/capture-wpcap.c
@@ -3,7 +3,7 @@
* time, so that we only need one Ethereal binary and one Tethereal binary
* for Windows, regardless of whether WinPcap is installed or not.
*
- * $Id: capture-wpcap.c,v 1.10 2004/06/12 07:47:12 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/capture-wpcap.h b/capture-wpcap.h
index 66e3da2dd6..d53f22b3d2 100644
--- a/capture-wpcap.h
+++ b/capture-wpcap.h
@@ -1,6 +1,6 @@
/* capture-wpcap.h
*
- * $Id: capture-wpcap.h,v 1.2 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/capture.c b/capture.c
index d1f42929f2..7e02ee3b9c 100644
--- a/capture.c
+++ b/capture.c
@@ -1,7 +1,7 @@
/* capture.c
* Routines for packet capture windows
*
- * $Id: capture.c,v 1.254 2004/06/30 06:58:56 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/capture.h b/capture.h
index afaed06219..0ebede639b 100644
--- a/capture.h
+++ b/capture.h
@@ -1,7 +1,7 @@
/* capture.h
* Definitions for packet capture windows
*
- * $Id: capture.h,v 1.48 2004/07/06 19:16:03 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/capture_stop_conditions.c b/capture_stop_conditions.c
index 1b1adff53c..1eb7a443cd 100644
--- a/capture_stop_conditions.c
+++ b/capture_stop_conditions.c
@@ -1,7 +1,7 @@
/* capture_stop_conditions.c
* Implementation for 'stop condition handler'.
*
- * $Id: capture_stop_conditions.c,v 1.4 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/capture_stop_conditions.h b/capture_stop_conditions.h
index c5e8dcfb83..1dc1a49758 100644
--- a/capture_stop_conditions.h
+++ b/capture_stop_conditions.h
@@ -1,7 +1,7 @@
/* capture_stop_conditions.h
* Implementation for 'stop condition handler'.
*
- * $Id: capture_stop_conditions.h,v 1.2 2002/08/28 21:00:05 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/cfile.c b/cfile.c
index b5b62e8ad1..475906408d 100644
--- a/cfile.c
+++ b/cfile.c
@@ -2,7 +2,7 @@
* capture_file GUI-independent manipulation
* Vassilii Khachaturov <vassilii@tarunz.org>
*
- * $Id: cfile.c,v 1.1 2002/09/06 23:14:04 sahlberg Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/cfile.h b/cfile.h
index 0b9802e644..bcb5938e96 100644
--- a/cfile.h
+++ b/cfile.h
@@ -1,7 +1,7 @@
/* cfile.h
* capture_file definition & GUI-independent manipulation
*
- * $Id: cfile.h,v 1.10 2004/04/15 23:28:10 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/chdlctypes.h b/chdlctypes.h
index 5acf292fac..4237cfe4ca 100644
--- a/chdlctypes.h
+++ b/chdlctypes.h
@@ -1,7 +1,7 @@
/* chdlctypes.h
* Defines Cisco HDLC packet types that aren't just Ethernet types
*
- * $Id: chdlctypes.h,v 1.1 2003/01/11 10:16:22 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/cleanbld.bat b/cleanbld.bat
index d4a558f8e3..c7e57b3574 100644
--- a/cleanbld.bat
+++ b/cleanbld.bat
@@ -2,7 +2,7 @@ echo off
rem cleanbld.bat
rem Script to clean up from a build on another platform
rem
-rem $Id: cleanbld.bat,v 1.3 2003/04/07 18:43:03 guy Exp $
+rem $Id$
rem
rem Ethereal - Network traffic analyzer
rem By Gerald Combs <gerald@ethereal.com>
diff --git a/color.h b/color.h
index 4c99dde9d8..bbc04bd388 100644
--- a/color.h
+++ b/color.h
@@ -1,7 +1,7 @@
/* color.h
* Definitions for "toolkit-independent" colors
*
- * $Id: color.h,v 1.5 2004/01/09 20:19:34 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/column.c b/column.c
index e0674a292f..b17cfcd7c0 100644
--- a/column.c
+++ b/column.c
@@ -1,7 +1,7 @@
/* column.c
* Routines for handling column preferences
*
- * $Id: column.c,v 1.48 2004/07/05 09:29:04 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/column.h b/column.h
index 3bd17aab71..ecb9fc0bf5 100644
--- a/column.h
+++ b/column.h
@@ -1,7 +1,7 @@
/* column.h
* Definitions for column handling routines
*
- * $Id: column.h,v 1.10 2003/12/09 06:48:38 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/conditions.c b/conditions.c
index 9ff2aa6a01..f894312dba 100644
--- a/conditions.c
+++ b/conditions.c
@@ -1,7 +1,7 @@
/* conditions.c
* Implementation for condition handler.
*
- * $Id: conditions.c,v 1.6 2004/01/18 16:20:09 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/conditions.h b/conditions.h
index 7254f4c98f..7fbcdf7546 100644
--- a/conditions.h
+++ b/conditions.h
@@ -1,7 +1,7 @@
/* conditions.h
* Header for condition handler.
*
- * $Id: conditions.h,v 1.2 2002/08/28 21:00:06 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/config.h.win32 b/config.h.win32
index 514d0648e3..49b178bfe5 100644
--- a/config.h.win32
+++ b/config.h.win32
@@ -1,4 +1,4 @@
-/* $Id: config.h.win32,v 1.47 2004/06/20 09:31:48 ulfl Exp $ */
+/* $Id$ */
/* config.h.win32 Generated manually. :-) */
/* config.h. Generated automatically by configure. */
/* config.h.in. Generated automatically from configure.in by autoheader. */
diff --git a/config.nmake b/config.nmake
index ecc4732b9a..becc02a7d9 100644
--- a/config.nmake
+++ b/config.nmake
@@ -1,4 +1,4 @@
-# $Id: config.nmake,v 1.96 2004/07/13 18:19:59 gerald Exp $
+# $Id$
VERSION=0.10.5
#
diff --git a/configure.in b/configure.in
index c51f4f6c9a..a712bf4b76 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-# $Id: configure.in,v 1.274 2004/07/06 16:29:18 gerald Exp $
+# $Id$
#
AC_INIT(etypes.h)
diff --git a/crc16.c b/crc16.c
index bfaa42f9ad..5a4a7c4dd8 100644
--- a/crc16.c
+++ b/crc16.c
@@ -3,7 +3,7 @@
*
* 2004 Richard van der Hoff <richardv@mxtelecom.com>
*
- * $Id: crc16.c,v 1.2 2004/06/26 09:45:27 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@xxxxxxxxxxxx>
diff --git a/crc16.h b/crc16.h
index 237974e18b..19dc0d71ab 100644
--- a/crc16.h
+++ b/crc16.h
@@ -3,7 +3,7 @@
*
* 2004 Richard van der Hoff <richardv@mxtelecom.com>
*
- * $Id: crc16.h,v 1.1 2004/06/25 06:31:46 sahlberg Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@xxxxxxxxxxxx>
diff --git a/crc32.c b/crc32.c
index 0b46682933..0bee8bed50 100644
--- a/crc32.c
+++ b/crc32.c
@@ -1,7 +1,7 @@
/* crc32.c
* CRC-32 routine
*
- * $Id: crc32.c,v 1.4 2004/06/26 09:48:11 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/crc32.h b/crc32.h
index 17d5ca99a1..697b594996 100644
--- a/crc32.h
+++ b/crc32.h
@@ -1,7 +1,7 @@
/* crc32.h
* Declaration of CRC-32 routine and table
*
- * $Id: crc32.h,v 1.4 2004/06/26 09:48:11 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/crypt-des.c b/crypt-des.c
index f39e821579..5fc1c65274 100644
--- a/crypt-des.c
+++ b/crypt-des.c
@@ -6,7 +6,7 @@
Copyright (C) Andrew Tridgell 1998
- $Id: crypt-des.c,v 1.1 2002/12/31 08:05:29 guy Exp $
+ $Id$
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/crypt-des.h b/crypt-des.h
index 8f799be2d6..aa91cc6a4f 100644
--- a/crypt-des.h
+++ b/crypt-des.h
@@ -6,7 +6,7 @@
Copyright (C) Andrew Tridgell 1998
- $Id: crypt-des.h,v 1.1 2002/12/31 08:05:29 guy Exp $
+ $Id$
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/crypt-md4.c b/crypt-md4.c
index 6044b25a34..6fc10bab62 100644
--- a/crypt-md4.c
+++ b/crypt-md4.c
@@ -3,7 +3,7 @@
a implementation of MD4 designed for use in the SMB authentication protocol
Copyright (C) Andrew Tridgell 1997-1998.
- $Id: crypt-md4.c,v 1.2 2002/12/03 15:21:28 gerald Exp $
+ $Id$
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/crypt-md4.h b/crypt-md4.h
index 2fd554d29e..17b251d1da 100644
--- a/crypt-md4.h
+++ b/crypt-md4.h
@@ -3,7 +3,7 @@
a implementation of MD4 designed for use in the SMB authentication protocol
Copyright (C) Andrew Tridgell 1997-1998.
- $Id: crypt-md4.h,v 1.1 2002/12/03 00:37:27 guy Exp $
+ $Id$
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/crypt-md5.c b/crypt-md5.c
index 720ed9494a..a94d8a589b 100644
--- a/crypt-md5.c
+++ b/crypt-md5.c
@@ -21,7 +21,7 @@
ghost@aladdin.com
*/
-/* $Id: crypt-md5.c,v 1.2 2002/12/17 22:14:54 oabad Exp $ */
+/* $Id$ */
/*
Independent implementation of MD5 (RFC 1321).
diff --git a/crypt-md5.h b/crypt-md5.h
index c8275c284b..5eb6d6c469 100644
--- a/crypt-md5.h
+++ b/crypt-md5.h
@@ -21,7 +21,7 @@
ghost@aladdin.com
*/
-/* $Id: crypt-md5.h,v 1.1 2002/12/17 16:06:54 gerald Exp $ */
+/* $Id$ */
/*
Independent implementation of MD5 (RFC 1321).
diff --git a/crypt-rc4.c b/crypt-rc4.c
index 2ea651a6d8..79b40cb756 100644
--- a/crypt-rc4.c
+++ b/crypt-rc4.c
@@ -6,7 +6,7 @@
Copyright (C) Andrew Tridgell 1998
- $Id: crypt-rc4.c,v 1.2 2002/12/11 19:31:02 guy Exp $
+ $Id$
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/crypt-rc4.h b/crypt-rc4.h
index b76ecbb71b..37c1903eea 100644
--- a/crypt-rc4.h
+++ b/crypt-rc4.h
@@ -6,7 +6,7 @@
Copyright (C) Andrew Tridgell 1998
- $Id: crypt-rc4.h,v 1.2 2002/12/11 19:31:02 guy Exp $
+ $Id$
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/dftest.c b/dftest.c
index f28a808b6c..6c24fb5d16 100644
--- a/dftest.c
+++ b/dftest.c
@@ -1,6 +1,6 @@
/* dftest.c.c
*
- * $Id: dftest.c,v 1.11 2004/04/17 01:05:00 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/disabled_protos.c b/disabled_protos.c
index 11b45de9f6..e50adab9ef 100644
--- a/disabled_protos.c
+++ b/disabled_protos.c
@@ -1,7 +1,7 @@
/* disabled_protos.c
* Code for reading and writing the disabled protocols file.
*
- * $Id: disabled_protos.c,v 1.4 2004/01/03 18:40:07 sharpe Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/disabled_protos.h b/disabled_protos.h
index edb77c6cae..47ef105a3a 100644
--- a/disabled_protos.h
+++ b/disabled_protos.h
@@ -1,7 +1,7 @@
/* disabled_protos.h
* Declarations of routines for reading and writing the disabled protocols file.
*
- * $Id: disabled_protos.h,v 1.2 2004/01/03 18:40:07 sharpe Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 8fe6267dea..9a14b99132 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,7 +1,7 @@
# Makefile.am
# Automake file for Ethereal documentation
#
-# $Id: Makefile.am,v 1.26 2004/06/27 17:56:15 gerald Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/doc/Makefile.nmake b/doc/Makefile.nmake
index d342eeafab..ccae10f06e 100644
--- a/doc/Makefile.nmake
+++ b/doc/Makefile.nmake
@@ -1,7 +1,7 @@
# Makefile.nmake
# Nmake file for Ethereal documentation
#
-# $Id: Makefile.nmake,v 1.16 2004/05/22 17:14:32 ulfl Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/doc/README.capture b/doc/README.capture
index 354225d1d8..bb213a2df5 100644
--- a/doc/README.capture
+++ b/doc/README.capture
@@ -1,4 +1,4 @@
-$Id: README.capture,v 1.3 2004/02/02 23:55:41 ulfl Exp $
+$Id$
This document is an attempt, to bring some light to the things done, when
packet capturing is performed. There might be things missing, and others
diff --git a/doc/README.design b/doc/README.design
index d793c4fada..94705b6797 100644
--- a/doc/README.design
+++ b/doc/README.design
@@ -1,4 +1,4 @@
-$Id: README.design,v 1.1 2000/11/14 18:05:27 gram Exp $
+$Id$
Unfortunately, the closest thing to a design document is the
"README.developer" document in the "doc" directory of the Ethereal
diff --git a/doc/README.developer b/doc/README.developer
index 275cab86aa..35fc8e823b 100644
--- a/doc/README.developer
+++ b/doc/README.developer
@@ -1,4 +1,4 @@
-$Id: README.developer,v 1.98 2004/07/08 21:16:04 guy Exp $
+$Id$
This file is a HOWTO for Ethereal developers. It describes how to start coding
a Ethereal protocol dissector and the use some of the important functions and
@@ -373,12 +373,12 @@ code inside
is needed only if you are using the "snprintf()" function.
-The "$Id: README.developer,v 1.98 2004/07/08 21:16:04 guy Exp $"
+The "$Id$"
in the comment will be updated by CVS when the file is
checked in; it will allow the RCS "ident" command to report which
version of the file is currently checked out.
-When creating a new file, it is fine to just write "$Id: README.developer,v 1.98 2004/07/08 21:16:04 guy Exp $" as RCS will
+When creating a new file, it is fine to just write "$Id$" as RCS will
automatically fill in the identifier at the time the file will be added to the
CVS repository (checked in).
@@ -387,7 +387,7 @@ CVS repository (checked in).
* Routines for PROTONAME dissection
* Copyright 2000, YOUR_NAME <YOUR_EMAIL_ADDRESS>
*
- * $Id: README.developer,v 1.98 2004/07/08 21:16:04 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/doc/README.idl2eth b/doc/README.idl2eth
index afb35e295f..b116dbdc89 100644
--- a/doc/README.idl2eth
+++ b/doc/README.idl2eth
@@ -1,4 +1,4 @@
-$Id: README.idl2eth,v 1.2 2001/06/19 20:10:51 guy Exp $
+$Id$
Copyright (C) 2001 Frank Singleton <frank.singleton@ericsson.com>
diff --git a/doc/README.plugins b/doc/README.plugins
index e29e2b44bb..2fbc865c1b 100644
--- a/doc/README.plugins
+++ b/doc/README.plugins
@@ -1,4 +1,4 @@
-$Id: README.plugins,v 1.13 2004/07/03 21:50:05 tuexen Exp $
+$Id$
Plugins
diff --git a/doc/README.regression b/doc/README.regression
index 0a1f945edd..04f06bc0ab 100644
--- a/doc/README.regression
+++ b/doc/README.regression
@@ -1,7 +1,7 @@
#
# Ethereal/Tethereal Regression Testing
#
-# $Id: README.regression,v 1.3 2000/05/16 06:23:05 gram Exp $
+# $Id$
#
# This is a sample Makefile for regression testing of the
# Ethereal engine. These tests use that uses 'tethereal -V' to analyze all
diff --git a/doc/README.tapping b/doc/README.tapping
index d2117252db..182967ea53 100644
--- a/doc/README.tapping
+++ b/doc/README.tapping
@@ -1,4 +1,4 @@
-$Id: README.tapping,v 1.6 2003/11/29 12:34:33 jmayer Exp $
+$Id$
The TAP system in ethereal is a powerful and flexible mechanism to get event
driven notification on packets matching certain protocols and/or filters.
diff --git a/doc/README.tvbuff b/doc/README.tvbuff
index 249488b9f1..5cce7fb925 100644
--- a/doc/README.tvbuff
+++ b/doc/README.tvbuff
@@ -1,4 +1,4 @@
-$Id: README.tvbuff,v 1.7 2004/06/23 15:15:28 gram Exp $
+$Id$
TVBUFFs and Exceptions
diff --git a/doc/README.xml-output b/doc/README.xml-output
index bbf008c990..154b3940ab 100644
--- a/doc/README.xml-output
+++ b/doc/README.xml-output
@@ -1,6 +1,6 @@
Protocol Dissection in XML Format
=================================
-$Id: README.xml-output,v 1.3 2004/04/30 07:56:33 ulfl Exp $
+$Id$
Copyright (c) 2003 by Gilbert Ramirez <gram@alumni.rice.edu>
diff --git a/doc/dfilter2pod.pl b/doc/dfilter2pod.pl
index 4e080bdd14..cd97a3d0bb 100755
--- a/doc/dfilter2pod.pl
+++ b/doc/dfilter2pod.pl
@@ -9,7 +9,7 @@
# will be replaced by the pod-formatted glossary
# STDOUT is the output
#
-# $Id: dfilter2pod.pl,v 1.5 2004/04/28 17:50:02 obiot Exp $
+# $Id$
%ftenum_names = (
'FT_NONE', 'No value',
diff --git a/doc/eproto2sgml b/doc/eproto2sgml
index e81fe8eb8a..0c25a757b4 100644
--- a/doc/eproto2sgml
+++ b/doc/eproto2sgml
@@ -8,7 +8,7 @@
# will be replaced by the pod-formatted glossary
# STDOUT is the output
#
-# $Id: eproto2sgml,v 1.2 2001/04/19 23:17:30 guy Exp $
+# $Id$
# Read all the data into memory
while (<STDIN>) {
diff --git a/doc/randpkt.txt b/doc/randpkt.txt
index d2eb412db1..ce428f5e07 100644
--- a/doc/randpkt.txt
+++ b/doc/randpkt.txt
@@ -1,6 +1,6 @@
Random Packet Generator
-----------------------
-$Id: randpkt.txt,v 1.3 1999/09/17 04:38:23 gram Exp $
+$Id$
randpkt is a small utility creates a libpcap trace file full of random packets.
You can control the number of packets, the maximum size of each packet,
diff --git a/editcap.c b/editcap.c
index 9c5bd0e883..d6be0135fa 100644
--- a/editcap.c
+++ b/editcap.c
@@ -1,7 +1,7 @@
/* Edit capture files. We can delete records, adjust timestamps, or
* simply convert from one format to another format.
*
- * $Id: editcap.c,v 1.31 2004/02/23 05:44:34 sharpe Exp $
+ * $Id$
*
* Originally written by Richard Sharpe.
* Improved by Guy Harris.
diff --git a/epan/Makefile.am b/epan/Makefile.am
index fee59599e0..acee84de01 100644
--- a/epan/Makefile.am
+++ b/epan/Makefile.am
@@ -2,7 +2,7 @@
# Automake file for the EPAN library
# (Ethereal Protocol ANalyzer Library)
#
-# $Id: Makefile.am,v 1.53 2004/06/25 07:10:53 jmayer Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/Makefile.common b/epan/Makefile.common
index 068d329e78..2e2c50532e 100644
--- a/epan/Makefile.common
+++ b/epan/Makefile.common
@@ -3,7 +3,7 @@
# a) common to both files and
# b) portable between both files
#
-# $Id: Makefile.common,v 1.34 2004/07/13 05:29:23 guy Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/Makefile.nmake b/epan/Makefile.nmake
index 565f4d8088..f76e3018f5 100644
--- a/epan/Makefile.nmake
+++ b/epan/Makefile.nmake
@@ -1,7 +1,7 @@
## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.46 2004/07/07 16:23:12 ulfl Exp $
+# $Id$
include ..\config.nmake
include <win32.mak>
diff --git a/epan/README b/epan/README
index 99ed791b9e..91f9e765e9 100644
--- a/epan/README
+++ b/epan/README
@@ -1,3 +1,3 @@
-$Id: README,v 1.1 2000/10/16 23:17:39 guy Exp $
+$Id$
XXX - put something here
diff --git a/epan/addr_and_mask.c b/epan/addr_and_mask.c
index 73cd0b015b..2e3eaf2588 100644
--- a/epan/addr_and_mask.c
+++ b/epan/addr_and_mask.c
@@ -2,7 +2,7 @@
* Routines to fetch IPv4 and IPv6 addresses from a tvbuff and then mask
* out bits other than those covered by a prefix length
*
- * $Id: addr_and_mask.c,v 1.1 2004/03/06 03:25:10 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/addr_and_mask.h b/epan/addr_and_mask.h
index c05f335370..30e54bd70e 100644
--- a/epan/addr_and_mask.h
+++ b/epan/addr_and_mask.h
@@ -2,7 +2,7 @@
* Declarations of routines to fetch IPv4 and IPv6 addresses from a tvbuff
* and then mask out bits other than those covered by a prefix length
*
- * $Id: addr_and_mask.h,v 1.1 2004/03/06 03:25:10 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/atalk-utils.c b/epan/atalk-utils.c
index c91ecc1f82..07a6471526 100644
--- a/epan/atalk-utils.c
+++ b/epan/atalk-utils.c
@@ -1,7 +1,7 @@
/* atalk-utils.c
* Routines for Appletalk utilities (DDP, currently).
*
- * $Id: atalk-utils.c,v 1.4 2003/08/26 01:00:29 guy Exp $
+ * $Id$
*
* Simon Wilkinson <sxw@dcs.ed.ac.uk>
*
diff --git a/epan/atalk-utils.h b/epan/atalk-utils.h
index a6179f6ecc..74f5df263d 100644
--- a/epan/atalk-utils.h
+++ b/epan/atalk-utils.h
@@ -1,7 +1,7 @@
/* atalk-utils.h
* Definitions for Appletalk utilities (DDP, currently).
*
- * $Id: atalk-utils.h,v 1.4 2003/08/26 01:00:29 guy Exp $
+ * $Id$
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
diff --git a/epan/bitswap.c b/epan/bitswap.c
index 42a18914cf..8871292b3e 100644
--- a/epan/bitswap.c
+++ b/epan/bitswap.c
@@ -1,7 +1,7 @@
/* bitswap.c
* Table of bit-swapped values of bytes
*
- * $Id: bitswap.c,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/bitswap.h b/epan/bitswap.h
index 7042779aae..57aef9c773 100644
--- a/epan/bitswap.h
+++ b/epan/bitswap.h
@@ -1,7 +1,7 @@
/* bitswap.h
* Macro to bitswap a byte by looking it up in a table
*
- * $Id: bitswap.h,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/circuit.c b/epan/circuit.c
index 64fc6f9a0f..f4fb47ee85 100644
--- a/epan/circuit.c
+++ b/epan/circuit.c
@@ -1,7 +1,7 @@
/* circuit.c
* Routines for building lists of packets that are part of a "circuit"
*
- * $Id: circuit.c,v 1.8 2004/01/09 01:02:10 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/circuit.h b/epan/circuit.h
index 75577927bb..e273a0002c 100644
--- a/epan/circuit.h
+++ b/epan/circuit.h
@@ -1,7 +1,7 @@
/* circuit.h
* Routines for building lists of packets that are part of a "circuit"
*
- * $Id: circuit.h,v 1.5 2002/11/28 08:25:59 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/column-utils.c b/epan/column-utils.c
index 8f2e5de6f4..959cb64d9b 100644
--- a/epan/column-utils.c
+++ b/epan/column-utils.c
@@ -1,7 +1,7 @@
/* column-utils.c
* Routines for column utilities.
*
- * $Id: column-utils.c,v 1.48 2004/04/02 09:04:12 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/column-utils.h b/epan/column-utils.h
index 426862714a..770be8d39b 100644
--- a/epan/column-utils.h
+++ b/epan/column-utils.h
@@ -1,7 +1,7 @@
/* column-utils.h
* Definitions for column utility structures and routines
*
- * $Id: column-utils.h,v 1.12 2004/02/05 23:57:15 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/column_info.h b/epan/column_info.h
index 6556ad3d7b..85eff842e0 100644
--- a/epan/column_info.h
+++ b/epan/column_info.h
@@ -1,7 +1,7 @@
/* column.h
* Definitions for column structures and routines
*
- * $Id: column_info.h,v 1.13 2004/07/05 09:29:06 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/conversation.c b/epan/conversation.c
index 96ec73999a..dc1f7a9e97 100644
--- a/epan/conversation.c
+++ b/epan/conversation.c
@@ -1,7 +1,7 @@
/* conversation.c
* Routines for building lists of packets that are part of a "conversation"
*
- * $Id: conversation.c,v 1.25 2004/07/06 19:01:31 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/conversation.h b/epan/conversation.h
index fedb5d5ffe..b148d9aaa9 100644
--- a/epan/conversation.h
+++ b/epan/conversation.h
@@ -1,7 +1,7 @@
/* conversation.h
* Routines for building lists of packets that are part of a "conversation"
*
- * $Id: conversation.h,v 1.11 2004/07/06 19:01:32 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/Makefile.am b/epan/dfilter/Makefile.am
index 13567f10f4..dae7fe7a78 100644
--- a/epan/dfilter/Makefile.am
+++ b/epan/dfilter/Makefile.am
@@ -1,6 +1,6 @@
# Makefile.am
#
-# $Id: Makefile.am,v 1.11 2004/03/24 21:27:44 obiot Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/Makefile.nmake b/epan/dfilter/Makefile.nmake
index 5e0f6bcdef..21038114aa 100644
--- a/epan/dfilter/Makefile.nmake
+++ b/epan/dfilter/Makefile.nmake
@@ -1,7 +1,7 @@
## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.14 2004/06/26 02:16:16 guy Exp $
+# $Id$
include ..\..\config.nmake
diff --git a/epan/dfilter/README.dfilter b/epan/dfilter/README.dfilter
index fc45380dff..4c2cb69cf9 100755
--- a/epan/dfilter/README.dfilter
+++ b/epan/dfilter/README.dfilter
@@ -1,107 +1,107 @@
-$Id: README.dfilter,v 1.2 2004/05/08 11:40:29 obiot Exp $
-
-How does the display filter logic work?
-=======================================
-
-scanner.l looks at the display filter string and finds reserved words,
-punctuation, etc. This information gets passed to the parser produced by
-grammar.lemon. The grammar's job is to create a syntax-tree out of the
-information provided by the scanner. The syntax tree organizes the
-information from the scanner into something that is grammatical in the
-dfilter language.
-
-The routines in semcheck.c then check the semantics of the syntax tree, and do
-any modifications necessary to the syntax tree to make the dfilter work....
-things like converting val_strings to integers, etc.
-
-Then gencode.c converts the syntax tree into a list of "dfvm" (display filter
-virtual machine) instructions. These dfvm instructions are what runs the
-display filter engine.
-
-Example: add an 'in' display filter operation
-=============================================
-
-This example has been discussed on ethereal-dev in April 2004. It illustrates
-how a more complex operation can be added to the display filter language.
-
-Question:
-
- If I want to add an 'in' display filter operation, I need to define
- several things. This can happen in different ways. For instance,
- every value from the "in" value collection will result in a test.
- There are 2 options here, either a test for a single value:
-
- (x in {a b c})
-
- or a test for a value in a given range:
-
- (x in {a ... z})
-
- or even a combination of both. The former example can be reduced to:
-
- ((x == a) or (x == b) or (x == c))
-
- while the latter can be reduced to
-
- ((x >= MIN(a, z)) and (x <= MAX(a, z)))
-
- I understand that I can replace "x in {" with the following steps:
- first store x in the "in" test buffer, then add "(" to the display
- filter expression internally.
-
- Similarly I can replace the closing brace "}" with the following steps:
- release x from the "in" test buffer and then add ")" to the display
- filter expression internally.
-
- How could I do this?
-
-Answer:
-
- This could be done in grammar.lemon. The grammar would produce syntax
- tree nodes, combining them with "or", when it is given tokens that
- represent the "in" syntax.
-
- It could also be done later in the process, maybe in semcheck.c. But
- if you can do it earlier, in grammar.lemon, then you shouldn't have to
- worry about modifying anything in semcheck.c, as the syntax tree that
- is passed to semcheck.c won't contain any new type of operators... just
- lots of nodes combined with "or".
-
-How to add an operator FOO to the display filter language?
-==========================================================
-
-Go to ethereal/epan/dfilter/
-
-Edit grammar.lemon and add the operator. Add the operator FOO and the test logic (defining TEST_OP_FOO).
-
-Edit scanner.l and add the operator name(s) hence defining TOKEN_TEST_FOO. Also update the simple() or add the new operand's code.
-
-Edit sttype-test.h and add the TEST_OP_FOO to the list of test operations.
-
-Edit sttype-test.c and add TEST_OP_FOO to the num_operands() method.
-
-Edit gencode.c, add TEST_OP_FOO in the gen_test() method by defining ANY_FOO.
-
-Edit dfvm.h and add ANY_FOO to the enum dfvm_opcode_t structure.
-
-Edit dfvm.c and add ANY_FOO to dfvm_dump() (for the dftest display filter test binary), to dfvm_apply() hence defining the methods fvalue_foo().
-
-Edit semcheck.c and look at the check_relation_XXX() methods if they still apply to the foo operator; if not, amend the code. Start from the check_test() method to discover the logic.
-
-Go to ethereal/epan/ftypes/
-
-Edit ftypes.h and declare the fvalue_foo(), ftype_can_foo() and fvalue_foo() methods. Add the cmp_foo() method to the struct _ftype_t.
-
-This is the first time that a make in ethereal/epan/dfilter/ can succeed. If it fails, then some code in the previously edited files must be corrected.
-
-Edit ftypes.c and define the fvalue_foo() method with its associated logic. Define also the ftype_can_foo() and fvalue_foo() methods.
-
-Edit all ftype-*.c files and add the required fvalue_foo() methods.
-
-This is the point where you should be able to compile without errors in ethereal/epan/ftypes/. If not, first fix the errors.
-
-Go to ethereal/epan/ and run make. If this one succeeds, then we're almost done as no errors should occur here.
-
-Go to ethereal/ and run make. One thing to do is make dftest and see if you can construct valid display filters with your new operator. Or you may want to move directly to the generation of ethereal.
-
-Look also at ethereal/gtk/dfilter_expr_dlg.c and edit the display filter expression generator.
+$Id$
+
+How does the display filter logic work?
+=======================================
+
+scanner.l looks at the display filter string and finds reserved words,
+punctuation, etc. This information gets passed to the parser produced by
+grammar.lemon. The grammar's job is to create a syntax-tree out of the
+information provided by the scanner. The syntax tree organizes the
+information from the scanner into something that is grammatical in the
+dfilter language.
+
+The routines in semcheck.c then check the semantics of the syntax tree, and do
+any modifications necessary to the syntax tree to make the dfilter work....
+things like converting val_strings to integers, etc.
+
+Then gencode.c converts the syntax tree into a list of "dfvm" (display filter
+virtual machine) instructions. These dfvm instructions are what runs the
+display filter engine.
+
+Example: add an 'in' display filter operation
+=============================================
+
+This example has been discussed on ethereal-dev in April 2004. It illustrates
+how a more complex operation can be added to the display filter language.
+
+Question:
+
+ If I want to add an 'in' display filter operation, I need to define
+ several things. This can happen in different ways. For instance,
+ every value from the "in" value collection will result in a test.
+ There are 2 options here, either a test for a single value:
+
+ (x in {a b c})
+
+ or a test for a value in a given range:
+
+ (x in {a ... z})
+
+ or even a combination of both. The former example can be reduced to:
+
+ ((x == a) or (x == b) or (x == c))
+
+ while the latter can be reduced to
+
+ ((x >= MIN(a, z)) and (x <= MAX(a, z)))
+
+ I understand that I can replace "x in {" with the following steps:
+ first store x in the "in" test buffer, then add "(" to the display
+ filter expression internally.
+
+ Similarly I can replace the closing brace "}" with the following steps:
+ release x from the "in" test buffer and then add ")" to the display
+ filter expression internally.
+
+ How could I do this?
+
+Answer:
+
+ This could be done in grammar.lemon. The grammar would produce syntax
+ tree nodes, combining them with "or", when it is given tokens that
+ represent the "in" syntax.
+
+ It could also be done later in the process, maybe in semcheck.c. But
+ if you can do it earlier, in grammar.lemon, then you shouldn't have to
+ worry about modifying anything in semcheck.c, as the syntax tree that
+ is passed to semcheck.c won't contain any new type of operators... just
+ lots of nodes combined with "or".
+
+How to add an operator FOO to the display filter language?
+==========================================================
+
+Go to ethereal/epan/dfilter/
+
+Edit grammar.lemon and add the operator. Add the operator FOO and the test logic (defining TEST_OP_FOO).
+
+Edit scanner.l and add the operator name(s) hence defining TOKEN_TEST_FOO. Also update the simple() or add the new operand's code.
+
+Edit sttype-test.h and add the TEST_OP_FOO to the list of test operations.
+
+Edit sttype-test.c and add TEST_OP_FOO to the num_operands() method.
+
+Edit gencode.c, add TEST_OP_FOO in the gen_test() method by defining ANY_FOO.
+
+Edit dfvm.h and add ANY_FOO to the enum dfvm_opcode_t structure.
+
+Edit dfvm.c and add ANY_FOO to dfvm_dump() (for the dftest display filter test binary), to dfvm_apply() hence defining the methods fvalue_foo().
+
+Edit semcheck.c and look at the check_relation_XXX() methods if they still apply to the foo operator; if not, amend the code. Start from the check_test() method to discover the logic.
+
+Go to ethereal/epan/ftypes/
+
+Edit ftypes.h and declare the fvalue_foo(), ftype_can_foo() and fvalue_foo() methods. Add the cmp_foo() method to the struct _ftype_t.
+
+This is the first time that a make in ethereal/epan/dfilter/ can succeed. If it fails, then some code in the previously edited files must be corrected.
+
+Edit ftypes.c and define the fvalue_foo() method with its associated logic. Define also the ftype_can_foo() and fvalue_foo() methods.
+
+Edit all ftype-*.c files and add the required fvalue_foo() methods.
+
+This is the point where you should be able to compile without errors in ethereal/epan/ftypes/. If not, first fix the errors.
+
+Go to ethereal/epan/ and run make. If this one succeeds, then we're almost done as no errors should occur here.
+
+Go to ethereal/ and run make. One thing to do is make dftest and see if you can construct valid display filters with your new operator. Or you may want to move directly to the generation of ethereal.
+
+Look also at ethereal/gtk/dfilter_expr_dlg.c and edit the display filter expression generator.
diff --git a/epan/dfilter/dfilter-int.h b/epan/dfilter/dfilter-int.h
index 51e3a4b530..00a03d07f5 100644
--- a/epan/dfilter/dfilter-int.h
+++ b/epan/dfilter/dfilter-int.h
@@ -1,5 +1,5 @@
/*
- * $Id: dfilter-int.h,v 1.9 2004/06/15 10:38:14 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/dfilter.c b/epan/dfilter/dfilter.c
index 35efd9a8fb..08a4b55a66 100644
--- a/epan/dfilter/dfilter.c
+++ b/epan/dfilter/dfilter.c
@@ -1,5 +1,5 @@
/*
- * $Id: dfilter.c,v 1.18 2004/06/16 07:33:46 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/dfilter.h b/epan/dfilter/dfilter.h
index 764876223b..f2f16d783f 100644
--- a/epan/dfilter/dfilter.h
+++ b/epan/dfilter/dfilter.h
@@ -1,5 +1,5 @@
/*
- * $Id: dfilter.h,v 1.9 2004/05/09 10:03:40 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/dfvm.c b/epan/dfilter/dfvm.c
index 8d4b9fa6f6..ee99069603 100644
--- a/epan/dfilter/dfvm.c
+++ b/epan/dfilter/dfvm.c
@@ -1,5 +1,5 @@
/*
- * $Id: dfvm.c,v 1.15 2004/02/27 12:00:30 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/dfvm.h b/epan/dfilter/dfvm.h
index 16292b03ce..862bb0a313 100644
--- a/epan/dfilter/dfvm.h
+++ b/epan/dfilter/dfvm.h
@@ -1,5 +1,5 @@
/*
- * $Id: dfvm.h,v 1.11 2004/02/27 12:00:30 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/drange.c b/epan/dfilter/drange.c
index 7e03790434..5a374ea786 100644
--- a/epan/dfilter/drange.c
+++ b/epan/dfilter/drange.c
@@ -1,7 +1,7 @@
/* drange.c
* Routines for providing general range support to the dfilter library
*
- * $Id: drange.c,v 1.4 2002/08/28 20:40:55 jmayer Exp $
+ * $Id$
*
* Copyright (c) 2000 by Ed Warnicke <hagbard@physics.rutgers.edu>
*
diff --git a/epan/dfilter/drange.h b/epan/dfilter/drange.h
index a0d1f3bf4c..6a139681fc 100644
--- a/epan/dfilter/drange.h
+++ b/epan/dfilter/drange.h
@@ -1,7 +1,7 @@
/* drange.h
* Routines for providing general range support to the dfilter library
*
- * $Id: drange.h,v 1.4 2004/01/18 15:34:23 jmayer Exp $
+ * $Id$
*
* Copyright (c) 2000 by Ed Warnicke <hagbard@physics.rutgers.edu>
*
diff --git a/epan/dfilter/gencode.c b/epan/dfilter/gencode.c
index 281d676cc6..1c56896311 100644
--- a/epan/dfilter/gencode.c
+++ b/epan/dfilter/gencode.c
@@ -1,5 +1,5 @@
/*
- * $Id: gencode.c,v 1.13 2004/02/27 12:00:30 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/glib-util.c b/epan/dfilter/glib-util.c
index 880e91eb29..6e2e5f8f25 100644
--- a/epan/dfilter/glib-util.c
+++ b/epan/dfilter/glib-util.c
@@ -1,4 +1,4 @@
-/* $Id: glib-util.c,v 1.2 2002/08/28 20:40:55 jmayer Exp $ */
+/* $Id$ */
#include <string.h>
#include <glib.h>
diff --git a/epan/dfilter/glib-util.h b/epan/dfilter/glib-util.h
index 90a81f7eed..1460bdee1c 100644
--- a/epan/dfilter/glib-util.h
+++ b/epan/dfilter/glib-util.h
@@ -1,4 +1,4 @@
-/* $Id: glib-util.h,v 1.1 2001/02/01 20:21:18 gram Exp $ */
+/* $Id$ */
char*
g_substrdup(const char *s, int start, int len);
diff --git a/epan/dfilter/grammar.lemon b/epan/dfilter/grammar.lemon
index 76bab3c851..c9d66fba2b 100644
--- a/epan/dfilter/grammar.lemon
+++ b/epan/dfilter/grammar.lemon
@@ -1,4 +1,4 @@
-/* $Id: grammar.lemon,v 1.10 2004/06/03 07:36:24 guy Exp $ */
+/* $Id$ */
%include {
#ifdef HAVE_CONFIG_H
diff --git a/epan/dfilter/scanner.l b/epan/dfilter/scanner.l
index e4fdaca5c6..10d3f19b28 100644
--- a/epan/dfilter/scanner.l
+++ b/epan/dfilter/scanner.l
@@ -1,6 +1,6 @@
%{
/*
- * $Id: scanner.l,v 1.20 2004/06/03 07:36:24 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/semcheck.c b/epan/dfilter/semcheck.c
index 20e933e5a9..8672e07906 100644
--- a/epan/dfilter/semcheck.c
+++ b/epan/dfilter/semcheck.c
@@ -1,5 +1,5 @@
/*
- * $Id: semcheck.c,v 1.28 2004/06/15 10:16:10 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/semcheck.h b/epan/dfilter/semcheck.h
index ddd44a89b4..fec5d80e96 100644
--- a/epan/dfilter/semcheck.h
+++ b/epan/dfilter/semcheck.h
@@ -1,5 +1,5 @@
/*
- * $Id: semcheck.h,v 1.3 2002/08/28 20:40:56 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/sttype-integer.c b/epan/dfilter/sttype-integer.c
index f046b65cfd..c8765dac0f 100644
--- a/epan/dfilter/sttype-integer.c
+++ b/epan/dfilter/sttype-integer.c
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-integer.c,v 1.2 2002/08/28 20:40:56 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/sttype-pointer.c b/epan/dfilter/sttype-pointer.c
index aaaa0dd9d4..3879fdae14 100644
--- a/epan/dfilter/sttype-pointer.c
+++ b/epan/dfilter/sttype-pointer.c
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-pointer.c,v 1.3 2002/08/28 20:40:56 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/sttype-range.c b/epan/dfilter/sttype-range.c
index a87c3e99b7..c1be33af6c 100644
--- a/epan/dfilter/sttype-range.c
+++ b/epan/dfilter/sttype-range.c
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-range.c,v 1.5 2002/08/28 20:40:56 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/sttype-range.h b/epan/dfilter/sttype-range.h
index 3b11fd6543..b4fc480148 100644
--- a/epan/dfilter/sttype-range.h
+++ b/epan/dfilter/sttype-range.h
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-range.h,v 1.4 2002/08/28 20:40:56 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/sttype-string.c b/epan/dfilter/sttype-string.c
index 160fce82d7..bc92d8ae8b 100644
--- a/epan/dfilter/sttype-string.c
+++ b/epan/dfilter/sttype-string.c
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-string.c,v 1.4 2003/07/25 03:44:01 gram Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/sttype-test.c b/epan/dfilter/sttype-test.c
index 930cf1121c..9a0408efaf 100644
--- a/epan/dfilter/sttype-test.c
+++ b/epan/dfilter/sttype-test.c
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-test.c,v 1.6 2004/02/27 12:00:31 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/sttype-test.h b/epan/dfilter/sttype-test.h
index 1814b8c236..ad615f0a4d 100644
--- a/epan/dfilter/sttype-test.h
+++ b/epan/dfilter/sttype-test.h
@@ -1,5 +1,5 @@
/*
- * $Id: sttype-test.h,v 1.6 2004/02/27 12:00:31 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/dfilter/syntax-tree.c b/epan/dfilter/syntax-tree.c
index 53c9b31259..00dae06dd5 100644
--- a/epan/dfilter/syntax-tree.c
+++ b/epan/dfilter/syntax-tree.c
@@ -1,5 +1,5 @@
/*
- * $Id: syntax-tree.c,v 1.6 2004/06/03 07:36:25 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/dfilter/syntax-tree.h b/epan/dfilter/syntax-tree.h
index 121e32e6f3..15c8d18745 100644
--- a/epan/dfilter/syntax-tree.h
+++ b/epan/dfilter/syntax-tree.h
@@ -1,5 +1,5 @@
/*
- * $Id: syntax-tree.h,v 1.6 2004/06/03 07:36:25 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/epan.c b/epan/epan.c
index 68e425d120..29c3661ca7 100644
--- a/epan/epan.c
+++ b/epan/epan.c
@@ -1,6 +1,6 @@
/* epan.h
*
- * $Id: epan.c,v 1.25 2004/04/16 23:16:28 guy Exp $
+ * $Id$
*
* Ethereal Protocol Analyzer Library
*/
diff --git a/epan/epan.h b/epan/epan.h
index 829baa4e47..990259380c 100644
--- a/epan/epan.h
+++ b/epan/epan.h
@@ -1,6 +1,6 @@
/* epan.h
*
- * $Id: epan.h,v 1.17 2004/04/16 23:16:28 guy Exp $
+ * $Id$
*
* Ethereal Protocol Analyzer Library
*
diff --git a/epan/epan_dissect.h b/epan/epan_dissect.h
index 09c809ce66..160c4b4c4b 100644
--- a/epan/epan_dissect.h
+++ b/epan/epan_dissect.h
@@ -1,6 +1,6 @@
/* epan_dissect.h
*
- * $Id: epan_dissect.h,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal Protocol Analyzer Library
*
diff --git a/epan/except.c b/epan/except.c
index 9f4bd69cf0..3073b7372d 100644
--- a/epan/except.c
+++ b/epan/except.c
@@ -13,7 +13,7 @@
* This source code may be translated into executable form and incorporated
* into proprietary software; there is no requirement for such software to
* contain a copyright notice related to this source.
- * $Id: except.c,v 1.3 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
* $Name: $
*/
@@ -27,7 +27,7 @@
#define XCEPT_BUFFER_SIZE 1024
#ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: except.c,v 1.3 2002/08/28 20:40:44 jmayer Exp $";
+static const char rcsid[] = "$Id$";
#endif
#define group except_group
diff --git a/epan/except.h b/epan/except.h
index 3687252730..459555d210 100644
--- a/epan/except.h
+++ b/epan/except.h
@@ -14,7 +14,7 @@
* into proprietary software; there is no requirement for such software to
* contain a copyright notice related to this source.
*
- * $Id: except.h,v 1.4 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
* $Name: $
*/
diff --git a/epan/filesystem.c b/epan/filesystem.c
index 2de5a75f51..0966e95ce7 100644
--- a/epan/filesystem.c
+++ b/epan/filesystem.c
@@ -1,7 +1,7 @@
/* filesystem.c
* Filesystem utility routines
*
- * $Id: filesystem.c,v 1.29 2004/01/24 02:01:43 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/filesystem.h b/epan/filesystem.h
index e0d7295a5a..85834d342e 100644
--- a/epan/filesystem.h
+++ b/epan/filesystem.h
@@ -1,7 +1,7 @@
/* filesystem.h
* Filesystem utility definitions
*
- * $Id: filesystem.h,v 1.17 2004/01/24 02:01:43 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/frame_data.c b/epan/frame_data.c
index c1053181a8..092c9642e0 100644
--- a/epan/frame_data.c
+++ b/epan/frame_data.c
@@ -1,7 +1,7 @@
/* frame_data.c
* Routines for packet disassembly
*
- * $Id: frame_data.c,v 1.5 2003/07/08 05:29:42 tpot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/frame_data.h b/epan/frame_data.h
index d45a820c3b..7582ad216a 100644
--- a/epan/frame_data.h
+++ b/epan/frame_data.h
@@ -1,7 +1,7 @@
/* frame_data.h
* Definitions for frame_data structures and routines
*
- * $Id: frame_data.h,v 1.13 2004/01/31 04:10:05 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/Makefile.am b/epan/ftypes/Makefile.am
index fc6965fe21..2c6893beb5 100644
--- a/epan/ftypes/Makefile.am
+++ b/epan/ftypes/Makefile.am
@@ -1,6 +1,6 @@
# Makefile.am
#
-# $Id: Makefile.am,v 1.8 2004/04/14 18:42:19 obiot Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@zing.org>
diff --git a/epan/ftypes/Makefile.nmake b/epan/ftypes/Makefile.nmake
index 5f45c4586f..e64f9695e8 100644
--- a/epan/ftypes/Makefile.nmake
+++ b/epan/ftypes/Makefile.nmake
@@ -1,7 +1,7 @@
## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.10 2004/06/26 02:16:16 guy Exp $
+# $Id$
include ..\..\config.nmake
diff --git a/epan/ftypes/ftype-bytes.c b/epan/ftypes/ftype-bytes.c
index b1dddb073c..a2ac8a1de2 100644
--- a/epan/ftypes/ftype-bytes.c
+++ b/epan/ftypes/ftype-bytes.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-bytes.c,v 1.26 2004/06/06 14:29:07 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-double.c b/epan/ftypes/ftype-double.c
index 7275ac9bee..5c60941d2e 100644
--- a/epan/ftypes/ftype-double.c
+++ b/epan/ftypes/ftype-double.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-double.c,v 1.13 2004/02/27 12:00:31 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-integer.c b/epan/ftypes/ftype-integer.c
index 7990915aa7..a807a08064 100644
--- a/epan/ftypes/ftype-integer.c
+++ b/epan/ftypes/ftype-integer.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-integer.c,v 1.17 2004/02/27 12:00:31 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-ipv4.c b/epan/ftypes/ftype-ipv4.c
index 3c44aeaaa3..027fa81fcf 100644
--- a/epan/ftypes/ftype-ipv4.c
+++ b/epan/ftypes/ftype-ipv4.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-ipv4.c,v 1.16 2004/02/27 12:00:32 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-none.c b/epan/ftypes/ftype-none.c
index 5230a2a1f3..61e23937c7 100644
--- a/epan/ftypes/ftype-none.c
+++ b/epan/ftypes/ftype-none.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-none.c,v 1.9 2004/02/27 12:00:32 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/ftypes/ftype-pcre.c b/epan/ftypes/ftype-pcre.c
index f658672c03..dea1f04ec5 100755
--- a/epan/ftypes/ftype-pcre.c
+++ b/epan/ftypes/ftype-pcre.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-pcre.c,v 1.3 2004/02/27 12:00:32 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-string.c b/epan/ftypes/ftype-string.c
index 1b757f447c..fcbc0b4daa 100644
--- a/epan/ftypes/ftype-string.c
+++ b/epan/ftypes/ftype-string.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-string.c,v 1.23 2004/05/09 08:25:52 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-time.c b/epan/ftypes/ftype-time.c
index 0616fdeec3..9f6c6c177b 100644
--- a/epan/ftypes/ftype-time.c
+++ b/epan/ftypes/ftype-time.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-time.c,v 1.23 2004/02/27 12:00:32 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftype-tvbuff.c b/epan/ftypes/ftype-tvbuff.c
index 8206f75024..7ee00a6365 100644
--- a/epan/ftypes/ftype-tvbuff.c
+++ b/epan/ftypes/ftype-tvbuff.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftype-tvbuff.c,v 1.18 2004/02/27 12:00:32 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftypes-int.h b/epan/ftypes/ftypes-int.h
index f5c464f9a8..3f0411c7f0 100644
--- a/epan/ftypes/ftypes-int.h
+++ b/epan/ftypes/ftypes-int.h
@@ -1,5 +1,5 @@
/*
- * $Id: ftypes-int.h,v 1.12 2003/12/10 21:12:02 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftypes.c b/epan/ftypes/ftypes.c
index 211d33accf..ca0ea446ec 100644
--- a/epan/ftypes/ftypes.c
+++ b/epan/ftypes/ftypes.c
@@ -1,5 +1,5 @@
/*
- * $Id: ftypes.c,v 1.26 2004/07/04 02:29:43 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ftypes/ftypes.h b/epan/ftypes/ftypes.h
index 6796920790..93050f4f78 100644
--- a/epan/ftypes/ftypes.h
+++ b/epan/ftypes/ftypes.h
@@ -1,7 +1,7 @@
/* ftypes.h
* Definitions for field types
*
- * $Id: ftypes.h,v 1.35 2004/07/04 02:29:43 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/gdebug.h b/epan/gdebug.h
index 676b931411..fee2d64d37 100644
--- a/epan/gdebug.h
+++ b/epan/gdebug.h
@@ -2,7 +2,7 @@
*
* Useful macro for use during development.
*
- * $Id: gdebug.h,v 1.3 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/inet_aton.h b/epan/inet_aton.h
index 41a8826625..deb7008c99 100644
--- a/epan/inet_aton.h
+++ b/epan/inet_aton.h
@@ -1,6 +1,6 @@
/* inet_aton.h
*
- * $Id: inet_aton.h,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/inet_ntop.c b/epan/inet_ntop.c
index a746a480f1..65b4db3a44 100644
--- a/epan/inet_ntop.c
+++ b/epan/inet_ntop.c
@@ -20,7 +20,7 @@
#endif
#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id: inet_ntop.c,v 1.7 2002/10/29 00:28:10 guy Exp $";
+static char rcsid[] = "$Id$";
#endif /* LIBC_SCCS and not lint */
#ifdef HAVE_SYS_PARAM_H
diff --git a/epan/inet_pton.c b/epan/inet_pton.c
index 99426e5178..eb52c31c7c 100644
--- a/epan/inet_pton.c
+++ b/epan/inet_pton.c
@@ -20,7 +20,7 @@
#endif
#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] = "$Id: inet_pton.c,v 1.5 2002/10/29 00:28:10 guy Exp $";
+static char rcsid[] = "$Id$";
#endif /* LIBC_SCCS and not lint */
#ifdef HAVE_SYS_PARAM_H
diff --git a/epan/inet_v6defs.h b/epan/inet_v6defs.h
index 2510605e7c..1fe7f14223 100644
--- a/epan/inet_v6defs.h
+++ b/epan/inet_v6defs.h
@@ -1,6 +1,6 @@
/* inet_v6defs.h
*
- * $Id: inet_v6defs.h,v 1.3 2003/02/28 05:09:50 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/int-64bit.c b/epan/int-64bit.c
index 70d14858fe..060003d841 100644
--- a/epan/int-64bit.c
+++ b/epan/int-64bit.c
@@ -2,7 +2,7 @@
* Routines for handling of 64-bit integers
* 2001 Ronnie Sahlberg
*
- * $Id: int-64bit.c,v 1.3 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/int-64bit.h b/epan/int-64bit.h
index 40f65fb6f0..bd15a37720 100644
--- a/epan/int-64bit.h
+++ b/epan/int-64bit.h
@@ -1,7 +1,7 @@
/* int-64bit.h
* Handling of 64-bit integers
*
- * $Id: int-64bit.h,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
diff --git a/epan/ipv4.c b/epan/ipv4.c
index 45de381d20..7dfae9761b 100644
--- a/epan/ipv4.c
+++ b/epan/ipv4.c
@@ -5,7 +5,7 @@
*
* Gilbert Ramirez <gram@alumni.rice.edu>
*
- * $Id: ipv4.c,v 1.7 2004/02/01 02:35:29 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ipv4.h b/epan/ipv4.h
index 6b7e135998..4a63db6142 100644
--- a/epan/ipv4.h
+++ b/epan/ipv4.h
@@ -5,7 +5,7 @@
*
* Gilbert Ramirez <gram@alumni.rice.edu>
*
- * $Id: ipv4.h,v 1.5 2003/07/31 04:18:00 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/ipv6-utils.h b/epan/ipv6-utils.h
index 0cdeff9e1b..129bd58e96 100644
--- a/epan/ipv6-utils.h
+++ b/epan/ipv6-utils.h
@@ -1,7 +1,7 @@
/* ipv6-utils.h
* Definitions for IPv6 packet disassembly
*
- * $Id: ipv6-utils.h,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/nstime.h b/epan/nstime.h
index 2cadd521d1..188b96b450 100644
--- a/epan/nstime.h
+++ b/epan/nstime.h
@@ -1,7 +1,7 @@
/* nstime.h
* Definition of data structure to hold time values with nanosecond resolution
*
- * $Id: nstime.h,v 1.2 2002/08/28 20:40:44 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/osi-utils.c b/epan/osi-utils.c
index d62b2fac9e..1f1c3f339f 100644
--- a/epan/osi-utils.c
+++ b/epan/osi-utils.c
@@ -2,7 +2,7 @@
* Routines for ISO/OSI network and transport protocol packet disassembly
* Main entrance point and common functions
*
- * $Id: osi-utils.c,v 1.14 2003/11/20 19:05:40 guy Exp $
+ * $Id$
* Laurent Deniel <laurent.deniel@free.fr>
* Ralf Schneider <Ralf.Schneider@t-online.de>
*
diff --git a/epan/osi-utils.h b/epan/osi-utils.h
index 198c3e4821..bfdd30bba5 100644
--- a/epan/osi-utils.h
+++ b/epan/osi-utils.h
@@ -1,6 +1,6 @@
/* osi-utils.h
*
- * $Id: osi-utils.h,v 1.5 2003/08/26 01:00:29 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/packet.c b/epan/packet.c
index 7f3ddaf343..cbe03dbee6 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -1,7 +1,7 @@
/* packet.c
* Routines for packet disassembly
*
- * $Id: packet.c,v 1.104 2004/04/23 19:47:11 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/packet.h b/epan/packet.h
index 3476744e3a..6d52783431 100644
--- a/epan/packet.h
+++ b/epan/packet.h
@@ -1,7 +1,7 @@
/* packet.h
* Definitions for packet disassembly structures and routines
*
- * $Id: packet.h,v 1.74 2004/06/19 00:07:23 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/packet_info.h b/epan/packet_info.h
index d0f4321342..e0557e9c77 100644
--- a/epan/packet_info.h
+++ b/epan/packet_info.h
@@ -1,7 +1,7 @@
/* packet_info.h
* Definitions for packet info structures and routines
*
- * $Id: packet_info.h,v 1.41 2004/06/25 06:31:47 sahlberg Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/pint.h b/epan/pint.h
index 353ad31f48..8e1f5e05f3 100644
--- a/epan/pint.h
+++ b/epan/pint.h
@@ -2,7 +2,7 @@
* Definitions for extracting and translating integers safely and portably
* via pointers.
*
- * $Id: pint.h,v 1.8 2003/07/29 20:50:39 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/plugins.c b/epan/plugins.c
index de32b7ba99..588895eff5 100644
--- a/epan/plugins.c
+++ b/epan/plugins.c
@@ -1,7 +1,7 @@
/* plugins.c
* plugin routines
*
- * $Id: plugins.c,v 1.85 2004/06/30 08:21:57 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/plugins.h b/epan/plugins.h
index 864b9fdf06..e314f45f0c 100644
--- a/epan/plugins.h
+++ b/epan/plugins.h
@@ -1,7 +1,7 @@
/* plugins.h
* definitions for plugins structures
*
- * $Id: plugins.h,v 1.11 2004/05/20 13:48:25 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/proto.c b/epan/proto.c
index 1cc57e6f6c..5ba424ed58 100644
--- a/epan/proto.c
+++ b/epan/proto.c
@@ -1,7 +1,7 @@
/* proto.c
* Routines for protocol tree
*
- * $Id: proto.c,v 1.136 2004/07/09 21:52:03 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/proto.h b/epan/proto.h
index 2cacd6139c..28ac125db5 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -1,7 +1,7 @@
/* proto.h
* Definitions for protocol display
*
- * $Id: proto.h,v 1.68 2004/05/15 00:52:02 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/report_err.h b/epan/report_err.h
index d2659ac1f5..f3440bb141 100644
--- a/epan/report_err.h
+++ b/epan/report_err.h
@@ -2,7 +2,7 @@
* Declarations of routines for dissectors to use to report errors to
* the user (e.g., problems with preference settings)
*
- * $Id: report_err.h,v 1.2 2004/04/16 23:16:28 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/resolv.c b/epan/resolv.c
index 72f0cbbb20..7d7acbbb51 100644
--- a/epan/resolv.c
+++ b/epan/resolv.c
@@ -1,7 +1,7 @@
/* resolv.c
* Routines for network object lookup
*
- * $Id: resolv.c,v 1.44 2004/06/25 07:00:54 jmayer Exp $
+ * $Id$
*
* Laurent Deniel <laurent.deniel@free.fr>
*
diff --git a/epan/resolv.h b/epan/resolv.h
index 8d5c810111..65ad162a3b 100644
--- a/epan/resolv.h
+++ b/epan/resolv.h
@@ -1,7 +1,7 @@
/* resolv.h
* Definitions for network object lookup
*
- * $Id: resolv.h,v 1.18 2004/06/25 07:00:54 jmayer Exp $
+ * $Id$
*
* Laurent Deniel <laurent.deniel@free.fr>
*
diff --git a/epan/slab.h b/epan/slab.h
index a2182eb3e1..aecb20c7e2 100644
--- a/epan/slab.h
+++ b/epan/slab.h
@@ -1,7 +1,7 @@
/* slab.h
* Definitions for very simple slab handling
*
- * $Id: slab.h,v 1.4 2004/07/04 02:29:43 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/sna-utils.c b/epan/sna-utils.c
index 2c12ea272f..d9a4b93898 100644
--- a/epan/sna-utils.c
+++ b/epan/sna-utils.c
@@ -2,7 +2,7 @@
* Routines for SNA
* Gilbert Ramirez <gram@alumni.rice.edu>
*
- * $Id: sna-utils.c,v 1.5 2003/08/26 01:00:30 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/sna-utils.h b/epan/sna-utils.h
index 281ea62b00..d8125edb28 100644
--- a/epan/sna-utils.h
+++ b/epan/sna-utils.h
@@ -1,7 +1,7 @@
/* sna-utils.h
* Definitions for SNA dissection.
*
- * $Id: sna-utils.h,v 1.4 2003/08/26 01:00:30 guy Exp $
+ * $Id$
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
diff --git a/epan/strutil.c b/epan/strutil.c
index b2b72457b7..b9f068f406 100644
--- a/epan/strutil.c
+++ b/epan/strutil.c
@@ -1,7 +1,7 @@
/* strutil.c
* String utility routines
*
- * $Id: strutil.c,v 1.21 2004/06/06 14:29:07 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/strutil.h b/epan/strutil.h
index 4f4e8bcca9..17136f3d72 100644
--- a/epan/strutil.h
+++ b/epan/strutil.h
@@ -1,7 +1,7 @@
/* strutil.h
* String utility definitions
*
- * $Id: strutil.h,v 1.16 2004/06/06 14:29:07 gerald Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/timestamp.c b/epan/timestamp.c
index 8be46ef9c0..d948fda3d5 100755
--- a/epan/timestamp.c
+++ b/epan/timestamp.c
@@ -1,7 +1,7 @@
/* timestamp.c
* Routines for timestamp type setting.
*
- * $Id: timestamp.c,v 1.2 2004/03/20 08:32:03 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/timestamp.h b/epan/timestamp.h
index 60bbd8d3e5..706fba4ce9 100644
--- a/epan/timestamp.h
+++ b/epan/timestamp.h
@@ -1,7 +1,7 @@
/* timestamp.h
* Defines for packet timestamps
*
- * $Id: timestamp.h,v 1.5 2004/03/18 19:04:32 obiot Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/to_str.c b/epan/to_str.c
index 8de4d93775..cd8597c8b6 100644
--- a/epan/to_str.c
+++ b/epan/to_str.c
@@ -1,7 +1,7 @@
/* to_str.c
* Routines for utilities to convert various other types to strings.
*
- * $Id: to_str.c,v 1.45 2004/06/16 23:09:43 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/to_str.h b/epan/to_str.h
index bf71418871..56e1460d67 100644
--- a/epan/to_str.h
+++ b/epan/to_str.h
@@ -1,7 +1,7 @@
/* to_str.h
* Definitions for utilities to convert various other types to strings.
*
- * $Id: to_str.h,v 1.22 2004/01/10 12:50:19 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/epan/tvbtest.c b/epan/tvbtest.c
index 0d0e104d6d..80e624cc58 100644
--- a/epan/tvbtest.c
+++ b/epan/tvbtest.c
@@ -2,7 +2,7 @@
*
* tvbtest : tvbtest.o tvbuff.o except.o
*
- * $Id: tvbtest.c,v 1.3 2002/08/28 20:40:45 jmayer Exp $
+ * $Id$
*
* Copyright (c) 2000 by Gilbert Ramirez <gram@alumni.rice.edu>
*
diff --git a/epan/tvbuff.c b/epan/tvbuff.c
index 43536e36db..c28176f928 100644
--- a/epan/tvbuff.c
+++ b/epan/tvbuff.c
@@ -9,7 +9,7 @@
* the data of a backing tvbuff, or can be a composite of
* other tvbuffs.
*
- * $Id: tvbuff.c,v 1.65 2004/05/10 22:14:07 obiot Exp $
+ * $Id$
*
* Copyright (c) 2000 by Gilbert Ramirez <gram@alumni.rice.edu>
*
diff --git a/epan/tvbuff.h b/epan/tvbuff.h
index 7fff54d325..d286ae64f0 100644
--- a/epan/tvbuff.h
+++ b/epan/tvbuff.h
@@ -9,7 +9,7 @@
* the data of a backing tvbuff, or can be a composite of
* other tvbuffs.
*
- * $Id: tvbuff.h,v 1.42 2004/05/05 06:55:09 obiot Exp $
+ * $Id$
*
* Copyright (c) 2000 by Gilbert Ramirez <gram@alumni.rice.edu>
*
diff --git a/epan/value_string.c b/epan/value_string.c
index f5c1cbe5a3..9aa5858a66 100644
--- a/epan/value_string.c
+++ b/epan/value_string.c
@@ -1,7 +1,7 @@
/* value_string.c
* Routines for value_strings
*
- * $Id: value_string.c,v 1.5 2003/12/01 23:41:44 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/epan/value_string.h b/epan/value_string.h
index c2680d4c75..85fe2c1c22 100644
--- a/epan/value_string.h
+++ b/epan/value_string.h
@@ -1,7 +1,7 @@
/* value_string.h
* Definitions for value_string structures and routines
*
- * $Id: value_string.h,v 1.6 2004/05/07 11:34:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/ethereal_be.py b/ethereal_be.py
index 4863137ef3..6a30a40d60 100644
--- a/ethereal_be.py
+++ b/ethereal_be.py
@@ -1,6 +1,6 @@
# -*- python -*-
#
-# $Id: ethereal_be.py,v 1.6 2001/11/19 22:58:49 guy Exp $
+# $Id$
#
# File : ethereal_be.py
#
diff --git a/ethereal_gen.py b/ethereal_gen.py
index 78bd1fca28..2dacf1eaf4 100644
--- a/ethereal_gen.py
+++ b/ethereal_gen.py
@@ -1,6 +1,6 @@
# -*- python -*-
#
-# $Id: ethereal_gen.py,v 1.29 2004/02/20 13:51:30 jmayer Exp $
+# $Id$
#
# ethereal_gen.py (part of idl2eth)
#
diff --git a/etypes.h b/etypes.h
index ce5032498e..45f1856020 100644
--- a/etypes.h
+++ b/etypes.h
@@ -1,7 +1,7 @@
/* etypes.h
* Defines ethernet packet types, similar to tcpdump's ethertype.h
*
- * $Id: etypes.h,v 1.39 2004/04/07 06:04:22 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/file.c b/file.c
index 24f46b8100..6983ff11d1 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
- * $Id: file.c,v 1.389 2004/07/08 11:07:29 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/file.h b/file.h
index f7743a84a1..c161fcc590 100644
--- a/file.h
+++ b/file.h
@@ -1,7 +1,7 @@
/* file.h
* Definitions for file structures and routines
*
- * $Id: file.h,v 1.119 2004/07/08 10:36:26 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/filters.c b/filters.c
index aa58bcad4c..2a695f1956 100644
--- a/filters.c
+++ b/filters.c
@@ -1,7 +1,7 @@
/* filters.c
* Code for reading and writing the filters file.
*
- * $Id: filters.c,v 1.16 2003/12/04 00:45:37 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/filters.h b/filters.h
index cbea1b9c56..d059c8cc80 100644
--- a/filters.h
+++ b/filters.h
@@ -1,7 +1,7 @@
/* filters.c
* Declarations of routines for reading and writing the filters file.
*
- * $Id: filters.h,v 1.4 2003/12/04 00:45:37 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/follow.c b/follow.c
index 10dd121e60..19e14303b2 100644
--- a/follow.c
+++ b/follow.c
@@ -1,6 +1,6 @@
/* follow.c
*
- * $Id: follow.c,v 1.34 2004/01/23 01:42:45 jmayer Exp $
+ * $Id$
*
* Copyright 1998 Mike Hall <mlh@io.com>
*
diff --git a/follow.h b/follow.h
index 3510bb2d8c..013519d43e 100644
--- a/follow.h
+++ b/follow.h
@@ -1,6 +1,6 @@
/* follow.h
*
- * $Id: follow.h,v 1.15 2004/05/09 10:03:37 guy Exp $
+ * $Id$
*
* Copyright 1998 Mike Hall <mlh@io.com>
*
diff --git a/format-oid.h b/format-oid.h
index ce6f79d2f4..07c33cb231 100644
--- a/format-oid.h
+++ b/format-oid.h
@@ -1,7 +1,7 @@
/* format-oid.h
* Declare routine for formatting OIDs
*
- * $Id: format-oid.h,v 1.3 2003/09/08 19:40:10 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/g711.c b/g711.c
index 8d0b419898..7fddaed43a 100644
--- a/g711.c
+++ b/g711.c
@@ -1,5 +1,5 @@
/*
- * $Id: g711.c,v 1.3 2003/03/10 19:58:47 guy Exp $
+ * $Id$
*
* This source code is a product of Sun Microsystems, Inc. and is provided
* for unrestricted use. Users may copy or modify this source code without
diff --git a/g711.h b/g711.h
index 958c314d2a..84ac202e7a 100644
--- a/g711.h
+++ b/g711.h
@@ -3,7 +3,7 @@
*
* Definitions for routines for u-law, A-law and linear PCM conversions
*
- * $Id: g711.h,v 1.2 2003/03/06 21:57:17 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/getopt.c b/getopt.c
index 241ed1328a..3f7390672a 100644
--- a/getopt.c
+++ b/getopt.c
@@ -1,6 +1,6 @@
/* Getopt for GNU.
- $Id: getopt.c,v 1.4 2002/08/28 21:00:06 jmayer Exp $
+ $Id$
NOTE: getopt is now part of the C library, so if you don't know what
"Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
diff --git a/globals.h b/globals.h
index fcf5d15860..dabc2ae263 100644
--- a/globals.h
+++ b/globals.h
@@ -1,7 +1,7 @@
/* globals.h
* Global defines, etc.
*
- * $Id: globals.h,v 1.34 2004/06/01 17:37:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/greproto.h b/greproto.h
index 01150ae3a9..367751bed5 100644
--- a/greproto.h
+++ b/greproto.h
@@ -10,7 +10,7 @@
* definition for them; when this file is empty, get rid of all includes
* of it, and get rid of it.
*
- * $Id: greproto.h,v 1.3 2002/08/28 21:00:06 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 8f2b6e2cc5..928f53b43a 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -1,7 +1,7 @@
# Makefile.am
# Automake file for the GTK interface routines for Ethereal
#
-# $Id: Makefile.am,v 1.107 2004/07/09 23:02:37 guy Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/Makefile.common b/gtk/Makefile.common
index 6b92a0b343..58d776b670 100644
--- a/gtk/Makefile.common
+++ b/gtk/Makefile.common
@@ -3,7 +3,7 @@
# a) common to both files and
# b) portable between both files
#
-# $Id: Makefile.common,v 1.16 2004/06/21 17:25:19 ulfl Exp $
+# $Id$
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/Makefile.nmake b/gtk/Makefile.nmake
index 7856f18de0..eca004a5b7 100644
--- a/gtk/Makefile.nmake
+++ b/gtk/Makefile.nmake
@@ -1,7 +1,7 @@
## Makefile for building ethereal.exe with Microsoft C and nmake
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
#
-# $Id: Makefile.nmake,v 1.79 2004/07/07 16:23:13 ulfl Exp $
+# $Id$
include ..\config.nmake
diff --git a/gtk/about_dlg.c b/gtk/about_dlg.c
index 4c99412519..a98b37279a 100644
--- a/gtk/about_dlg.c
+++ b/gtk/about_dlg.c
@@ -1,6 +1,6 @@
/* about_dlg.c
*
- * $Id: about_dlg.c,v 1.23 2004/07/07 07:01:37 guy Exp $
+ * $Id$
*
* Ulf Lamping <ulf.lamping@web.de>
*
diff --git a/gtk/about_dlg.h b/gtk/about_dlg.h
index 9955c21f18..28a4bfbe1f 100644
--- a/gtk/about_dlg.h
+++ b/gtk/about_dlg.h
@@ -1,7 +1,7 @@
/* about_dlg.h
* Declarations of routines for the "About" dialog
*
- * $Id: about_dlg.h,v 1.6 2004/07/04 12:15:41 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/ansi_a_stat.c b/gtk/ansi_a_stat.c
index 8ba09badd3..68d9e90e16 100644
--- a/gtk/ansi_a_stat.c
+++ b/gtk/ansi_a_stat.c
@@ -5,7 +5,7 @@
*
* MUCH code modified from service_response_time_table.c.
*
- * $Id: ansi_a_stat.c,v 1.18 2004/05/23 23:24:05 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/ansi_map_stat.c b/gtk/ansi_map_stat.c
index e51993044d..6b334ccdfc 100644
--- a/gtk/ansi_map_stat.c
+++ b/gtk/ansi_map_stat.c
@@ -5,7 +5,7 @@
*
* MUCH code modified from service_response_time_table.c.
*
- * $Id: ansi_map_stat.c,v 1.23 2004/05/26 11:37:36 jmayer Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/bootp_stat.c b/gtk/bootp_stat.c
index cf313cc562..6af60e1b8f 100644
--- a/gtk/bootp_stat.c
+++ b/gtk/bootp_stat.c
@@ -1,7 +1,7 @@
/* bootp_stat.c
* boop_stat 2003 Jean-Michel FAYARD
*
- * $Id: bootp_stat.c,v 1.27 2004/05/23 23:24:05 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/capture_combo_utils.c b/gtk/capture_combo_utils.c
index 881130baeb..a49cb9bba3 100644
--- a/gtk/capture_combo_utils.c
+++ b/gtk/capture_combo_utils.c
@@ -1,7 +1,7 @@
/* capture_combo_utils.c
* Utilities for combo box of interface names
*
- * $Id: capture_combo_utils.c,v 1.4 2003/12/21 12:17:58 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/capture_combo_utils.h b/gtk/capture_combo_utils.h
index 337db59861..d87ceead1f 100644
--- a/gtk/capture_combo_utils.h
+++ b/gtk/capture_combo_utils.h
@@ -1,7 +1,7 @@
/* capture_combo_utils.c
* Declarations of tilities for combo box of interface names
*
- * $Id: capture_combo_utils.h,v 1.2 2004/06/01 20:28:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/capture_dlg.c b/gtk/capture_dlg.c
index 9c42786c99..4b9f3a335e 100644
--- a/gtk/capture_dlg.c
+++ b/gtk/capture_dlg.c
@@ -1,1715 +1,1715 @@
-/* capture_dlg.c
- * Routines for packet capture windows
- *
- * $Id: capture_dlg.c,v 1.138 2004/07/13 07:15:43 guy Exp $
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_LIBPCAP
-
-#include <pcap.h>
-#include <string.h>
-#include <gtk/gtk.h>
-
-#include <epan/packet.h>
-#include "capture.h"
-#include "globals.h"
-#include <epan/resolv.h>
-#include "main.h"
-#include "ui_util.h"
-#include "capture_dlg.h"
-#include "filter_prefs.h"
-#include "simple_dialog.h"
-#include "dlg_utils.h"
-#include "pcap-util.h"
-#include "capture_combo_utils.h"
-#include "prefs.h"
-#include "ringbuffer.h"
-#include <epan/filesystem.h>
-#include "compat_macros.h"
-#include "file_dlg.h"
-#include "help_dlg.h"
-#include "gtkglobals.h"
-
-#ifdef _WIN32
-#include "capture-wpcap.h"
-#endif
-
-/* Capture callback data keys */
-#define E_CAP_IFACE_KEY "cap_iface"
-#define E_CAP_IFACE_IP_KEY "cap_iface_ip"
-#define E_CAP_SNAP_CB_KEY "cap_snap_cb"
-#define E_CAP_LT_OM_KEY "cap_lt_om"
-#define E_CAP_LT_OM_LABEL_KEY "cap_lt_om_label"
-#ifdef _WIN32
-#define E_CAP_BUFFER_SIZE_SB_KEY "cap_buffer_size_sb"
-#endif
-#define E_CAP_SNAP_SB_KEY "cap_snap_sb"
-#define E_CAP_PROMISC_KEY "cap_promisc"
-#define E_CAP_FILT_KEY "cap_filter_te"
-#define E_CAP_FILE_TE_KEY "cap_file_te"
-#define E_CAP_MULTI_FILES_ON_CB_KEY "cap_multi_files_on_cb"
-#define E_CAP_RING_FILESIZE_CB_KEY "cap_ring_filesize_cb"
-#define E_CAP_RING_FILESIZE_SB_KEY "cap_ring_filesize_sb"
-#define E_CAP_RING_FILESIZE_OM_KEY "cap_ring_filesize_om"
-#define E_CAP_FILE_DURATION_CB_KEY "cap_file_duration_cb"
-#define E_CAP_FILE_DURATION_SB_KEY "cap_file_duration_sb"
-#define E_CAP_FILE_DURATION_OM_KEY "cap_file_duration_om"
-#define E_CAP_RING_NBF_CB_KEY "cap_ring_nbf_cb"
-#define E_CAP_RING_NBF_SB_KEY "cap_ring_nbf_sb"
-#define E_CAP_RING_NBF_LB_KEY "cap_ring_nbf_lb"
-#define E_CAP_STOP_FILES_CB_KEY "cap_stop_files_cb"
-#define E_CAP_STOP_FILES_SB_KEY "cap_stop_files_sb"
-#define E_CAP_STOP_FILES_LB_KEY "cap_stop_files_lb"
-#define E_CAP_SYNC_KEY "cap_sync"
-#define E_CAP_AUTO_SCROLL_KEY "cap_auto_scroll"
-#define E_CAP_HIDE_INFO_KEY "cap_hide_info"
-#define E_CAP_STOP_PACKETS_CB_KEY "cap_stop_packets_cb"
-#define E_CAP_STOP_PACKETS_SB_KEY "cap_stop_packets_sb"
-#define E_CAP_STOP_PACKETS_LB_KEY "cap_stop_packets_lb"
-#define E_CAP_STOP_FILESIZE_CB_KEY "cap_stop_filesize_cb"
-#define E_CAP_STOP_FILESIZE_SB_KEY "cap_stop_filesize_sb"
-#define E_CAP_STOP_FILESIZE_OM_KEY "cap_stop_filesize_om"
-#define E_CAP_STOP_DURATION_CB_KEY "cap_stop_duration_cb"
-#define E_CAP_STOP_DURATION_SB_KEY "cap_stop_duration_sb"
-#define E_CAP_STOP_DURATION_OM_KEY "cap_stop_duration_om"
-#define E_CAP_M_RESOLVE_KEY "cap_m_resolve"
-#define E_CAP_N_RESOLVE_KEY "cap_n_resolve"
-#define E_CAP_T_RESOLVE_KEY "cap_t_resolve"
-
-#define E_CAP_OM_LT_VALUE_KEY "cap_om_lt_value"
-
-static void
-capture_prep_file_cb(GtkWidget *file_bt, GtkWidget *file_te);
-
-static void
-select_link_type_cb(GtkWidget *w, gpointer data);
-
-static void
-capture_prep_adjust_sensitivity(GtkWidget *tb, gpointer parent_w);
-
-static void
-capture_prep_ok_cb(GtkWidget *ok_bt, gpointer parent_w);
-
-static void
-capture_prep_destroy_cb(GtkWidget *win, gpointer user_data);
-
-static void
-capture_prep_interface_changed_cb(GtkWidget *entry, gpointer parent_w);
-
-void
-capture_stop_cb(GtkWidget *w _U_, gpointer d _U_)
-{
- capture_stop();
-}
-
-/*
- * Given text that contains an interface name possibly prefixed by an
- * interface description, extract the interface name.
- */
-static char *
-get_if_name(char *if_text)
-{
- char *if_name;
-
-#ifdef WIN32
- /*
- * We cannot assume that the interface name doesn't contain a space;
- * some names on Windows OT do.
- *
- * We also can't assume it begins with "\Device\", either, as, on
- * Windows OT, WinPcap doesn't put "\Device\" in front of the name.
- *
- * As I remember, we can't assume that the interface description
- * doesn't contain a colon, either; I think some do.
- *
- * We can probably assume that the interface *name* doesn't contain
- * a colon, however; if any interface name does contain a colon on
- * Windows, it'll be time to just get rid of the damn interface
- * descriptions in the drop-down list, have just the names in the
- * drop-down list, and have a "Browse..." button to browse for interfaces,
- * with names, descriptions, IP addresses, blah blah blah available when
- * possible.
- *
- * So we search backwards for a colon. If we don't find it, just
- * return the entire string; otherwise, skip the colon and any blanks
- * after it, and return that string.
- */
- if_name = if_text + strlen(if_text);
- for (;;) {
- if (if_name == if_text) {
- /* We're at the beginning of the string; return it. */
- break;
- }
- if_name--;
- if (*if_name == ':') {
- /*
- * We've found a colon.
- * Unfortunately, a colon is used in the string "rpcap://",
- * which is used in case of a remote capture.
- * So we'll check to make sure the colon isn't followed by "//";
- * it'll be followed by a blank if it separates the description
- * and the interface name. (We don't wire in "rpcap", in case we
- * support other protocols in the same syntax.)
- */
- if (strncmp(if_name, "://", 3) != 0) {
- /*
- * OK, we've found a colon not followed by "//". Skip blanks
- * following it.
- */
- if_name++;
- while (*if_name == ' ')
- if_name++;
- break;
- }
- }
- /* Keep looking for a colon not followed by "//". */
- }
-#else
- /*
- * There's a space between the interface description and name, and
- * the interface name shouldn't have a space in it (it doesn't, on
- * UNIX systems); look backwards in the string for a space.
- *
- * (An interface name might, however, contain a colon in it, which
- * is why we don't use the colon search on UNIX.)
- */
- if_name = strrchr(if_text, ' ');
- if (if_name == NULL) {
- if_name = if_text;
- } else {
- if_name++;
- }
-#endif
- return if_name;
-}
-
-/*
- * Keep a static pointer to the current "Capture Options" window, if
- * any, so that if somebody tries to do "Capture:Start" while there's
- * already a "Capture Options" window up, we just pop up the existing
- * one, rather than creating a new one.
- */
-static GtkWidget *cap_open_w;
-
-
-/* From tcptraceroute, convert a numeric IP address to a string */
-/* XXX - this functionality is already somewhere in our code */
-#define IPTOSBUFFERS 12
-char *iptos(u_long in)
-{
- static char output[IPTOSBUFFERS][3*4+3+1];
- static short which;
- u_char *p;
-
- p = (u_char *)&in;
- which = (which + 1 == IPTOSBUFFERS ? 0 : which + 1);
- sprintf(output[which], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
- return output[which];
-}
-
-
-static void
-set_link_type_list(GtkWidget *linktype_om, GtkWidget *entry)
-{
- gchar *entry_text;
- gchar *if_text;
- gchar *if_name;
- GList *if_list;
- GList *if_entry;
- if_info_t *if_info;
- GList *lt_list;
- int err;
- char err_buf[PCAP_ERRBUF_SIZE];
- GtkWidget *lt_menu, *lt_menu_item;
- GList *lt_entry;
- data_link_info_t *data_link_info;
- gchar *linktype_menu_label;
- guint num_supported_link_types;
- GtkWidget *linktype_lb = OBJECT_GET_DATA(linktype_om, E_CAP_LT_OM_LABEL_KEY);
- GtkWidget *if_ip_lb;
- GString *ip_str = g_string_new("IP address: ");
- int ips = 0;
- GSList *curr_ip;
-
- lt_menu = gtk_menu_new();
- entry_text = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
- if_text = g_strstrip(entry_text);
- if_name = get_if_name(if_text);
-
- /*
- * If the interface name is in the list of known interfaces, get
- * its list of link-layer types and set the option menu to display it.
- *
- * If it's not, don't bother - the user might be in the middle of
- * editing the list, or it might be a remote device in which case
- * getting the list could take an arbitrarily-long period of time.
- * The list currently won't contain any remote devices (as
- * "pcap_findalldevs()" doesn't know about remote devices, and neither
- * does the code we use if "pcap_findalldevs()" isn't available), but
- * should contain all the local devices on which you can capture.
- */
- lt_list = NULL;
- if (*if_name != '\0') {
- /*
- * Try to get the list of known interfaces.
- */
- if_list = get_interface_list(&err, err_buf);
- if (if_list != NULL) {
- /*
- * We have the list - check it.
- */
- for (if_entry = if_list; if_entry != NULL;
- if_entry = g_list_next(if_entry)) {
- if_info = if_entry->data;
- if (strcmp(if_info->name, if_name) == 0) {
- /*
- * It's in the list.
- * Get the list of link-layer types for it.
- */
- lt_list = get_pcap_linktype_list(if_name, err_buf);
-
- /* create string of list of IP addresses of this interface */
- for( ; curr_ip = g_slist_nth(if_info->ip_addr, ips); ips++) {
- if (ips != 0) {
- g_string_append(ip_str, ", ");
- }
-
- g_string_append(ip_str, iptos(*((guint32 *)curr_ip->data)));
- }
-
- if(if_info->loopback) {
- g_string_append(ip_str, " (loopback)");
- }
- }
- }
- free_interface_list(if_list);
- }
- }
- g_free(entry_text);
- num_supported_link_types = 0;
- for (lt_entry = lt_list; lt_entry != NULL; lt_entry = g_list_next(lt_entry)) {
- data_link_info = lt_entry->data;
- if (data_link_info->description != NULL) {
- lt_menu_item = gtk_menu_item_new_with_label(data_link_info->description);
- OBJECT_SET_DATA(lt_menu_item, E_CAP_LT_OM_KEY, linktype_om);
- SIGNAL_CONNECT(lt_menu_item, "activate", select_link_type_cb,
- GINT_TO_POINTER(data_link_info->dlt));
- num_supported_link_types++;
- } else {
- /* Not supported - tell them about it but don't let them select it. */
- linktype_menu_label = g_strdup_printf("%s (not supported)",
- data_link_info->name);
- lt_menu_item = gtk_menu_item_new_with_label(linktype_menu_label);
- g_free(linktype_menu_label);
- gtk_widget_set_sensitive(lt_menu_item, FALSE);
- }
- gtk_menu_append(GTK_MENU(lt_menu), lt_menu_item);
- }
- if (lt_list != NULL)
- free_pcap_linktype_list(lt_list);
- gtk_option_menu_set_menu(GTK_OPTION_MENU(linktype_om), lt_menu);
- gtk_widget_set_sensitive(linktype_lb, num_supported_link_types >= 2);
- gtk_widget_set_sensitive(linktype_om, num_supported_link_types >= 2);
-
- if_ip_lb = OBJECT_GET_DATA(linktype_om, E_CAP_IFACE_KEY);
- if(ips == 0) {
- g_string_append(ip_str, "unknown");
- }
- gtk_label_set_text(GTK_LABEL(if_ip_lb), ip_str->str);
- g_string_free(ip_str, TRUE);
-}
-
-
-#define TIME_UNIT_SECOND 0
-#define TIME_UNIT_MINUTE 1
-#define TIME_UNIT_HOUR 2
-#define TIME_UNIT_DAY 3
-#define MAX_TIME_UNITS 4
-static char *time_unit_name[MAX_TIME_UNITS] = {
- "second(s)",
- "minute(s)",
- "hour(s)",
- "day(s)",
-};
-
-static GtkWidget *time_unit_option_menu_new(guint32 value) {
- GtkWidget *unit_om, *menu, *menu_item;
- int i;
-
- unit_om=gtk_option_menu_new();
- menu=gtk_menu_new();
- for(i=0;i<MAX_TIME_UNITS;i++){
- menu_item=gtk_menu_item_new_with_label(time_unit_name[i]);
- OBJECT_SET_DATA(menu_item, "time_unit", GINT_TO_POINTER(i));
- gtk_menu_append(GTK_MENU(menu), menu_item);
- }
-
- /* the selected menu item can't be changed, once the option_menu
- is created, so set the matching menu item now */
- /* days */
- if(value >= 60 * 60 * 24) {
- gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_DAY);
- } else {
- /* hours */
- if(value >= 60 * 60) {
- gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_HOUR);
- } else {
- /* minutes */
- if(value >= 60) {
- gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_MINUTE);
- } else {
- /* seconds */
- gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_SECOND);
- }
- }
- }
-
- gtk_option_menu_set_menu(GTK_OPTION_MENU(unit_om), menu);
-
- return unit_om;
-}
-
-static guint32 time_unit_option_menu_convert_value(
-guint32 value)
-{
- /* days */
- if(value >= 60 * 60 * 24) {
- return value / (60 * 60 * 24);
- }
-
- /* hours */
- if(value >= 60 * 60) {
- return value / (60 * 60);
- }
-
- /* minutes */
- if(value >= 60) {
- return value / 60;
- }
-
- /* seconds */
- return value;
-}
-
-static guint32 time_unit_option_menu_get_value(
-GtkWidget *unit_om,
-guint32 value)
-{
- GtkWidget *menu, *menu_item;
- int unit;
-
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(unit_om));
- menu_item = gtk_menu_get_active(GTK_MENU(menu));
- unit = GPOINTER_TO_INT(OBJECT_GET_DATA(menu_item, "time_unit"));
-
-
- switch(unit) {
- case(TIME_UNIT_SECOND):
- return value;
- break;
- case(TIME_UNIT_MINUTE):
- return value * 60;
- break;
- case(TIME_UNIT_HOUR):
- return value * 60 * 60;
- break;
- case(TIME_UNIT_DAY):
- return value * 60 * 60 * 24;
- break;
- default:
- g_assert_not_reached();
- return 0;
- }
-}
-
-
-#define SIZE_UNIT_BYTES 0
-#define SIZE_UNIT_KILOBYTES 1
-#define SIZE_UNIT_MEGABYTES 2
-#define SIZE_UNIT_GIGABYTES 3
-#define MAX_SIZE_UNITS 4
-static char *size_unit_name[MAX_SIZE_UNITS] = {
- "byte(s)",
- "kilobyte(s)",
- "megabyte(s)",
- "gigabyte(s)",
-};
-
-static GtkWidget *size_unit_option_menu_new(guint32 value) {
- GtkWidget *unit_om, *menu, *menu_item;
- int i;
-
- unit_om=gtk_option_menu_new();
- menu=gtk_menu_new();
- for(i=0;i<MAX_SIZE_UNITS;i++){
- menu_item=gtk_menu_item_new_with_label(size_unit_name[i]);
- OBJECT_SET_DATA(menu_item, "size_unit", GINT_TO_POINTER(i));
- gtk_menu_append(GTK_MENU(menu), menu_item);
- }
-
- /* the selected menu item can't be changed, once the option_menu
- is created, so set the matching menu item now */
- /* gigabytes */
- if(value >= 1024 * 1024 * 1024) {
- gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_GIGABYTES);
- } else {
- /* megabytes */
- if(value >= 1024 * 1024) {
- gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_MEGABYTES);
- } else {
- /* kilobytes */
- if(value >= 1024) {
- gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_KILOBYTES);
- } else {
- /* bytes */
- gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_BYTES);
- }
- }
- }
-
- gtk_option_menu_set_menu(GTK_OPTION_MENU(unit_om), menu);
-
- return unit_om;
-}
-
-static guint32 size_unit_option_menu_set_value(
-guint32 value)
-{
- /* gigabytes */
- if(value >= 1024 * 1024 * 1024) {
- return value / (1024 * 1024 * 1024);
- }
-
- /* megabytes */
- if(value >= 1024 * 1024) {
- return value / (1024 * 1024);
- }
-
- /* kilobytes */
- if(value >= 1024) {
- return value / 1024;
- }
-
- /* bytes */
- return value;
-}
-
-static guint32 size_unit_option_menu_convert_value(
-GtkWidget *unit_om,
-guint32 value)
-{
- GtkWidget *menu, *menu_item;
- int unit;
-
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(unit_om));
- menu_item = gtk_menu_get_active(GTK_MENU(menu));
- unit = GPOINTER_TO_INT(OBJECT_GET_DATA(menu_item, "size_unit"));
-
-
- switch(unit) {
- case(SIZE_UNIT_BYTES):
- return value;
- break;
- case(SIZE_UNIT_KILOBYTES):
- if(value > G_MAXINT / 1024) {
- return 0;
- } else {
- return value * 1024;
- }
- break;
- case(SIZE_UNIT_MEGABYTES):
- if(value > G_MAXINT / (1024 * 1024)) {
- return 0;
- } else {
- return value * 1024 * 1024;
- }
- break;
- case(SIZE_UNIT_GIGABYTES):
- if(value > G_MAXINT / (1024 * 1024 * 1024)) {
- return 0;
- } else {
- return value * 1024 * 1024 * 1024;
- }
- break;
- default:
- g_assert_not_reached();
- return 0;
- }
-}
-
-
-void
-capture_prep(void)
-{
- GtkWidget *main_vb,
- *main_hb, *left_vb, *right_vb,
-
- *capture_fr, *capture_vb,
- *if_hb, *if_cb, *if_lb,
- *if_ip_hb, *if_ip_lb,
- *linktype_hb, *linktype_lb, *linktype_om,
- *snap_hb, *snap_cb, *snap_sb, *snap_lb,
- *promisc_cb,
- *filter_hb, *filter_bt, *filter_te,
-
- *file_fr, *file_vb,
- *file_hb, *file_bt, *file_lb, *file_te,
- *multi_tb, *multi_files_on_cb,
- *ring_filesize_cb, *ring_filesize_sb, *ring_filesize_om,
- *file_duration_cb, *file_duration_sb, *file_duration_om,
- *ringbuffer_nbf_cb, *ringbuffer_nbf_sb, *ringbuffer_nbf_lb,
- *stop_files_cb, *stop_files_sb, *stop_files_lb,
-
- *limit_fr, *limit_vb, *limit_tb,
- *stop_packets_cb, *stop_packets_sb, *stop_packets_lb,
- *stop_filesize_cb, *stop_filesize_sb, *stop_filesize_om,
- *stop_duration_cb, *stop_duration_sb, *stop_duration_om,
-
- *display_fr, *display_vb,
- *sync_cb, *auto_scroll_cb, *hide_info_cb,
-
- *resolv_fr, *resolv_vb,
- *m_resolv_cb, *n_resolv_cb, *t_resolv_cb,
- *bbox, *ok_bt, *cancel_bt,
- *help_bt;
-#if GTK_MAJOR_VERSION < 2
- GtkAccelGroup *accel_group;
-#endif
- GtkTooltips *tooltips;
- GtkAdjustment *snap_adj, *ringbuffer_nbf_adj,
- *stop_packets_adj, *stop_filesize_adj, *stop_duration_adj, *stop_files_adj, *ring_filesize_adj, *file_duration_adj;
- GList *if_list, *combo_list;
- int err;
- int row;
- char err_str[PCAP_ERRBUF_SIZE];
- gchar *cant_get_if_list_errstr;
-#ifdef _WIN32
- GtkAdjustment *buffer_size_adj;
- GtkWidget *buffer_size_lb, *buffer_size_sb;
-#endif
- guint32 value;
-
- if (cap_open_w != NULL) {
- /* There's already a "Capture Options" dialog box; reactivate it. */
- reactivate_window(cap_open_w);
- return;
- }
-
-#ifdef _WIN32
- /* Is WPcap loaded? */
- if (!has_wpcap) {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- "Unable to load WinPcap (wpcap.dll); Ethereal will not be able\n"
- "to capture packets.\n\n"
- "In order to capture packets, WinPcap must be installed; see\n"
- "\n"
- " http://winpcap.polito.it/\n"
- "\n"
- "or the mirror at\n"
- "\n"
- " http://winpcap.mirror.ethereal.com/\n"
- "\n"
- "or the mirror at\n"
- "\n"
- " http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n"
- "\n"
- "for a downloadable version of WinPcap and for instructions\n"
- "on how to install WinPcap.");
- return;
- }
-#endif
-
- if_list = get_interface_list(&err, err_str);
- if (if_list == NULL && err == CANT_GET_INTERFACE_LIST) {
- cant_get_if_list_errstr = cant_get_if_list_error_message(err_str);
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s",
- cant_get_if_list_errstr);
- g_free(cant_get_if_list_errstr);
- }
-
- cap_open_w = dlg_window_new("Ethereal: Capture Options");
-
- tooltips = gtk_tooltips_new();
-
-#if GTK_MAJOR_VERSION < 2
- /* Accelerator group for the accelerators (or, as they're called in
- Windows and, I think, in Motif, "mnemonics"; Alt+<key> is a mnemonic,
- Ctrl+<key> is an accelerator). */
- accel_group = gtk_accel_group_new();
- gtk_window_add_accel_group(GTK_WINDOW(cap_open_w), accel_group);
-#endif
-
- main_vb = gtk_vbox_new(FALSE, 0);
- gtk_container_border_width(GTK_CONTAINER(main_vb), 5);
- gtk_container_add(GTK_CONTAINER(cap_open_w), main_vb);
-
- /* Capture-related options frame */
- capture_fr = gtk_frame_new("Capture");
- gtk_container_add(GTK_CONTAINER(main_vb), capture_fr);
-
- capture_vb = gtk_vbox_new(FALSE, 3);
- gtk_container_border_width(GTK_CONTAINER(capture_vb), 5);
- gtk_container_add(GTK_CONTAINER(capture_fr), capture_vb);
-
- /* Interface row */
- if_hb = gtk_hbox_new(FALSE, 3);
- gtk_container_add(GTK_CONTAINER(capture_vb), if_hb);
-
- if_lb = gtk_label_new("Interface:");
- gtk_box_pack_start(GTK_BOX(if_hb), if_lb, FALSE, FALSE, 6);
-
- if_cb = gtk_combo_new();
- combo_list = build_capture_combo_list(if_list, TRUE);
- if (combo_list != NULL)
- gtk_combo_set_popdown_strings(GTK_COMBO(if_cb), combo_list);
- if (cfile.iface == NULL && prefs.capture_device != NULL) {
- /* No interface was specified on the command line or in a previous
- capture, but there is one specified in the preferences file;
- make the one from the preferences file the default */
- cfile.iface = g_strdup(prefs.capture_device);
- }
- if (cfile.iface != NULL)
- gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry), cfile.iface);
- else if (combo_list != NULL) {
- gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry),
- (char *)combo_list->data);
- }
- free_capture_combo_list(combo_list);
- free_interface_list(if_list);
- gtk_tooltips_set_tip(tooltips, GTK_COMBO(if_cb)->entry,
- "Choose which interface (network card) will be used to capture packets from. "
- "Be sure to select the correct one, as it's a common mistake to select the wrong interface.", NULL);
- gtk_box_pack_start(GTK_BOX(if_hb), if_cb, TRUE, TRUE, 6);
-
- if_ip_hb = gtk_hbox_new(FALSE, 3);
- gtk_box_pack_start(GTK_BOX(capture_vb), if_ip_hb, FALSE, FALSE, 0);
-
- if_ip_lb = gtk_label_new("");
- gtk_box_pack_start(GTK_BOX(if_ip_hb), if_ip_lb, FALSE, FALSE, 6);
-
- /* Linktype row */
- linktype_hb = gtk_hbox_new(FALSE, 3);
- gtk_box_pack_start(GTK_BOX(capture_vb), linktype_hb, FALSE, FALSE, 0);
-
- linktype_lb = gtk_label_new("Link-layer header type:");
- gtk_box_pack_start(GTK_BOX(linktype_hb), linktype_lb, FALSE, FALSE, 6);
-
- linktype_om = gtk_option_menu_new();
- OBJECT_SET_DATA(linktype_om, E_CAP_LT_OM_LABEL_KEY, linktype_lb);
- /* Default to "use the default" */
- OBJECT_SET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY, GINT_TO_POINTER(-1));
- OBJECT_SET_DATA(linktype_om, E_CAP_IFACE_KEY, if_ip_lb);
- set_link_type_list(linktype_om, GTK_COMBO(if_cb)->entry);
- /*
- * XXX - in some cases, this is "multiple link-layer header types", e.g.
- * some 802.11 interfaces on FreeBSD 5.2 and later, where you can request
- * fake Ethernet, 802.11, or 802.11-plus-radio-information headers.
- *
- * In other cases, it's "multiple link-layer types", e.g., with recent
- * versions of libpcap, a DAG card on an "HDLC" WAN, where you can
- * request Cisco HDLC or PPP depending on what type of traffic is going
- * over the WAN, or an Ethernet interface, where you can request Ethernet
- * or DOCSIS, the latter being for some Cisco cable modem equipment that
- * can be configured to send raw DOCSIS frames over an Ethernet inside
- * Ethernet low-level framing, for traffic capture purposes.
- *
- * We leave it as "multiple link-layer types" for now.
- */
- gtk_tooltips_set_tip(tooltips, linktype_om,
- "The selected interface supports multiple link-layer types; select the desired one.", NULL);
- gtk_box_pack_start (GTK_BOX(linktype_hb), linktype_om, FALSE, FALSE, 0);
- SIGNAL_CONNECT(GTK_ENTRY(GTK_COMBO(if_cb)->entry), "changed",
- capture_prep_interface_changed_cb, linktype_om);
-
-#ifdef _WIN32
- buffer_size_lb = gtk_label_new("Buffer size:");
- gtk_box_pack_start (GTK_BOX(linktype_hb), buffer_size_lb, FALSE, FALSE, 0);
-
- buffer_size_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat) capture_opts.buffer_size,
- 1, 65535, 1.0, 10.0, 0.0);
- buffer_size_sb = gtk_spin_button_new (buffer_size_adj, 0, 0);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON (buffer_size_sb), (gfloat) capture_opts.buffer_size);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (buffer_size_sb), TRUE);
- WIDGET_SET_SIZE(buffer_size_sb, 80, -1);
- gtk_tooltips_set_tip(tooltips, buffer_size_sb,
- "The memory buffer size used while capturing. If you notice packet drops, you can try to increase this size.", NULL);
- gtk_box_pack_start (GTK_BOX(linktype_hb), buffer_size_sb, FALSE, FALSE, 0);
-
- buffer_size_lb = gtk_label_new("megabyte(s)");
- gtk_box_pack_start (GTK_BOX(linktype_hb), buffer_size_lb, FALSE, FALSE, 0);
-#endif
-
- /* Promiscuous mode row */
- promisc_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "Capture packets in _promiscuous mode", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(promisc_cb),
- capture_opts.promisc_mode);
- gtk_tooltips_set_tip(tooltips, promisc_cb,
- "Usually a network card will only capture the traffic sent to its own network address. "
- "If you want to capture all traffic that the network card can \"see\", mark this option. "
- "See the FAQ for some more details of capturing packets from a switched network.", NULL);
- gtk_container_add(GTK_CONTAINER(capture_vb), promisc_cb);
-
- /* Capture length row */
- snap_hb = gtk_hbox_new(FALSE, 3);
- gtk_container_add(GTK_CONTAINER(capture_vb), snap_hb);
-
- snap_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC("_Limit each packet to", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(snap_cb),
- capture_opts.has_snaplen);
- SIGNAL_CONNECT(snap_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, snap_cb,
- "Limit the maximum number of bytes to be captured from each packet. This size includes the "
- "link-layer header and all subsequent headers. ", NULL);
- gtk_box_pack_start(GTK_BOX(snap_hb), snap_cb, FALSE, FALSE, 0);
-
- snap_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat) capture_opts.snaplen,
- MIN_PACKET_SIZE, WTAP_MAX_PACKET_SIZE, 1.0, 10.0, 0.0);
- snap_sb = gtk_spin_button_new (snap_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (snap_sb), TRUE);
- WIDGET_SET_SIZE(snap_sb, 80, -1);
- gtk_box_pack_start (GTK_BOX(snap_hb), snap_sb, FALSE, FALSE, 0);
-
- snap_lb = gtk_label_new("bytes");
- gtk_misc_set_alignment(GTK_MISC(snap_lb), 0, 0.5);
- gtk_box_pack_start(GTK_BOX(snap_hb), snap_lb, FALSE, FALSE, 0);
-
- /* Filter row */
- filter_hb = gtk_hbox_new(FALSE, 3);
- gtk_box_pack_start(GTK_BOX(capture_vb), filter_hb, FALSE, FALSE, 0);
-
- filter_bt = BUTTON_NEW_FROM_STOCK(ETHEREAL_STOCK_CAPTURE_FILTER_ENTRY);
- SIGNAL_CONNECT(filter_bt, "clicked", capture_filter_construct_cb, NULL);
- SIGNAL_CONNECT(filter_bt, "destroy", filter_button_destroy_cb, NULL);
- gtk_tooltips_set_tip(tooltips, filter_bt,
- "Select a capture filter to reduce the amount of packets to be captured. "
- "See \"Capture Filters\" in the online help for further information how to use it.",
- NULL);
- gtk_box_pack_start(GTK_BOX(filter_hb), filter_bt, FALSE, FALSE, 3);
-
- filter_te = gtk_entry_new();
- if (cfile.cfilter) gtk_entry_set_text(GTK_ENTRY(filter_te), cfile.cfilter);
- OBJECT_SET_DATA(filter_bt, E_FILT_TE_PTR_KEY, filter_te);
- gtk_tooltips_set_tip(tooltips, filter_te,
- "Enter a capture filter to reduce the amount of packets to be captured. "
- "See \"Capture Filters\" in the online help for further information how to use it.",
- NULL);
- gtk_box_pack_start(GTK_BOX(filter_hb), filter_te, TRUE, TRUE, 3);
-
- main_hb = gtk_hbox_new(FALSE, 5);
- gtk_container_border_width(GTK_CONTAINER(main_hb), 0);
- gtk_container_add(GTK_CONTAINER(main_vb), main_hb);
-
- left_vb = gtk_vbox_new(FALSE, 0);
- gtk_container_border_width(GTK_CONTAINER(left_vb), 0);
- gtk_box_pack_start(GTK_BOX(main_hb), left_vb, TRUE, TRUE, 0);
-
- right_vb = gtk_vbox_new(FALSE, 0);
- gtk_container_border_width(GTK_CONTAINER(right_vb), 0);
- gtk_box_pack_start(GTK_BOX(main_hb), right_vb, FALSE, FALSE, 0);
-
-
- /* Capture file-related options frame */
- file_fr = gtk_frame_new("Capture File(s)");
- gtk_container_add(GTK_CONTAINER(left_vb), file_fr);
-
- file_vb = gtk_vbox_new(FALSE, 3);
- gtk_container_border_width(GTK_CONTAINER(file_vb), 5);
- gtk_container_add(GTK_CONTAINER(file_fr), file_vb);
-
- /* File row */
- file_hb = gtk_hbox_new(FALSE, 3);
- gtk_box_pack_start(GTK_BOX(file_vb), file_hb, FALSE, FALSE, 0);
-
- file_lb = gtk_label_new("File:");
- gtk_box_pack_start(GTK_BOX(file_hb), file_lb, FALSE, FALSE, 3);
-
- file_te = gtk_entry_new();
- gtk_tooltips_set_tip(tooltips, file_te,
- "Enter the file name to which captured data will be written. "
- "If you don't enter something here, a temporary file will be used.",
- NULL);
- gtk_box_pack_start(GTK_BOX(file_hb), file_te, TRUE, TRUE, 3);
-
- file_bt = BUTTON_NEW_FROM_STOCK(ETHEREAL_STOCK_BROWSE);
- gtk_tooltips_set_tip(tooltips, file_bt,
- "Select a file to which captured data will be written, "
- "instead of entering the file name directly. ",
- NULL);
- gtk_box_pack_start(GTK_BOX(file_hb), file_bt, FALSE, FALSE, 3);
-
- SIGNAL_CONNECT(file_bt, "clicked", capture_prep_file_cb, file_te);
-
- /* multiple files table */
- multi_tb = gtk_table_new(5, 3, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(multi_tb), 1);
- gtk_table_set_col_spacings(GTK_TABLE(multi_tb), 3);
- gtk_box_pack_start(GTK_BOX(file_vb), multi_tb, FALSE, FALSE, 0);
- row = 0;
-
- /* multiple files row */
- multi_files_on_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC("Use _multiple files", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(multi_files_on_cb),
- capture_opts.multi_files_on);
- SIGNAL_CONNECT(multi_files_on_cb, "toggled", capture_prep_adjust_sensitivity,
- cap_open_w);
- gtk_tooltips_set_tip(tooltips, multi_files_on_cb,
- "Instead of using a single capture file, multiple files will be created. "
- "The generated file names will contain an incrementing number and the start time of the capture.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), multi_files_on_cb, 0, 1, row, row+1);
- row++;
-
- /* Ring buffer filesize row */
- ring_filesize_cb = gtk_check_button_new_with_label("Next file every");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(ring_filesize_cb),
- capture_opts.has_autostop_filesize);
- SIGNAL_CONNECT(ring_filesize_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, ring_filesize_cb,
- "If the selected file size is exceeded, capturing switches to the next file.",
- NULL);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), ring_filesize_cb, 0, 1, row, row+1);
-
- ring_filesize_adj = (GtkAdjustment *) gtk_adjustment_new(0.0,
- 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
- ring_filesize_sb = gtk_spin_button_new (ring_filesize_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (ring_filesize_sb), TRUE);
- WIDGET_SET_SIZE(ring_filesize_sb, 80, -1);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), ring_filesize_sb, 1, 2, row, row+1);
-
- ring_filesize_om = size_unit_option_menu_new(capture_opts.autostop_filesize);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), ring_filesize_om, 2, 3, row, row+1);
-
- value = size_unit_option_menu_set_value(capture_opts.autostop_filesize);
- gtk_adjustment_set_value(ring_filesize_adj, (gfloat) value);
-
- row++;
-
- /* Ring buffer duration row */
- file_duration_cb = gtk_check_button_new_with_label("Next file every");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(file_duration_cb),
- capture_opts.has_file_duration);
- SIGNAL_CONNECT(file_duration_cb, "toggled",
- capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, file_duration_cb,
- "If the selected duration is exceeded, capturing switches to the next file.",
- NULL);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), file_duration_cb, 0, 1, row, row+1);
-
- file_duration_adj = (GtkAdjustment *)gtk_adjustment_new(0.0,
- 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
- file_duration_sb = gtk_spin_button_new (file_duration_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (file_duration_sb), TRUE);
- WIDGET_SET_SIZE(file_duration_sb, 80, -1);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), file_duration_sb, 1, 2, row, row+1);
-
- file_duration_om = time_unit_option_menu_new(capture_opts.file_duration);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), file_duration_om, 2, 3, row, row+1);
-
- value = time_unit_option_menu_convert_value(capture_opts.file_duration);
- gtk_adjustment_set_value(file_duration_adj, (gfloat) value);
- row++;
-
- /* Ring buffer files row */
- ringbuffer_nbf_cb = gtk_check_button_new_with_label("Ring buffer with");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb),
- capture_opts.has_ring_num_files);
- SIGNAL_CONNECT(ringbuffer_nbf_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, ringbuffer_nbf_cb,
- "After capturing has switched to the next file and the given number of files has exceeded, "
- "the oldest file will be removed.",
- NULL);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), ringbuffer_nbf_cb, 0, 1, row, row+1);
-
- ringbuffer_nbf_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat) capture_opts.ring_num_files,
- 2/*RINGBUFFER_MIN_NUM_FILES*/, RINGBUFFER_MAX_NUM_FILES, 1.0, 10.0, 0.0);
- ringbuffer_nbf_sb = gtk_spin_button_new (ringbuffer_nbf_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (ringbuffer_nbf_sb), TRUE);
- WIDGET_SET_SIZE(ringbuffer_nbf_sb, 80, -1);
- SIGNAL_CONNECT(ringbuffer_nbf_sb, "changed", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), ringbuffer_nbf_sb, 1, 2, row, row+1);
-
- ringbuffer_nbf_lb = gtk_label_new("files");
- gtk_misc_set_alignment(GTK_MISC(ringbuffer_nbf_lb), 0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), ringbuffer_nbf_lb, 2, 3, row, row+1);
- row++;
-
- /* Files row */
- stop_files_cb = gtk_check_button_new_with_label("Stop capture after");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_files_cb),
- capture_opts.has_autostop_files);
- SIGNAL_CONNECT(stop_files_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, stop_files_cb,
- "Stop capturing after the given number of \"file switches\" have been done.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), stop_files_cb, 0, 1, row, row+1);
-
- stop_files_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat)capture_opts.autostop_files,
- 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
- stop_files_sb = gtk_spin_button_new (stop_files_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_files_sb), TRUE);
- WIDGET_SET_SIZE(stop_files_sb, 80, -1);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), stop_files_sb, 1, 2, row, row+1);
-
- stop_files_lb = gtk_label_new("file(s)");
- gtk_misc_set_alignment(GTK_MISC(stop_files_lb), 0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(multi_tb), stop_files_lb, 2, 3, row, row+1);
- row++;
-
- /* Capture limits frame */
- limit_fr = gtk_frame_new("Stop Capture ...");
- gtk_container_add(GTK_CONTAINER(left_vb), limit_fr);
-
- limit_vb = gtk_vbox_new(FALSE, 3);
- gtk_container_border_width(GTK_CONTAINER(limit_vb), 5);
- gtk_container_add(GTK_CONTAINER(limit_fr), limit_vb);
-
- /* limits table */
- limit_tb = gtk_table_new(3, 3, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(limit_tb), 1);
- gtk_table_set_col_spacings(GTK_TABLE(limit_tb), 3);
- gtk_box_pack_start(GTK_BOX(limit_vb), limit_tb, FALSE, FALSE, 0);
- row = 0;
-
- /* Packet count row */
- stop_packets_cb = gtk_check_button_new_with_label("... after");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_packets_cb),
- capture_opts.has_autostop_packets);
- SIGNAL_CONNECT(stop_packets_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, stop_packets_cb,
- "Stop capturing after the given number of packets have been captured.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_packets_cb, 0, 1, row, row+1);
-
- stop_packets_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat)capture_opts.autostop_packets,
- 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
- stop_packets_sb = gtk_spin_button_new (stop_packets_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_packets_sb), TRUE);
- WIDGET_SET_SIZE(stop_packets_sb, 80, -1);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_packets_sb, 1, 2, row, row+1);
-
- stop_packets_lb = gtk_label_new("packet(s)");
- gtk_misc_set_alignment(GTK_MISC(stop_packets_lb), 0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_packets_lb, 2, 3, row, row+1);
- row++;
-
- /* Filesize row */
- stop_filesize_cb = gtk_check_button_new_with_label("... after");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_filesize_cb),
- capture_opts.has_autostop_filesize);
- SIGNAL_CONNECT(stop_filesize_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, stop_filesize_cb,
- "Stop capturing after the given amount of capture data has been captured.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_filesize_cb, 0, 1, row, row+1);
-
- stop_filesize_adj = (GtkAdjustment *) gtk_adjustment_new(0.0,
- 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
- stop_filesize_sb = gtk_spin_button_new (stop_filesize_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_filesize_sb), TRUE);
- WIDGET_SET_SIZE(stop_filesize_sb, 80, -1);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_filesize_sb, 1, 2, row, row+1);
-
- stop_filesize_om = size_unit_option_menu_new(capture_opts.autostop_filesize);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_filesize_om, 2, 3, row, row+1);
-
- value = size_unit_option_menu_set_value(capture_opts.autostop_filesize);
- gtk_adjustment_set_value(stop_filesize_adj, (gfloat) value);
-
- row++;
-
- /* Duration row */
- stop_duration_cb = gtk_check_button_new_with_label("... after");
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_duration_cb),
- capture_opts.has_autostop_duration);
- SIGNAL_CONNECT(stop_duration_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, stop_duration_cb,
- "Stop capturing after the given time is exceeded.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_duration_cb, 0, 1, row, row+1);
-
- stop_duration_adj = (GtkAdjustment *) gtk_adjustment_new(0.0,
- 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
- stop_duration_sb = gtk_spin_button_new (stop_duration_adj, 0, 0);
- gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_duration_sb), TRUE);
- WIDGET_SET_SIZE(stop_duration_sb, 80, -1);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_duration_sb, 1, 2, row, row+1);
-
- stop_duration_om = time_unit_option_menu_new(capture_opts.autostop_duration);
- gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_duration_om, 2, 3, row, row+1);
-
- value = time_unit_option_menu_convert_value(capture_opts.autostop_duration);
- gtk_adjustment_set_value(stop_duration_adj, (gfloat) value);
- row++;
-
- /* Display-related options frame */
- display_fr = gtk_frame_new("Display Options");
- gtk_container_add(GTK_CONTAINER(right_vb), display_fr);
-
- display_vb = gtk_vbox_new(FALSE, 0);
- gtk_container_border_width(GTK_CONTAINER(display_vb), 5);
- gtk_container_add(GTK_CONTAINER(display_fr), display_vb);
-
- /* "Update display in real time" row */
- sync_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "_Update list of packets in real time", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(sync_cb),
- capture_opts.sync_mode);
- SIGNAL_CONNECT(sync_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
- gtk_tooltips_set_tip(tooltips, sync_cb,
- "Using this option will show the captured packets immediately on the main screen. "
- "Please note: this will slow down capturing, so increased packet drops might appear.", NULL);
- gtk_container_add(GTK_CONTAINER(display_vb), sync_cb);
-
- /* "Auto-scroll live update" row */
- auto_scroll_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "_Automatic scrolling in live capture", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(auto_scroll_cb), auto_scroll_live);
- gtk_tooltips_set_tip(tooltips, auto_scroll_cb,
- "This will scroll the \"Packet List\" automatically to the latest captured packet, "
- "when the \"Update List of packets in real time\" option is used.", NULL);
- gtk_container_add(GTK_CONTAINER(display_vb), auto_scroll_cb);
-
- /* "Hide capture info" row */
- hide_info_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "_Hide capture info dialog", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(hide_info_cb), !capture_opts.show_info);
- gtk_tooltips_set_tip(tooltips, hide_info_cb,
- "Hide the capture info dialog while capturing.", NULL);
- gtk_container_add(GTK_CONTAINER(display_vb), hide_info_cb);
-
- /* Name Resolution frame */
- resolv_fr = gtk_frame_new("Name Resolution");
- gtk_container_add(GTK_CONTAINER(right_vb), resolv_fr);
-
- resolv_vb = gtk_vbox_new(FALSE, 0);
- gtk_container_border_width(GTK_CONTAINER(resolv_vb), 5);
- gtk_container_add(GTK_CONTAINER(resolv_fr), resolv_vb);
-
- m_resolv_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "Enable _MAC name resolution", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(m_resolv_cb),
- g_resolv_flags & RESOLV_MAC);
- gtk_tooltips_set_tip(tooltips, m_resolv_cb,
- "Perform MAC layer name resolution while capturing.", NULL);
- gtk_container_add(GTK_CONTAINER(resolv_vb), m_resolv_cb);
-
- n_resolv_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "Enable _network name resolution", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(n_resolv_cb),
- g_resolv_flags & RESOLV_NETWORK);
- gtk_tooltips_set_tip(tooltips, n_resolv_cb,
- "Perform network layer name resolution while capturing.", NULL);
- gtk_container_add(GTK_CONTAINER(resolv_vb), n_resolv_cb);
-
- t_resolv_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
- "Enable _transport name resolution", accel_group);
- gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(t_resolv_cb),
- g_resolv_flags & RESOLV_TRANSPORT);
- gtk_tooltips_set_tip(tooltips, t_resolv_cb,
- "Perform transport layer name resolution while capturing.", NULL);
- gtk_container_add(GTK_CONTAINER(resolv_vb), t_resolv_cb);
-
- /* Button row: OK and cancel buttons */
- bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
- gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 5);
-
- ok_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_OK);
- SIGNAL_CONNECT(ok_bt, "clicked", capture_prep_ok_cb, cap_open_w);
- gtk_tooltips_set_tip(tooltips, ok_bt,
- "Start the capture process.", NULL);
-
- cancel_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CANCEL);
- gtk_tooltips_set_tip(tooltips, cancel_bt,
- "Cancel and exit dialog.", NULL);
- window_set_cancel_button(cap_open_w, cancel_bt, window_cancel_button_cb);
-
- help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
- gtk_tooltips_set_tip(tooltips, help_bt,
- "Show help about capturing.", NULL);
- SIGNAL_CONNECT(help_bt, "clicked", help_topic_cb, "Capturing");
-
- gtk_widget_grab_default(ok_bt);
-
- /* Attach pointers to needed widgets to the capture prefs window/object */
- OBJECT_SET_DATA(cap_open_w, E_CAP_IFACE_KEY, if_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_SNAP_CB_KEY, snap_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_SNAP_SB_KEY, snap_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_LT_OM_KEY, linktype_om);
-#ifdef _WIN32
- OBJECT_SET_DATA(cap_open_w, E_CAP_BUFFER_SIZE_SB_KEY, buffer_size_sb);
-#endif
- OBJECT_SET_DATA(cap_open_w, E_CAP_PROMISC_KEY, promisc_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_FILT_KEY, filter_te);
- OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_TE_KEY, file_te);
- OBJECT_SET_DATA(cap_open_w, E_CAP_MULTI_FILES_ON_CB_KEY, multi_files_on_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_RING_NBF_CB_KEY, ringbuffer_nbf_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_RING_NBF_SB_KEY, ringbuffer_nbf_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_RING_NBF_LB_KEY, ringbuffer_nbf_lb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_RING_FILESIZE_CB_KEY, ring_filesize_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_RING_FILESIZE_SB_KEY, ring_filesize_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_RING_FILESIZE_OM_KEY, ring_filesize_om);
- OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_DURATION_CB_KEY, file_duration_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_DURATION_SB_KEY, file_duration_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_DURATION_OM_KEY, file_duration_om);
- OBJECT_SET_DATA(cap_open_w, E_CAP_SYNC_KEY, sync_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_AUTO_SCROLL_KEY, auto_scroll_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_HIDE_INFO_KEY, hide_info_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_PACKETS_CB_KEY, stop_packets_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_PACKETS_SB_KEY, stop_packets_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_PACKETS_LB_KEY, stop_packets_lb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILESIZE_CB_KEY, stop_filesize_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILESIZE_SB_KEY, stop_filesize_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILESIZE_OM_KEY, stop_filesize_om);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_DURATION_CB_KEY, stop_duration_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_DURATION_SB_KEY, stop_duration_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_DURATION_OM_KEY, stop_duration_om);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILES_CB_KEY, stop_files_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILES_SB_KEY, stop_files_sb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILES_LB_KEY, stop_files_lb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_M_RESOLVE_KEY, m_resolv_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_N_RESOLVE_KEY, n_resolv_cb);
- OBJECT_SET_DATA(cap_open_w, E_CAP_T_RESOLVE_KEY, t_resolv_cb);
-
- /* Set the sensitivity of various widgets as per the settings of other
- widgets. */
- capture_prep_adjust_sensitivity(NULL, cap_open_w);
-
- /* Catch the "activate" signal on the text
- entries, so that if the user types Return there, we act as if the
- "OK" button had been selected, as happens if Return is typed if some
- widget that *doesn't* handle the Return key has the input focus. */
- dlg_set_activate(GTK_COMBO(if_cb)->entry, ok_bt);
- dlg_set_activate(filter_te, ok_bt);
- dlg_set_activate(file_te, ok_bt);
-
- /* XXX - why does not
-
- gtk_widget_grab_focus(if_cb);
-
- give the initial focus to the "Interface" combo box?
-
- Or should I phrase that as "why does GTK+ continually frustrate
- attempts to make GUIs driveable from the keyboard?" We have to
- go catch the activate signal on every single GtkEntry widget
- (rather than having widgets whose activate signal is *not*
- caught not catch the Return keystroke, so that it passes on,
- ultimately, to the window, which can activate the default
- widget, i.e. the "OK" button); we have to catch the "key_press_event"
- signal and have the handler check for ESC, so that we can have ESC
- activate the "Cancel" button; in order to support Alt+<key> mnemonics
- for buttons and the like, we may have to construct an accelerator
- group by hand and set up the accelerators by hand (if that even
- works - I've not tried it yet); we have to do a "gtk_widget_grab_focus()"
- to keep some container widget from getting the initial focus, so that
- you don't have to tab into the first widget in order to start typing
- in it; and it now appears that you simply *can't* make a combo box
- get the initial focus, at least not in the obvious fashion. Sigh.... */
-
- SIGNAL_CONNECT(cap_open_w, "delete_event", window_delete_event_cb, NULL);
- SIGNAL_CONNECT(cap_open_w, "destroy", capture_prep_destroy_cb, NULL);
-
- gtk_widget_show_all(cap_open_w);
- window_present(cap_open_w);
-}
-
-static void
-capture_prep_answered_cb(gpointer dialog _U_, gint btn, gpointer data)
-{
- switch(btn) {
- case(ESD_BTN_SAVE):
- /* save file first */
- file_save_as_cmd(after_save_capture_dialog, data);
- break;
- case(ESD_BTN_DONT_SAVE):
- capture_prep();
- break;
- case(ESD_BTN_CANCEL):
- break;
- default:
- g_assert_not_reached();
- }
-}
-
-void
-capture_prep_cb(GtkWidget *w _U_, gpointer d _U_)
-{
- gpointer dialog;
-
- if((cfile.state != FILE_CLOSED) && !cfile.user_saved && prefs.gui_ask_unsaved) {
- /* user didn't saved his current file, ask him */
- dialog = simple_dialog(ESD_TYPE_CONFIRMATION, ESD_BTNS_SAVE_DONTSAVE_CANCEL,
- PRIMARY_TEXT_START "Save capture file before starting a new capture?" PRIMARY_TEXT_END "\n\n"
- "If you start a new capture without saving, your current capture data will\nbe discarded.");
- simple_dialog_set_cb(dialog, capture_prep_answered_cb, NULL);
- } else {
- /* unchanged file, just capture a new one */
- capture_prep();
- }
-}
-
-static void
-select_link_type_cb(GtkWidget *w, gpointer data)
-{
- int new_linktype = GPOINTER_TO_INT(data);
- GtkWidget *linktype_om = OBJECT_GET_DATA(w, E_CAP_LT_OM_KEY);
- int old_linktype = GPOINTER_TO_INT(OBJECT_GET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY));
-
- if (old_linktype != new_linktype)
- OBJECT_SET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY, GINT_TO_POINTER(new_linktype));
-}
-
-static void
-capture_prep_file_cb(GtkWidget *file_bt, GtkWidget *file_te)
-{
- file_selection_browse(file_bt, file_te, "Ethereal: Specify a Capture File", FILE_SELECTION_OPEN);
-}
-
-
-static void
-capture_prep_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) {
- GtkWidget *if_cb, *snap_cb, *snap_sb, *promisc_cb, *filter_te,
- *file_te, *multi_files_on_cb, *ringbuffer_nbf_sb, *ringbuffer_nbf_cb,
- *linktype_om, *sync_cb, *auto_scroll_cb, *hide_info_cb,
- *stop_packets_cb, *stop_packets_sb,
- *stop_filesize_cb, *stop_filesize_sb, *stop_filesize_om,
- *stop_duration_cb, *stop_duration_sb, *stop_duration_om,
- *ring_filesize_cb, *ring_filesize_sb, *ring_filesize_om,
- *file_duration_cb, *file_duration_sb, *file_duration_om,
- *stop_files_cb, *stop_files_sb,
- *m_resolv_cb, *n_resolv_cb, *t_resolv_cb;
-#ifdef _WIN32
- GtkWidget *buffer_size_sb;
-#endif
- gchar *entry_text;
- gchar *if_text;
- gchar *if_name;
- const gchar *filter_text;
- gchar *save_file;
- const gchar *g_save_file;
- gchar *cf_name;
- gchar *dirname;
- gint32 tmp;
-
- if_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_IFACE_KEY);
- snap_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_CB_KEY);
- snap_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_SB_KEY);
- linktype_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_LT_OM_KEY);
-#ifdef _WIN32
- buffer_size_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_BUFFER_SIZE_SB_KEY);
-#endif
- promisc_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_PROMISC_KEY);
- filter_te = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILT_KEY);
- file_te = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_TE_KEY);
- multi_files_on_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_MULTI_FILES_ON_CB_KEY);
- ringbuffer_nbf_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_CB_KEY);
- ringbuffer_nbf_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_SB_KEY);
- ring_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_CB_KEY);
- ring_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_SB_KEY);
- ring_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_OM_KEY);
- file_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_CB_KEY);
- file_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_SB_KEY);
- file_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_OM_KEY);
- sync_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SYNC_KEY);
- auto_scroll_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_AUTO_SCROLL_KEY);
- hide_info_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_HIDE_INFO_KEY);
- stop_packets_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_CB_KEY);
- stop_packets_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_SB_KEY);
- stop_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_CB_KEY);
- stop_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_SB_KEY);
- stop_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_OM_KEY);
- stop_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_CB_KEY);
- stop_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_SB_KEY);
- stop_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_OM_KEY);
- stop_files_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_CB_KEY);
- stop_files_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_SB_KEY);
- m_resolv_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_M_RESOLVE_KEY);
- n_resolv_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_N_RESOLVE_KEY);
- t_resolv_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_T_RESOLVE_KEY);
-
- entry_text =
- g_strdup(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry)));
- if_text = g_strstrip(entry_text);
- if_name = get_if_name(if_text);
- if (*if_name == '\0') {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- "You didn't specify an interface on which to capture packets.");
- g_free(entry_text);
- return;
- }
- if (cfile.iface)
- g_free(cfile.iface);
- cfile.iface = g_strdup(if_name);
- g_free(entry_text);
-
- capture_opts.linktype =
- GPOINTER_TO_INT(OBJECT_GET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY));
-
-#ifdef _WIN32
- capture_opts.buffer_size =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(buffer_size_sb));
-#endif
-
- capture_opts.has_snaplen =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(snap_cb));
- if (capture_opts.has_snaplen) {
- capture_opts.snaplen =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(snap_sb));
- if (capture_opts.snaplen < 1)
- capture_opts.snaplen = WTAP_MAX_PACKET_SIZE;
- else if (capture_opts.snaplen < MIN_PACKET_SIZE)
- capture_opts.snaplen = MIN_PACKET_SIZE;
- }
-
- capture_opts.promisc_mode =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(promisc_cb));
-
- /* XXX - don't try to get clever and set "cfile.filter" to NULL if the
- filter string is empty, as an indication that we don't have a filter
- and thus don't have to set a filter when capturing - the version of
- libpcap in Red Hat Linux 6.1, and versions based on later patches
- in that series, don't bind the AF_PACKET socket to an interface
- until a filter is set, which means they aren't bound at all if
- no filter is set, which means no packets arrive as input on that
- socket, which means Ethereal never sees any packets. */
- filter_text = gtk_entry_get_text(GTK_ENTRY(filter_te));
- if (cfile.cfilter)
- g_free(cfile.cfilter);
- g_assert(filter_text != NULL);
- cfile.cfilter = g_strdup(filter_text);
-
- g_save_file = gtk_entry_get_text(GTK_ENTRY(file_te));
- if (g_save_file && g_save_file[0]) {
- /* User specified a file to which the capture should be written. */
- save_file = g_strdup(g_save_file);
- /* Save the directory name for future file dialogs. */
- cf_name = g_strdup(g_save_file);
- dirname = get_dirname(cf_name); /* Overwrites cf_name */
- set_last_open_dir(dirname);
- g_free(cf_name);
- } else {
- /* User didn't specify a file; save to a temporary file. */
- save_file = NULL;
- }
-
- capture_opts.has_autostop_packets =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_packets_cb));
- if (capture_opts.has_autostop_packets)
- capture_opts.autostop_packets =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_packets_sb));
-
- capture_opts.has_autostop_duration =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_duration_cb));
- if (capture_opts.has_autostop_duration) {
- capture_opts.autostop_duration =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_duration_sb));
- capture_opts.autostop_duration =
- time_unit_option_menu_get_value(stop_duration_om, capture_opts.autostop_duration);
- }
-
- capture_opts.sync_mode =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sync_cb));
-
- auto_scroll_live =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(auto_scroll_cb));
-
- capture_opts.show_info =
- !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hide_info_cb));
-
- g_resolv_flags |= g_resolv_flags & RESOLV_CONCURRENT;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m_resolv_cb)))
- g_resolv_flags |= RESOLV_MAC;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(n_resolv_cb)))
- g_resolv_flags |= RESOLV_NETWORK;
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(t_resolv_cb)))
- g_resolv_flags |= RESOLV_TRANSPORT;
-
- capture_opts.has_ring_num_files =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb));
-
- capture_opts.ring_num_files =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ringbuffer_nbf_sb));
- if (capture_opts.ring_num_files > RINGBUFFER_MAX_NUM_FILES)
- capture_opts.ring_num_files = RINGBUFFER_MAX_NUM_FILES;
-#if RINGBUFFER_MIN_NUM_FILES > 0
- else if (capture_opts.ring_num_files < RINGBUFFER_MIN_NUM_FILES)
- capture_opts.ring_num_files = RINGBUFFER_MIN_NUM_FILES;
-#endif
-
- capture_opts.multi_files_on =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(multi_files_on_cb));
-
- if(capture_opts.sync_mode)
- capture_opts.multi_files_on = FALSE;
-
- if (capture_opts.multi_files_on) {
- capture_opts.has_autostop_filesize =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ring_filesize_cb));
- if (capture_opts.has_autostop_filesize) {
- tmp = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ring_filesize_sb));
- tmp = size_unit_option_menu_convert_value(ring_filesize_om, tmp);
- if(tmp != 0) {
- capture_opts.autostop_filesize = tmp;
- } else {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- PRIMARY_TEXT_START "Multiple files: Requested filesize too large!\n\n" PRIMARY_TEXT_END
- "The setting \"Next file every x byte(s)\" can't be greater than %u bytes (2GB).", G_MAXINT);
- return;
- }
- }
-
- /* test if the settings are ok for a ringbuffer */
- if (save_file == NULL) {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- PRIMARY_TEXT_START "Multiple files: No capture file name given!\n\n" PRIMARY_TEXT_END
- "You must specify a filename if you want to use multiple files.");
- return;
- } else if (!capture_opts.has_autostop_filesize) {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- PRIMARY_TEXT_START "Multiple files: No file limit given!\n\n" PRIMARY_TEXT_END
- "You must specify a file size at which is switched to the next capture file\n"
- "if you want to use multiple files.");
- g_free(save_file);
- return;
- }
- } else {
- capture_opts.has_autostop_filesize =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_filesize_cb));
- if (capture_opts.has_autostop_filesize) {
- tmp = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_filesize_sb));
- tmp = size_unit_option_menu_convert_value(stop_filesize_om, tmp);
- if(tmp != 0) {
- capture_opts.autostop_filesize = tmp;
- } else {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- PRIMARY_TEXT_START "Stop Capture: Requested filesize too large!\n\n" PRIMARY_TEXT_END
- "The setting \"... after x byte(s)\" can't be greater than %u bytes (2GB).", G_MAXINT);
- return;
- }
- }
- }
-
- capture_opts.has_file_duration =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(file_duration_cb));
- if (capture_opts.has_file_duration) {
- capture_opts.file_duration =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(file_duration_sb));
- capture_opts.file_duration =
- time_unit_option_menu_get_value(file_duration_om, capture_opts.file_duration);
- }
-
- capture_opts.has_autostop_files =
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_files_cb));
- if (capture_opts.has_autostop_files)
- capture_opts.autostop_files =
- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_files_sb));
-
- window_destroy(GTK_WIDGET(parent_w));
-
- do_capture(save_file);
- if (save_file != NULL)
- g_free(save_file);
-}
-
-static void
-capture_prep_destroy_cb(GtkWidget *win, gpointer user_data _U_)
-{
- GtkWidget *fs;
-
- /* Is there a file selection dialog associated with this
- Capture Options dialog? */
- fs = OBJECT_GET_DATA(win, E_FILE_SEL_DIALOG_PTR_KEY);
-
- if (fs != NULL) {
- /* Yes. Destroy it. */
- window_destroy(fs);
- }
-
- /* Note that we no longer have a "Capture Options" dialog box. */
- cap_open_w = NULL;
-}
-
-static void
-capture_prep_interface_changed_cb(GtkWidget *entry, gpointer argp)
-{
- GtkWidget *linktype_om = argp;
-
- set_link_type_list(linktype_om, entry);
-}
-
-/*
- * Adjust the sensitivity of various widgets as per the current setting
- * of other widgets.
- */
-static void
-capture_prep_adjust_sensitivity(GtkWidget *tb _U_, gpointer parent_w)
-{
- GtkWidget *if_cb,
- *snap_cb, *snap_sb,
- *multi_files_on_cb, *ringbuffer_nbf_cb, *ringbuffer_nbf_sb, *ringbuffer_nbf_lb,
- *ring_filesize_cb, *ring_filesize_sb, *ring_filesize_om,
- *file_duration_cb, *file_duration_sb, *file_duration_om,
- *sync_cb, *auto_scroll_cb, *hide_info_cb,
- *stop_packets_cb, *stop_packets_sb, *stop_packets_lb,
- *stop_filesize_cb, *stop_filesize_sb, *stop_filesize_om,
- *stop_duration_cb, *stop_duration_sb, *stop_duration_om,
- *stop_files_cb, *stop_files_sb, *stop_files_lb;
-
-
- if_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_IFACE_KEY);
- snap_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_CB_KEY);
- snap_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_SB_KEY);
- multi_files_on_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_MULTI_FILES_ON_CB_KEY);
- ringbuffer_nbf_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_CB_KEY);
- ringbuffer_nbf_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_SB_KEY);
- ringbuffer_nbf_lb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_LB_KEY);
- ring_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_CB_KEY);
- ring_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_SB_KEY);
- ring_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_OM_KEY);
- file_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_CB_KEY);
- file_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_SB_KEY);
- file_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_OM_KEY);
- sync_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SYNC_KEY);
- auto_scroll_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_AUTO_SCROLL_KEY);
- hide_info_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_HIDE_INFO_KEY);
- stop_packets_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_CB_KEY);
- stop_packets_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_SB_KEY);
- stop_packets_lb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_LB_KEY);
- stop_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_CB_KEY);
- stop_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_SB_KEY);
- stop_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_OM_KEY);
- stop_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_CB_KEY);
- stop_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_SB_KEY);
- stop_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_OM_KEY);
- stop_files_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_CB_KEY);
- stop_files_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_SB_KEY);
- stop_files_lb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_LB_KEY);
-
- /* The snapshot length spinbox is sensitive if the "Limit each packet
- to" checkbox is on. */
- gtk_widget_set_sensitive(GTK_WIDGET(snap_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(snap_cb)));
-
-
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sync_cb))) {
- /* "Update list of packets in real time" captures enabled; we don't
- support ring buffer mode for those captures, so turn ring buffer
- mode off if it's on, and make its toggle button, and the spin
- button for the number of ring buffer files (and the spin button's
- label), insensitive. */
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(multi_files_on_cb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(multi_files_on_cb), FALSE);
-
- /* Auto-scroll mode is meaningful only in "Update list of packets
- in real time" captures, so make its toggle button sensitive. */
- gtk_widget_set_sensitive(GTK_WIDGET(auto_scroll_cb), TRUE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(hide_info_cb), TRUE);
- } else {
- /* "Update list of packets in real time" captures disabled; that
- means ring buffer mode is OK, so make its toggle button
- sensitive. */
- gtk_widget_set_sensitive(GTK_WIDGET(multi_files_on_cb), TRUE);
-
- /* Auto-scroll mode is meaningful only in "Update list of packets
- in real time" captures, so make its toggle button insensitive. */
- gtk_widget_set_sensitive(GTK_WIDGET(auto_scroll_cb), FALSE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(hide_info_cb), FALSE);
- }
-
- if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(multi_files_on_cb))) {
- /* Ring buffer mode enabled. */
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ring_filesize_cb), TRUE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_cb), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_lb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb)));
-
- /* The ring filesize spinbox is sensitive if the "Next capture file
- after N kilobytes" checkbox is on. */
- gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_cb), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ring_filesize_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_om),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ring_filesize_cb)));
-
- /* The ring duration spinbox is sensitive if the "Next capture file
- after N seconds" checkbox is on. */
- gtk_widget_set_sensitive(GTK_WIDGET(file_duration_cb), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(file_duration_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(file_duration_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(file_duration_om),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(file_duration_cb)));
-
- gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_cb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_sb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_om), FALSE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(stop_files_cb), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(stop_files_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_files_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(stop_files_lb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_files_cb)));
- } else {
- /* Ring buffer mode disabled. */
- gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_cb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_sb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_lb), FALSE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_cb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_sb),FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_om),FALSE);
-
- gtk_widget_set_sensitive(GTK_WIDGET(file_duration_cb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(file_duration_sb),FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(file_duration_om),FALSE);
-
- /* The maximum file size spinbox is sensitive if the "Stop capture
- after N kilobytes" checkbox is on. */
- gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_cb), TRUE);
- gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_filesize_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_om),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_filesize_cb)));
-
- gtk_widget_set_sensitive(GTK_WIDGET(stop_files_cb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(stop_files_sb), FALSE);
- gtk_widget_set_sensitive(GTK_WIDGET(stop_files_lb), FALSE);
- }
-
- /* The maximum packet count spinbox is sensitive if the "Stop capture
- after N packets" checkbox is on. */
- gtk_widget_set_sensitive(GTK_WIDGET(stop_packets_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_packets_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(stop_packets_lb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_packets_cb)));
-
- /* The capture duration spinbox is sensitive if the "Stop capture
- after N seconds" checkbox is on. */
- gtk_widget_set_sensitive(GTK_WIDGET(stop_duration_sb),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_duration_cb)));
- gtk_widget_set_sensitive(GTK_WIDGET(stop_duration_om),
- gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_duration_cb)));
-}
-
-#endif /* HAVE_LIBPCAP */
+/* capture_dlg.c
+ * Routines for packet capture windows
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+
+#include <pcap.h>
+#include <string.h>
+#include <gtk/gtk.h>
+
+#include <epan/packet.h>
+#include "capture.h"
+#include "globals.h"
+#include <epan/resolv.h>
+#include "main.h"
+#include "ui_util.h"
+#include "capture_dlg.h"
+#include "filter_prefs.h"
+#include "simple_dialog.h"
+#include "dlg_utils.h"
+#include "pcap-util.h"
+#include "capture_combo_utils.h"
+#include "prefs.h"
+#include "ringbuffer.h"
+#include <epan/filesystem.h>
+#include "compat_macros.h"
+#include "file_dlg.h"
+#include "help_dlg.h"
+#include "gtkglobals.h"
+
+#ifdef _WIN32
+#include "capture-wpcap.h"
+#endif
+
+/* Capture callback data keys */
+#define E_CAP_IFACE_KEY "cap_iface"
+#define E_CAP_IFACE_IP_KEY "cap_iface_ip"
+#define E_CAP_SNAP_CB_KEY "cap_snap_cb"
+#define E_CAP_LT_OM_KEY "cap_lt_om"
+#define E_CAP_LT_OM_LABEL_KEY "cap_lt_om_label"
+#ifdef _WIN32
+#define E_CAP_BUFFER_SIZE_SB_KEY "cap_buffer_size_sb"
+#endif
+#define E_CAP_SNAP_SB_KEY "cap_snap_sb"
+#define E_CAP_PROMISC_KEY "cap_promisc"
+#define E_CAP_FILT_KEY "cap_filter_te"
+#define E_CAP_FILE_TE_KEY "cap_file_te"
+#define E_CAP_MULTI_FILES_ON_CB_KEY "cap_multi_files_on_cb"
+#define E_CAP_RING_FILESIZE_CB_KEY "cap_ring_filesize_cb"
+#define E_CAP_RING_FILESIZE_SB_KEY "cap_ring_filesize_sb"
+#define E_CAP_RING_FILESIZE_OM_KEY "cap_ring_filesize_om"
+#define E_CAP_FILE_DURATION_CB_KEY "cap_file_duration_cb"
+#define E_CAP_FILE_DURATION_SB_KEY "cap_file_duration_sb"
+#define E_CAP_FILE_DURATION_OM_KEY "cap_file_duration_om"
+#define E_CAP_RING_NBF_CB_KEY "cap_ring_nbf_cb"
+#define E_CAP_RING_NBF_SB_KEY "cap_ring_nbf_sb"
+#define E_CAP_RING_NBF_LB_KEY "cap_ring_nbf_lb"
+#define E_CAP_STOP_FILES_CB_KEY "cap_stop_files_cb"
+#define E_CAP_STOP_FILES_SB_KEY "cap_stop_files_sb"
+#define E_CAP_STOP_FILES_LB_KEY "cap_stop_files_lb"
+#define E_CAP_SYNC_KEY "cap_sync"
+#define E_CAP_AUTO_SCROLL_KEY "cap_auto_scroll"
+#define E_CAP_HIDE_INFO_KEY "cap_hide_info"
+#define E_CAP_STOP_PACKETS_CB_KEY "cap_stop_packets_cb"
+#define E_CAP_STOP_PACKETS_SB_KEY "cap_stop_packets_sb"
+#define E_CAP_STOP_PACKETS_LB_KEY "cap_stop_packets_lb"
+#define E_CAP_STOP_FILESIZE_CB_KEY "cap_stop_filesize_cb"
+#define E_CAP_STOP_FILESIZE_SB_KEY "cap_stop_filesize_sb"
+#define E_CAP_STOP_FILESIZE_OM_KEY "cap_stop_filesize_om"
+#define E_CAP_STOP_DURATION_CB_KEY "cap_stop_duration_cb"
+#define E_CAP_STOP_DURATION_SB_KEY "cap_stop_duration_sb"
+#define E_CAP_STOP_DURATION_OM_KEY "cap_stop_duration_om"
+#define E_CAP_M_RESOLVE_KEY "cap_m_resolve"
+#define E_CAP_N_RESOLVE_KEY "cap_n_resolve"
+#define E_CAP_T_RESOLVE_KEY "cap_t_resolve"
+
+#define E_CAP_OM_LT_VALUE_KEY "cap_om_lt_value"
+
+static void
+capture_prep_file_cb(GtkWidget *file_bt, GtkWidget *file_te);
+
+static void
+select_link_type_cb(GtkWidget *w, gpointer data);
+
+static void
+capture_prep_adjust_sensitivity(GtkWidget *tb, gpointer parent_w);
+
+static void
+capture_prep_ok_cb(GtkWidget *ok_bt, gpointer parent_w);
+
+static void
+capture_prep_destroy_cb(GtkWidget *win, gpointer user_data);
+
+static void
+capture_prep_interface_changed_cb(GtkWidget *entry, gpointer parent_w);
+
+void
+capture_stop_cb(GtkWidget *w _U_, gpointer d _U_)
+{
+ capture_stop();
+}
+
+/*
+ * Given text that contains an interface name possibly prefixed by an
+ * interface description, extract the interface name.
+ */
+static char *
+get_if_name(char *if_text)
+{
+ char *if_name;
+
+#ifdef WIN32
+ /*
+ * We cannot assume that the interface name doesn't contain a space;
+ * some names on Windows OT do.
+ *
+ * We also can't assume it begins with "\Device\", either, as, on
+ * Windows OT, WinPcap doesn't put "\Device\" in front of the name.
+ *
+ * As I remember, we can't assume that the interface description
+ * doesn't contain a colon, either; I think some do.
+ *
+ * We can probably assume that the interface *name* doesn't contain
+ * a colon, however; if any interface name does contain a colon on
+ * Windows, it'll be time to just get rid of the damn interface
+ * descriptions in the drop-down list, have just the names in the
+ * drop-down list, and have a "Browse..." button to browse for interfaces,
+ * with names, descriptions, IP addresses, blah blah blah available when
+ * possible.
+ *
+ * So we search backwards for a colon. If we don't find it, just
+ * return the entire string; otherwise, skip the colon and any blanks
+ * after it, and return that string.
+ */
+ if_name = if_text + strlen(if_text);
+ for (;;) {
+ if (if_name == if_text) {
+ /* We're at the beginning of the string; return it. */
+ break;
+ }
+ if_name--;
+ if (*if_name == ':') {
+ /*
+ * We've found a colon.
+ * Unfortunately, a colon is used in the string "rpcap://",
+ * which is used in case of a remote capture.
+ * So we'll check to make sure the colon isn't followed by "//";
+ * it'll be followed by a blank if it separates the description
+ * and the interface name. (We don't wire in "rpcap", in case we
+ * support other protocols in the same syntax.)
+ */
+ if (strncmp(if_name, "://", 3) != 0) {
+ /*
+ * OK, we've found a colon not followed by "//". Skip blanks
+ * following it.
+ */
+ if_name++;
+ while (*if_name == ' ')
+ if_name++;
+ break;
+ }
+ }
+ /* Keep looking for a colon not followed by "//". */
+ }
+#else
+ /*
+ * There's a space between the interface description and name, and
+ * the interface name shouldn't have a space in it (it doesn't, on
+ * UNIX systems); look backwards in the string for a space.
+ *
+ * (An interface name might, however, contain a colon in it, which
+ * is why we don't use the colon search on UNIX.)
+ */
+ if_name = strrchr(if_text, ' ');
+ if (if_name == NULL) {
+ if_name = if_text;
+ } else {
+ if_name++;
+ }
+#endif
+ return if_name;
+}
+
+/*
+ * Keep a static pointer to the current "Capture Options" window, if
+ * any, so that if somebody tries to do "Capture:Start" while there's
+ * already a "Capture Options" window up, we just pop up the existing
+ * one, rather than creating a new one.
+ */
+static GtkWidget *cap_open_w;
+
+
+/* From tcptraceroute, convert a numeric IP address to a string */
+/* XXX - this functionality is already somewhere in our code */
+#define IPTOSBUFFERS 12
+char *iptos(u_long in)
+{
+ static char output[IPTOSBUFFERS][3*4+3+1];
+ static short which;
+ u_char *p;
+
+ p = (u_char *)&in;
+ which = (which + 1 == IPTOSBUFFERS ? 0 : which + 1);
+ sprintf(output[which], "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
+ return output[which];
+}
+
+
+static void
+set_link_type_list(GtkWidget *linktype_om, GtkWidget *entry)
+{
+ gchar *entry_text;
+ gchar *if_text;
+ gchar *if_name;
+ GList *if_list;
+ GList *if_entry;
+ if_info_t *if_info;
+ GList *lt_list;
+ int err;
+ char err_buf[PCAP_ERRBUF_SIZE];
+ GtkWidget *lt_menu, *lt_menu_item;
+ GList *lt_entry;
+ data_link_info_t *data_link_info;
+ gchar *linktype_menu_label;
+ guint num_supported_link_types;
+ GtkWidget *linktype_lb = OBJECT_GET_DATA(linktype_om, E_CAP_LT_OM_LABEL_KEY);
+ GtkWidget *if_ip_lb;
+ GString *ip_str = g_string_new("IP address: ");
+ int ips = 0;
+ GSList *curr_ip;
+
+ lt_menu = gtk_menu_new();
+ entry_text = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
+ if_text = g_strstrip(entry_text);
+ if_name = get_if_name(if_text);
+
+ /*
+ * If the interface name is in the list of known interfaces, get
+ * its list of link-layer types and set the option menu to display it.
+ *
+ * If it's not, don't bother - the user might be in the middle of
+ * editing the list, or it might be a remote device in which case
+ * getting the list could take an arbitrarily-long period of time.
+ * The list currently won't contain any remote devices (as
+ * "pcap_findalldevs()" doesn't know about remote devices, and neither
+ * does the code we use if "pcap_findalldevs()" isn't available), but
+ * should contain all the local devices on which you can capture.
+ */
+ lt_list = NULL;
+ if (*if_name != '\0') {
+ /*
+ * Try to get the list of known interfaces.
+ */
+ if_list = get_interface_list(&err, err_buf);
+ if (if_list != NULL) {
+ /*
+ * We have the list - check it.
+ */
+ for (if_entry = if_list; if_entry != NULL;
+ if_entry = g_list_next(if_entry)) {
+ if_info = if_entry->data;
+ if (strcmp(if_info->name, if_name) == 0) {
+ /*
+ * It's in the list.
+ * Get the list of link-layer types for it.
+ */
+ lt_list = get_pcap_linktype_list(if_name, err_buf);
+
+ /* create string of list of IP addresses of this interface */
+ for( ; curr_ip = g_slist_nth(if_info->ip_addr, ips); ips++) {
+ if (ips != 0) {
+ g_string_append(ip_str, ", ");
+ }
+
+ g_string_append(ip_str, iptos(*((guint32 *)curr_ip->data)));
+ }
+
+ if(if_info->loopback) {
+ g_string_append(ip_str, " (loopback)");
+ }
+ }
+ }
+ free_interface_list(if_list);
+ }
+ }
+ g_free(entry_text);
+ num_supported_link_types = 0;
+ for (lt_entry = lt_list; lt_entry != NULL; lt_entry = g_list_next(lt_entry)) {
+ data_link_info = lt_entry->data;
+ if (data_link_info->description != NULL) {
+ lt_menu_item = gtk_menu_item_new_with_label(data_link_info->description);
+ OBJECT_SET_DATA(lt_menu_item, E_CAP_LT_OM_KEY, linktype_om);
+ SIGNAL_CONNECT(lt_menu_item, "activate", select_link_type_cb,
+ GINT_TO_POINTER(data_link_info->dlt));
+ num_supported_link_types++;
+ } else {
+ /* Not supported - tell them about it but don't let them select it. */
+ linktype_menu_label = g_strdup_printf("%s (not supported)",
+ data_link_info->name);
+ lt_menu_item = gtk_menu_item_new_with_label(linktype_menu_label);
+ g_free(linktype_menu_label);
+ gtk_widget_set_sensitive(lt_menu_item, FALSE);
+ }
+ gtk_menu_append(GTK_MENU(lt_menu), lt_menu_item);
+ }
+ if (lt_list != NULL)
+ free_pcap_linktype_list(lt_list);
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(linktype_om), lt_menu);
+ gtk_widget_set_sensitive(linktype_lb, num_supported_link_types >= 2);
+ gtk_widget_set_sensitive(linktype_om, num_supported_link_types >= 2);
+
+ if_ip_lb = OBJECT_GET_DATA(linktype_om, E_CAP_IFACE_KEY);
+ if(ips == 0) {
+ g_string_append(ip_str, "unknown");
+ }
+ gtk_label_set_text(GTK_LABEL(if_ip_lb), ip_str->str);
+ g_string_free(ip_str, TRUE);
+}
+
+
+#define TIME_UNIT_SECOND 0
+#define TIME_UNIT_MINUTE 1
+#define TIME_UNIT_HOUR 2
+#define TIME_UNIT_DAY 3
+#define MAX_TIME_UNITS 4
+static char *time_unit_name[MAX_TIME_UNITS] = {
+ "second(s)",
+ "minute(s)",
+ "hour(s)",
+ "day(s)",
+};
+
+static GtkWidget *time_unit_option_menu_new(guint32 value) {
+ GtkWidget *unit_om, *menu, *menu_item;
+ int i;
+
+ unit_om=gtk_option_menu_new();
+ menu=gtk_menu_new();
+ for(i=0;i<MAX_TIME_UNITS;i++){
+ menu_item=gtk_menu_item_new_with_label(time_unit_name[i]);
+ OBJECT_SET_DATA(menu_item, "time_unit", GINT_TO_POINTER(i));
+ gtk_menu_append(GTK_MENU(menu), menu_item);
+ }
+
+ /* the selected menu item can't be changed, once the option_menu
+ is created, so set the matching menu item now */
+ /* days */
+ if(value >= 60 * 60 * 24) {
+ gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_DAY);
+ } else {
+ /* hours */
+ if(value >= 60 * 60) {
+ gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_HOUR);
+ } else {
+ /* minutes */
+ if(value >= 60) {
+ gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_MINUTE);
+ } else {
+ /* seconds */
+ gtk_menu_set_active(GTK_MENU(menu), TIME_UNIT_SECOND);
+ }
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(unit_om), menu);
+
+ return unit_om;
+}
+
+static guint32 time_unit_option_menu_convert_value(
+guint32 value)
+{
+ /* days */
+ if(value >= 60 * 60 * 24) {
+ return value / (60 * 60 * 24);
+ }
+
+ /* hours */
+ if(value >= 60 * 60) {
+ return value / (60 * 60);
+ }
+
+ /* minutes */
+ if(value >= 60) {
+ return value / 60;
+ }
+
+ /* seconds */
+ return value;
+}
+
+static guint32 time_unit_option_menu_get_value(
+GtkWidget *unit_om,
+guint32 value)
+{
+ GtkWidget *menu, *menu_item;
+ int unit;
+
+ menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(unit_om));
+ menu_item = gtk_menu_get_active(GTK_MENU(menu));
+ unit = GPOINTER_TO_INT(OBJECT_GET_DATA(menu_item, "time_unit"));
+
+
+ switch(unit) {
+ case(TIME_UNIT_SECOND):
+ return value;
+ break;
+ case(TIME_UNIT_MINUTE):
+ return value * 60;
+ break;
+ case(TIME_UNIT_HOUR):
+ return value * 60 * 60;
+ break;
+ case(TIME_UNIT_DAY):
+ return value * 60 * 60 * 24;
+ break;
+ default:
+ g_assert_not_reached();
+ return 0;
+ }
+}
+
+
+#define SIZE_UNIT_BYTES 0
+#define SIZE_UNIT_KILOBYTES 1
+#define SIZE_UNIT_MEGABYTES 2
+#define SIZE_UNIT_GIGABYTES 3
+#define MAX_SIZE_UNITS 4
+static char *size_unit_name[MAX_SIZE_UNITS] = {
+ "byte(s)",
+ "kilobyte(s)",
+ "megabyte(s)",
+ "gigabyte(s)",
+};
+
+static GtkWidget *size_unit_option_menu_new(guint32 value) {
+ GtkWidget *unit_om, *menu, *menu_item;
+ int i;
+
+ unit_om=gtk_option_menu_new();
+ menu=gtk_menu_new();
+ for(i=0;i<MAX_SIZE_UNITS;i++){
+ menu_item=gtk_menu_item_new_with_label(size_unit_name[i]);
+ OBJECT_SET_DATA(menu_item, "size_unit", GINT_TO_POINTER(i));
+ gtk_menu_append(GTK_MENU(menu), menu_item);
+ }
+
+ /* the selected menu item can't be changed, once the option_menu
+ is created, so set the matching menu item now */
+ /* gigabytes */
+ if(value >= 1024 * 1024 * 1024) {
+ gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_GIGABYTES);
+ } else {
+ /* megabytes */
+ if(value >= 1024 * 1024) {
+ gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_MEGABYTES);
+ } else {
+ /* kilobytes */
+ if(value >= 1024) {
+ gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_KILOBYTES);
+ } else {
+ /* bytes */
+ gtk_menu_set_active(GTK_MENU(menu), SIZE_UNIT_BYTES);
+ }
+ }
+ }
+
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(unit_om), menu);
+
+ return unit_om;
+}
+
+static guint32 size_unit_option_menu_set_value(
+guint32 value)
+{
+ /* gigabytes */
+ if(value >= 1024 * 1024 * 1024) {
+ return value / (1024 * 1024 * 1024);
+ }
+
+ /* megabytes */
+ if(value >= 1024 * 1024) {
+ return value / (1024 * 1024);
+ }
+
+ /* kilobytes */
+ if(value >= 1024) {
+ return value / 1024;
+ }
+
+ /* bytes */
+ return value;
+}
+
+static guint32 size_unit_option_menu_convert_value(
+GtkWidget *unit_om,
+guint32 value)
+{
+ GtkWidget *menu, *menu_item;
+ int unit;
+
+ menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(unit_om));
+ menu_item = gtk_menu_get_active(GTK_MENU(menu));
+ unit = GPOINTER_TO_INT(OBJECT_GET_DATA(menu_item, "size_unit"));
+
+
+ switch(unit) {
+ case(SIZE_UNIT_BYTES):
+ return value;
+ break;
+ case(SIZE_UNIT_KILOBYTES):
+ if(value > G_MAXINT / 1024) {
+ return 0;
+ } else {
+ return value * 1024;
+ }
+ break;
+ case(SIZE_UNIT_MEGABYTES):
+ if(value > G_MAXINT / (1024 * 1024)) {
+ return 0;
+ } else {
+ return value * 1024 * 1024;
+ }
+ break;
+ case(SIZE_UNIT_GIGABYTES):
+ if(value > G_MAXINT / (1024 * 1024 * 1024)) {
+ return 0;
+ } else {
+ return value * 1024 * 1024 * 1024;
+ }
+ break;
+ default:
+ g_assert_not_reached();
+ return 0;
+ }
+}
+
+
+void
+capture_prep(void)
+{
+ GtkWidget *main_vb,
+ *main_hb, *left_vb, *right_vb,
+
+ *capture_fr, *capture_vb,
+ *if_hb, *if_cb, *if_lb,
+ *if_ip_hb, *if_ip_lb,
+ *linktype_hb, *linktype_lb, *linktype_om,
+ *snap_hb, *snap_cb, *snap_sb, *snap_lb,
+ *promisc_cb,
+ *filter_hb, *filter_bt, *filter_te,
+
+ *file_fr, *file_vb,
+ *file_hb, *file_bt, *file_lb, *file_te,
+ *multi_tb, *multi_files_on_cb,
+ *ring_filesize_cb, *ring_filesize_sb, *ring_filesize_om,
+ *file_duration_cb, *file_duration_sb, *file_duration_om,
+ *ringbuffer_nbf_cb, *ringbuffer_nbf_sb, *ringbuffer_nbf_lb,
+ *stop_files_cb, *stop_files_sb, *stop_files_lb,
+
+ *limit_fr, *limit_vb, *limit_tb,
+ *stop_packets_cb, *stop_packets_sb, *stop_packets_lb,
+ *stop_filesize_cb, *stop_filesize_sb, *stop_filesize_om,
+ *stop_duration_cb, *stop_duration_sb, *stop_duration_om,
+
+ *display_fr, *display_vb,
+ *sync_cb, *auto_scroll_cb, *hide_info_cb,
+
+ *resolv_fr, *resolv_vb,
+ *m_resolv_cb, *n_resolv_cb, *t_resolv_cb,
+ *bbox, *ok_bt, *cancel_bt,
+ *help_bt;
+#if GTK_MAJOR_VERSION < 2
+ GtkAccelGroup *accel_group;
+#endif
+ GtkTooltips *tooltips;
+ GtkAdjustment *snap_adj, *ringbuffer_nbf_adj,
+ *stop_packets_adj, *stop_filesize_adj, *stop_duration_adj, *stop_files_adj, *ring_filesize_adj, *file_duration_adj;
+ GList *if_list, *combo_list;
+ int err;
+ int row;
+ char err_str[PCAP_ERRBUF_SIZE];
+ gchar *cant_get_if_list_errstr;
+#ifdef _WIN32
+ GtkAdjustment *buffer_size_adj;
+ GtkWidget *buffer_size_lb, *buffer_size_sb;
+#endif
+ guint32 value;
+
+ if (cap_open_w != NULL) {
+ /* There's already a "Capture Options" dialog box; reactivate it. */
+ reactivate_window(cap_open_w);
+ return;
+ }
+
+#ifdef _WIN32
+ /* Is WPcap loaded? */
+ if (!has_wpcap) {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ "Unable to load WinPcap (wpcap.dll); Ethereal will not be able\n"
+ "to capture packets.\n\n"
+ "In order to capture packets, WinPcap must be installed; see\n"
+ "\n"
+ " http://winpcap.polito.it/\n"
+ "\n"
+ "or the mirror at\n"
+ "\n"
+ " http://winpcap.mirror.ethereal.com/\n"
+ "\n"
+ "or the mirror at\n"
+ "\n"
+ " http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n"
+ "\n"
+ "for a downloadable version of WinPcap and for instructions\n"
+ "on how to install WinPcap.");
+ return;
+ }
+#endif
+
+ if_list = get_interface_list(&err, err_str);
+ if (if_list == NULL && err == CANT_GET_INTERFACE_LIST) {
+ cant_get_if_list_errstr = cant_get_if_list_error_message(err_str);
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s",
+ cant_get_if_list_errstr);
+ g_free(cant_get_if_list_errstr);
+ }
+
+ cap_open_w = dlg_window_new("Ethereal: Capture Options");
+
+ tooltips = gtk_tooltips_new();
+
+#if GTK_MAJOR_VERSION < 2
+ /* Accelerator group for the accelerators (or, as they're called in
+ Windows and, I think, in Motif, "mnemonics"; Alt+<key> is a mnemonic,
+ Ctrl+<key> is an accelerator). */
+ accel_group = gtk_accel_group_new();
+ gtk_window_add_accel_group(GTK_WINDOW(cap_open_w), accel_group);
+#endif
+
+ main_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(main_vb), 5);
+ gtk_container_add(GTK_CONTAINER(cap_open_w), main_vb);
+
+ /* Capture-related options frame */
+ capture_fr = gtk_frame_new("Capture");
+ gtk_container_add(GTK_CONTAINER(main_vb), capture_fr);
+
+ capture_vb = gtk_vbox_new(FALSE, 3);
+ gtk_container_border_width(GTK_CONTAINER(capture_vb), 5);
+ gtk_container_add(GTK_CONTAINER(capture_fr), capture_vb);
+
+ /* Interface row */
+ if_hb = gtk_hbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(capture_vb), if_hb);
+
+ if_lb = gtk_label_new("Interface:");
+ gtk_box_pack_start(GTK_BOX(if_hb), if_lb, FALSE, FALSE, 6);
+
+ if_cb = gtk_combo_new();
+ combo_list = build_capture_combo_list(if_list, TRUE);
+ if (combo_list != NULL)
+ gtk_combo_set_popdown_strings(GTK_COMBO(if_cb), combo_list);
+ if (cfile.iface == NULL && prefs.capture_device != NULL) {
+ /* No interface was specified on the command line or in a previous
+ capture, but there is one specified in the preferences file;
+ make the one from the preferences file the default */
+ cfile.iface = g_strdup(prefs.capture_device);
+ }
+ if (cfile.iface != NULL)
+ gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry), cfile.iface);
+ else if (combo_list != NULL) {
+ gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry),
+ (char *)combo_list->data);
+ }
+ free_capture_combo_list(combo_list);
+ free_interface_list(if_list);
+ gtk_tooltips_set_tip(tooltips, GTK_COMBO(if_cb)->entry,
+ "Choose which interface (network card) will be used to capture packets from. "
+ "Be sure to select the correct one, as it's a common mistake to select the wrong interface.", NULL);
+ gtk_box_pack_start(GTK_BOX(if_hb), if_cb, TRUE, TRUE, 6);
+
+ if_ip_hb = gtk_hbox_new(FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(capture_vb), if_ip_hb, FALSE, FALSE, 0);
+
+ if_ip_lb = gtk_label_new("");
+ gtk_box_pack_start(GTK_BOX(if_ip_hb), if_ip_lb, FALSE, FALSE, 6);
+
+ /* Linktype row */
+ linktype_hb = gtk_hbox_new(FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(capture_vb), linktype_hb, FALSE, FALSE, 0);
+
+ linktype_lb = gtk_label_new("Link-layer header type:");
+ gtk_box_pack_start(GTK_BOX(linktype_hb), linktype_lb, FALSE, FALSE, 6);
+
+ linktype_om = gtk_option_menu_new();
+ OBJECT_SET_DATA(linktype_om, E_CAP_LT_OM_LABEL_KEY, linktype_lb);
+ /* Default to "use the default" */
+ OBJECT_SET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY, GINT_TO_POINTER(-1));
+ OBJECT_SET_DATA(linktype_om, E_CAP_IFACE_KEY, if_ip_lb);
+ set_link_type_list(linktype_om, GTK_COMBO(if_cb)->entry);
+ /*
+ * XXX - in some cases, this is "multiple link-layer header types", e.g.
+ * some 802.11 interfaces on FreeBSD 5.2 and later, where you can request
+ * fake Ethernet, 802.11, or 802.11-plus-radio-information headers.
+ *
+ * In other cases, it's "multiple link-layer types", e.g., with recent
+ * versions of libpcap, a DAG card on an "HDLC" WAN, where you can
+ * request Cisco HDLC or PPP depending on what type of traffic is going
+ * over the WAN, or an Ethernet interface, where you can request Ethernet
+ * or DOCSIS, the latter being for some Cisco cable modem equipment that
+ * can be configured to send raw DOCSIS frames over an Ethernet inside
+ * Ethernet low-level framing, for traffic capture purposes.
+ *
+ * We leave it as "multiple link-layer types" for now.
+ */
+ gtk_tooltips_set_tip(tooltips, linktype_om,
+ "The selected interface supports multiple link-layer types; select the desired one.", NULL);
+ gtk_box_pack_start (GTK_BOX(linktype_hb), linktype_om, FALSE, FALSE, 0);
+ SIGNAL_CONNECT(GTK_ENTRY(GTK_COMBO(if_cb)->entry), "changed",
+ capture_prep_interface_changed_cb, linktype_om);
+
+#ifdef _WIN32
+ buffer_size_lb = gtk_label_new("Buffer size:");
+ gtk_box_pack_start (GTK_BOX(linktype_hb), buffer_size_lb, FALSE, FALSE, 0);
+
+ buffer_size_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat) capture_opts.buffer_size,
+ 1, 65535, 1.0, 10.0, 0.0);
+ buffer_size_sb = gtk_spin_button_new (buffer_size_adj, 0, 0);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON (buffer_size_sb), (gfloat) capture_opts.buffer_size);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (buffer_size_sb), TRUE);
+ WIDGET_SET_SIZE(buffer_size_sb, 80, -1);
+ gtk_tooltips_set_tip(tooltips, buffer_size_sb,
+ "The memory buffer size used while capturing. If you notice packet drops, you can try to increase this size.", NULL);
+ gtk_box_pack_start (GTK_BOX(linktype_hb), buffer_size_sb, FALSE, FALSE, 0);
+
+ buffer_size_lb = gtk_label_new("megabyte(s)");
+ gtk_box_pack_start (GTK_BOX(linktype_hb), buffer_size_lb, FALSE, FALSE, 0);
+#endif
+
+ /* Promiscuous mode row */
+ promisc_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "Capture packets in _promiscuous mode", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(promisc_cb),
+ capture_opts.promisc_mode);
+ gtk_tooltips_set_tip(tooltips, promisc_cb,
+ "Usually a network card will only capture the traffic sent to its own network address. "
+ "If you want to capture all traffic that the network card can \"see\", mark this option. "
+ "See the FAQ for some more details of capturing packets from a switched network.", NULL);
+ gtk_container_add(GTK_CONTAINER(capture_vb), promisc_cb);
+
+ /* Capture length row */
+ snap_hb = gtk_hbox_new(FALSE, 3);
+ gtk_container_add(GTK_CONTAINER(capture_vb), snap_hb);
+
+ snap_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC("_Limit each packet to", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(snap_cb),
+ capture_opts.has_snaplen);
+ SIGNAL_CONNECT(snap_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, snap_cb,
+ "Limit the maximum number of bytes to be captured from each packet. This size includes the "
+ "link-layer header and all subsequent headers. ", NULL);
+ gtk_box_pack_start(GTK_BOX(snap_hb), snap_cb, FALSE, FALSE, 0);
+
+ snap_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat) capture_opts.snaplen,
+ MIN_PACKET_SIZE, WTAP_MAX_PACKET_SIZE, 1.0, 10.0, 0.0);
+ snap_sb = gtk_spin_button_new (snap_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (snap_sb), TRUE);
+ WIDGET_SET_SIZE(snap_sb, 80, -1);
+ gtk_box_pack_start (GTK_BOX(snap_hb), snap_sb, FALSE, FALSE, 0);
+
+ snap_lb = gtk_label_new("bytes");
+ gtk_misc_set_alignment(GTK_MISC(snap_lb), 0, 0.5);
+ gtk_box_pack_start(GTK_BOX(snap_hb), snap_lb, FALSE, FALSE, 0);
+
+ /* Filter row */
+ filter_hb = gtk_hbox_new(FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(capture_vb), filter_hb, FALSE, FALSE, 0);
+
+ filter_bt = BUTTON_NEW_FROM_STOCK(ETHEREAL_STOCK_CAPTURE_FILTER_ENTRY);
+ SIGNAL_CONNECT(filter_bt, "clicked", capture_filter_construct_cb, NULL);
+ SIGNAL_CONNECT(filter_bt, "destroy", filter_button_destroy_cb, NULL);
+ gtk_tooltips_set_tip(tooltips, filter_bt,
+ "Select a capture filter to reduce the amount of packets to be captured. "
+ "See \"Capture Filters\" in the online help for further information how to use it.",
+ NULL);
+ gtk_box_pack_start(GTK_BOX(filter_hb), filter_bt, FALSE, FALSE, 3);
+
+ filter_te = gtk_entry_new();
+ if (cfile.cfilter) gtk_entry_set_text(GTK_ENTRY(filter_te), cfile.cfilter);
+ OBJECT_SET_DATA(filter_bt, E_FILT_TE_PTR_KEY, filter_te);
+ gtk_tooltips_set_tip(tooltips, filter_te,
+ "Enter a capture filter to reduce the amount of packets to be captured. "
+ "See \"Capture Filters\" in the online help for further information how to use it.",
+ NULL);
+ gtk_box_pack_start(GTK_BOX(filter_hb), filter_te, TRUE, TRUE, 3);
+
+ main_hb = gtk_hbox_new(FALSE, 5);
+ gtk_container_border_width(GTK_CONTAINER(main_hb), 0);
+ gtk_container_add(GTK_CONTAINER(main_vb), main_hb);
+
+ left_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(left_vb), 0);
+ gtk_box_pack_start(GTK_BOX(main_hb), left_vb, TRUE, TRUE, 0);
+
+ right_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(right_vb), 0);
+ gtk_box_pack_start(GTK_BOX(main_hb), right_vb, FALSE, FALSE, 0);
+
+
+ /* Capture file-related options frame */
+ file_fr = gtk_frame_new("Capture File(s)");
+ gtk_container_add(GTK_CONTAINER(left_vb), file_fr);
+
+ file_vb = gtk_vbox_new(FALSE, 3);
+ gtk_container_border_width(GTK_CONTAINER(file_vb), 5);
+ gtk_container_add(GTK_CONTAINER(file_fr), file_vb);
+
+ /* File row */
+ file_hb = gtk_hbox_new(FALSE, 3);
+ gtk_box_pack_start(GTK_BOX(file_vb), file_hb, FALSE, FALSE, 0);
+
+ file_lb = gtk_label_new("File:");
+ gtk_box_pack_start(GTK_BOX(file_hb), file_lb, FALSE, FALSE, 3);
+
+ file_te = gtk_entry_new();
+ gtk_tooltips_set_tip(tooltips, file_te,
+ "Enter the file name to which captured data will be written. "
+ "If you don't enter something here, a temporary file will be used.",
+ NULL);
+ gtk_box_pack_start(GTK_BOX(file_hb), file_te, TRUE, TRUE, 3);
+
+ file_bt = BUTTON_NEW_FROM_STOCK(ETHEREAL_STOCK_BROWSE);
+ gtk_tooltips_set_tip(tooltips, file_bt,
+ "Select a file to which captured data will be written, "
+ "instead of entering the file name directly. ",
+ NULL);
+ gtk_box_pack_start(GTK_BOX(file_hb), file_bt, FALSE, FALSE, 3);
+
+ SIGNAL_CONNECT(file_bt, "clicked", capture_prep_file_cb, file_te);
+
+ /* multiple files table */
+ multi_tb = gtk_table_new(5, 3, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(multi_tb), 1);
+ gtk_table_set_col_spacings(GTK_TABLE(multi_tb), 3);
+ gtk_box_pack_start(GTK_BOX(file_vb), multi_tb, FALSE, FALSE, 0);
+ row = 0;
+
+ /* multiple files row */
+ multi_files_on_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC("Use _multiple files", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(multi_files_on_cb),
+ capture_opts.multi_files_on);
+ SIGNAL_CONNECT(multi_files_on_cb, "toggled", capture_prep_adjust_sensitivity,
+ cap_open_w);
+ gtk_tooltips_set_tip(tooltips, multi_files_on_cb,
+ "Instead of using a single capture file, multiple files will be created. "
+ "The generated file names will contain an incrementing number and the start time of the capture.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), multi_files_on_cb, 0, 1, row, row+1);
+ row++;
+
+ /* Ring buffer filesize row */
+ ring_filesize_cb = gtk_check_button_new_with_label("Next file every");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(ring_filesize_cb),
+ capture_opts.has_autostop_filesize);
+ SIGNAL_CONNECT(ring_filesize_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, ring_filesize_cb,
+ "If the selected file size is exceeded, capturing switches to the next file.",
+ NULL);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), ring_filesize_cb, 0, 1, row, row+1);
+
+ ring_filesize_adj = (GtkAdjustment *) gtk_adjustment_new(0.0,
+ 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
+ ring_filesize_sb = gtk_spin_button_new (ring_filesize_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (ring_filesize_sb), TRUE);
+ WIDGET_SET_SIZE(ring_filesize_sb, 80, -1);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), ring_filesize_sb, 1, 2, row, row+1);
+
+ ring_filesize_om = size_unit_option_menu_new(capture_opts.autostop_filesize);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), ring_filesize_om, 2, 3, row, row+1);
+
+ value = size_unit_option_menu_set_value(capture_opts.autostop_filesize);
+ gtk_adjustment_set_value(ring_filesize_adj, (gfloat) value);
+
+ row++;
+
+ /* Ring buffer duration row */
+ file_duration_cb = gtk_check_button_new_with_label("Next file every");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(file_duration_cb),
+ capture_opts.has_file_duration);
+ SIGNAL_CONNECT(file_duration_cb, "toggled",
+ capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, file_duration_cb,
+ "If the selected duration is exceeded, capturing switches to the next file.",
+ NULL);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), file_duration_cb, 0, 1, row, row+1);
+
+ file_duration_adj = (GtkAdjustment *)gtk_adjustment_new(0.0,
+ 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
+ file_duration_sb = gtk_spin_button_new (file_duration_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (file_duration_sb), TRUE);
+ WIDGET_SET_SIZE(file_duration_sb, 80, -1);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), file_duration_sb, 1, 2, row, row+1);
+
+ file_duration_om = time_unit_option_menu_new(capture_opts.file_duration);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), file_duration_om, 2, 3, row, row+1);
+
+ value = time_unit_option_menu_convert_value(capture_opts.file_duration);
+ gtk_adjustment_set_value(file_duration_adj, (gfloat) value);
+ row++;
+
+ /* Ring buffer files row */
+ ringbuffer_nbf_cb = gtk_check_button_new_with_label("Ring buffer with");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb),
+ capture_opts.has_ring_num_files);
+ SIGNAL_CONNECT(ringbuffer_nbf_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, ringbuffer_nbf_cb,
+ "After capturing has switched to the next file and the given number of files has exceeded, "
+ "the oldest file will be removed.",
+ NULL);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), ringbuffer_nbf_cb, 0, 1, row, row+1);
+
+ ringbuffer_nbf_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat) capture_opts.ring_num_files,
+ 2/*RINGBUFFER_MIN_NUM_FILES*/, RINGBUFFER_MAX_NUM_FILES, 1.0, 10.0, 0.0);
+ ringbuffer_nbf_sb = gtk_spin_button_new (ringbuffer_nbf_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (ringbuffer_nbf_sb), TRUE);
+ WIDGET_SET_SIZE(ringbuffer_nbf_sb, 80, -1);
+ SIGNAL_CONNECT(ringbuffer_nbf_sb, "changed", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), ringbuffer_nbf_sb, 1, 2, row, row+1);
+
+ ringbuffer_nbf_lb = gtk_label_new("files");
+ gtk_misc_set_alignment(GTK_MISC(ringbuffer_nbf_lb), 0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), ringbuffer_nbf_lb, 2, 3, row, row+1);
+ row++;
+
+ /* Files row */
+ stop_files_cb = gtk_check_button_new_with_label("Stop capture after");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_files_cb),
+ capture_opts.has_autostop_files);
+ SIGNAL_CONNECT(stop_files_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, stop_files_cb,
+ "Stop capturing after the given number of \"file switches\" have been done.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), stop_files_cb, 0, 1, row, row+1);
+
+ stop_files_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat)capture_opts.autostop_files,
+ 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
+ stop_files_sb = gtk_spin_button_new (stop_files_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_files_sb), TRUE);
+ WIDGET_SET_SIZE(stop_files_sb, 80, -1);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), stop_files_sb, 1, 2, row, row+1);
+
+ stop_files_lb = gtk_label_new("file(s)");
+ gtk_misc_set_alignment(GTK_MISC(stop_files_lb), 0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(multi_tb), stop_files_lb, 2, 3, row, row+1);
+ row++;
+
+ /* Capture limits frame */
+ limit_fr = gtk_frame_new("Stop Capture ...");
+ gtk_container_add(GTK_CONTAINER(left_vb), limit_fr);
+
+ limit_vb = gtk_vbox_new(FALSE, 3);
+ gtk_container_border_width(GTK_CONTAINER(limit_vb), 5);
+ gtk_container_add(GTK_CONTAINER(limit_fr), limit_vb);
+
+ /* limits table */
+ limit_tb = gtk_table_new(3, 3, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(limit_tb), 1);
+ gtk_table_set_col_spacings(GTK_TABLE(limit_tb), 3);
+ gtk_box_pack_start(GTK_BOX(limit_vb), limit_tb, FALSE, FALSE, 0);
+ row = 0;
+
+ /* Packet count row */
+ stop_packets_cb = gtk_check_button_new_with_label("... after");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_packets_cb),
+ capture_opts.has_autostop_packets);
+ SIGNAL_CONNECT(stop_packets_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, stop_packets_cb,
+ "Stop capturing after the given number of packets have been captured.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_packets_cb, 0, 1, row, row+1);
+
+ stop_packets_adj = (GtkAdjustment *) gtk_adjustment_new((gfloat)capture_opts.autostop_packets,
+ 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
+ stop_packets_sb = gtk_spin_button_new (stop_packets_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_packets_sb), TRUE);
+ WIDGET_SET_SIZE(stop_packets_sb, 80, -1);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_packets_sb, 1, 2, row, row+1);
+
+ stop_packets_lb = gtk_label_new("packet(s)");
+ gtk_misc_set_alignment(GTK_MISC(stop_packets_lb), 0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_packets_lb, 2, 3, row, row+1);
+ row++;
+
+ /* Filesize row */
+ stop_filesize_cb = gtk_check_button_new_with_label("... after");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_filesize_cb),
+ capture_opts.has_autostop_filesize);
+ SIGNAL_CONNECT(stop_filesize_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, stop_filesize_cb,
+ "Stop capturing after the given amount of capture data has been captured.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_filesize_cb, 0, 1, row, row+1);
+
+ stop_filesize_adj = (GtkAdjustment *) gtk_adjustment_new(0.0,
+ 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
+ stop_filesize_sb = gtk_spin_button_new (stop_filesize_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_filesize_sb), TRUE);
+ WIDGET_SET_SIZE(stop_filesize_sb, 80, -1);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_filesize_sb, 1, 2, row, row+1);
+
+ stop_filesize_om = size_unit_option_menu_new(capture_opts.autostop_filesize);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_filesize_om, 2, 3, row, row+1);
+
+ value = size_unit_option_menu_set_value(capture_opts.autostop_filesize);
+ gtk_adjustment_set_value(stop_filesize_adj, (gfloat) value);
+
+ row++;
+
+ /* Duration row */
+ stop_duration_cb = gtk_check_button_new_with_label("... after");
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(stop_duration_cb),
+ capture_opts.has_autostop_duration);
+ SIGNAL_CONNECT(stop_duration_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, stop_duration_cb,
+ "Stop capturing after the given time is exceeded.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_duration_cb, 0, 1, row, row+1);
+
+ stop_duration_adj = (GtkAdjustment *) gtk_adjustment_new(0.0,
+ 1, (gfloat)INT_MAX, 1.0, 10.0, 0.0);
+ stop_duration_sb = gtk_spin_button_new (stop_duration_adj, 0, 0);
+ gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_duration_sb), TRUE);
+ WIDGET_SET_SIZE(stop_duration_sb, 80, -1);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_duration_sb, 1, 2, row, row+1);
+
+ stop_duration_om = time_unit_option_menu_new(capture_opts.autostop_duration);
+ gtk_table_attach_defaults(GTK_TABLE(limit_tb), stop_duration_om, 2, 3, row, row+1);
+
+ value = time_unit_option_menu_convert_value(capture_opts.autostop_duration);
+ gtk_adjustment_set_value(stop_duration_adj, (gfloat) value);
+ row++;
+
+ /* Display-related options frame */
+ display_fr = gtk_frame_new("Display Options");
+ gtk_container_add(GTK_CONTAINER(right_vb), display_fr);
+
+ display_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(display_vb), 5);
+ gtk_container_add(GTK_CONTAINER(display_fr), display_vb);
+
+ /* "Update display in real time" row */
+ sync_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "_Update list of packets in real time", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(sync_cb),
+ capture_opts.sync_mode);
+ SIGNAL_CONNECT(sync_cb, "toggled", capture_prep_adjust_sensitivity, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, sync_cb,
+ "Using this option will show the captured packets immediately on the main screen. "
+ "Please note: this will slow down capturing, so increased packet drops might appear.", NULL);
+ gtk_container_add(GTK_CONTAINER(display_vb), sync_cb);
+
+ /* "Auto-scroll live update" row */
+ auto_scroll_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "_Automatic scrolling in live capture", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(auto_scroll_cb), auto_scroll_live);
+ gtk_tooltips_set_tip(tooltips, auto_scroll_cb,
+ "This will scroll the \"Packet List\" automatically to the latest captured packet, "
+ "when the \"Update List of packets in real time\" option is used.", NULL);
+ gtk_container_add(GTK_CONTAINER(display_vb), auto_scroll_cb);
+
+ /* "Hide capture info" row */
+ hide_info_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "_Hide capture info dialog", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(hide_info_cb), !capture_opts.show_info);
+ gtk_tooltips_set_tip(tooltips, hide_info_cb,
+ "Hide the capture info dialog while capturing.", NULL);
+ gtk_container_add(GTK_CONTAINER(display_vb), hide_info_cb);
+
+ /* Name Resolution frame */
+ resolv_fr = gtk_frame_new("Name Resolution");
+ gtk_container_add(GTK_CONTAINER(right_vb), resolv_fr);
+
+ resolv_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(resolv_vb), 5);
+ gtk_container_add(GTK_CONTAINER(resolv_fr), resolv_vb);
+
+ m_resolv_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "Enable _MAC name resolution", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(m_resolv_cb),
+ g_resolv_flags & RESOLV_MAC);
+ gtk_tooltips_set_tip(tooltips, m_resolv_cb,
+ "Perform MAC layer name resolution while capturing.", NULL);
+ gtk_container_add(GTK_CONTAINER(resolv_vb), m_resolv_cb);
+
+ n_resolv_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "Enable _network name resolution", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(n_resolv_cb),
+ g_resolv_flags & RESOLV_NETWORK);
+ gtk_tooltips_set_tip(tooltips, n_resolv_cb,
+ "Perform network layer name resolution while capturing.", NULL);
+ gtk_container_add(GTK_CONTAINER(resolv_vb), n_resolv_cb);
+
+ t_resolv_cb = CHECK_BUTTON_NEW_WITH_MNEMONIC(
+ "Enable _transport name resolution", accel_group);
+ gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(t_resolv_cb),
+ g_resolv_flags & RESOLV_TRANSPORT);
+ gtk_tooltips_set_tip(tooltips, t_resolv_cb,
+ "Perform transport layer name resolution while capturing.", NULL);
+ gtk_container_add(GTK_CONTAINER(resolv_vb), t_resolv_cb);
+
+ /* Button row: OK and cancel buttons */
+ bbox = dlg_button_row_new(GTK_STOCK_OK, GTK_STOCK_CANCEL, GTK_STOCK_HELP, NULL);
+ gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 5);
+
+ ok_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_OK);
+ SIGNAL_CONNECT(ok_bt, "clicked", capture_prep_ok_cb, cap_open_w);
+ gtk_tooltips_set_tip(tooltips, ok_bt,
+ "Start the capture process.", NULL);
+
+ cancel_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CANCEL);
+ gtk_tooltips_set_tip(tooltips, cancel_bt,
+ "Cancel and exit dialog.", NULL);
+ window_set_cancel_button(cap_open_w, cancel_bt, window_cancel_button_cb);
+
+ help_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_HELP);
+ gtk_tooltips_set_tip(tooltips, help_bt,
+ "Show help about capturing.", NULL);
+ SIGNAL_CONNECT(help_bt, "clicked", help_topic_cb, "Capturing");
+
+ gtk_widget_grab_default(ok_bt);
+
+ /* Attach pointers to needed widgets to the capture prefs window/object */
+ OBJECT_SET_DATA(cap_open_w, E_CAP_IFACE_KEY, if_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_SNAP_CB_KEY, snap_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_SNAP_SB_KEY, snap_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_LT_OM_KEY, linktype_om);
+#ifdef _WIN32
+ OBJECT_SET_DATA(cap_open_w, E_CAP_BUFFER_SIZE_SB_KEY, buffer_size_sb);
+#endif
+ OBJECT_SET_DATA(cap_open_w, E_CAP_PROMISC_KEY, promisc_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_FILT_KEY, filter_te);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_TE_KEY, file_te);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_MULTI_FILES_ON_CB_KEY, multi_files_on_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_RING_NBF_CB_KEY, ringbuffer_nbf_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_RING_NBF_SB_KEY, ringbuffer_nbf_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_RING_NBF_LB_KEY, ringbuffer_nbf_lb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_RING_FILESIZE_CB_KEY, ring_filesize_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_RING_FILESIZE_SB_KEY, ring_filesize_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_RING_FILESIZE_OM_KEY, ring_filesize_om);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_DURATION_CB_KEY, file_duration_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_DURATION_SB_KEY, file_duration_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_FILE_DURATION_OM_KEY, file_duration_om);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_SYNC_KEY, sync_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_AUTO_SCROLL_KEY, auto_scroll_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_HIDE_INFO_KEY, hide_info_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_PACKETS_CB_KEY, stop_packets_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_PACKETS_SB_KEY, stop_packets_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_PACKETS_LB_KEY, stop_packets_lb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILESIZE_CB_KEY, stop_filesize_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILESIZE_SB_KEY, stop_filesize_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILESIZE_OM_KEY, stop_filesize_om);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_DURATION_CB_KEY, stop_duration_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_DURATION_SB_KEY, stop_duration_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_DURATION_OM_KEY, stop_duration_om);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILES_CB_KEY, stop_files_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILES_SB_KEY, stop_files_sb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_STOP_FILES_LB_KEY, stop_files_lb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_M_RESOLVE_KEY, m_resolv_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_N_RESOLVE_KEY, n_resolv_cb);
+ OBJECT_SET_DATA(cap_open_w, E_CAP_T_RESOLVE_KEY, t_resolv_cb);
+
+ /* Set the sensitivity of various widgets as per the settings of other
+ widgets. */
+ capture_prep_adjust_sensitivity(NULL, cap_open_w);
+
+ /* Catch the "activate" signal on the text
+ entries, so that if the user types Return there, we act as if the
+ "OK" button had been selected, as happens if Return is typed if some
+ widget that *doesn't* handle the Return key has the input focus. */
+ dlg_set_activate(GTK_COMBO(if_cb)->entry, ok_bt);
+ dlg_set_activate(filter_te, ok_bt);
+ dlg_set_activate(file_te, ok_bt);
+
+ /* XXX - why does not
+
+ gtk_widget_grab_focus(if_cb);
+
+ give the initial focus to the "Interface" combo box?
+
+ Or should I phrase that as "why does GTK+ continually frustrate
+ attempts to make GUIs driveable from the keyboard?" We have to
+ go catch the activate signal on every single GtkEntry widget
+ (rather than having widgets whose activate signal is *not*
+ caught not catch the Return keystroke, so that it passes on,
+ ultimately, to the window, which can activate the default
+ widget, i.e. the "OK" button); we have to catch the "key_press_event"
+ signal and have the handler check for ESC, so that we can have ESC
+ activate the "Cancel" button; in order to support Alt+<key> mnemonics
+ for buttons and the like, we may have to construct an accelerator
+ group by hand and set up the accelerators by hand (if that even
+ works - I've not tried it yet); we have to do a "gtk_widget_grab_focus()"
+ to keep some container widget from getting the initial focus, so that
+ you don't have to tab into the first widget in order to start typing
+ in it; and it now appears that you simply *can't* make a combo box
+ get the initial focus, at least not in the obvious fashion. Sigh.... */
+
+ SIGNAL_CONNECT(cap_open_w, "delete_event", window_delete_event_cb, NULL);
+ SIGNAL_CONNECT(cap_open_w, "destroy", capture_prep_destroy_cb, NULL);
+
+ gtk_widget_show_all(cap_open_w);
+ window_present(cap_open_w);
+}
+
+static void
+capture_prep_answered_cb(gpointer dialog _U_, gint btn, gpointer data)
+{
+ switch(btn) {
+ case(ESD_BTN_SAVE):
+ /* save file first */
+ file_save_as_cmd(after_save_capture_dialog, data);
+ break;
+ case(ESD_BTN_DONT_SAVE):
+ capture_prep();
+ break;
+ case(ESD_BTN_CANCEL):
+ break;
+ default:
+ g_assert_not_reached();
+ }
+}
+
+void
+capture_prep_cb(GtkWidget *w _U_, gpointer d _U_)
+{
+ gpointer dialog;
+
+ if((cfile.state != FILE_CLOSED) && !cfile.user_saved && prefs.gui_ask_unsaved) {
+ /* user didn't saved his current file, ask him */
+ dialog = simple_dialog(ESD_TYPE_CONFIRMATION, ESD_BTNS_SAVE_DONTSAVE_CANCEL,
+ PRIMARY_TEXT_START "Save capture file before starting a new capture?" PRIMARY_TEXT_END "\n\n"
+ "If you start a new capture without saving, your current capture data will\nbe discarded.");
+ simple_dialog_set_cb(dialog, capture_prep_answered_cb, NULL);
+ } else {
+ /* unchanged file, just capture a new one */
+ capture_prep();
+ }
+}
+
+static void
+select_link_type_cb(GtkWidget *w, gpointer data)
+{
+ int new_linktype = GPOINTER_TO_INT(data);
+ GtkWidget *linktype_om = OBJECT_GET_DATA(w, E_CAP_LT_OM_KEY);
+ int old_linktype = GPOINTER_TO_INT(OBJECT_GET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY));
+
+ if (old_linktype != new_linktype)
+ OBJECT_SET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY, GINT_TO_POINTER(new_linktype));
+}
+
+static void
+capture_prep_file_cb(GtkWidget *file_bt, GtkWidget *file_te)
+{
+ file_selection_browse(file_bt, file_te, "Ethereal: Specify a Capture File", FILE_SELECTION_OPEN);
+}
+
+
+static void
+capture_prep_ok_cb(GtkWidget *ok_bt _U_, gpointer parent_w) {
+ GtkWidget *if_cb, *snap_cb, *snap_sb, *promisc_cb, *filter_te,
+ *file_te, *multi_files_on_cb, *ringbuffer_nbf_sb, *ringbuffer_nbf_cb,
+ *linktype_om, *sync_cb, *auto_scroll_cb, *hide_info_cb,
+ *stop_packets_cb, *stop_packets_sb,
+ *stop_filesize_cb, *stop_filesize_sb, *stop_filesize_om,
+ *stop_duration_cb, *stop_duration_sb, *stop_duration_om,
+ *ring_filesize_cb, *ring_filesize_sb, *ring_filesize_om,
+ *file_duration_cb, *file_duration_sb, *file_duration_om,
+ *stop_files_cb, *stop_files_sb,
+ *m_resolv_cb, *n_resolv_cb, *t_resolv_cb;
+#ifdef _WIN32
+ GtkWidget *buffer_size_sb;
+#endif
+ gchar *entry_text;
+ gchar *if_text;
+ gchar *if_name;
+ const gchar *filter_text;
+ gchar *save_file;
+ const gchar *g_save_file;
+ gchar *cf_name;
+ gchar *dirname;
+ gint32 tmp;
+
+ if_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_IFACE_KEY);
+ snap_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_CB_KEY);
+ snap_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_SB_KEY);
+ linktype_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_LT_OM_KEY);
+#ifdef _WIN32
+ buffer_size_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_BUFFER_SIZE_SB_KEY);
+#endif
+ promisc_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_PROMISC_KEY);
+ filter_te = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILT_KEY);
+ file_te = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_TE_KEY);
+ multi_files_on_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_MULTI_FILES_ON_CB_KEY);
+ ringbuffer_nbf_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_CB_KEY);
+ ringbuffer_nbf_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_SB_KEY);
+ ring_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_CB_KEY);
+ ring_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_SB_KEY);
+ ring_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_OM_KEY);
+ file_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_CB_KEY);
+ file_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_SB_KEY);
+ file_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_OM_KEY);
+ sync_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SYNC_KEY);
+ auto_scroll_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_AUTO_SCROLL_KEY);
+ hide_info_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_HIDE_INFO_KEY);
+ stop_packets_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_CB_KEY);
+ stop_packets_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_SB_KEY);
+ stop_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_CB_KEY);
+ stop_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_SB_KEY);
+ stop_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_OM_KEY);
+ stop_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_CB_KEY);
+ stop_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_SB_KEY);
+ stop_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_OM_KEY);
+ stop_files_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_CB_KEY);
+ stop_files_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_SB_KEY);
+ m_resolv_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_M_RESOLVE_KEY);
+ n_resolv_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_N_RESOLVE_KEY);
+ t_resolv_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_T_RESOLVE_KEY);
+
+ entry_text =
+ g_strdup(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(if_cb)->entry)));
+ if_text = g_strstrip(entry_text);
+ if_name = get_if_name(if_text);
+ if (*if_name == '\0') {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ "You didn't specify an interface on which to capture packets.");
+ g_free(entry_text);
+ return;
+ }
+ if (cfile.iface)
+ g_free(cfile.iface);
+ cfile.iface = g_strdup(if_name);
+ g_free(entry_text);
+
+ capture_opts.linktype =
+ GPOINTER_TO_INT(OBJECT_GET_DATA(linktype_om, E_CAP_OM_LT_VALUE_KEY));
+
+#ifdef _WIN32
+ capture_opts.buffer_size =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(buffer_size_sb));
+#endif
+
+ capture_opts.has_snaplen =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(snap_cb));
+ if (capture_opts.has_snaplen) {
+ capture_opts.snaplen =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(snap_sb));
+ if (capture_opts.snaplen < 1)
+ capture_opts.snaplen = WTAP_MAX_PACKET_SIZE;
+ else if (capture_opts.snaplen < MIN_PACKET_SIZE)
+ capture_opts.snaplen = MIN_PACKET_SIZE;
+ }
+
+ capture_opts.promisc_mode =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(promisc_cb));
+
+ /* XXX - don't try to get clever and set "cfile.filter" to NULL if the
+ filter string is empty, as an indication that we don't have a filter
+ and thus don't have to set a filter when capturing - the version of
+ libpcap in Red Hat Linux 6.1, and versions based on later patches
+ in that series, don't bind the AF_PACKET socket to an interface
+ until a filter is set, which means they aren't bound at all if
+ no filter is set, which means no packets arrive as input on that
+ socket, which means Ethereal never sees any packets. */
+ filter_text = gtk_entry_get_text(GTK_ENTRY(filter_te));
+ if (cfile.cfilter)
+ g_free(cfile.cfilter);
+ g_assert(filter_text != NULL);
+ cfile.cfilter = g_strdup(filter_text);
+
+ g_save_file = gtk_entry_get_text(GTK_ENTRY(file_te));
+ if (g_save_file && g_save_file[0]) {
+ /* User specified a file to which the capture should be written. */
+ save_file = g_strdup(g_save_file);
+ /* Save the directory name for future file dialogs. */
+ cf_name = g_strdup(g_save_file);
+ dirname = get_dirname(cf_name); /* Overwrites cf_name */
+ set_last_open_dir(dirname);
+ g_free(cf_name);
+ } else {
+ /* User didn't specify a file; save to a temporary file. */
+ save_file = NULL;
+ }
+
+ capture_opts.has_autostop_packets =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_packets_cb));
+ if (capture_opts.has_autostop_packets)
+ capture_opts.autostop_packets =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_packets_sb));
+
+ capture_opts.has_autostop_duration =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_duration_cb));
+ if (capture_opts.has_autostop_duration) {
+ capture_opts.autostop_duration =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_duration_sb));
+ capture_opts.autostop_duration =
+ time_unit_option_menu_get_value(stop_duration_om, capture_opts.autostop_duration);
+ }
+
+ capture_opts.sync_mode =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sync_cb));
+
+ auto_scroll_live =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(auto_scroll_cb));
+
+ capture_opts.show_info =
+ !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(hide_info_cb));
+
+ g_resolv_flags |= g_resolv_flags & RESOLV_CONCURRENT;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(m_resolv_cb)))
+ g_resolv_flags |= RESOLV_MAC;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(n_resolv_cb)))
+ g_resolv_flags |= RESOLV_NETWORK;
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(t_resolv_cb)))
+ g_resolv_flags |= RESOLV_TRANSPORT;
+
+ capture_opts.has_ring_num_files =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb));
+
+ capture_opts.ring_num_files =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ringbuffer_nbf_sb));
+ if (capture_opts.ring_num_files > RINGBUFFER_MAX_NUM_FILES)
+ capture_opts.ring_num_files = RINGBUFFER_MAX_NUM_FILES;
+#if RINGBUFFER_MIN_NUM_FILES > 0
+ else if (capture_opts.ring_num_files < RINGBUFFER_MIN_NUM_FILES)
+ capture_opts.ring_num_files = RINGBUFFER_MIN_NUM_FILES;
+#endif
+
+ capture_opts.multi_files_on =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(multi_files_on_cb));
+
+ if(capture_opts.sync_mode)
+ capture_opts.multi_files_on = FALSE;
+
+ if (capture_opts.multi_files_on) {
+ capture_opts.has_autostop_filesize =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ring_filesize_cb));
+ if (capture_opts.has_autostop_filesize) {
+ tmp = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(ring_filesize_sb));
+ tmp = size_unit_option_menu_convert_value(ring_filesize_om, tmp);
+ if(tmp != 0) {
+ capture_opts.autostop_filesize = tmp;
+ } else {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ PRIMARY_TEXT_START "Multiple files: Requested filesize too large!\n\n" PRIMARY_TEXT_END
+ "The setting \"Next file every x byte(s)\" can't be greater than %u bytes (2GB).", G_MAXINT);
+ return;
+ }
+ }
+
+ /* test if the settings are ok for a ringbuffer */
+ if (save_file == NULL) {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ PRIMARY_TEXT_START "Multiple files: No capture file name given!\n\n" PRIMARY_TEXT_END
+ "You must specify a filename if you want to use multiple files.");
+ return;
+ } else if (!capture_opts.has_autostop_filesize) {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ PRIMARY_TEXT_START "Multiple files: No file limit given!\n\n" PRIMARY_TEXT_END
+ "You must specify a file size at which is switched to the next capture file\n"
+ "if you want to use multiple files.");
+ g_free(save_file);
+ return;
+ }
+ } else {
+ capture_opts.has_autostop_filesize =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_filesize_cb));
+ if (capture_opts.has_autostop_filesize) {
+ tmp = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_filesize_sb));
+ tmp = size_unit_option_menu_convert_value(stop_filesize_om, tmp);
+ if(tmp != 0) {
+ capture_opts.autostop_filesize = tmp;
+ } else {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ PRIMARY_TEXT_START "Stop Capture: Requested filesize too large!\n\n" PRIMARY_TEXT_END
+ "The setting \"... after x byte(s)\" can't be greater than %u bytes (2GB).", G_MAXINT);
+ return;
+ }
+ }
+ }
+
+ capture_opts.has_file_duration =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(file_duration_cb));
+ if (capture_opts.has_file_duration) {
+ capture_opts.file_duration =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(file_duration_sb));
+ capture_opts.file_duration =
+ time_unit_option_menu_get_value(file_duration_om, capture_opts.file_duration);
+ }
+
+ capture_opts.has_autostop_files =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_files_cb));
+ if (capture_opts.has_autostop_files)
+ capture_opts.autostop_files =
+ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(stop_files_sb));
+
+ window_destroy(GTK_WIDGET(parent_w));
+
+ do_capture(save_file);
+ if (save_file != NULL)
+ g_free(save_file);
+}
+
+static void
+capture_prep_destroy_cb(GtkWidget *win, gpointer user_data _U_)
+{
+ GtkWidget *fs;
+
+ /* Is there a file selection dialog associated with this
+ Capture Options dialog? */
+ fs = OBJECT_GET_DATA(win, E_FILE_SEL_DIALOG_PTR_KEY);
+
+ if (fs != NULL) {
+ /* Yes. Destroy it. */
+ window_destroy(fs);
+ }
+
+ /* Note that we no longer have a "Capture Options" dialog box. */
+ cap_open_w = NULL;
+}
+
+static void
+capture_prep_interface_changed_cb(GtkWidget *entry, gpointer argp)
+{
+ GtkWidget *linktype_om = argp;
+
+ set_link_type_list(linktype_om, entry);
+}
+
+/*
+ * Adjust the sensitivity of various widgets as per the current setting
+ * of other widgets.
+ */
+static void
+capture_prep_adjust_sensitivity(GtkWidget *tb _U_, gpointer parent_w)
+{
+ GtkWidget *if_cb,
+ *snap_cb, *snap_sb,
+ *multi_files_on_cb, *ringbuffer_nbf_cb, *ringbuffer_nbf_sb, *ringbuffer_nbf_lb,
+ *ring_filesize_cb, *ring_filesize_sb, *ring_filesize_om,
+ *file_duration_cb, *file_duration_sb, *file_duration_om,
+ *sync_cb, *auto_scroll_cb, *hide_info_cb,
+ *stop_packets_cb, *stop_packets_sb, *stop_packets_lb,
+ *stop_filesize_cb, *stop_filesize_sb, *stop_filesize_om,
+ *stop_duration_cb, *stop_duration_sb, *stop_duration_om,
+ *stop_files_cb, *stop_files_sb, *stop_files_lb;
+
+
+ if_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_IFACE_KEY);
+ snap_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_CB_KEY);
+ snap_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SNAP_SB_KEY);
+ multi_files_on_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_MULTI_FILES_ON_CB_KEY);
+ ringbuffer_nbf_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_CB_KEY);
+ ringbuffer_nbf_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_SB_KEY);
+ ringbuffer_nbf_lb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_NBF_LB_KEY);
+ ring_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_CB_KEY);
+ ring_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_SB_KEY);
+ ring_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_RING_FILESIZE_OM_KEY);
+ file_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_CB_KEY);
+ file_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_SB_KEY);
+ file_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_FILE_DURATION_OM_KEY);
+ sync_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_SYNC_KEY);
+ auto_scroll_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_AUTO_SCROLL_KEY);
+ hide_info_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_HIDE_INFO_KEY);
+ stop_packets_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_CB_KEY);
+ stop_packets_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_SB_KEY);
+ stop_packets_lb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_PACKETS_LB_KEY);
+ stop_filesize_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_CB_KEY);
+ stop_filesize_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_SB_KEY);
+ stop_filesize_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILESIZE_OM_KEY);
+ stop_duration_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_CB_KEY);
+ stop_duration_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_SB_KEY);
+ stop_duration_om = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_DURATION_OM_KEY);
+ stop_files_cb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_CB_KEY);
+ stop_files_sb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_SB_KEY);
+ stop_files_lb = (GtkWidget *) OBJECT_GET_DATA(parent_w, E_CAP_STOP_FILES_LB_KEY);
+
+ /* The snapshot length spinbox is sensitive if the "Limit each packet
+ to" checkbox is on. */
+ gtk_widget_set_sensitive(GTK_WIDGET(snap_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(snap_cb)));
+
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sync_cb))) {
+ /* "Update list of packets in real time" captures enabled; we don't
+ support ring buffer mode for those captures, so turn ring buffer
+ mode off if it's on, and make its toggle button, and the spin
+ button for the number of ring buffer files (and the spin button's
+ label), insensitive. */
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(multi_files_on_cb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(multi_files_on_cb), FALSE);
+
+ /* Auto-scroll mode is meaningful only in "Update list of packets
+ in real time" captures, so make its toggle button sensitive. */
+ gtk_widget_set_sensitive(GTK_WIDGET(auto_scroll_cb), TRUE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(hide_info_cb), TRUE);
+ } else {
+ /* "Update list of packets in real time" captures disabled; that
+ means ring buffer mode is OK, so make its toggle button
+ sensitive. */
+ gtk_widget_set_sensitive(GTK_WIDGET(multi_files_on_cb), TRUE);
+
+ /* Auto-scroll mode is meaningful only in "Update list of packets
+ in real time" captures, so make its toggle button insensitive. */
+ gtk_widget_set_sensitive(GTK_WIDGET(auto_scroll_cb), FALSE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(hide_info_cb), FALSE);
+ }
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(multi_files_on_cb))) {
+ /* Ring buffer mode enabled. */
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ring_filesize_cb), TRUE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_cb), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_lb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ringbuffer_nbf_cb)));
+
+ /* The ring filesize spinbox is sensitive if the "Next capture file
+ after N kilobytes" checkbox is on. */
+ gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_cb), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ring_filesize_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_om),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(ring_filesize_cb)));
+
+ /* The ring duration spinbox is sensitive if the "Next capture file
+ after N seconds" checkbox is on. */
+ gtk_widget_set_sensitive(GTK_WIDGET(file_duration_cb), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(file_duration_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(file_duration_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(file_duration_om),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(file_duration_cb)));
+
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_cb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_sb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_om), FALSE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_files_cb), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_files_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_files_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_files_lb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_files_cb)));
+ } else {
+ /* Ring buffer mode disabled. */
+ gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_cb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_sb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(ringbuffer_nbf_lb), FALSE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_cb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_sb),FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(ring_filesize_om),FALSE);
+
+ gtk_widget_set_sensitive(GTK_WIDGET(file_duration_cb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(file_duration_sb),FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(file_duration_om),FALSE);
+
+ /* The maximum file size spinbox is sensitive if the "Stop capture
+ after N kilobytes" checkbox is on. */
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_cb), TRUE);
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_filesize_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_filesize_om),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_filesize_cb)));
+
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_files_cb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_files_sb), FALSE);
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_files_lb), FALSE);
+ }
+
+ /* The maximum packet count spinbox is sensitive if the "Stop capture
+ after N packets" checkbox is on. */
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_packets_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_packets_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_packets_lb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_packets_cb)));
+
+ /* The capture duration spinbox is sensitive if the "Stop capture
+ after N seconds" checkbox is on. */
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_duration_sb),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_duration_cb)));
+ gtk_widget_set_sensitive(GTK_WIDGET(stop_duration_om),
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(stop_duration_cb)));
+}
+
+#endif /* HAVE_LIBPCAP */
diff --git a/gtk/capture_dlg.h b/gtk/capture_dlg.h
index c6df90775b..74407a8b72 100644
--- a/gtk/capture_dlg.h
+++ b/gtk/capture_dlg.h
@@ -1,67 +1,67 @@
-/* capture_dlg.h
- * Definitions for packet capture windows
- *
- * $Id: capture_dlg.h,v 1.6 2004/06/04 20:05:30 ulfl Exp $
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@zing.org>
- * Copyright 1998 Gerald Combs
- *
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __CAPTURE_DLG_H__
-#define __CAPTURE_DLG_H__
-
-/** @file
- * "Capture Options" dialog box.
- * @ingroup dialog_group
- */
-
-/** User requested the "Capture Options" dialog box by menu or toolbar.
- *
- * @param widget parent widget (unused)
- * @param data unused
- */
-void capture_prep_cb(GtkWidget *widget, gpointer data);
-
-/** User requested capture stop by menu or toolbar.
- *
- * @param widget parent widget (unused)
- * @param data unused
- */
-void capture_stop_cb(GtkWidget *widget, gpointer data);
-
-/** Create the "Capture Options" dialog box.
- */
-void capture_prep(void);
-
-/** User requested the "Capture Interfaces" dialog box by menu or toolbar.
- *
- * @param widget parent widget (unused)
- * @param data unused
- */
-void
-capture_if_cb(GtkWidget *widget, gpointer data);
-
-/** User requested the "Capture Interfaces" dialog box by menu or toolbar.
- *
- * @param capture_in_progress capture is in progress
- */
-void
-set_capture_if_dialog_for_capture_in_progress(gboolean capture_in_progress);
-
-#endif /* capture.h */
+/* capture_dlg.h
+ * Definitions for packet capture windows
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@zing.org>
+ * Copyright 1998 Gerald Combs
+ *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __CAPTURE_DLG_H__
+#define __CAPTURE_DLG_H__
+
+/** @file
+ * "Capture Options" dialog box.
+ * @ingroup dialog_group
+ */
+
+/** User requested the "Capture Options" dialog box by menu or toolbar.
+ *
+ * @param widget parent widget (unused)
+ * @param data unused
+ */
+void capture_prep_cb(GtkWidget *widget, gpointer data);
+
+/** User requested capture stop by menu or toolbar.
+ *
+ * @param widget parent widget (unused)
+ * @param data unused
+ */
+void capture_stop_cb(GtkWidget *widget, gpointer data);
+
+/** Create the "Capture Options" dialog box.
+ */
+void capture_prep(void);
+
+/** User requested the "Capture Interfaces" dialog box by menu or toolbar.
+ *
+ * @param widget parent widget (unused)
+ * @param data unused
+ */
+void
+capture_if_cb(GtkWidget *widget, gpointer data);
+
+/** User requested the "Capture Interfaces" dialog box by menu or toolbar.
+ *
+ * @param capture_in_progress capture is in progress
+ */
+void
+set_capture_if_dialog_for_capture_in_progress(gboolean capture_in_progress);
+
+#endif /* capture.h */
diff --git a/gtk/capture_if_dlg.c b/gtk/capture_if_dlg.c
index f4d7eb21ae..7e0847d119 100644
--- a/gtk/capture_if_dlg.c
+++ b/gtk/capture_if_dlg.c
@@ -1,486 +1,486 @@
-/* capture_if_dlg.c
- * Routines for the capture interface dialog
- *
- * $Id: capture_if_dlg.c,v 1.254 2004/06/30 06:58:56 guy Exp $
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-/* With MSVC and a libethereal.dll this file needs to import some variables
- in a special way. Therefore _NEED_VAR_IMPORT_ is defined. */
-/*#define _NEED_VAR_IMPORT_*/
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_LIBPCAP
-
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-
-#include <pcap.h>
-
-#include <gtk/gtk.h>
-
-#include "globals.h"
-#include "pcap-util.h"
-
-#ifdef _WIN32
-#include "capture-wpcap.h"
-#endif
-
-#include "compat_macros.h"
-#include "simple_dialog.h"
-#include "capture_dlg.h"
-
-#include "ui_util.h"
-#include "dlg_utils.h"
-
-#include "wtap.h"
-#include "capture.h"
-
-
-extern char *iptos(u_long in);
-
-extern gboolean is_capture_in_progress(void);
-
-/*
- * Keep a static pointer to the current "Capture Interfaces" window, if
- * any, so that if somebody tries to do "Capture:Start" while there's
- * already a "Capture Interfaces" window up, we just pop up the existing
- * one, rather than creating a new one.
- */
-static GtkWidget *cap_if_w;
-
-GList *if_data = NULL;
-
-guint timer_id;
-
-GtkWidget *stop_bt;
-
-GList *if_list;
-
-/*
- * Timeout, in milliseconds, for reads from the stream of captured packets.
- */
-#define CAP_READ_TIMEOUT 250
-
-
-/* the "runtime" data of one interface */
-typedef struct if_dlg_data_s {
- pcap_t *pch;
- GtkWidget *device_lb;
- GtkWidget *descr_lb;
- GtkWidget *ip_lb;
- GtkWidget *curr_lb;
- GtkWidget *last_lb;
- GtkWidget *capture_bt;
- GtkWidget *prepare_bt;
- guint32 last_packets;
- gchar *device;
-} if_dlg_data_t;
-
-void update_if(if_dlg_data_t *if_dlg_data);
-
-
-/* start capture button was pressed */
-static void
-capture_do_cb(GtkWidget *capture_bt _U_, gpointer if_data)
-{
- if_dlg_data_t *if_dlg_data = if_data;
-
- if (cfile.iface)
- g_free(cfile.iface);
-
- cfile.iface = g_strdup(if_dlg_data->device);
-
- do_capture(NULL /* save_file */);
-}
-
-
-/* prepare capture button was pressed */
-static void
-capture_prepare_cb(GtkWidget *prepare_bt _U_, gpointer if_data)
-{
- if_dlg_data_t *if_dlg_data = if_data;
-
- if (cfile.iface)
- g_free(cfile.iface);
-
- cfile.iface = g_strdup(if_dlg_data->device);
-
- capture_prep_cb(NULL, NULL);
-}
-
-
-/* open a single interface */
-void
-open_if(gchar *name, if_dlg_data_t *if_dlg_data)
-{
- gchar open_err_str[PCAP_ERRBUF_SIZE];
-
- if_dlg_data->pch = pcap_open_live(name,
- WTAP_MAX_PACKET_SIZE,
- capture_opts.promisc_mode, CAP_READ_TIMEOUT,
- open_err_str);
-
- if (if_dlg_data->pch != NULL) {
- update_if(if_dlg_data);
- } else {
- printf("open_if: %s\n", open_err_str);
- gtk_label_set_text(GTK_LABEL(if_dlg_data->curr_lb), "error");
- gtk_label_set_text(GTK_LABEL(if_dlg_data->last_lb), "error");
- }
-}
-
-/* update a single interface */
-void
-update_if(if_dlg_data_t *if_dlg_data)
-{
- struct pcap_stat stats;
- gchar *str;
- guint diff;
-
-
- /* pcap_stats() stats values differ on libpcap and winpcap!
- * libpcap: returns the number of packets since pcap_open_live
- * winpcap: returns the number of packets since the last pcap_stats call
- */
- if (if_dlg_data->pch) {
- if(pcap_stats(if_dlg_data->pch, &stats) >= 0) {
-#if WIN32
- diff = stats.ps_recv - if_dlg_data->last_packets;
- if_dlg_data->last_packets = stats.ps_recv;
-#else
- diff = stats.ps_recv;
- if_dlg_data->last_packets = stats.ps_recv + if_dlg_data->last_packets;
-#endif
-
- str = g_strdup_printf("%u", if_dlg_data->last_packets);
- gtk_label_set_text(GTK_LABEL(if_dlg_data->curr_lb), str);
- g_free(str);
- str = g_strdup_printf("%u", diff);
- gtk_label_set_text(GTK_LABEL(if_dlg_data->last_lb), str);
- g_free(str);
-
- gtk_widget_set_sensitive(if_dlg_data->curr_lb, diff);
- gtk_widget_set_sensitive(if_dlg_data->last_lb, diff);
- } else {
- gtk_label_set_text(GTK_LABEL(if_dlg_data->curr_lb), "error");
- gtk_label_set_text(GTK_LABEL(if_dlg_data->last_lb), "error");
- }
- }
-}
-
-
-/* close a single interface */
-void
-close_if(if_dlg_data_t *if_dlg_data)
-{
- if(if_dlg_data->pch)
- pcap_close(if_dlg_data->pch);
-}
-
-
-
-/* update all interfaces */
-gboolean
-update_all(gpointer data)
-{
- GList *curr;
- int ifs;
-
-
- if(!cap_if_w) {
- return FALSE;
- }
-
- for(ifs = 0; (curr = g_list_nth(data, ifs)); ifs++) {
- update_if(curr->data);
- }
-
- return TRUE;
-}
-
-
-/* a live capture has started or stopped */
-void
-set_capture_if_dialog_for_capture_in_progress(gboolean capture_in_progress)
-{
- GList *curr;
- int ifs;
-
- if(cap_if_w) {
- gtk_widget_set_sensitive(stop_bt, capture_in_progress);
-
- for(ifs = 0; (curr = g_list_nth(if_data, ifs)); ifs++) {
- if_dlg_data_t *if_dlg_data = curr->data;
-
- gtk_widget_set_sensitive(if_dlg_data->capture_bt, !capture_in_progress);
- gtk_widget_set_sensitive(if_dlg_data->prepare_bt, !capture_in_progress);
- }
- }
-}
-
-
-/* the window was closed, cleanup things */
-static void
-capture_if_destroy_cb(GtkWidget *win _U_, gpointer user_data _U_)
-{
- GList *curr;
- int ifs;
-
- gtk_timeout_remove(timer_id);
-
- for(ifs = 0; (curr = g_list_nth(if_data, ifs)); ifs++) {
- if_dlg_data_t *if_dlg_data = curr->data;
-
- close_if(if_dlg_data);
- g_free(curr->data);
- }
-
- if_data = NULL;
-
- free_interface_list(if_list);
-
- /* Note that we no longer have a "Capture Options" dialog box. */
- cap_if_w = NULL;
-}
-
-
-/* start getting capture stats from all interfaces */
-void
-capture_if_cb(GtkWidget *w _U_, gpointer d _U_)
-{
- GtkWidget *main_vb, *bbox, *close_bt;
-
- GtkWidget *if_tb;
- GtkWidget *if_lb;
-#if GTK_MAJOR_VERSION < 2
- GtkAccelGroup *accel_group;
-#endif
- GtkTooltips *tooltips;
- int err;
- char err_str[PCAP_ERRBUF_SIZE];
- gchar *cant_get_if_list_errstr;
- int row;
- if_dlg_data_t *if_dlg_data;
- int ifs;
- GList *curr;
- if_info_t *if_info;
- GSList *curr_ip;
- guint32 ip_addr;
- GString *if_tool_str = g_string_new("");
- gchar *tmp_str;
-
-
- if (cap_if_w != NULL) {
- /* There's already a "Capture Interfaces" dialog box; reactivate it. */
- reactivate_window(cap_if_w);
- return;
- }
-
-#ifdef _WIN32
- /* Is WPcap loaded? */
- if (!has_wpcap) {
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
- "Unable to load WinPcap (wpcap.dll); Ethereal will not be able\n"
- "to capture packets.\n\n"
- "In order to capture packets, WinPcap must be installed; see\n"
- "\n"
- " http://winpcap.polito.it/\n"
- "\n"
- "or the mirror at\n"
- "\n"
- " http://winpcap.mirror.ethereal.com/\n"
- "\n"
- "or the mirror at\n"
- "\n"
- " http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n"
- "\n"
- "for a downloadable version of WinPcap and for instructions\n"
- "on how to install WinPcap.");
- return;
- }
-#endif
-
- if_list = get_interface_list(&err, err_str);
- if (if_list == NULL && err == CANT_GET_INTERFACE_LIST) {
- cant_get_if_list_errstr = cant_get_if_list_error_message(err_str);
- simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s",
- cant_get_if_list_errstr);
- g_free(cant_get_if_list_errstr);
- return;
- }
-
- cap_if_w = window_new(GTK_WINDOW_TOPLEVEL, "Ethereal: Capture Interfaces");
-
- tooltips = gtk_tooltips_new();
-
-#if GTK_MAJOR_VERSION < 2
- /* Accelerator group for the accelerators (or, as they're called in
- Windows and, I think, in Motif, "mnemonics"; Alt+<key> is a mnemonic,
- Ctrl+<key> is an accelerator). */
- accel_group = gtk_accel_group_new();
- gtk_window_add_accel_group(GTK_WINDOW(cap_if_w), accel_group);
-#endif
-
- main_vb = gtk_vbox_new(FALSE, 0);
- gtk_container_border_width(GTK_CONTAINER(main_vb), 5);
- gtk_container_add(GTK_CONTAINER(cap_if_w), main_vb);
-
-
- if_tb = gtk_table_new(6,1, FALSE);
- gtk_table_set_row_spacings(GTK_TABLE(if_tb), 3);
- gtk_table_set_col_spacings(GTK_TABLE(if_tb), 3);
- gtk_container_add(GTK_CONTAINER(main_vb), if_tb);
-
- row = 0;
-
-#ifndef WIN32
- if_lb = gtk_label_new("Device");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 0, 1, row, row+1);
-#endif
-
- if_lb = gtk_label_new("Description");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 1, 2, row, row+1);
-
- if_lb = gtk_label_new(" IP ");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 2, 3, row, row+1);
-
- if_lb = gtk_label_new("Packets");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 3, 4, row, row+1);
-
- if_lb = gtk_label_new(" Packets/s ");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 4, 5, row, row+1);
-
- stop_bt = BUTTON_NEW_FROM_STOCK(GTK_STOCK_STOP);
- gtk_tooltips_set_tip(tooltips, stop_bt,
- "Stop a running capture.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(if_tb), stop_bt, 5, 7, row, row+1);
- SIGNAL_CONNECT(stop_bt, "clicked", capture_stop_cb, NULL);
-
- row++;
-
- for(ifs = 0; (curr = g_list_nth(if_list, ifs)); ifs++) {
- g_string_assign(if_tool_str, "");
- if_info = curr->data;
- if_dlg_data = g_malloc0(sizeof(if_dlg_data_t));
-
- /* device name */
- if_dlg_data->device_lb = gtk_label_new(if_info->name);
- if_dlg_data->device = if_info->name;
-#ifndef WIN32
- gtk_misc_set_alignment(GTK_MISC(if_dlg_data->device_lb), 0.0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->device_lb, 0, 1, row, row+1);
-#endif
- g_string_append(if_tool_str, "Device: ");
- g_string_append(if_tool_str, if_info->name);
- g_string_append(if_tool_str, "\n");
-
- /* description */
- if_dlg_data->descr_lb = gtk_label_new(if_info->description);
- gtk_misc_set_alignment(GTK_MISC(if_dlg_data->descr_lb), 0.0, 0.5);
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->descr_lb, 1, 2, row, row+1);
-
- g_string_append(if_tool_str, "Description: ");
- g_string_append(if_tool_str, if_info->description);
- g_string_append(if_tool_str, "\n");
-
- /* IP address */
- /* only one IP address will be shown */
- g_string_append(if_tool_str, "IP: ");
- curr_ip = g_slist_nth(if_info->ip_addr, 0);
- if(curr_ip) {
- ip_addr = *((guint32 *)curr_ip->data);
- if_dlg_data->ip_lb = gtk_label_new(iptos(ip_addr));
- g_string_append(if_tool_str, iptos(ip_addr));
- } else {
- ip_addr = 0;
- if_dlg_data->ip_lb = gtk_label_new("unknown");
- g_string_append(if_tool_str, "unknown");
- }
- gtk_widget_set_sensitive(if_dlg_data->ip_lb, ip_addr);
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->ip_lb, 2, 3, row, row+1);
- g_string_append(if_tool_str, "\n");
-
- /* packets */
- if_dlg_data->curr_lb = gtk_label_new("-");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->curr_lb, 3, 4, row, row+1);
-
- /* packets/s */
- if_dlg_data->last_lb = gtk_label_new("-");
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->last_lb, 4, 5, row, row+1);
-
- /* capture button */
- if_dlg_data->capture_bt = gtk_button_new_with_label("Capture");
- SIGNAL_CONNECT(if_dlg_data->capture_bt, "clicked", capture_do_cb, if_dlg_data);
- tmp_str = g_strdup_printf("Immediately start a capture from this interface:\n\n%s", if_tool_str->str);
- gtk_tooltips_set_tip(tooltips, if_dlg_data->capture_bt,
- tmp_str, NULL);
- g_free(tmp_str);
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->capture_bt, 5, 6, row, row+1);
-
- /* prepare button */
- if_dlg_data->prepare_bt = gtk_button_new_with_label("Prepare");
- SIGNAL_CONNECT(if_dlg_data->prepare_bt, "clicked", capture_prepare_cb, if_dlg_data);
- gtk_tooltips_set_tip(tooltips, if_dlg_data->prepare_bt,
- "Open the capture options dialog with this interface selected.", NULL);
- gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->prepare_bt, 6, 7, row, row+1);
-
- open_if(if_info->name, if_dlg_data);
-
- if_data = g_list_append(if_data, if_dlg_data);
-
- row++;
- }
-
- g_string_free(if_tool_str, TRUE);
-
- /* Button row: close button */
- bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
- gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 5);
-
- close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
- window_set_cancel_button(cap_if_w, close_bt, window_cancel_button_cb);
- gtk_tooltips_set_tip(tooltips, close_bt, "Close this window.", NULL);
-
- gtk_widget_grab_default(close_bt);
-
- SIGNAL_CONNECT(cap_if_w, "delete_event", window_delete_event_cb, NULL);
- SIGNAL_CONNECT(cap_if_w, "destroy", capture_if_destroy_cb, NULL);
-
- gtk_widget_show_all(cap_if_w);
- window_present(cap_if_w);
-
- set_capture_if_dialog_for_capture_in_progress(is_capture_in_progress());
-
- /* update the interface list every 1000ms */
- timer_id = gtk_timeout_add(1000, update_all, if_data);
-}
-
-
-#endif /* HAVE_LIBPCAP */
+/* capture_if_dlg.c
+ * Routines for the capture interface dialog
+ *
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* With MSVC and a libethereal.dll this file needs to import some variables
+ in a special way. Therefore _NEED_VAR_IMPORT_ is defined. */
+/*#define _NEED_VAR_IMPORT_*/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifdef HAVE_LIBPCAP
+
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
+
+
+#include <pcap.h>
+
+#include <gtk/gtk.h>
+
+#include "globals.h"
+#include "pcap-util.h"
+
+#ifdef _WIN32
+#include "capture-wpcap.h"
+#endif
+
+#include "compat_macros.h"
+#include "simple_dialog.h"
+#include "capture_dlg.h"
+
+#include "ui_util.h"
+#include "dlg_utils.h"
+
+#include "wtap.h"
+#include "capture.h"
+
+
+extern char *iptos(u_long in);
+
+extern gboolean is_capture_in_progress(void);
+
+/*
+ * Keep a static pointer to the current "Capture Interfaces" window, if
+ * any, so that if somebody tries to do "Capture:Start" while there's
+ * already a "Capture Interfaces" window up, we just pop up the existing
+ * one, rather than creating a new one.
+ */
+static GtkWidget *cap_if_w;
+
+GList *if_data = NULL;
+
+guint timer_id;
+
+GtkWidget *stop_bt;
+
+GList *if_list;
+
+/*
+ * Timeout, in milliseconds, for reads from the stream of captured packets.
+ */
+#define CAP_READ_TIMEOUT 250
+
+
+/* the "runtime" data of one interface */
+typedef struct if_dlg_data_s {
+ pcap_t *pch;
+ GtkWidget *device_lb;
+ GtkWidget *descr_lb;
+ GtkWidget *ip_lb;
+ GtkWidget *curr_lb;
+ GtkWidget *last_lb;
+ GtkWidget *capture_bt;
+ GtkWidget *prepare_bt;
+ guint32 last_packets;
+ gchar *device;
+} if_dlg_data_t;
+
+void update_if(if_dlg_data_t *if_dlg_data);
+
+
+/* start capture button was pressed */
+static void
+capture_do_cb(GtkWidget *capture_bt _U_, gpointer if_data)
+{
+ if_dlg_data_t *if_dlg_data = if_data;
+
+ if (cfile.iface)
+ g_free(cfile.iface);
+
+ cfile.iface = g_strdup(if_dlg_data->device);
+
+ do_capture(NULL /* save_file */);
+}
+
+
+/* prepare capture button was pressed */
+static void
+capture_prepare_cb(GtkWidget *prepare_bt _U_, gpointer if_data)
+{
+ if_dlg_data_t *if_dlg_data = if_data;
+
+ if (cfile.iface)
+ g_free(cfile.iface);
+
+ cfile.iface = g_strdup(if_dlg_data->device);
+
+ capture_prep_cb(NULL, NULL);
+}
+
+
+/* open a single interface */
+void
+open_if(gchar *name, if_dlg_data_t *if_dlg_data)
+{
+ gchar open_err_str[PCAP_ERRBUF_SIZE];
+
+ if_dlg_data->pch = pcap_open_live(name,
+ WTAP_MAX_PACKET_SIZE,
+ capture_opts.promisc_mode, CAP_READ_TIMEOUT,
+ open_err_str);
+
+ if (if_dlg_data->pch != NULL) {
+ update_if(if_dlg_data);
+ } else {
+ printf("open_if: %s\n", open_err_str);
+ gtk_label_set_text(GTK_LABEL(if_dlg_data->curr_lb), "error");
+ gtk_label_set_text(GTK_LABEL(if_dlg_data->last_lb), "error");
+ }
+}
+
+/* update a single interface */
+void
+update_if(if_dlg_data_t *if_dlg_data)
+{
+ struct pcap_stat stats;
+ gchar *str;
+ guint diff;
+
+
+ /* pcap_stats() stats values differ on libpcap and winpcap!
+ * libpcap: returns the number of packets since pcap_open_live
+ * winpcap: returns the number of packets since the last pcap_stats call
+ */
+ if (if_dlg_data->pch) {
+ if(pcap_stats(if_dlg_data->pch, &stats) >= 0) {
+#if WIN32
+ diff = stats.ps_recv - if_dlg_data->last_packets;
+ if_dlg_data->last_packets = stats.ps_recv;
+#else
+ diff = stats.ps_recv;
+ if_dlg_data->last_packets = stats.ps_recv + if_dlg_data->last_packets;
+#endif
+
+ str = g_strdup_printf("%u", if_dlg_data->last_packets);
+ gtk_label_set_text(GTK_LABEL(if_dlg_data->curr_lb), str);
+ g_free(str);
+ str = g_strdup_printf("%u", diff);
+ gtk_label_set_text(GTK_LABEL(if_dlg_data->last_lb), str);
+ g_free(str);
+
+ gtk_widget_set_sensitive(if_dlg_data->curr_lb, diff);
+ gtk_widget_set_sensitive(if_dlg_data->last_lb, diff);
+ } else {
+ gtk_label_set_text(GTK_LABEL(if_dlg_data->curr_lb), "error");
+ gtk_label_set_text(GTK_LABEL(if_dlg_data->last_lb), "error");
+ }
+ }
+}
+
+
+/* close a single interface */
+void
+close_if(if_dlg_data_t *if_dlg_data)
+{
+ if(if_dlg_data->pch)
+ pcap_close(if_dlg_data->pch);
+}
+
+
+
+/* update all interfaces */
+gboolean
+update_all(gpointer data)
+{
+ GList *curr;
+ int ifs;
+
+
+ if(!cap_if_w) {
+ return FALSE;
+ }
+
+ for(ifs = 0; (curr = g_list_nth(data, ifs)); ifs++) {
+ update_if(curr->data);
+ }
+
+ return TRUE;
+}
+
+
+/* a live capture has started or stopped */
+void
+set_capture_if_dialog_for_capture_in_progress(gboolean capture_in_progress)
+{
+ GList *curr;
+ int ifs;
+
+ if(cap_if_w) {
+ gtk_widget_set_sensitive(stop_bt, capture_in_progress);
+
+ for(ifs = 0; (curr = g_list_nth(if_data, ifs)); ifs++) {
+ if_dlg_data_t *if_dlg_data = curr->data;
+
+ gtk_widget_set_sensitive(if_dlg_data->capture_bt, !capture_in_progress);
+ gtk_widget_set_sensitive(if_dlg_data->prepare_bt, !capture_in_progress);
+ }
+ }
+}
+
+
+/* the window was closed, cleanup things */
+static void
+capture_if_destroy_cb(GtkWidget *win _U_, gpointer user_data _U_)
+{
+ GList *curr;
+ int ifs;
+
+ gtk_timeout_remove(timer_id);
+
+ for(ifs = 0; (curr = g_list_nth(if_data, ifs)); ifs++) {
+ if_dlg_data_t *if_dlg_data = curr->data;
+
+ close_if(if_dlg_data);
+ g_free(curr->data);
+ }
+
+ if_data = NULL;
+
+ free_interface_list(if_list);
+
+ /* Note that we no longer have a "Capture Options" dialog box. */
+ cap_if_w = NULL;
+}
+
+
+/* start getting capture stats from all interfaces */
+void
+capture_if_cb(GtkWidget *w _U_, gpointer d _U_)
+{
+ GtkWidget *main_vb, *bbox, *close_bt;
+
+ GtkWidget *if_tb;
+ GtkWidget *if_lb;
+#if GTK_MAJOR_VERSION < 2
+ GtkAccelGroup *accel_group;
+#endif
+ GtkTooltips *tooltips;
+ int err;
+ char err_str[PCAP_ERRBUF_SIZE];
+ gchar *cant_get_if_list_errstr;
+ int row;
+ if_dlg_data_t *if_dlg_data;
+ int ifs;
+ GList *curr;
+ if_info_t *if_info;
+ GSList *curr_ip;
+ guint32 ip_addr;
+ GString *if_tool_str = g_string_new("");
+ gchar *tmp_str;
+
+
+ if (cap_if_w != NULL) {
+ /* There's already a "Capture Interfaces" dialog box; reactivate it. */
+ reactivate_window(cap_if_w);
+ return;
+ }
+
+#ifdef _WIN32
+ /* Is WPcap loaded? */
+ if (!has_wpcap) {
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK,
+ "Unable to load WinPcap (wpcap.dll); Ethereal will not be able\n"
+ "to capture packets.\n\n"
+ "In order to capture packets, WinPcap must be installed; see\n"
+ "\n"
+ " http://winpcap.polito.it/\n"
+ "\n"
+ "or the mirror at\n"
+ "\n"
+ " http://winpcap.mirror.ethereal.com/\n"
+ "\n"
+ "or the mirror at\n"
+ "\n"
+ " http://www.mirrors.wiretapped.net/security/packet-capture/winpcap/\n"
+ "\n"
+ "for a downloadable version of WinPcap and for instructions\n"
+ "on how to install WinPcap.");
+ return;
+ }
+#endif
+
+ if_list = get_interface_list(&err, err_str);
+ if (if_list == NULL && err == CANT_GET_INTERFACE_LIST) {
+ cant_get_if_list_errstr = cant_get_if_list_error_message(err_str);
+ simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "%s",
+ cant_get_if_list_errstr);
+ g_free(cant_get_if_list_errstr);
+ return;
+ }
+
+ cap_if_w = window_new(GTK_WINDOW_TOPLEVEL, "Ethereal: Capture Interfaces");
+
+ tooltips = gtk_tooltips_new();
+
+#if GTK_MAJOR_VERSION < 2
+ /* Accelerator group for the accelerators (or, as they're called in
+ Windows and, I think, in Motif, "mnemonics"; Alt+<key> is a mnemonic,
+ Ctrl+<key> is an accelerator). */
+ accel_group = gtk_accel_group_new();
+ gtk_window_add_accel_group(GTK_WINDOW(cap_if_w), accel_group);
+#endif
+
+ main_vb = gtk_vbox_new(FALSE, 0);
+ gtk_container_border_width(GTK_CONTAINER(main_vb), 5);
+ gtk_container_add(GTK_CONTAINER(cap_if_w), main_vb);
+
+
+ if_tb = gtk_table_new(6,1, FALSE);
+ gtk_table_set_row_spacings(GTK_TABLE(if_tb), 3);
+ gtk_table_set_col_spacings(GTK_TABLE(if_tb), 3);
+ gtk_container_add(GTK_CONTAINER(main_vb), if_tb);
+
+ row = 0;
+
+#ifndef WIN32
+ if_lb = gtk_label_new("Device");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 0, 1, row, row+1);
+#endif
+
+ if_lb = gtk_label_new("Description");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 1, 2, row, row+1);
+
+ if_lb = gtk_label_new(" IP ");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 2, 3, row, row+1);
+
+ if_lb = gtk_label_new("Packets");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 3, 4, row, row+1);
+
+ if_lb = gtk_label_new(" Packets/s ");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_lb, 4, 5, row, row+1);
+
+ stop_bt = BUTTON_NEW_FROM_STOCK(GTK_STOCK_STOP);
+ gtk_tooltips_set_tip(tooltips, stop_bt,
+ "Stop a running capture.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), stop_bt, 5, 7, row, row+1);
+ SIGNAL_CONNECT(stop_bt, "clicked", capture_stop_cb, NULL);
+
+ row++;
+
+ for(ifs = 0; (curr = g_list_nth(if_list, ifs)); ifs++) {
+ g_string_assign(if_tool_str, "");
+ if_info = curr->data;
+ if_dlg_data = g_malloc0(sizeof(if_dlg_data_t));
+
+ /* device name */
+ if_dlg_data->device_lb = gtk_label_new(if_info->name);
+ if_dlg_data->device = if_info->name;
+#ifndef WIN32
+ gtk_misc_set_alignment(GTK_MISC(if_dlg_data->device_lb), 0.0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->device_lb, 0, 1, row, row+1);
+#endif
+ g_string_append(if_tool_str, "Device: ");
+ g_string_append(if_tool_str, if_info->name);
+ g_string_append(if_tool_str, "\n");
+
+ /* description */
+ if_dlg_data->descr_lb = gtk_label_new(if_info->description);
+ gtk_misc_set_alignment(GTK_MISC(if_dlg_data->descr_lb), 0.0, 0.5);
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->descr_lb, 1, 2, row, row+1);
+
+ g_string_append(if_tool_str, "Description: ");
+ g_string_append(if_tool_str, if_info->description);
+ g_string_append(if_tool_str, "\n");
+
+ /* IP address */
+ /* only one IP address will be shown */
+ g_string_append(if_tool_str, "IP: ");
+ curr_ip = g_slist_nth(if_info->ip_addr, 0);
+ if(curr_ip) {
+ ip_addr = *((guint32 *)curr_ip->data);
+ if_dlg_data->ip_lb = gtk_label_new(iptos(ip_addr));
+ g_string_append(if_tool_str, iptos(ip_addr));
+ } else {
+ ip_addr = 0;
+ if_dlg_data->ip_lb = gtk_label_new("unknown");
+ g_string_append(if_tool_str, "unknown");
+ }
+ gtk_widget_set_sensitive(if_dlg_data->ip_lb, ip_addr);
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->ip_lb, 2, 3, row, row+1);
+ g_string_append(if_tool_str, "\n");
+
+ /* packets */
+ if_dlg_data->curr_lb = gtk_label_new("-");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->curr_lb, 3, 4, row, row+1);
+
+ /* packets/s */
+ if_dlg_data->last_lb = gtk_label_new("-");
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->last_lb, 4, 5, row, row+1);
+
+ /* capture button */
+ if_dlg_data->capture_bt = gtk_button_new_with_label("Capture");
+ SIGNAL_CONNECT(if_dlg_data->capture_bt, "clicked", capture_do_cb, if_dlg_data);
+ tmp_str = g_strdup_printf("Immediately start a capture from this interface:\n\n%s", if_tool_str->str);
+ gtk_tooltips_set_tip(tooltips, if_dlg_data->capture_bt,
+ tmp_str, NULL);
+ g_free(tmp_str);
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->capture_bt, 5, 6, row, row+1);
+
+ /* prepare button */
+ if_dlg_data->prepare_bt = gtk_button_new_with_label("Prepare");
+ SIGNAL_CONNECT(if_dlg_data->prepare_bt, "clicked", capture_prepare_cb, if_dlg_data);
+ gtk_tooltips_set_tip(tooltips, if_dlg_data->prepare_bt,
+ "Open the capture options dialog with this interface selected.", NULL);
+ gtk_table_attach_defaults(GTK_TABLE(if_tb), if_dlg_data->prepare_bt, 6, 7, row, row+1);
+
+ open_if(if_info->name, if_dlg_data);
+
+ if_data = g_list_append(if_data, if_dlg_data);
+
+ row++;
+ }
+
+ g_string_free(if_tool_str, TRUE);
+
+ /* Button row: close button */
+ bbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL);
+ gtk_box_pack_start(GTK_BOX(main_vb), bbox, FALSE, FALSE, 5);
+
+ close_bt = OBJECT_GET_DATA(bbox, GTK_STOCK_CLOSE);
+ window_set_cancel_button(cap_if_w, close_bt, window_cancel_button_cb);
+ gtk_tooltips_set_tip(tooltips, close_bt, "Close this window.", NULL);
+
+ gtk_widget_grab_default(close_bt);
+
+ SIGNAL_CONNECT(cap_if_w, "delete_event", window_delete_event_cb, NULL);
+ SIGNAL_CONNECT(cap_if_w, "destroy", capture_if_destroy_cb, NULL);
+
+ gtk_widget_show_all(cap_if_w);
+ window_present(cap_if_w);
+
+ set_capture_if_dialog_for_capture_in_progress(is_capture_in_progress());
+
+ /* update the interface list every 1000ms */
+ timer_id = gtk_timeout_add(1000, update_all, if_data);
+}
+
+
+#endif /* HAVE_LIBPCAP */
diff --git a/gtk/capture_info_dlg.c b/gtk/capture_info_dlg.c
index 3f0648bf27..44d4807d61 100644
--- a/gtk/capture_info_dlg.c
+++ b/gtk/capture_info_dlg.c
@@ -1,7 +1,7 @@
/* capture_info_dlg.c
* Routines for packet capture info dialog
*
- * $Id: capture_info_dlg.c,v 1.17 2004/05/27 17:26:46 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/capture_prefs.c b/gtk/capture_prefs.c
index 8f9381a5ac..7207f1113f 100644
--- a/gtk/capture_prefs.c
+++ b/gtk/capture_prefs.c
@@ -1,7 +1,7 @@
/* capture_prefs.c
* Dialog box for capture preferences
*
- * $Id: capture_prefs.c,v 1.39 2004/07/13 05:43:59 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/capture_prefs.h b/gtk/capture_prefs.h
index 234dbde473..cdc0d22907 100644
--- a/gtk/capture_prefs.h
+++ b/gtk/capture_prefs.h
@@ -1,7 +1,7 @@
/* capture_prefs.h
* Definitions for capture preferences window
*
- * $Id: capture_prefs.h,v 1.5 2004/06/04 20:05:30 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/color_dlg.c b/gtk/color_dlg.c
index 00faa09a45..ea94f62dc8 100644
--- a/gtk/color_dlg.c
+++ b/gtk/color_dlg.c
@@ -1,7 +1,7 @@
/* color_dlg.c
* Definitions for dialog boxes for color filters
*
- * $Id: color_dlg.c,v 1.52 2004/06/05 10:13:37 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/color_dlg.h b/gtk/color_dlg.h
index 383f95ef90..163467c585 100644
--- a/gtk/color_dlg.h
+++ b/gtk/color_dlg.h
@@ -1,7 +1,7 @@
/* color_dlg.h
* Definitions for dialog boxes for color filters
*
- * $Id: color_dlg.h,v 1.6 2004/06/04 20:05:30 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/color_filters.c b/gtk/color_filters.c
index a971e499d1..fa5793f0ac 100644
--- a/gtk/color_filters.c
+++ b/gtk/color_filters.c
@@ -1,7 +1,7 @@
/* color_filters.c
* Routines for color filters
*
- * $Id: color_filters.c,v 1.10 2004/04/16 19:36:36 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/color_filters.h b/gtk/color_filters.h
index 8c5d2bd573..d6db23f8e3 100644
--- a/gtk/color_filters.h
+++ b/gtk/color_filters.h
@@ -1,7 +1,7 @@
/* color_filters.h
* Definitions for color filters
*
- * $Id: color_filters.h,v 1.7 2004/06/01 20:28:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/color_utils.c b/gtk/color_utils.c
index 8bf665dd77..6fca4eadfa 100644
--- a/gtk/color_utils.c
+++ b/gtk/color_utils.c
@@ -2,7 +2,7 @@
* Utilities for converting between "toolkit-independent" and GDK
* notions of color
*
- * $Id: color_utils.c,v 1.4 2002/09/23 19:09:49 oabad Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/color_utils.h b/gtk/color_utils.h
index 836595b425..36f27ce2f9 100644
--- a/gtk/color_utils.h
+++ b/gtk/color_utils.h
@@ -2,7 +2,7 @@
* Declarations of utilities for converting between "toolkit-independent"
* and GDK notions of color
*
- * $Id: color_utils.h,v 1.3 2004/06/01 20:28:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/colors.c b/gtk/colors.c
index 23ad9d81af..3d9ad7f1ce 100644
--- a/gtk/colors.c
+++ b/gtk/colors.c
@@ -1,7 +1,7 @@
/* colors.c
* Routines for colors
*
- * $Id: colors.c,v 1.28 2004/01/31 03:22:39 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/colors.h b/gtk/colors.h
index f66a522eaf..4ff136d8c2 100644
--- a/gtk/colors.h
+++ b/gtk/colors.h
@@ -1,7 +1,7 @@
/* colors.h
* Definitions for color structures and routines
*
- * $Id: colors.h,v 1.12 2004/06/01 20:28:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/column_prefs.c b/gtk/column_prefs.c
index 3f42ca939f..9600cea0ef 100644
--- a/gtk/column_prefs.c
+++ b/gtk/column_prefs.c
@@ -1,7 +1,7 @@
/* column_prefs.c
* Dialog box for column preferences
*
- * $Id: column_prefs.c,v 1.24 2004/05/27 16:48:36 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/column_prefs.h b/gtk/column_prefs.h
index 378343cf59..02968977d6 100644
--- a/gtk/column_prefs.h
+++ b/gtk/column_prefs.h
@@ -1,7 +1,7 @@
/* column_prefs.h
* Definitions for column preferences window
*
- * $Id: column_prefs.h,v 1.7 2004/06/04 20:05:30 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/compat_macros.h b/gtk/compat_macros.h
index 888a6d7369..be990fa9f9 100644
--- a/gtk/compat_macros.h
+++ b/gtk/compat_macros.h
@@ -1,7 +1,7 @@
/* compat_macros.h
* GTK-related Global defines, etc.
*
- * $Id: compat_macros.h,v 1.21 2004/07/13 07:15:44 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/dcerpc_stat.c b/gtk/dcerpc_stat.c
index 918ea20a13..c9d86e2d04 100644
--- a/gtk/dcerpc_stat.c
+++ b/gtk/dcerpc_stat.c
@@ -1,7 +1,7 @@
/* dcerpc_stat.c
* dcerpc_stat 2002 Ronnie Sahlberg
*
- * $Id: dcerpc_stat.c,v 1.58 2004/06/02 07:12:09 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/decode_as_dlg.c b/gtk/decode_as_dlg.c
index 4c9729196d..a9bb26577b 100644
--- a/gtk/decode_as_dlg.c
+++ b/gtk/decode_as_dlg.c
@@ -1,6 +1,6 @@
/* decode_as_dlg.c
*
- * $Id: decode_as_dlg.c,v 1.41 2004/06/10 09:46:26 guy Exp $
+ * $Id$
*
* Routines to modify dissector tables on the fly.
*
diff --git a/gtk/decode_as_dlg.h b/gtk/decode_as_dlg.h
index f080e7ce94..57ceb84c7f 100644
--- a/gtk/decode_as_dlg.h
+++ b/gtk/decode_as_dlg.h
@@ -1,6 +1,6 @@
/* decode_as_dlg.h
*
- * $Id: decode_as_dlg.h,v 1.6 2004/06/04 20:05:30 ulfl Exp $
+ * $Id$
*
* Routines to modify dissector tables on the fly.
*
diff --git a/gtk/dfilter_expr_dlg.c b/gtk/dfilter_expr_dlg.c
index ff120dfdbc..1fbae8d561 100644
--- a/gtk/dfilter_expr_dlg.c
+++ b/gtk/dfilter_expr_dlg.c
@@ -7,7 +7,7 @@
* Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com> and
* Guy Harris <guy@alum.mit.edu>
*
- * $Id: dfilter_expr_dlg.c,v 1.60 2004/06/10 20:16:50 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/dfilter_expr_dlg.h b/gtk/dfilter_expr_dlg.h
index d0d331c82f..024819c68a 100644
--- a/gtk/dfilter_expr_dlg.h
+++ b/gtk/dfilter_expr_dlg.h
@@ -1,7 +1,7 @@
/* dfilter_expr_dlg.h
* Definitions for dialog boxes for display filter expression construction
*
- * $Id: dfilter_expr_dlg.h,v 1.4 2004/06/04 20:05:30 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/dlg_utils.c b/gtk/dlg_utils.c
index 0ace9be012..532a249d6b 100644
--- a/gtk/dlg_utils.c
+++ b/gtk/dlg_utils.c
@@ -1,7 +1,7 @@
/* dlg_utils.c
* Utilities to use when constructing dialogs
*
- * $Id: dlg_utils.c,v 1.42 2004/07/13 07:15:44 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/dlg_utils.h b/gtk/dlg_utils.h
index 3be89cb3a4..e8dc130d0a 100644
--- a/gtk/dlg_utils.h
+++ b/gtk/dlg_utils.h
@@ -1,7 +1,7 @@
/* dlg_utils.h
* Declarations of utilities to use when constructing dialogs
*
- * $Id: dlg_utils.h,v 1.21 2004/06/05 12:12:13 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_eth.c b/gtk/endpoint_talkers_eth.c
index 7136d72a96..1318fd6e66 100644
--- a/gtk/endpoint_talkers_eth.c
+++ b/gtk/endpoint_talkers_eth.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_eth.c
* endpoint_talkers_eth 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_eth.c,v 1.25 2004/05/02 17:25:09 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_fc.c b/gtk/endpoint_talkers_fc.c
index 3172771e66..7d3ea9413c 100644
--- a/gtk/endpoint_talkers_fc.c
+++ b/gtk/endpoint_talkers_fc.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_fc.c
* endpoint_talkers_fc 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_fc.c,v 1.25 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_fddi.c b/gtk/endpoint_talkers_fddi.c
index 7e49090777..40c31794cc 100644
--- a/gtk/endpoint_talkers_fddi.c
+++ b/gtk/endpoint_talkers_fddi.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_fddi.c
* endpoint_talkers_fddi 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_fddi.c,v 1.20 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_ip.c b/gtk/endpoint_talkers_ip.c
index 1d3ae17eaf..3d97e37300 100644
--- a/gtk/endpoint_talkers_ip.c
+++ b/gtk/endpoint_talkers_ip.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_ip.c
* endpoint_talkers_ip 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_ip.c,v 1.26 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_ipx.c b/gtk/endpoint_talkers_ipx.c
index 47de417e3a..4e2dfa0392 100644
--- a/gtk/endpoint_talkers_ipx.c
+++ b/gtk/endpoint_talkers_ipx.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_ipx.c
* endpoint_talkers_ipx 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_ipx.c,v 1.24 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_table.c b/gtk/endpoint_talkers_table.c
index aec06db0b4..b74dce51ba 100644
--- a/gtk/endpoint_talkers_table.c
+++ b/gtk/endpoint_talkers_table.c
@@ -4,7 +4,7 @@
* endpoint_talkers_table 2003 Ronnie Sahlberg
* Helper routines common to all endpoint talkers tap.
*
- * $Id: endpoint_talkers_table.c,v 1.47 2004/07/13 18:14:00 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_table.h b/gtk/endpoint_talkers_table.h
index d92f521a8d..9b8b3c6a43 100644
--- a/gtk/endpoint_talkers_table.h
+++ b/gtk/endpoint_talkers_table.h
@@ -2,7 +2,7 @@
* endpoint_talkers_table 2003 Ronnie Sahlberg
* Helper routines common to all endpoint talkers taps.
*
- * $Id: endpoint_talkers_table.h,v 1.14 2004/06/05 13:28:13 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_tcpip.c b/gtk/endpoint_talkers_tcpip.c
index cf25358406..004ef62a4c 100644
--- a/gtk/endpoint_talkers_tcpip.c
+++ b/gtk/endpoint_talkers_tcpip.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_tcpip.c
* endpoint_talkers_tcpip 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_tcpip.c,v 1.27 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_tr.c b/gtk/endpoint_talkers_tr.c
index dc904df3e5..cf5708a3a0 100644
--- a/gtk/endpoint_talkers_tr.c
+++ b/gtk/endpoint_talkers_tr.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_tr.c
* endpoint_talkers_tr 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_tr.c,v 1.26 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/endpoint_talkers_udpip.c b/gtk/endpoint_talkers_udpip.c
index 56de56e028..706990358f 100644
--- a/gtk/endpoint_talkers_udpip.c
+++ b/gtk/endpoint_talkers_udpip.c
@@ -1,7 +1,7 @@
/* endpoint_talkers_udpip.c
* endpoint_talkers_udpip 2003 Ronnie Sahlberg
*
- * $Id: endpoint_talkers_udpip.c,v 1.27 2004/05/02 17:25:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/ethclist.c b/gtk/ethclist.c
index 8def115a12..b263c165b7 100644
--- a/gtk/ethclist.c
+++ b/gtk/ethclist.c
@@ -2,7 +2,7 @@
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball, Josh MacDonald,
* Copyright (C) 1997-1998 Jay Painter <jpaint@serv.net><jpaint@gimp.org>
*
- * $Id: ethclist.c,v 1.1 2004/01/09 08:36:22 guy Exp $
+ * $Id$
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
diff --git a/gtk/ethclist.h b/gtk/ethclist.h
index b90ba1e6b7..9d45f28703 100644
--- a/gtk/ethclist.h
+++ b/gtk/ethclist.h
@@ -2,7 +2,7 @@
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball, Josh MacDonald
* Copyright (C) 1997-1998 Jay Painter <jpaint@serv.net><jpaint@gimp.org>
*
- * $Id: ethclist.h,v 1.4 2004/06/01 21:56:03 ulfl Exp $
+ * $Id$
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
diff --git a/gtk/fc_stat.c b/gtk/fc_stat.c
index f27476ea7c..a5187e526e 100644
--- a/gtk/fc_stat.c
+++ b/gtk/fc_stat.c
@@ -1,7 +1,7 @@
/* fc_stat.c
* fc_stat 2003 Ronnie Sahlberg
*
- * $Id: fc_stat.c,v 1.34 2004/06/02 07:12:09 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c
index 947ed555ba..e70de62299 100644
--- a/gtk/file_dlg.c
+++ b/gtk/file_dlg.c
@@ -1,7 +1,7 @@
/* file_dlg.c
* Dialog boxes for handling files
*
- * $Id: file_dlg.c,v 1.128 2004/07/13 07:15:44 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/file_dlg.h b/gtk/file_dlg.h
index 59923ac166..143bce5ef8 100644
--- a/gtk/file_dlg.h
+++ b/gtk/file_dlg.h
@@ -1,7 +1,7 @@
/* file_dlg.h
* Definitions for dialog boxes for handling files
*
- * $Id: file_dlg.h,v 1.13 2004/06/17 21:53:25 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/filter_prefs.c b/gtk/filter_prefs.c
index 0147618be5..c33c387a1c 100644
--- a/gtk/filter_prefs.c
+++ b/gtk/filter_prefs.c
@@ -3,7 +3,7 @@
* (This used to be a notebook page under "Preferences", hence the
* "prefs" in the file name.)
*
- * $Id: filter_prefs.c,v 1.67 2004/06/05 10:27:38 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/filter_prefs.h b/gtk/filter_prefs.h
index 2d2e9aa5c6..8459337329 100644
--- a/gtk/filter_prefs.h
+++ b/gtk/filter_prefs.h
@@ -3,7 +3,7 @@
* (This used to be a notebook page under "Preferences", hence the
* "prefs" in the file name.)
*
- * $Id: filter_prefs.h,v 1.21 2004/06/05 12:12:13 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/find_dlg.c b/gtk/find_dlg.c
index 4bbde48a77..76c5b1e8fe 100644
--- a/gtk/find_dlg.c
+++ b/gtk/find_dlg.c
@@ -1,7 +1,7 @@
/* find_dlg.c
* Routines for "find frame" window
*
- * $Id: find_dlg.c,v 1.53 2004/05/26 03:49:23 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/find_dlg.h b/gtk/find_dlg.h
index c5a89c4c55..41ddfe3c4c 100644
--- a/gtk/find_dlg.h
+++ b/gtk/find_dlg.h
@@ -1,7 +1,7 @@
/* find_dlg.h
* Definitions for "find frame" window
*
- * $Id: find_dlg.h,v 1.8 2004/06/04 20:05:31 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/follow_dlg.c b/gtk/follow_dlg.c
index e13ff16ed3..dd4518bde2 100644
--- a/gtk/follow_dlg.c
+++ b/gtk/follow_dlg.c
@@ -1,6 +1,6 @@
/* follow_dlg.c
*
- * $Id: follow_dlg.c,v 1.69 2004/07/09 23:02:37 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/follow_dlg.h b/gtk/follow_dlg.h
index 7316f5bf3d..423da70eab 100644
--- a/gtk/follow_dlg.h
+++ b/gtk/follow_dlg.h
@@ -1,6 +1,6 @@
/* follow_dlg.c
*
- * $Id: follow_dlg.h,v 1.6 2004/06/04 20:05:31 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/font_utils.c b/gtk/font_utils.c
index 0242644585..4a5c2590a0 100644
--- a/gtk/font_utils.c
+++ b/gtk/font_utils.c
@@ -1,7 +1,7 @@
/* font_utils.c
* Utilities to use for font manipulation
*
- * $Id: font_utils.c,v 1.1 2004/06/17 16:35:24 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/font_utils.h b/gtk/font_utils.h
index e8a3b5faa7..ac91a43943 100644
--- a/gtk/font_utils.h
+++ b/gtk/font_utils.h
@@ -1,7 +1,7 @@
/* font_utils.h
* Declarations of utilities to use for font manipulation
*
- * $Id: font_utils.h,v 1.1 2004/06/17 16:35:24 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/goto_dlg.c b/gtk/goto_dlg.c
index ef9ade53e1..2199bc1206 100644
--- a/gtk/goto_dlg.c
+++ b/gtk/goto_dlg.c
@@ -1,7 +1,7 @@
/* goto_dlg.c
* Routines for "go to packet" window
*
- * $Id: goto_dlg.c,v 1.27 2004/06/01 17:33:36 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/goto_dlg.h b/gtk/goto_dlg.h
index 0e04ec3b43..0614acd167 100644
--- a/gtk/goto_dlg.h
+++ b/gtk/goto_dlg.h
@@ -1,7 +1,7 @@
/* goto_dlg.h
* Definitions for "go to frame" window
*
- * $Id: goto_dlg.h,v 1.4 2004/06/04 20:05:31 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/gsm_a_stat.c b/gtk/gsm_a_stat.c
index 7a20d98874..e79910e886 100644
--- a/gtk/gsm_a_stat.c
+++ b/gtk/gsm_a_stat.c
@@ -5,7 +5,7 @@
*
* MUCH code modified from service_response_time_table.c.
*
- * $Id: gsm_a_stat.c,v 1.18 2004/05/23 23:24:05 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gsm_map_stat.c b/gtk/gsm_map_stat.c
index ebd5e784ec..aac5582da1 100644
--- a/gtk/gsm_map_stat.c
+++ b/gtk/gsm_map_stat.c
@@ -5,7 +5,7 @@
*
* MUCH code modified from service_response_time_table.c.
*
- * $Id: gsm_map_stat.c,v 1.9 2004/05/23 23:24:05 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gsm_map_stat.h b/gtk/gsm_map_stat.h
index dabede3235..283aac6b69 100644
--- a/gtk/gsm_map_stat.h
+++ b/gtk/gsm_map_stat.h
@@ -1,6 +1,6 @@
/* gsm_map_stat.h
*
- * $Id: gsm_map_stat.h,v 1.3 2004/06/05 11:03:14 ulfl Exp $
+ * $Id$
*
* Copyright 2004, Michael Lum <mlum [AT] telostech.com>,
* In association with Telos Technology Inc.
diff --git a/gtk/gsm_map_summary.c b/gtk/gsm_map_summary.c
index 9071c7fdf9..53c207283b 100644
--- a/gtk/gsm_map_summary.c
+++ b/gtk/gsm_map_summary.c
@@ -6,7 +6,7 @@
*
* Modified from summary_dlg.c
*
- * $Id: gsm_map_summary.c,v 1.3 2004/05/23 23:24:05 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gtk_stat_util.c b/gtk/gtk_stat_util.c
index 9250a4eb65..3ee77a30e7 100644
--- a/gtk/gtk_stat_util.c
+++ b/gtk/gtk_stat_util.c
@@ -2,7 +2,7 @@
* gui functions used by stats
* Copyright 2003 Lars Roland
*
- * $Id: gtk_stat_util.c,v 1.6 2004/06/01 21:56:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gtk_stat_util.h b/gtk/gtk_stat_util.h
index ee85295fa4..4cbb6a011b 100644
--- a/gtk/gtk_stat_util.h
+++ b/gtk/gtk_stat_util.h
@@ -2,7 +2,7 @@
* gui functions used by stats
* Copyright 2003 Lars Roland
*
- * $Id: gtk_stat_util.h,v 1.4 2004/06/01 21:56:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gtkglobals.h b/gtk/gtkglobals.h
index 3469e8c378..c1226e6cbb 100644
--- a/gtk/gtkglobals.h
+++ b/gtk/gtkglobals.h
@@ -1,7 +1,7 @@
/* gtkglobals.h
* GTK-related Global defines, etc.
*
- * $Id: gtkglobals.h,v 1.31 2004/07/09 23:02:38 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gui_prefs.c b/gtk/gui_prefs.c
index 1cc621bb55..87eb3a2191 100644
--- a/gtk/gui_prefs.c
+++ b/gtk/gui_prefs.c
@@ -1,7 +1,7 @@
/* gui_prefs.c
* Dialog box for GUI preferences
*
- * $Id: gui_prefs.c,v 1.77 2004/07/14 08:04:39 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/gui_prefs.h b/gtk/gui_prefs.h
index 048cf82e07..b88e0eae28 100644
--- a/gtk/gui_prefs.h
+++ b/gtk/gui_prefs.h
@@ -1,7 +1,7 @@
/* gui_prefs.h
* Definitions for GUI preferences window
*
- * $Id: gui_prefs.h,v 1.8 2004/06/04 20:05:31 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
diff --git a/gtk/h225_counter.c b/gtk/h225_counter.c
index 307f9f9a70..be0f4bd200 100644
--- a/gtk/h225_counter.c
+++ b/gtk/h225_counter.c
@@ -2,7 +2,7 @@
* h225 message counter for ethereal
* Copyright 2003 Lars Roland
*
- * $Id: h225_counter.c,v 1.22 2004/06/02 07:12:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/h225_ras_srt.c b/gtk/h225_ras_srt.c
index 3344d67a06..2a9d78cdf8 100644
--- a/gtk/h225_ras_srt.c
+++ b/gtk/h225_ras_srt.c
@@ -2,7 +2,7 @@
* h225 RAS Service Response Time statistics for ethereal
* Copyright 2003 Lars Roland
*
- * $Id: h225_ras_srt.c,v 1.19 2004/06/02 07:12:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/help_dlg.c b/gtk/help_dlg.c
index cb9397bb3b..20d1ee1b52 100644
--- a/gtk/help_dlg.c
+++ b/gtk/help_dlg.c
@@ -1,6 +1,6 @@
/* help_dlg.c
*
- * $Id: help_dlg.c,v 1.56 2004/06/05 09:57:10 ulfl Exp $
+ * $Id$
*
* Laurent Deniel <laurent.deniel@free.fr>
*
diff --git a/gtk/help_dlg.h b/gtk/help_dlg.h
index 9e3a687842..df06f21a6b 100644
--- a/gtk/help_dlg.h
+++ b/gtk/help_dlg.h
@@ -1,6 +1,6 @@
/* help_dlg.h
*
- * $Id: help_dlg.h,v 1.8 2004/06/04 20:05:31 ulfl Exp $
+ * $Id$
*
* Laurent Deniel <laurent.deniel@free.fr>
*
diff --git a/gtk/hostlist_eth.c b/gtk/hostlist_eth.c
index e70d1c1312..88c61e346c 100644
--- a/gtk/hostlist_eth.c
+++ b/gtk/hostlist_eth.c
@@ -1,7 +1,7 @@
/* hostlist_eth.c 2004 Ian Schorr
* modified from endpoint_talkers_eth.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_eth.c,v 1.6 2004/05/02 21:16:08 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_fc.c b/gtk/hostlist_fc.c
index 562c815d70..5ac88f55c8 100644
--- a/gtk/hostlist_fc.c
+++ b/gtk/hostlist_fc.c
@@ -1,7 +1,7 @@
/* hostlist_fc.c 2004 Ian Schorr
* modified from endpoint_talkers_fc.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_fc.c,v 1.6 2004/05/02 21:16:08 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_fddi.c b/gtk/hostlist_fddi.c
index 9e890655f6..62098070dc 100644
--- a/gtk/hostlist_fddi.c
+++ b/gtk/hostlist_fddi.c
@@ -1,7 +1,7 @@
/* hostlist_fddi.c 2004 Ian Schorr
* modified from endpoint_talkers_fddi.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_fddi.c,v 1.6 2004/05/02 21:16:08 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_ip.c b/gtk/hostlist_ip.c
index a16210c411..a738f897a8 100644
--- a/gtk/hostlist_ip.c
+++ b/gtk/hostlist_ip.c
@@ -1,7 +1,7 @@
/* hostlist_ip.c 2004 Ian Schorr
* modified from endpoint_talkers_ip.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_ip.c,v 1.6 2004/05/02 21:16:08 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_ipx.c b/gtk/hostlist_ipx.c
index 70e51ad2d2..7d9903456b 100644
--- a/gtk/hostlist_ipx.c
+++ b/gtk/hostlist_ipx.c
@@ -1,7 +1,7 @@
/* hostlist_ipx.c 2004 Ian Schorr
* modified from endpoint_talkers_ipx.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_ipx.c,v 1.6 2004/05/02 21:16:08 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_table.c b/gtk/hostlist_table.c
index dd6b0e997d..8d71c28791 100644
--- a/gtk/hostlist_table.c
+++ b/gtk/hostlist_table.c
@@ -2,7 +2,7 @@
* modified from endpoint_talkers_table.c 2003 Ronnie Sahlberg
* Helper routines common to all host list taps.
*
- * $Id: hostlist_table.c,v 1.19 2004/07/13 18:14:00 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_table.h b/gtk/hostlist_table.h
index 63749f2582..4fbb77e960 100644
--- a/gtk/hostlist_table.h
+++ b/gtk/hostlist_table.h
@@ -2,7 +2,7 @@
* modified from endpoint_talkers_table 2003 Ronnie Sahlberg
* Helper routines common to all host talkers taps.
*
- * $Id: hostlist_table.h,v 1.8 2004/06/05 13:28:13 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_tcpip.c b/gtk/hostlist_tcpip.c
index 171ddf7167..e47c337ef0 100644
--- a/gtk/hostlist_tcpip.c
+++ b/gtk/hostlist_tcpip.c
@@ -1,7 +1,7 @@
/* hostlist_tcpip.c 2004 Ian Schorr
* modified from endpoint_talkers_tcpip.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_tcpip.c,v 1.6 2004/05/02 21:16:09 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_tr.c b/gtk/hostlist_tr.c
index f3ade56f09..f68d56ea70 100644
--- a/gtk/hostlist_tr.c
+++ b/gtk/hostlist_tr.c
@@ -1,7 +1,7 @@
/* hostlist_tr.c 2004 Ian Schorr
* modified from endpoint_talkers_tr.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_tr.c,v 1.6 2004/05/02 21:16:09 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/hostlist_udpip.c b/gtk/hostlist_udpip.c
index 01f63366c8..9640c245eb 100644
--- a/gtk/hostlist_udpip.c
+++ b/gtk/hostlist_udpip.c
@@ -1,7 +1,7 @@
/* hostlist_udpip.c 2004 Ian Schorr
* modified from endpoint_talkers_udpip.c 2003 Ronnie Sahlberg
*
- * $Id: hostlist_udpip.c,v 1.6 2004/05/02 21:16:09 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/http_stat.c b/gtk/http_stat.c
index f1fb482456..4a7f9c7031 100644
--- a/gtk/http_stat.c
+++ b/gtk/http_stat.c
@@ -1,7 +1,7 @@
/* http_stat.c
* http_stat 2003 Jean-Michel FAYARD
*
- * $Id: http_stat.c,v 1.30 2004/05/23 23:24:06 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/io_stat.c b/gtk/io_stat.c
index da0e0475c7..912a89dd7d 100644
--- a/gtk/io_stat.c
+++ b/gtk/io_stat.c
@@ -1,7 +1,7 @@
/* io_stat.c
* io_stat 2002 Ronnie Sahlberg
*
- * $Id: io_stat.c,v 1.76 2004/05/23 23:24:06 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/isprint.h b/gtk/isprint.h
index 274fc43e3d..cd4a836120 100644
--- a/gtk/isprint.h
+++ b/gtk/isprint.h
@@ -2,7 +2,7 @@
* Temporary redefinition of "isprint()" to cope with GTK+ 1.3 and
* later using UTF-8 strings
*
- * $Id: isprint.h,v 1.1 2004/07/09 23:02:38 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/isup_stat.c b/gtk/isup_stat.c
index 16c97a6df3..d186cb4fac 100644
--- a/gtk/isup_stat.c
+++ b/gtk/isup_stat.c
@@ -5,7 +5,7 @@
*
* MUCH code modified from service_response_time_table.c.
*
- * $Id: isup_stat.c,v 1.23 2004/05/23 23:24:06 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/keys.h b/gtk/keys.h
index 5433915a11..afa0295f2c 100644
--- a/gtk/keys.h
+++ b/gtk/keys.h
@@ -1,7 +1,7 @@
/* keys.h
* Key definitions for various objects
*
- * $Id: keys.h,v 1.15 2004/06/01 21:56:04 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/layout_prefs.c b/gtk/layout_prefs.c
index 66b229581e..36d1edfe7e 100644
--- a/gtk/layout_prefs.c
+++ b/gtk/layout_prefs.c
@@ -1,7 +1,7 @@
/* layout_prefs.c
* Dialog box for layout preferences
*
- * $Id: layout_prefs.c,v 1.8 2004/05/05 07:31:05 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/layout_prefs.h b/gtk/layout_prefs.h
index 8bc016db84..34fb157633 100644
--- a/gtk/layout_prefs.h
+++ b/gtk/layout_prefs.h
@@ -1,7 +1,7 @@
/* layout_prefs.h
* Definitions for layout preferences window
*
- * $Id: layout_prefs.h,v 1.6 2004/06/04 20:05:31 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/ldap_stat.c b/gtk/ldap_stat.c
index b4a1ddc44e..a48d509bcd 100644
--- a/gtk/ldap_stat.c
+++ b/gtk/ldap_stat.c
@@ -1,7 +1,7 @@
/* ldap_stat.c
* ldap_stat 2003 Ronnie Sahlberg
*
- * $Id: ldap_stat.c,v 1.22 2004/06/02 07:12:10 ulfl Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/main.c b/gtk/main.c
index d0a3744d02..ab88812f5a 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.458 2004/07/13 07:15:44 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/main.h b/gtk/main.h
index 205a5fcd8d..3cd7339081 100644
--- a/gtk/main.h
+++ b/gtk/main.h
@@ -1,7 +1,7 @@
/* main.h
* Global defines, etc.
*
- * $Id: main.h,v 1.56 2004/06/23 01:38:39 guy Exp $
+ * $Id$
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
diff --git a/gtk/menu.c b/gtk/menu.c
index b642d02b23..7f49b475b0 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -1,1828 +1,1828 @@
-/* menu.c
- * Menu routines
- *
- * $Id: menu.c,v 1.208 2004/07/07 16:26:52 ulfl Exp $
- *
- * Ethereal - Network traffic analyzer
- * By Gerald Combs <gerald@ethereal.com>
- * Copyright 1998 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <gtk/gtk.h>
-
-#include <string.h>
-
-#include "main.h"
-#include "menu.h"
-#include "tap_menu.h"
-#include <epan/packet.h>
-#include <epan/resolv.h>
-#include "prefs.h"
-#include "about_dlg.h"
-#include "capture_dlg.h"
-#include "color_dlg.h"
-#include "filter_prefs.h"
-#include "dlg_utils.h"
-#include "file_dlg.h"
-#include "find_dlg.h"
-#include "goto_dlg.h"
-#include "summary_dlg.h"
-#include "prefs_dlg.h"
-#include "packet_win.h"
-#include "print.h"
-#include "follow_dlg.h"
-#include "decode_as_dlg.h"
-#include "help_dlg.h"
-#include "supported_protos_dlg.h"
-#include "proto_dlg.h"
-#include "proto_hier_stats_dlg.h"
-#include "keys.h"
-#include <epan/plugins.h>
-#include <epan/epan_dissect.h>
-#include "compat_macros.h"
-#include "toolbar.h"
-#include "gtkglobals.h"
-#include "register.h"
-#include "../tap.h"
-#include "../menu.h"
-#include "../ipproto.h"
-#include "packet_list.h"
-#include "ethclist.h"
-#include "recent.h"
-#include "../ui_util.h"
-#include "proto_draw.h"
-#include "endpoint_talkers_table.h"
-#include "hostlist_table.h"
-#include "simple_dialog.h"
-#include <epan/timestamp.h>
-
-GtkWidget *popup_menu_object;
-
-static void
-clear_menu_recent_capture_file_cmd_cb(GtkWidget *w, gpointer unused _U_);
-
-typedef struct _menu_item {
- char *name;
- gint group;
- gboolean enabled;
- GtkItemFactoryCallback callback;
- gpointer callback_data;
- gboolean (*selected_packet_enabled)(frame_data *, epan_dissect_t *);
- gboolean (*selected_tree_row_enabled)(field_info *);
- GList *children;
-} menu_item_t;
-
-static GList *tap_menu_tree_root = NULL;
-
-static void
-merge_all_tap_menus(GList *node);
-
-#define GTK_MENU_FUNC(a) ((GtkItemFactoryCallback)(a))
-
-static void menus_init(void);
-static void set_menu_sensitivity (GtkItemFactory *, const gchar *, gint);
-static void main_toolbar_show_cb(GtkWidget *w _U_, gpointer d _U_);
-static void filter_toolbar_show_cb(GtkWidget *w _U_, gpointer d _U_);
-static void packet_list_show_cb(GtkWidget *w _U_, gpointer d _U_);
-static void tree_view_show_cb(GtkWidget *w _U_, gpointer d _U_);
-static void byte_view_show_cb(GtkWidget *w _U_, gpointer d _U_);
-static void statusbar_show_cb(GtkWidget *w _U_, gpointer d _U_);
-static void timestamp_absolute_cb(GtkWidget *w _U_, gpointer d _U_);
-static void timestamp_absolute_date_cb(GtkWidget *w _U_, gpointer d _U_);
-static void timestamp_relative_cb(GtkWidget *w _U_, gpointer d _U_);
-static void timestamp_delta_cb(GtkWidget *w _U_, gpointer d _U_);
-static void name_resolution_mac_cb(GtkWidget *w _U_, gpointer d _U_);
-static void name_resolution_network_cb(GtkWidget *w _U_, gpointer d _U_);
-static void name_resolution_transport_cb(GtkWidget *w _U_, gpointer d _U_);
-#ifdef HAVE_LIBPCAP
-static void auto_scroll_live_cb(GtkWidget *w _U_, gpointer d _U_);
-#endif
-
-/* This is the GtkItemFactoryEntry structure used to generate new menus.
- Item 1: The menu path. The letter after the underscore indicates an
- accelerator key once the menu is open.
- Item 2: The accelerator key for the entry
- Item 3: The callback function.
- Item 4: The callback action. This changes the parameters with
- which the function is called. The default is 0.
- Item 5: The item type, used to define what kind of an item it is.
- Here are the possible values:
-
- NULL -> "<Item>"
- "" -> "<Item>"
- "<Title>" -> create a title item
- "<Item>" -> create a simple item
- "<ImageItem>" -> create an item holding an image (gtk2)
- "<StockItem>" -> create an item holding a stock image (gtk2)
- "<CheckItem>" -> create a check item
- "<ToggleItem>" -> create a toggle item
- "<RadioItem>" -> create a radio item
- <path> -> path of a radio item to link against
- "<Separator>" -> create a separator
- "<Tearoff>" -> create a tearoff separator (gtk2)
- "<Branch>" -> create an item to hold sub items (optional)
- "<LastBranch>" -> create a right justified branch
- Item 6: extra data needed for ImageItem and StockItem (gtk2)
- */
-
-/* main menu */
-static GtkItemFactoryEntry menu_items[] =
-{
- ITEM_FACTORY_ENTRY("/_File", NULL, NULL, 0, "<Branch>", NULL),
- ITEM_FACTORY_STOCK_ENTRY("/File/_Open...", "<control>O", file_open_cmd_cb,
- 0, GTK_STOCK_OPEN),
- ITEM_FACTORY_ENTRY("/File/Open _Recent", NULL, NULL, 0, "<Branch>", NULL),
- ITEM_FACTORY_ENTRY("/File/_Merge...", NULL, file_merge_cmd_cb, 0, NULL, NULL),
- ITEM_FACTORY_STOCK_ENTRY("/File/_Close", "<control>W", file_close_cmd_cb,
-