Ethereal-dev: Re: [Ethereal-dev] Please test: shared libs (v3)
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Joerg Mayer <jmayer@xxxxxxxxx>
Date: Mon, 9 Feb 2004 18:17:49 +0100
On Mon, Feb 09, 2004 at 02:27:31AM +0100, Joerg Mayer wrote: > Ah, OK, I'll try to fix this later on Monday or Tuesday. Ok, attached is a new version. For now, I create libdfilter and libftypes as dynamic libs. Once things are working and have settled down a bit, I'll try to integrate them into libethereal again. Other changes: Move make-register stuff to epan. Ciao Jörg -- Joerg Mayer <jmayer@xxxxxxxxx> We are stuck with technology when what we really want is just stuff that works. Some say that should read Microsoft instead of technology.
Index: .cvsignore =================================================================== RCS file: /usr/local/cvsroot/ethereal/.cvsignore,v retrieving revision 1.30 diff -p -u -r1.30 .cvsignore --- .cvsignore 7 Feb 2004 04:35:48 -0000 1.30 +++ .cvsignore 9 Feb 2004 09:43:28 -0000 @@ -50,8 +50,6 @@ packet-ncp2222.c ps.c randpkt rdps -register-static.c -register.c stamp-h stamp-h.in stamp-h1 Index: Makefile.am =================================================================== RCS file: /usr/local/cvsroot/ethereal/Makefile.am,v retrieving revision 1.706 diff -p -u -r1.706 Makefile.am --- Makefile.am 1 Feb 2004 10:07:20 -0000 1.706 +++ Makefile.am 9 Feb 2004 09:43:31 -0000 @@ -231,11 +231,9 @@ ethereal_optional_objects = @SNPRINTF_O@ # Additional libs that I know how to build. These will be # linked into the ethereal executable. ethereal_additional_libs = \ - wiretap/libwiretap.a \ + wiretap/libwiretap.la \ gtk/libui.a \ - epan/libethereal.a \ - epan/ftypes/libftypes.a \ - epan/dfilter/libdfilter.a + epan/libethereal.la # This is the automake dependency variable for the executable ethereal_DEPENDENCIES = \ @@ -268,10 +266,8 @@ ethereal_LDADD = \ # Additional libs that I know how to build. These will be # linked into the tethereal executable. tethereal_additional_libs = \ - wiretap/libwiretap.a \ - epan/libethereal.a \ - epan/ftypes/libftypes.a \ - epan/dfilter/libdfilter.a + wiretap/libwiretap.la \ + epan/libethereal.la # This is the automake dependency variable for the executable tethereal_DEPENDENCIES = \ @@ -305,14 +301,14 @@ text2pcap_DEPENDENCIES = text2pcap.h text2pcap_LDADD = $(text2pcap_optional_objects) \ @GLIB_LIBS@ -lm -mergecap_DEPENDENCIES = wiretap/libwiretap.a +mergecap_DEPENDENCIES = wiretap/libwiretap.la # This is the automake dependency variable for the executable -editcap_DEPENDENCIES = wiretap/libwiretap.a +editcap_DEPENDENCIES = wiretap/libwiretap.la # This automake variable adds to the link-line for the executable -editcap_LDADD = wiretap/libwiretap.a @GLIB_LIBS@ -mergecap_LDADD = wiretap/libwiretap.a @GLIB_LIBS@ +editcap_LDADD = wiretap/libwiretap.la @GLIB_LIBS@ +mergecap_LDADD = wiretap/libwiretap.la @GLIB_LIBS@ # Common headers AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/wiretap @@ -341,41 +337,6 @@ SUFFIXES = .sh $(editsh) $< > $@.tmp && chmod +x $@.tmp && mv $@.tmp $@ # -# Build "register.c", which contains a function "register_all_protocols()" -# that calls the register routines for all protocols. -# -# We do this by grepping through sources. If that turns out to be too slow, -# maybe we could just require every .o file to have an register routine -# of a given name (packet-aarp.o -> proto_register_aarp, etc.). -# -# Formatting conventions: The name of the proto_register_* routines must -# start in column zero, or must be preceded only by "void " starting in -# column zero, and must not be inside #if. -# -# We assume that all dissector routines are in "packet-XXX.c" files. -# -# For some unknown reason, having a big "for" loop in the Makefile -# to scan all the "packet-XXX.c" files doesn't work with some "make"s; -# they seem to pass only the first few names in the list to the shell, -# for some reason. -# -# Therefore, we have a script to generate the "register.c" file. -# -# The first argument is the name of the file to write. -# The second argument is the directory in which the source files live. -# All subsequent arguments are the files to scan. -# -register.c: $(plugin_src) $(DISSECTOR_SRC) $(srcdir)/make-reg-dotc - @if test -n $(PYTHON); then \ - echo Making register.c with python ; \ - $(PYTHON) $(srcdir)/make-reg-dotc.py $(srcdir) $(DISSECTOR_SRC) ; \ - else \ - echo Making register.c with shell script ; \ - $(srcdir)/make-reg-dotc register.c $(srcdir) \ - $(plugin_src) $(DISSECTOR_SRC) ; \ - fi - -# # Build "tethereal-tap-register.c", which contains a function # "register_all_tap_listeners()" # that calls the register routines for all tehtereal tap listeners. @@ -402,15 +363,13 @@ rdps: rdps.c randpkt.o: randpkt.c $(CC) -DHAVE_CONFIG_H -I. `glib-config --cflags` -c $(srcdir)/randpkt.c -randpkt: randpkt.o wiretap/libwiretap.a - $(LINK) -o randpkt randpkt.o wiretap/libwiretap.a `glib-config --libs` -lz +randpkt: randpkt.o wiretap/libwiretap.la + $(LINK) -o randpkt randpkt.o wiretap/libwiretap.la `glib-config --libs` -lz dftest_additional_libs = \ - wiretap/libwiretap.a \ - epan/libethereal.a \ - epan/ftypes/libftypes.a \ - epan/dfilter/libdfilter.a + wiretap/libwiretap.la \ + epan/libethereal.la dftest_DEPENDENCIES = \ $(ethereal_optional_objects) \ @@ -439,7 +398,6 @@ DISTCLEANFILES = \ *~ MAINTAINERCLEANFILES = \ - register.c \ ps.c EXTRA_DIST = \ @@ -558,8 +516,6 @@ EXTRA_DIST = \ image/toolbar/stock_stop_24.xpm \ image/up_arrow.xpm \ make-manuf \ - make-reg-dotc \ - make-reg-dotc.py \ make-tapreg-dotc \ manuf \ manuf.tmpl \ @@ -587,24 +543,6 @@ else install-exec-hook: endif -# -# Currently register.c can be included in the distribution because -# we always build all protocol dissectors. We used to have to check -# whether or not to build the snmp dissector. If we again need to -# variably build something, making register.c non-portable, uncomment -# the dist-hook line below. -# -# Oh, yuk. We don't want to include "register.c" in the distribution, as -# its contents depend on the configuration, and therefore we want it -# to be built when the first "make" is done; however, Automake insists -# on putting *all* source into the distribution. -# -# We work around this by having a "dist-hook" rule that deletes -# "register.c", so that "dist" won't pick it up. -# -#dist-hook: -# @rm -f $(distdir)/register.c - DIST_SUBDIRS = tools wiretap doc epan plugins packaging gtk help if HAVE_PLUGINS Index: Makefile.common =================================================================== RCS file: /usr/local/cvsroot/ethereal/Makefile.common,v retrieving revision 1.10 diff -p -u -r1.10 Makefile.common --- Makefile.common 3 Feb 2004 18:57:26 -0000 1.10 +++ Makefile.common 9 Feb 2004 09:43:31 -0000 @@ -24,415 +24,6 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -DISSECTOR_SRC = \ - packet-aarp.c \ - packet-acap.c \ - packet-acse.c \ - packet-afp.c \ - packet-afs.c \ - packet-aim.c \ - packet-ajp13.c \ - packet-alcap.c \ - packet-ans.c \ - packet-ansi_637.c \ - packet-ansi_683.c \ - packet-ansi_a.c \ - packet-ansi_map.c \ - packet-aodv.c \ - packet-arcnet.c \ - packet-arp.c \ - packet-asap.c \ - packet-ascend.c \ - packet-asf.c \ - packet-atalk.c \ - packet-atm.c \ - packet-auto_rp.c \ - packet-bacapp.c \ - packet-bacnet.c \ - packet-beep.c \ - packet-bfd.c \ - packet-bgp.c \ - packet-bofl.c \ - packet-bootp.c \ - packet-bootparams.c \ - packet-bpdu.c \ - packet-brdwlk.c \ - packet-bssap.c \ - packet-bssgp.c \ - packet-bvlc.c \ - packet-ccsds.c \ - packet-cdp.c \ - packet-cgmp.c \ - packet-chdlc.c \ - packet-cisco-oui.c \ - packet-clearcase.c \ - packet-clip.c \ - packet-clnp.c \ - packet-cops.c \ - packet-cosine.c \ - packet-cpfi.c \ - packet-cpha.c \ - packet-cups.c \ - packet-data.c \ - packet-dccp.c \ - packet-dcerpc-afs4int.c \ - packet-dcerpc-atsvc.c \ - packet-dcerpc-bossvr.c \ - packet-dcerpc-browser.c \ - packet-dcerpc-budb.c \ - packet-dcerpc-butc.c \ - packet-dcerpc-cds_clerkserver.c \ - packet-dcerpc-cds_solicit.c \ - packet-dcerpc-conv.c \ - packet-dcerpc-cprpc_server.c \ - packet-dcerpc-dce122.c \ - packet-dcerpc-dfs.c \ - packet-dcerpc-dnsserver.c \ - packet-dcerpc-drsuapi.c \ - packet-dcerpc-dtsprovider.c \ - packet-dcerpc-dtsstime_req.c \ - packet-dcerpc-epm.c \ - packet-dcerpc-epm4.c \ - packet-dcerpc-fldb.c \ - packet-dcerpc-ftserver.c \ - packet-dcerpc-icl_rpc.c \ - packet-dcerpc-initshutdown.c \ - packet-dcerpc-krb5rpc.c \ - packet-dcerpc-lsa-ds.c \ - packet-dcerpc-lsa.c \ - packet-dcerpc-mapi.c \ - packet-dcerpc-messenger.c \ - packet-dcerpc-mgmt.c \ - packet-dcerpc-ndr.c \ - packet-dcerpc-netlogon.c \ - packet-dcerpc-nspi.c \ - packet-dcerpc-oxid.c \ - packet-dcerpc-reg.c \ - packet-dcerpc-remact.c \ - packet-dcerpc-rep_proc.c \ - packet-dcerpc-roverride.c \ - packet-dcerpc-rpriv.c \ - packet-dcerpc-rs_acct.c \ - packet-dcerpc-rs_attr.c \ - packet-dcerpc-rs_bind.c \ - packet-dcerpc-rs_misc.c \ - packet-dcerpc-rs_pgo.c \ - packet-dcerpc-rs_plcy.c \ - packet-dcerpc-rs_prop_acct.c \ - packet-dcerpc-rs_repadm.c \ - packet-dcerpc-rs_replist.c \ - packet-dcerpc-rs_unix.c \ - packet-dcerpc-rsec_login.c \ - packet-dcerpc-samr.c \ - packet-dcerpc-secidmap.c \ - packet-dcerpc-spoolss.c \ - packet-dcerpc-srvsvc.c \ - packet-dcerpc-svcctl.c \ - packet-dcerpc-tapi.c \ - packet-dcerpc-tkn4int.c \ - packet-dcerpc-trksvr.c \ - packet-dcerpc-ubikdisk.c \ - packet-dcerpc-ubikvote.c \ - packet-dcerpc-update.c \ - packet-dcerpc-wkssvc.c \ - packet-dcerpc.c \ - packet-ddtp.c \ - packet-dec-bpdu.c \ - packet-dhcpv6.c \ - packet-diameter.c \ - packet-diffserv-mpls-common.c \ - packet-distcc.c \ - packet-dlsw.c \ - packet-dns.c \ - packet-dsi.c \ - packet-dvmrp.c \ - packet-eap.c \ - packet-eapol.c \ - packet-echo.c \ - packet-edonkey.c \ - packet-eigrp.c \ - packet-enc.c \ - packet-enip.c \ - packet-esis.c \ - packet-eth.c \ - packet-etherip.c \ - packet-ethertype.c \ - packet-fc.c \ - packet-fcct.c \ - packet-fcdns.c \ - packet-fcels.c \ - packet-fcfcs.c \ - packet-fcfzs.c \ - packet-fcip.c \ - packet-fclctl.c \ - packet-fcp.c \ - packet-fcsb3.c \ - packet-fcsp.c \ - packet-fcswils.c \ - packet-fddi.c \ - packet-fix.c \ - packet-fr.c \ - packet-frame.c \ - packet-ftp.c \ - packet-fw1.c \ - packet-giop.c \ - packet-gmrp.c \ - packet-gnutella.c \ - packet-gprs-ns.c \ - packet-gre.c \ - packet-gsm_a.c \ - packet-gsm_map.c \ - packet-gsm_sms.c \ - packet-gsm_sms_ud.c \ - packet-gssapi.c \ - packet-gtp.c \ - packet-gvrp.c \ - packet-h1.c \ - packet-h225.c \ - packet-h245.c \ - packet-h261.c \ - packet-h263.c \ - packet-h450.c \ - packet-hclnfsd.c \ - packet-hpext.c \ - packet-hsrp.c \ - packet-http.c \ - packet-hyperscsi.c \ - packet-iapp.c \ - packet-iax2.c \ - packet-ib.c \ - packet-icap.c \ - packet-icmpv6.c \ - packet-icp.c \ - packet-icq.c \ - packet-ieee80211.c \ - packet-ieee8023.c \ - packet-igap.c \ - packet-igmp.c \ - packet-igrp.c \ - packet-image-gif.c \ - packet-image-jfif.c \ - packet-imap.c \ - packet-ip.c \ - packet-ipfc.c \ - packet-ipmi.c \ - packet-ipp.c \ - packet-ipsec-udp.c \ - packet-ipsec.c \ - packet-ipv6.c \ - packet-ipx.c \ - packet-ipxwan.c \ - packet-irc.c \ - packet-isakmp.c \ - packet-iscsi.c \ - packet-isdn.c \ - packet-isis-clv.c \ - packet-isis-hello.c \ - packet-isis-lsp.c \ - packet-isis-snp.c \ - packet-isis.c \ - packet-isl.c \ - packet-ismp.c \ - packet-isns.c \ - packet-isup.c \ - packet-iua.c \ - packet-jabber.c \ - packet-kadm5.c \ - packet-kerberos.c \ - packet-klm.c \ - packet-kpasswd.c \ - packet-l2tp.c \ - packet-lapb.c \ - packet-lapbether.c \ - packet-lapd.c \ - packet-laplink.c \ - packet-ldap.c \ - packet-ldp.c \ - packet-llc.c \ - packet-lmi.c \ - packet-lmp.c \ - packet-lpd.c \ - packet-lwapp.c \ - packet-m2pa.c \ - packet-m2tp.c \ - packet-m2ua.c \ - packet-m3ua.c \ - packet-mbtcp.c \ - packet-mdshdr.c \ - packet-mip.c \ - packet-mip6.c \ - packet-mmse.c \ - packet-mount.c \ - packet-mpeg1.c \ - packet-mpls.c \ - packet-mrdisc.c \ - packet-msdp.c \ - packet-msn-messenger.c \ - packet-msnip.c \ - packet-msproxy.c \ - packet-mtp2.c \ - packet-mtp3.c \ - packet-mtp3mg.c \ - packet-multipart.c \ - packet-mysql.c \ - packet-nbipx.c \ - packet-nbns.c \ - packet-ncp.c \ - packet-ncp2222.c \ - packet-ndmp.c \ - packet-ndps.c \ - packet-netbios.c \ - packet-netflow.c \ - packet-nfs.c \ - packet-nfsacl.c \ - packet-nfsauth.c \ - packet-nisplus.c \ - packet-nlm.c \ - packet-nlsp.c \ - packet-nntp.c \ - packet-nt-oui.c \ - packet-nt-sonmp.c \ - packet-nt-tpcp.c \ - packet-ntlmssp.c \ - packet-ntp.c \ - packet-null.c \ - packet-olsr.c \ - packet-osi-options.c \ - packet-osi.c \ - packet-ospf.c \ - packet-pcnfsd.c \ - packet-per.c \ - packet-pflog.c \ - packet-pgm.c \ - packet-pim.c \ - packet-pop.c \ - packet-portmap.c \ - packet-ppp.c \ - packet-pppoe.c \ - packet-pptp.c \ - packet-pres.c \ - packet-prism.c \ - packet-q2931.c \ - packet-q931.c \ - packet-q933.c \ - packet-qllc.c \ - packet-quake.c \ - packet-quake2.c \ - packet-quake3.c \ - packet-quakeworld.c \ - packet-radius.c \ - packet-radiotap.c \ - packet-ranap.c \ - packet-raw.c \ - packet-rip.c \ - packet-ripng.c \ - packet-rlogin.c \ - packet-rmcp.c \ - packet-rmi.c \ - packet-rmp.c \ - packet-rpc.c \ - packet-rpl.c \ - packet-rquota.c \ - packet-rsh.c \ - packet-rstat.c \ - packet-rsvp.c \ - packet-rsync.c \ - packet-rtcp.c \ - packet-rtp-events.c \ - packet-rtp.c \ - packet-rtsp.c \ - packet-rwall.c \ - packet-rx.c \ - packet-sadmind.c \ - packet-sap.c \ - packet-sccp.c \ - packet-sccpmg.c \ - packet-scsi.c \ - packet-sctp.c \ - packet-sdlc.c \ - packet-sdp.c \ - packet-sebek.c \ - packet-ses.c \ - packet-sflow.c \ - packet-sip.c \ - packet-sipfrag.c \ - packet-skinny.c \ - packet-slimp3.c \ - packet-sll.c \ - packet-slowprotocols.c \ - packet-smb-browse.c \ - packet-smb-common.c \ - packet-smb-logon.c \ - packet-smb-mailslot.c \ - packet-smb-pipe.c \ - packet-smb-sidsnooping.c \ - packet-smb.c \ - packet-smpp.c \ - packet-smtp.c \ - packet-sna.c \ - packet-snaeth.c \ - packet-snmp.c \ - packet-socks.c \ - packet-spnego.c \ - packet-spray.c \ - packet-srvloc.c \ - packet-sscop.c \ - packet-ssh.c \ - packet-ssl.c \ - packet-stat-notify.c \ - packet-stat.c \ - packet-stun.c \ - packet-sua.c \ - packet-syslog.c \ - packet-t38.c \ - packet-tacacs.c \ - packet-tcap.c \ - packet-tcp.c \ - packet-tds.c \ - packet-teimanagement.c \ - packet-telnet.c \ - packet-teredo.c \ - packet-text-media.c \ - packet-tftp.c \ - packet-time.c \ - packet-tns.c \ - packet-tpkt.c \ - packet-tr.c \ - packet-trmac.c \ - packet-tsp.c \ - packet-tzsp.c \ - packet-ucp.c \ - packet-udp.c \ - packet-v120.c \ - packet-vines.c \ - packet-vj.c \ - packet-vlan.c \ - packet-vrrp.c \ - packet-vtp.c \ - packet-wap.c \ - packet-wbxml.c \ - packet-wccp.c \ - packet-wcp.c \ - packet-wfleet-hdlc.c \ - packet-who.c \ - packet-wlancap.c \ - packet-wsp.c \ - packet-wtls.c \ - packet-wtp.c \ - packet-x11.c \ - packet-x25.c \ - packet-x29.c \ - packet-xdmcp.c \ - packet-xot.c \ - packet-xyplex.c \ - packet-yhoo.c \ - packet-ymsg.c \ - packet-ypbind.c \ - packet-yppasswd.c \ - packet-ypserv.c \ - packet-ypxfr.c \ - packet-zebra.c - noinst_HEADERS = \ packet-acse.h \ packet-afp.h \ @@ -598,81 +189,12 @@ noinst_HEADERS = \ packet-ypserv.h \ packet-ypxfr.h -DISSECTOR_SUPPORT_SRC = \ - adler32.c \ - adler32.h \ - afn.c \ - afn.h \ - aftypes.h \ - arcnet_pids.h \ - asn1.c \ - asn1.h \ - bridged_pids.h \ - chdlctypes.h \ - column.c \ - column.h \ - crc32.c \ - crc32.h \ - crypt-des.c \ - crypt-des.h \ - crypt-md4.c \ - crypt-md4.h \ - crypt-md5.c \ - crypt-md5.h \ - crypt-rc4.c \ - crypt-rc4.h \ - etypes.h \ - follow.c \ - follow.h \ - format-oid.h \ - g711.c \ - g711.h \ - greproto.h \ - h225-persistentdata.c \ - h225-persistentdata.h \ - in_cksum.c \ - in_cksum.h \ - ip_opts.h \ - ipproto.c \ - ipproto.h \ - lapd_sapi.h \ - llcsaps.h \ - nlpid.h \ - oui.h \ - packet-dcerpc-nt.c \ - ppptypes.h \ - prefs-int.h \ - prefs.c \ - prefs.h \ - ptvcursor.c \ - ptvcursor.h \ - reassemble.c \ - reassemble.h \ - req_resp_hdrs.c \ - req_resp_hdrs.h \ - rpc_defrag.h \ - rtp_pt.h \ - sctpppids.h \ - smb.h \ - t35.c \ - t35.h \ - tap.c \ - tap.h \ - util.c \ - util.h \ - x264_prt_id.h \ - xdlc.c \ - xdlc.h \ - xmlstub.c \ - xmlstub.h - BUILT_SOURCES = \ cvsversion.h \ x11-declarations.h \ x11-register-info.h ETHEREAL_COMMON_SRC = \ - $(DISSECTOR_SUPPORT_SRC) \ $(BUILT_SOURCES) \ capture_stop_conditions.c \ capture_stop_conditions.h \ @@ -722,9 +244,7 @@ TETHEREAL_TAP_SRC = \ tap-wspstat.c ethereal_SOURCES = \ - $(DISSECTOR_SRC) \ $(ETHEREAL_COMMON_SRC) \ - register.c \ capture.c \ capture.h \ file.c \ @@ -756,11 +276,9 @@ EXTRA_ethereal_SOURCES = \ strptime.h tethereal_SOURCES = \ - $(DISSECTOR_SRC) \ $(ETHEREAL_COMMON_SRC) \ $(TETHEREAL_TAP_SRC) \ tethereal-tap-register.c \ - register.c \ tethereal.c text2pcap_SOURCES = text2pcap.c text2pcap-scanner.l @@ -770,9 +288,6 @@ mergecap_SOURCES = mergecap.c cvsversion editcap_SOURCES = editcap.c dftest_SOURCES = \ - $(DISSECTOR_SRC) \ - $(DISSECTOR_SUPPORT_SRC) \ $(BUILT_SOURCES) \ - register.c \ dftest.c Index: Makefile.nmake =================================================================== RCS file: /usr/local/cvsroot/ethereal/Makefile.nmake,v retrieving revision 1.402 diff -p -u -r1.402 Makefile.nmake --- Makefile.nmake 6 Feb 2004 18:47:43 -0000 1.402 +++ Makefile.nmake 9 Feb 2004 09:43:32 -0000 @@ -21,42 +21,13 @@ CFLAGS=-DHAVE_CONFIG_H $(LOCAL_CFLAGS) $ CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL .c.obj:: - $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $< + $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $< include Makefile.common -DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj) - TETHEREAL_TAP_OBJECTS = $(TETHEREAL_TAP_SRC:.c=.obj) -DISSECTOR_SUPPORT_OBJECTS = \ - adler32.obj \ - afn.obj \ - asn1.obj \ - column.obj \ - crc32.obj \ - crypt-des.obj \ - crypt-md4.obj \ - crypt-md5.obj \ - crypt-rc4.obj \ - follow.obj \ - g711.obj \ - h225-persistentdata.obj \ - in_cksum.obj \ - ipproto.obj \ - packet-dcerpc-nt.obj \ - prefs.obj \ - ptvcursor.obj \ - reassemble.obj \ - req_resp_hdrs.obj \ - t35.obj \ - tap.obj \ - util.obj \ - xdlc.obj \ - xmlstub.obj - ETHEREAL_COMMON_OBJECTS = \ - $(DISSECTOR_SUPPORT_OBJECTS) \ capture_stop_conditions.obj \ capture-wpcap.obj \ cfile.obj \ @@ -73,7 +44,6 @@ ETHEREAL_COMMON_OBJECTS = \ version_info.obj ethereal_OBJECTS = \ - $(DISSECTOR_OBJECTS) \ $(ETHEREAL_COMMON_OBJECTS) \ capture.obj \ file.obj \ @@ -82,15 +52,12 @@ ethereal_OBJECTS = \ summary.obj tethereal_OBJECTS = \ - $(DISSECTOR_OBJECTS) \ $(ETHEREAL_COMMON_OBJECTS) \ $(TETHEREAL_TAP_OBJECTS) \ tethereal-tap-register.obj \ tethereal.obj dftest_OBJECTS = \ - $(DISSECTOR_OBJECTS) \ - $(DISSECTOR_SUPPORT_OBJECTS) \ dftest.obj randpkt_OBJECTS = \ Index: TODO =================================================================== RCS file: /usr/local/cvsroot/ethereal/TODO,v retrieving revision 1.12 diff -p -u -r1.12 TODO --- TODO 28 May 2003 22:58:46 -0000 1.12 +++ TODO 9 Feb 2004 09:43:32 -0000 @@ -30,7 +30,7 @@ all, in "libpcap"-style capture filters: etc.) *) I just discovered that sshd sets the SSH_CLIENT variable to source IP, -sort port, and destination port. That coupled with a destination IP +source port, and destination port. That coupled with a destination IP would give us enough information to carry out remote protocol capturing, tcpdump over ssh: Index: make-reg-dotc =================================================================== RCS file: make-reg-dotc diff -N make-reg-dotc --- make-reg-dotc 11 Jul 2001 05:41:38 -0000 1.7 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,75 +0,0 @@ -#! /bin/sh - -# -# The first argument is the output filename. -# - -outfile="$1" -shift - -# -# The second argument is the directory in which the source files live. -# -srcdir="$1" -shift - -# -# All subsequent arguments are the files to scan. -# -rm -f ${outfile}-tmp -echo '/* Do not modify this file. */' >${outfile}-tmp -echo '/* It is created automatically by the Makefile. */'>>${outfile}-tmp -echo '#include "register.h"' >>${outfile}-tmp - -# -# Build code to call all the protocol registration routines. -# -echo 'void register_all_protocols(void) {' >>${outfile}-tmp -for f in "$@" -do - if [ -f $f ] - then - srcfile=$f - else - srcfile=$srcdir/$f - fi - grep '^proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' -done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp -for f in "$@" -do - if [ -f $f ] - then - srcfile=$f - else - srcfile=$srcdir/$f - fi - grep '^void proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' -done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp -echo '}' >>${outfile}-tmp - -# -# Build code to call all the protocol handoff registration routines. -# -echo 'void register_all_protocol_handoffs(void) {' >>${outfile}-tmp -for f in "$@" -do - if [ -f $f ] - then - srcfile=$f - else - srcfile=$srcdir/$f - fi - grep '^proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' -done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp -for f in "$@" -do - if [ -f $f ] - then - srcfile=$f - else - srcfile=$srcdir/$f - fi - grep '^void proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' -done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp -echo '}' >>${outfile}-tmp -mv ${outfile}-tmp ${outfile} Index: make-reg-dotc.py =================================================================== RCS file: make-reg-dotc.py diff -N make-reg-dotc.py --- make-reg-dotc.py 21 Jul 2003 07:05:44 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,118 +0,0 @@ -#!/usr/bin/python -# -# Looks for registration routines in the protocol dissectors, -# and assembles C code to call all the routines. -# -# This is a Python version of the make-reg-dotc shell script. -# Running the shell script on Win32 is very very slow because of -# all the process-launching that goes on --- multiple greps and -# seds for each input file. I wrote this python version so that -# less processes would have to be started. -# -# $Id: make-reg-dotc.py,v 1.4 2003/07/21 07:05:44 girlich Exp $ - -import os -import sys -import re - -tmp_filename = "register.c-tmp" -final_filename = "register.c" - -# -# The first argument is the directory in which the source files live. -# -srcdir = sys.argv[1] - -# -# All subsequent arguments are the files to scan. -# -files = sys.argv[2:] - -reg_code = open(tmp_filename, "w") - -reg_code.write("/* Do not modify this file. */\n") -reg_code.write("/* It is created automatically by the Makefile. */\n") -reg_code.write('#include "register.h"\n') - -# Create the proper list of filenames -filenames = [] -for file in files: - if os.path.isfile(file): - filenames.append(file) - else: - filenames.append("%s/%s" % (srcdir, file)) - - -# Look through all files, applying the regex to each line. -# If the pattern matches, save the "symbol" section to the -# appropriate array. -proto_reg = [] -handoff_reg = [] - -# For those that don't know Python, r"" indicates a raw string, -# devoid of Python escapes. -proto_regex0 = r"^(?P<symbol>proto_register_[_A-Za-z0-9]+)\s*\([^;]+$" -proto_regex1 = r"void\s+(?P<symbol>proto_register_[_A-Za-z0-9]+)\s*\([^;]+$" - -handoff_regex0 = r"^(?P<symbol>proto_reg_handoff_[_A-Za-z0-9]+)\s*\([^;]+$" -handoff_regex1 = r"void\s+(?P<symbol>proto_reg_handoff_[_A-Za-z0-9]+)\s*\([^;]+$" - -# This table drives the pattern-matching and symbol-harvesting -patterns = [ - ( proto_reg, re.compile(proto_regex0) ), - ( proto_reg, re.compile(proto_regex1) ), - ( handoff_reg, re.compile(handoff_regex0) ), - ( handoff_reg, re.compile(handoff_regex1) ), - ] - -# Grep -for filename in filenames: - file = open(filename) -# print "Searching %s" % (filename) - for line in file.readlines(): - for action in patterns: - regex = action[1] - match = regex.search(line) - if match: - symbol = match.group("symbol") - list = action[0] - list.append(symbol) - file.close() - -# Sort the lists to make them pretty -proto_reg.sort() -handoff_reg.sort() - -# Make register_all_protocols() -reg_code.write("void register_all_protocols(void) {\n") - -for symbol in proto_reg: - line = " {extern void %s (void); %s ();}\n" % (symbol, symbol) - reg_code.write(line) - -reg_code.write("}\n") - - -# Make register_all_protocol_handoffs() -reg_code.write("void register_all_protocol_handoffs(void) {\n") - -for symbol in handoff_reg: - line = " {extern void %s (void); %s ();}\n" % (symbol, symbol) - reg_code.write(line) - -reg_code.write("}\n") - -# Close the file -reg_code.close() - -# Remove the old final_file if it exists. -try: - os.stat(final_filename) - os.remove(final_filename) -except OSError: - pass - -# Move from tmp file to final file -os.rename(tmp_filename, final_filename) - - Index: epan/.cvsignore =================================================================== RCS file: /usr/local/cvsroot/ethereal/epan/.cvsignore,v retrieving revision 1.8 diff -p -u -r1.8 .cvsignore --- epan/.cvsignore 7 Feb 2004 04:35:49 -0000 1.8 +++ epan/.cvsignore 9 Feb 2004 09:43:38 -0000 @@ -18,6 +18,7 @@ dfilter-grammar.c dfilter-grammar.h dfilter-scanner.c libtool +register.c stamp-h stamp-h.in stamp-h1 Index: epan/Makefile.am =================================================================== RCS file: /usr/local/cvsroot/ethereal/epan/Makefile.am,v retrieving revision 1.32 diff -p -u -r1.32 Makefile.am --- epan/Makefile.am 6 Dec 2003 06:22:10 -0000 1.32 +++ epan/Makefile.am 9 Feb 2004 09:43:41 -0000 @@ -29,11 +29,20 @@ SUBDIRS = ftypes dfilter ACLOCAL_AMFLAGS = `../aclocal-flags` -noinst_LIBRARIES = libethereal.a +include Makefile.common INCLUDES = -I$(srcdir)/.. -libethereal_a_SOURCES = \ +lib_LTLIBRARIES = libethereal.la + +# +# Add the object files for missing routines, if any. +# +libethereal_la_LIBADD = ftypes/libftypes.la dfilter/libdfilter.la +libethereal_la_DEPENDENCIES = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@ +libethereal_la_LDFLAGS = -version-info 0:1:0 + +libethereal_la_SOURCES = \ atalk-utils.c \ atalk-utils.h \ bitswap.c \ @@ -47,7 +56,7 @@ libethereal_a_SOURCES = \ column-utils.h \ epan.c \ epan.h \ - epan_dissect.h \ + epan_dissect.h \ except.c \ except.h \ exceptions.h \ @@ -85,10 +94,12 @@ libethereal_a_SOURCES = \ tvbuff.c \ tvbuff.h \ value_string.c \ - value_string.h + value_string.h \ + $(DISSECTOR_SRC) \ + $(DISSECTOR_SUPPORT_SRC) -EXTRA_libethereal_a_SOURCES = \ - inet_aton.c \ +EXTRA_libethereal_la_SOURCES = \ + inet_aton.c \ inet_pton.c \ inet_ntop.c \ inet_aton.h \ @@ -97,18 +108,68 @@ EXTRA_libethereal_a_SOURCES = \ EXTRA_DIST = \ config.h.win32 \ Makefile.nmake \ + make-reg-dotc \ + make-reg-dotc.py \ tvbtest.c CLEANFILES = \ libethereal.a \ *~ -# -# Add the object files for missing routines, if any. -# -libethereal_a_LIBADD = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@ -libethereal_a_DEPENDENCIES = @INET_ATON_O@ @INET_PTON_O@ @INET_NTOP_O@ - +MAINTAINERCLEANFILES = \ + register.c tvbtest: tvbtest.o tvbuff.o except.o strutil.o $(LINK) -o tvbtest tvbtest.o tvbuff.o except.o strutil.o `glib-config --libs` + +# Build "register.c", which contains a function "register_all_protocols()" +# that calls the register routines for all protocols. +# +# We do this by grepping through sources. If that turns out to be too slow, +# maybe we could just require every .o file to have an register routine +# of a given name (packet-aarp.o -> proto_register_aarp, etc.). +# +# Formatting conventions: The name of the proto_register_* routines must +# start in column zero, or must be preceded only by "void " starting in +# column zero, and must not be inside #if. +# +# We assume that all dissector routines are in "packet-XXX.c" files. +# +# For some unknown reason, having a big "for" loop in the Makefile +# to scan all the "packet-XXX.c" files doesn't work with some "make"s; +# they seem to pass only the first few names in the list to the shell, +# for some reason. +# +# Therefore, we have a script to generate the "register.c" file. +# +# The first argument is the name of the file to write. +# The second argument is the directory in which the source files live. +# All subsequent arguments are the files to scan. +# +register.c: $(plugin_src) $(DISSECTOR_SRC) $(top_srcdir)/make-reg-dotc + @if test -n $(PYTHON); then \ + echo Making register.c with python ; \ + $(PYTHON) $(top_srcdir)/make-reg-dotc.py $(srcdir) $(DISSECTOR_SRC) ; \ + else \ + echo Making register.c with shell script ; \ + $(top_srcdir)/make-reg-dotc register.c $(srcdir) \ + $(plugin_src) $(DISSECTOR_SRC) ; \ + fi + +# Currently register.c can be included in the distribution because +# we always build all protocol dissectors. We used to have to check +# whether or not to build the snmp dissector. If we again need to +# variably build something, making register.c non-portable, uncomment +# the dist-hook line below. +# +# Oh, yuk. We don't want to include "register.c" in the distribution, as +# its contents depend on the configuration, and therefore we want it +# to be built when the first "make" is done; however, Automake insists +# on putting *all* source into the distribution. +# +# We work around this by having a "dist-hook" rule that deletes +# "register.c", so that "dist" won't pick it up. +# +#dist-hook: +# @rm -f $(distdir)/register.c + Index: epan/Makefile.common =================================================================== RCS file: epan/Makefile.common diff -N epan/Makefile.common --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ epan/Makefile.common 9 Feb 2004 09:43:41 -0000 @@ -0,0 +1,504 @@ +# Makefile.common +# Contains the stuff from Makefile.am and Makefile.nmake that is +# a) common to both files and +# b) portable between both files +# +# $Id: Makefile.common,v 1.10 2004/02/03 18:57:26 guy Exp $ +# +# Ethereal - Network traffic analyzer +# By Gerald Combs <gerald@xxxxxxxxxxxx> +# 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. + + +DISSECTOR_SRC = \ + ../packet-aarp.c \ + ../packet-acap.c \ + ../packet-acse.c \ + ../packet-afp.c \ + ../packet-afs.c \ + ../packet-aim.c \ + ../packet-ajp13.c \ + ../packet-alcap.c \ + ../packet-ans.c \ + ../packet-ansi_637.c \ + ../packet-ansi_683.c \ + ../packet-ansi_a.c \ + ../packet-ansi_map.c \ + ../packet-aodv.c \ + ../packet-arcnet.c \ + ../packet-arp.c \ + ../packet-asap.c \ + ../packet-ascend.c \ + ../packet-asf.c \ + ../packet-atalk.c \ + ../packet-atm.c \ + ../packet-auto_rp.c \ + ../packet-bacapp.c \ + ../packet-bacnet.c \ + ../packet-beep.c \ + ../packet-bfd.c \ + ../packet-bgp.c \ + ../packet-bofl.c \ + ../packet-bootp.c \ + ../packet-bootparams.c \ + ../packet-bpdu.c \ + ../packet-brdwlk.c \ + ../packet-bssap.c \ + ../packet-bssgp.c \ + ../packet-bvlc.c \ + ../packet-ccsds.c \ + ../packet-cdp.c \ + ../packet-cgmp.c \ + ../packet-chdlc.c \ + ../packet-cisco-oui.c \ + ../packet-clearcase.c \ + ../packet-clip.c \ + ../packet-clnp.c \ + ../packet-cops.c \ + ../packet-cosine.c \ + ../packet-cpfi.c \ + ../packet-cpha.c \ + ../packet-cups.c \ + ../packet-data.c \ + ../packet-dccp.c \ + ../packet-dcerpc-afs4int.c \ + ../packet-dcerpc-atsvc.c \ + ../packet-dcerpc-bossvr.c \ + ../packet-dcerpc-browser.c \ + ../packet-dcerpc-budb.c \ + ../packet-dcerpc-butc.c \ + ../packet-dcerpc-cds_clerkserver.c \ + ../packet-dcerpc-cds_solicit.c \ + ../packet-dcerpc-conv.c \ + ../packet-dcerpc-cprpc_server.c \ + ../packet-dcerpc-dce122.c \ + ../packet-dcerpc-dfs.c \ + ../packet-dcerpc-dnsserver.c \ + ../packet-dcerpc-drsuapi.c \ + ../packet-dcerpc-dtsprovider.c \ + ../packet-dcerpc-dtsstime_req.c \ + ../packet-dcerpc-epm.c \ + ../packet-dcerpc-epm4.c \ + ../packet-dcerpc-fldb.c \ + ../packet-dcerpc-ftserver.c \ + ../packet-dcerpc-icl_rpc.c \ + ../packet-dcerpc-initshutdown.c \ + ../packet-dcerpc-krb5rpc.c \ + ../packet-dcerpc-lsa-ds.c \ + ../packet-dcerpc-lsa.c \ + ../packet-dcerpc-mapi.c \ + ../packet-dcerpc-messenger.c \ + ../packet-dcerpc-mgmt.c \ + ../packet-dcerpc-ndr.c \ + ../packet-dcerpc-netlogon.c \ + ../packet-dcerpc-nspi.c \ + ../packet-dcerpc-oxid.c \ + ../packet-dcerpc-reg.c \ + ../packet-dcerpc-remact.c \ + ../packet-dcerpc-rep_proc.c \ + ../packet-dcerpc-roverride.c \ + ../packet-dcerpc-rpriv.c \ + ../packet-dcerpc-rs_acct.c \ + ../packet-dcerpc-rs_attr.c \ + ../packet-dcerpc-rs_bind.c \ + ../packet-dcerpc-rs_misc.c \ + ../packet-dcerpc-rs_pgo.c \ + ../packet-dcerpc-rs_plcy.c \ + ../packet-dcerpc-rs_prop_acct.c \ + ../packet-dcerpc-rs_repadm.c \ + ../packet-dcerpc-rs_replist.c \ + ../packet-dcerpc-rs_unix.c \ + ../packet-dcerpc-rsec_login.c \ + ../packet-dcerpc-samr.c \ + ../packet-dcerpc-secidmap.c \ + ../packet-dcerpc-spoolss.c \ + ../packet-dcerpc-srvsvc.c \ + ../packet-dcerpc-svcctl.c \ + ../packet-dcerpc-tapi.c \ + ../packet-dcerpc-tkn4int.c \ + ../packet-dcerpc-trksvr.c \ + ../packet-dcerpc-ubikdisk.c \ + ../packet-dcerpc-ubikvote.c \ + ../packet-dcerpc-update.c \ + ../packet-dcerpc-wkssvc.c \ + ../packet-dcerpc.c \ + ../packet-ddtp.c \ + ../packet-dec-bpdu.c \ + ../packet-dhcpv6.c \ + ../packet-diameter.c \ + ../packet-diffserv-mpls-common.c \ + ../packet-distcc.c \ + ../packet-dlsw.c \ + ../packet-dns.c \ + ../packet-dsi.c \ + ../packet-dvmrp.c \ + ../packet-eap.c \ + ../packet-eapol.c \ + ../packet-echo.c \ + ../packet-edonkey.c \ + ../packet-eigrp.c \ + ../packet-enc.c \ + ../packet-enip.c \ + ../packet-esis.c \ + ../packet-eth.c \ + ../packet-etherip.c \ + ../packet-ethertype.c \ + ../packet-fc.c \ + ../packet-fcct.c \ + ../packet-fcdns.c \ + ../packet-fcels.c \ + ../packet-fcfcs.c \ + ../packet-fcfzs.c \ + ../packet-fcip.c \ + ../packet-fclctl.c \ + ../packet-fcp.c \ + ../packet-fcsb3.c \ + ../packet-fcsp.c \ + ../packet-fcswils.c \ + ../packet-fddi.c \ + ../packet-fix.c \ + ../packet-fr.c \ + ../packet-frame.c \ + ../packet-ftp.c \ + ../packet-fw1.c \ + ../packet-giop.c \ + ../packet-gmrp.c \ + ../packet-gnutella.c \ + ../packet-gprs-ns.c \ + ../packet-gre.c \ + ../packet-gsm_a.c \ + ../packet-gsm_map.c \ + ../packet-gsm_sms.c \ + ../packet-gsm_sms_ud.c \ + ../packet-gssapi.c \ + ../packet-gtp.c \ + ../packet-gvrp.c \ + ../packet-h1.c \ + ../packet-h225.c \ + ../packet-h245.c \ + ../packet-h261.c \ + ../packet-h263.c \ + ../packet-h450.c \ + ../packet-hclnfsd.c \ + ../packet-hpext.c \ + ../packet-hsrp.c \ + ../packet-http.c \ + ../packet-hyperscsi.c \ + ../packet-iapp.c \ + ../packet-iax2.c \ + ../packet-ib.c \ + ../packet-icap.c \ + ../packet-icmpv6.c \ + ../packet-icp.c \ + ../packet-icq.c \ + ../packet-ieee80211.c \ + ../packet-ieee8023.c \ + ../packet-igap.c \ + ../packet-igmp.c \ + ../packet-igrp.c \ + ../packet-image-gif.c \ + ../packet-image-jfif.c \ + ../packet-imap.c \ + ../packet-ip.c \ + ../packet-ipfc.c \ + ../packet-ipmi.c \ + ../packet-ipp.c \ + ../packet-ipsec-udp.c \ + ../packet-ipsec.c \ + ../packet-ipv6.c \ + ../packet-ipx.c \ + ../packet-ipxwan.c \ + ../packet-irc.c \ + ../packet-isakmp.c \ + ../packet-iscsi.c \ + ../packet-isdn.c \ + ../packet-isis-clv.c \ + ../packet-isis-hello.c \ + ../packet-isis-lsp.c \ + ../packet-isis-snp.c \ + ../packet-isis.c \ + ../packet-isl.c \ + ../packet-ismp.c \ + ../packet-isns.c \ + ../packet-isup.c \ + ../packet-iua.c \ + ../packet-jabber.c \ + ../packet-kadm5.c \ + ../packet-kerberos.c \ + ../packet-klm.c \ + ../packet-kpasswd.c \ + ../packet-l2tp.c \ + ../packet-lapb.c \ + ../packet-lapbether.c \ + ../packet-lapd.c \ + ../packet-laplink.c \ + ../packet-ldap.c \ + ../packet-ldp.c \ + ../packet-llc.c \ + ../packet-lmi.c \ + ../packet-lmp.c \ + ../packet-lpd.c \ + ../packet-lwapp.c \ + ../packet-m2pa.c \ + ../packet-m2tp.c \ + ../packet-m2ua.c \ + ../packet-m3ua.c \ + ../packet-mbtcp.c \ + ../packet-mdshdr.c \ + ../packet-mip.c \ + ../packet-mip6.c \ + ../packet-mmse.c \ + ../packet-mount.c \ + ../packet-mpeg1.c \ + ../packet-mpls.c \ + ../packet-mrdisc.c \ + ../packet-msdp.c \ + ../packet-msn-messenger.c \ + ../packet-msnip.c \ + ../packet-msproxy.c \ + ../packet-mtp2.c \ + ../packet-mtp3.c \ + ../packet-mtp3mg.c \ + ../packet-multipart.c \ + ../packet-mysql.c \ + ../packet-nbipx.c \ + ../packet-nbns.c \ + ../packet-ncp.c \ + ../packet-ncp2222.c \ + ../packet-ndmp.c \ + ../packet-ndps.c \ + ../packet-netbios.c \ + ../packet-netflow.c \ + ../packet-nfs.c \ + ../packet-nfsacl.c \ + ../packet-nfsauth.c \ + ../packet-nisplus.c \ + ../packet-nlm.c \ + ../packet-nlsp.c \ + ../packet-nntp.c \ + ../packet-nt-oui.c \ + ../packet-nt-sonmp.c \ + ../packet-nt-tpcp.c \ + ../packet-ntlmssp.c \ + ../packet-ntp.c \ + ../packet-null.c \ + ../packet-olsr.c \ + ../packet-osi-options.c \ + ../packet-osi.c \ + ../packet-ospf.c \ + ../packet-pcnfsd.c \ + ../packet-per.c \ + ../packet-pflog.c \ + ../packet-pgm.c \ + ../packet-pim.c \ + ../packet-pop.c \ + ../packet-portmap.c \ + ../packet-ppp.c \ + ../packet-pppoe.c \ + ../packet-pptp.c \ + ../packet-pres.c \ + ../packet-prism.c \ + ../packet-q2931.c \ + ../packet-q931.c \ + ../packet-q933.c \ + ../packet-qllc.c \ + ../packet-quake.c \ + ../packet-quake2.c \ + ../packet-quake3.c \ + ../packet-quakeworld.c \ + ../packet-radius.c \ + ../packet-radiotap.c \ + ../packet-ranap.c \ + ../packet-raw.c \ + ../packet-rip.c \ + ../packet-ripng.c \ + ../packet-rlogin.c \ + ../packet-rmcp.c \ + ../packet-rmi.c \ + ../packet-rmp.c \ + ../packet-rpc.c \ + ../packet-rpl.c \ + ../packet-rquota.c \ + ../packet-rsh.c \ + ../packet-rstat.c \ + ../packet-rsvp.c \ + ../packet-rsync.c \ + ../packet-rtcp.c \ + ../packet-rtp-events.c \ + ../packet-rtp.c \ + ../packet-rtsp.c \ + ../packet-rwall.c \ + ../packet-rx.c \ + ../packet-sadmind.c \ + ../packet-sap.c \ + ../packet-sccp.c \ + ../packet-sccpmg.c \ + ../packet-scsi.c \ + ../packet-sctp.c \ + ../packet-sdlc.c \ + ../packet-sdp.c \ + ../packet-sebek.c \ + ../packet-ses.c \ + ../packet-sflow.c \ + ../packet-sip.c \ + ../packet-sipfrag.c \ + ../packet-skinny.c \ + ../packet-slimp3.c \ + ../packet-sll.c \ + ../packet-slowprotocols.c \ + ../packet-smb-browse.c \ + ../packet-smb-common.c \ + ../packet-smb-logon.c \ + ../packet-smb-mailslot.c \ + ../packet-smb-pipe.c \ + ../packet-smb-sidsnooping.c \ + ../packet-smb.c \ + ../packet-smpp.c \ + ../packet-smtp.c \ + ../packet-sna.c \ + ../packet-snaeth.c \ + ../packet-snmp.c \ + ../packet-socks.c \ + ../packet-spnego.c \ + ../packet-spray.c \ + ../packet-srvloc.c \ + ../packet-sscop.c \ + ../packet-ssh.c \ + ../packet-ssl.c \ + ../packet-stat-notify.c \ + ../packet-stat.c \ + ../packet-stun.c \ + ../packet-sua.c \ + ../packet-syslog.c \ + ../packet-t38.c \ + ../packet-tacacs.c \ + ../packet-tcap.c \ + ../packet-tcp.c \ + ../packet-tds.c \ + ../packet-teimanagement.c \ + ../packet-telnet.c \ + ../packet-teredo.c \ + ../packet-text-media.c \ + ../packet-tftp.c \ + ../packet-time.c \ + ../packet-tns.c \ + ../packet-tpkt.c \ + ../packet-tr.c \ + ../packet-trmac.c \ + ../packet-tsp.c \ + ../packet-tzsp.c \ + ../packet-ucp.c \ + ../packet-udp.c \ + ../packet-v120.c \ + ../packet-vines.c \ + ../packet-vj.c \ + ../packet-vlan.c \ + ../packet-vrrp.c \ + ../packet-vtp.c \ + ../packet-wap.c \ + ../packet-wbxml.c \ + ../packet-wccp.c \ + ../packet-wcp.c \ + ../packet-wfleet-hdlc.c \ + ../packet-who.c \ + ../packet-wlancap.c \ + ../packet-wsp.c \ + ../packet-wtls.c \ + ../packet-wtp.c \ + ../packet-x11.c \ + ../packet-x25.c \ + ../packet-x29.c \ + ../packet-xdmcp.c \ + ../packet-xot.c \ + ../packet-xyplex.c \ + ../packet-yhoo.c \ + ../packet-ymsg.c \ + ../packet-ypbind.c \ + ../packet-yppasswd.c \ + ../packet-ypserv.c \ + ../packet-ypxfr.c \ + ../packet-zebra.c + +DISSECTOR_SUPPORT_SRC = \ + register.c \ + ../adler32.c \ + ../adler32.h \ + ../afn.c \ + ../afn.h \ + ../aftypes.h \ + ../arcnet_pids.h \ + ../asn1.c \ + ../asn1.h \ + ../bridged_pids.h \ + ../chdlctypes.h \ + ../column.c \ + ../column.h \ + ../crc32.c \ + ../crc32.h \ + ../crypt-des.c \ + ../crypt-des.h \ + ../crypt-md4.c \ + ../crypt-md4.h \ + ../crypt-md5.c \ + ../crypt-md5.h \ + ../crypt-rc4.c \ + ../crypt-rc4.h \ + ../etypes.h \ + ../follow.c \ + ../follow.h \ + ../format-oid.h \ + ../g711.c \ + ../g711.h \ + ../greproto.h \ + ../h225-persistentdata.c \ + ../h225-persistentdata.h \ + ../in_cksum.c \ + ../in_cksum.h \ + ../ip_opts.h \ + ../ipproto.c \ + ../ipproto.h \ + ../lapd_sapi.h \ + ../llcsaps.h \ + ../nlpid.h \ + ../oui.h \ + ../packet-dcerpc-nt.c \ + ../ppptypes.h \ + ../prefs-int.h \ + ../prefs.c \ + ../prefs.h \ + ../ptvcursor.c \ + ../ptvcursor.h \ + ../reassemble.c \ + ../reassemble.h \ + ../req_resp_hdrs.c \ + ../req_resp_hdrs.h \ + ../rpc_defrag.h \ + ../rtp_pt.h \ + ../sctpppids.h \ + ../smb.h \ + ../t35.c \ + ../t35.h \ + ../tap.c \ + ../tap.h \ + ../util.c \ + ../util.h \ + ../x264_prt_id.h \ + ../xdlc.c \ + ../xdlc.h \ + ../xmlstub.c \ + ../xmlstub.h + Index: epan/Makefile.nmake =================================================================== RCS file: /usr/local/cvsroot/ethereal/epan/Makefile.nmake,v retrieving revision 1.33 diff -p -u -r1.33 Makefile.nmake --- epan/Makefile.nmake 22 Jan 2004 19:27:58 -0000 1.33 +++ epan/Makefile.nmake 9 Feb 2004 09:43:41 -0000 @@ -15,11 +15,43 @@ CVARSDLL=-DWIN32 -DNULL=0 -D_MT -D_DLL # For use when making ethereal.dll libethereal_LIBS = \ - wsock32.lib user32.lib \ - $(GLIB_LIBS) + wsock32.lib user32.lib \ + $(GLIB_LIBS) \ + $(DISSECTOR_OBJECTS) \ + $(DISSECTOR_SUPPORT_OBJECTS) .c.obj:: - $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $< + $(CC) $(CVARSDLL) $(CFLAGS) -Fd.\ -c $< + +include Makefile.common + +DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj) + +DISSECTOR_SUPPORT_OBJECTS = \ + adler32.obj \ + afn.obj \ + asn1.obj \ + column.obj \ + crc32.obj \ + crypt-des.obj \ + crypt-md4.obj \ + crypt-md5.obj \ + crypt-rc4.obj \ + follow.obj \ + g711.obj \ + h225-persistentdata.obj \ + in_cksum.obj \ + ipproto.obj \ + packet-dcerpc-nt.obj \ + prefs.obj \ + ptvcursor.obj \ + reassemble.obj \ + req_resp_hdrs.obj \ + t35.obj \ + tap.obj \ + util.obj \ + xdlc.obj \ + xmlstub.obj OBJECTS=atalk-utils.obj \ bitswap.obj \ Index: epan/make-reg-dotc =================================================================== RCS file: epan/make-reg-dotc diff -N epan/make-reg-dotc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ epan/make-reg-dotc 9 Feb 2004 09:43:41 -0000 @@ -0,0 +1,75 @@ +#! /bin/sh + +# +# The first argument is the output filename. +# + +outfile="$1" +shift + +# +# The second argument is the directory in which the source files live. +# +srcdir="$1" +shift + +# +# All subsequent arguments are the files to scan. +# +rm -f ${outfile}-tmp +echo '/* Do not modify this file. */' >${outfile}-tmp +echo '/* It is created automatically by the Makefile. */'>>${outfile}-tmp +echo '#include "register.h"' >>${outfile}-tmp + +# +# Build code to call all the protocol registration routines. +# +echo 'void register_all_protocols(void) {' >>${outfile}-tmp +for f in "$@" +do + if [ -f $f ] + then + srcfile=$f + else + srcfile=$srcdir/$f + fi + grep '^proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' +done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp +for f in "$@" +do + if [ -f $f ] + then + srcfile=$f + else + srcfile=$srcdir/$f + fi + grep '^void proto_register_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' +done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp +echo '}' >>${outfile}-tmp + +# +# Build code to call all the protocol handoff registration routines. +# +echo 'void register_all_protocol_handoffs(void) {' >>${outfile}-tmp +for f in "$@" +do + if [ -f $f ] + then + srcfile=$f + else + srcfile=$srcdir/$f + fi + grep '^proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' +done | sed -e 's/^.*://' -e 's/^\([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp +for f in "$@" +do + if [ -f $f ] + then + srcfile=$f + else + srcfile=$srcdir/$f + fi + grep '^void proto_reg_handoff_[a-z_0-9A-Z]* *(' $srcfile 2>/dev/null | grep -v ';' +done | sed -e 's/^.*://' -e 's/^void \([a-z_0-9A-Z]*\).*/ {extern void \1 (void); \1 ();}/' >>${outfile}-tmp +echo '}' >>${outfile}-tmp +mv ${outfile}-tmp ${outfile} Index: epan/make-reg-dotc.py =================================================================== RCS file: epan/make-reg-dotc.py diff -N epan/make-reg-dotc.py --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ epan/make-reg-dotc.py 9 Feb 2004 09:43:41 -0000 @@ -0,0 +1,118 @@ +#!/usr/bin/python +# +# Looks for registration routines in the protocol dissectors, +# and assembles C code to call all the routines. +# +# This is a Python version of the make-reg-dotc shell script. +# Running the shell script on Win32 is very very slow because of +# all the process-launching that goes on --- multiple greps and +# seds for each input file. I wrote this python version so that +# less processes would have to be started. +# +# $Id: make-reg-dotc.py,v 1.4 2003/07/21 07:05:44 girlich Exp $ + +import os +import sys +import re + +tmp_filename = "register.c-tmp" +final_filename = "register.c" + +# +# The first argument is the directory in which the source files live. +# +srcdir = sys.argv[1] + +# +# All subsequent arguments are the files to scan. +# +files = sys.argv[2:] + +reg_code = open(tmp_filename, "w") + +reg_code.write("/* Do not modify this file. */\n") +reg_code.write("/* It is created automatically by the Makefile. */\n") +reg_code.write('#include "register.h"\n') + +# Create the proper list of filenames +filenames = [] +for file in files: + if os.path.isfile(file): + filenames.append(file) + else: + filenames.append("%s/%s" % (srcdir, file)) + + +# Look through all files, applying the regex to each line. +# If the pattern matches, save the "symbol" section to the +# appropriate array. +proto_reg = [] +handoff_reg = [] + +# For those that don't know Python, r"" indicates a raw string, +# devoid of Python escapes. +proto_regex0 = r"^(?P<symbol>proto_register_[_A-Za-z0-9]+)\s*\([^;]+$" +proto_regex1 = r"void\s+(?P<symbol>proto_register_[_A-Za-z0-9]+)\s*\([^;]+$" + +handoff_regex0 = r"^(?P<symbol>proto_reg_handoff_[_A-Za-z0-9]+)\s*\([^;]+$" +handoff_regex1 = r"void\s+(?P<symbol>proto_reg_handoff_[_A-Za-z0-9]+)\s*\([^;]+$" + +# This table drives the pattern-matching and symbol-harvesting +patterns = [ + ( proto_reg, re.compile(proto_regex0) ), + ( proto_reg, re.compile(proto_regex1) ), + ( handoff_reg, re.compile(handoff_regex0) ), + ( handoff_reg, re.compile(handoff_regex1) ), + ] + +# Grep +for filename in filenames: + file = open(filename) +# print "Searching %s" % (filename) + for line in file.readlines(): + for action in patterns: + regex = action[1] + match = regex.search(line) + if match: + symbol = match.group("symbol") + list = action[0] + list.append(symbol) + file.close() + +# Sort the lists to make them pretty +proto_reg.sort() +handoff_reg.sort() + +# Make register_all_protocols() +reg_code.write("void register_all_protocols(void) {\n") + +for symbol in proto_reg: + line = " {extern void %s (void); %s ();}\n" % (symbol, symbol) + reg_code.write(line) + +reg_code.write("}\n") + + +# Make register_all_protocol_handoffs() +reg_code.write("void register_all_protocol_handoffs(void) {\n") + +for symbol in handoff_reg: + line = " {extern void %s (void); %s ();}\n" % (symbol, symbol) + reg_code.write(line) + +reg_code.write("}\n") + +# Close the file +reg_code.close() + +# Remove the old final_file if it exists. +try: + os.stat(final_filename) + os.remove(final_filename) +except OSError: + pass + +# Move from tmp file to final file +os.rename(tmp_filename, final_filename) + + Index: epan/dfilter/Makefile.am =================================================================== RCS file: /usr/local/cvsroot/ethereal/epan/dfilter/Makefile.am,v retrieving revision 1.9 diff -p -u -r1.9 Makefile.am --- epan/dfilter/Makefile.am 5 Mar 2001 22:53:39 -0000 1.9 +++ epan/dfilter/Makefile.am 9 Feb 2004 09:43:41 -0000 @@ -25,7 +25,8 @@ # shared library, this will be linked into libethereal. While libethereal # is an archive library, any executable linking against libethereal will # also need to link against libftypes. -noinst_LIBRARIES = libdfilter.a + +lib_LTLIBRARIES = libdfilter.la CLEANFILES = \ libdfilter.a \ @@ -33,7 +34,7 @@ CLEANFILES = \ INCLUDES = -I$(srcdir)/../.. -I$(srcdir)/.. -I$(srcdir)/$(LEMON) -libdfilter_a_SOURCES = \ +libdfilter_la_SOURCES = \ dfilter.c \ dfilter.h \ dfilter-int.h \ Index: epan/ftypes/Makefile.am =================================================================== RCS file: /usr/local/cvsroot/ethereal/epan/ftypes/Makefile.am,v retrieving revision 1.5 diff -p -u -r1.5 Makefile.am --- epan/ftypes/Makefile.am 9 Dec 2003 23:02:39 -0000 1.5 +++ epan/ftypes/Makefile.am 9 Feb 2004 09:43:41 -0000 @@ -25,7 +25,8 @@ # shared library, this will be linked into libethereal. While libethereal # is an archive library, any executable linking against libethereal will # also need to link against libftypes. -noinst_LIBRARIES = libftypes.a + +lib_LTLIBRARIES = libftypes.la CLEANFILES = \ libftypes.a \ @@ -33,7 +34,7 @@ CLEANFILES = \ INCLUDES = -I$(srcdir)/../.. -I$(srcdir)/.. -libftypes_a_SOURCES = \ +libftypes_la_SOURCES = \ ftypes.c \ ftypes.h \ ftypes-int.h \ Index: packaging/rpm/SPECS/ethereal.spec.in =================================================================== RCS file: /usr/local/cvsroot/ethereal/packaging/rpm/SPECS/ethereal.spec.in,v retrieving revision 1.2 diff -p -u -r1.2 ethereal.spec.in --- packaging/rpm/SPECS/ethereal.spec.in 20 Aug 2002 00:59:42 -0000 1.2 +++ packaging/rpm/SPECS/ethereal.spec.in 9 Feb 2004 09:43:43 -0000 @@ -60,11 +60,16 @@ rm -rf $RPM_BUILD_ROOT /usr/X11R6/bin/ethereal /usr/X11R6/man/man1/ethereal.1.gz /usr/bin/tethereal +/usr/lib/libwiretap.so* +/usr/lib/libethereal.so* /usr/bin/editcap /usr/man/man1/tethereal.1.gz /usr/man/man1/editcap.1.gz %changelog +* Sat Feb 07 2004 Joerg Mayer +- lib wiretap and libetheral are now shared libs - include them + * Tue Aug 24 1999 Gilbert Ramirez - changed to ethereal.spec.in so that 'configure' can update the version automatically Index: wiretap/Makefile.am =================================================================== RCS file: /usr/local/cvsroot/ethereal/wiretap/Makefile.am,v retrieving revision 1.48 diff -p -u -r1.48 Makefile.am --- wiretap/Makefile.am 2 Dec 2003 19:37:04 -0000 1.48 +++ wiretap/Makefile.am 9 Feb 2004 09:43:43 -0000 @@ -23,15 +23,14 @@ ACLOCAL_AMFLAGS = `../aclocal-flags` -noinst_LIBRARIES = libwiretap.a - -#EXTRA_LIBRARIES = libwiretap.a +lib_LTLIBRARIES = libwiretap.la +libwiretap_la_LDFLAGS = -version-info 0:1:0 CLEANFILES = \ libwiretap.a \ *~ -libwiretap_a_SOURCES = \ +libwiretap_la_SOURCES = \ airopeek9.c \ airopeek9.h \ ascend-grammar.y \
- Follow-Ups:
- Re: [Ethereal-dev] Please test: shared libs (v3)
- From: Guy Harris
- Re: [Ethereal-dev] Please test: shared libs (v3)
- From: Guy Harris
- Re: [Ethereal-dev] Please test: shared libs (v3)
- References:
- [Ethereal-dev] Please test: shared libs
- From: Joerg Mayer
- Re: [Ethereal-dev] Please test: shared libs
- From: Guy Harris
- Re: [Ethereal-dev] Please test: shared libs
- From: Guy Harris
- Re: [Ethereal-dev] Please test: shared libs
- From: Joerg Mayer
- [Ethereal-dev] Please test: shared libs
- Prev by Date: Re: [Ethereal-dev] Please review: two new help pages
- Next by Date: Re: [Ethereal-dev] Please review: two new help pages
- Previous by thread: Re: [Ethereal-dev] Please test: shared libs
- Next by thread: Re: [Ethereal-dev] Please test: shared libs (v3)
- Index(es):