tcpdump mailing list archives
Re: Using the decoders in other applications?
From: Neil Spring <nspring () cs washington edu>
Date: Tue, 13 Jan 2004 11:45:22 -0800
Hi Aaron,I've done this in scriptroute (www.scriptroute.org/source/scriptroute-0.2.43.tar.gz). Scriptroute is a system for network measurement where small scripts, written in ruby, express the logic of a lightweight active network measurement, like traceroute or sprobe. I link tcpdump code to a ruby interpreter so that an object of class "packet"'s to_string method returns what tcpdump would print.
I think I have to go one step further than you do, because making a to_string method involves redefining printf to be strcat; tcpdump already sends data to stdout.
The remaining steps are roughly: 1) include enough in your configure.in so that the tcpdump code is configured (not hard). 2) unpack tcpdump source in a subdirectory. 3) supply a bunch of symbols in a .c file so that the tcpdump code is happy to link. 4) call ipN_print().
If you look at the scriptroute code, these are the build steps for libppacket.a; the only code I provide is in packet-tostring.[ch], the rest is tcpdump code with printf, fputs, and putc redefined.
I don't want to say it's the best way, but it works. good luck, -neil On Jan 13, 2004, at 11:29 AM, Aaron Turner wrote:
Hey everyone, I'm sure many of you are somewhat familar with tcpreplay which I currently maintain (http://tcpreplay.sf.net for those of you not). Lately I've recieved a few requests to add support for decoding of packets to STDOUT as they are sent on the wire. Obviously, I have no wish to reinvent the wheel, and I immediately started looking at figuring out a way to optionally link, include, etc the tcpdump code. Turns out that this appears to be a lot more complicated then I had hoped. So I figured I'd email the list and try to find out: 1) If anyone has done something like this before and had some suggestions? 2) If any plans have been made to modularize/librarize the code so that the decoders could be used in other applications without declaring a bunch of global variables? 3) If someone has a better idea of how to accomplish the above goal. Thanks, Aaron -- Aaron Turner <aturner at pobox.com|synfin.net> http://synfin.net/ They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety. -- Benjamin Franklin All emails are PGP signed; a lack of a signature indicates a forgery.
- This is the TCPDUMP workers list. It is archived at http://www.tcpdump.org/lists/workers/index.html To unsubscribe use mailto:tcpdump-workers-request () tcpdump org?body=unsubscribe
Current thread:
- Using the decoders in other applications? Aaron Turner (Jan 13)
- Re: Using the decoders in other applications? Neil Spring (Jan 13)
- Re: Using the decoders in other applications? Michael Richardson (Jan 13)
- Re: Using the decoders in other applications? Christian Kreibich (Jan 14)