09/19/07

PHP & Rails

I just made a number of small tweaks to the site layout and format which I think cleans things up a bit. The biggest change is the new Archives widget which makes organization a lot cleaner.

On a side note, I’ve switched gears a little and put tcpreplay on hold while I start a new project called Cabernet. One of my guilty pleasures in life is wine and I have so many bottles that it’s actually hard to know what I have and where various bottles are. I hope Cabernet becomes an easy to use wine management system for individuals who have a few hundred to a few thousand bottles.

07/3/07

Gah, I hate python

Not sure what’s up with python, but it’s not able to find all the libraries anymore, hence the tcpreplay website is down until I get things back together… [Update] Well DarwinPorts completely screwed things up and had two different versions of python installed with mod_python built against one version and everything else against another. Basically had to rebuild everything, but finally got it back up. Continue reading

05/21/07

Reinventing the wheel…

So I’ve been working on the bits and bytes of SSL a lot lately which has required me to look at the OpenSSL code. Long story short, it’s not the prettiest code I’ve ever seen (by a long shot). But it does have a few gems. This gem is going to one of my new interview questions:


void update(unsigned char *buf) {
  int i;
  for (i = 7; i >= 0; i--) {
    ++buf[i];
    if (buf[i] != 0) break;
  }
}

What does this function do? Do you think this is actually faster then obvious the alternative?

05/1/07

3.0.1 on time!

I’m happy to release that 3.0.1 is not only out, but released on time… pretty amazing if you ask me. :)

Anyways, this release has a number of fixes, most of which were bugs filed by users, so a big thanks to everyone who found a bug and either filed a ticket or emailed the list.

05/01/2007: Version 3.0.1

  • Stop tcpreplay causing OS X WiFi from disassociating (#167)
  • –pnat incorrectly matched all IP addresses (#170)
  • Fix serious memory leak in core common library (#175)
  • Fix tcprewrite –enet-vlan on little endian systems (#174)
  • Bad pcap timestamps were causing excessive delays (#169)
  • Code cleanup (#173)

As always, you can grab the latest tarball from:
http://tcpreplay.synfin.net/trac/wiki/Download

04/22/07

RFC: 802.11 support

So 3.1 development has already started, and based on numerous user requests, one of the first tasks was adding IEEE 802.11 support. If you are someone who is interested in 802.11 support in tcpreplay, please take a few minutes to read this and write a reply. Your feedback is very important!
Continue reading

04/20/07

3.0.0 final(ly) released

I’m happy to announce that tcpreplay 3.0.0 has officially been released. 3.0 is a complete rewrite of the old 2.x branch which is now officially EOL. During the 3.0 rewrite I had four main goals:

  1. Clean up and reorganize the code to make development easier
  2. Standardize configuration options
  3. Improve performance
  4. Improve the documentation

I’m happy to say that all four of these goals have been met. Performance is noticeably improved and the code is much more maintainable. There is now a standalone library for all packet editing functionality which is used in tcprewrite, tcpbridge and optionally tcpreplay. DLT support is now done via plugins, so adding support for additional DLT’s is much easier. User configuration processing is now handled by GNU Autogen, providing a consistent set of arguments for both command line and configuration files. The man pages/built in help is better and the tcpreplay manual and FAQ have moved to the tcpreplay website wiki.

One unexpected enhancement was adding Windows/Cygwin support. During development I noticed about 20% of tcpreplay downloads were for the Win32 version, so I made an effort to improve portability and add support for Winpcap.

So what about the future? Well 3.1 is already in the planning stages. Feel free to look at the open tickets and leave comments for anything you’d prefer to see take care of sooner rather then later.

Most of all, I’d love to hear any success or failure stories people have with 3.0. Knowing what features people like helps me prioritize other similar features for the future.

04/14/07

RC1 is out!

Once again, I paid someone a lot of money to do my taxes. Honestly, it’s the best $750 I spend each year. The US gov’t does a great job making taxes complicated even for people like me who aren’t worth millions of dollars or are trying to use tax havens in various 3rd world countries.

Anyways, since I didn’t have to do my taxes, I decided to take the time to fix bugs and get the RC1 release out. This is actually a big deal. We’re talking over 2 years of effort, 100+ tickets fixed, 600 commits and 20,000 lines of code. But mere numbers don’t really begin to cover what’s new:

  1. Completely rewritten to improve performance
  2. Standardized options for easier use
  3. Tons and tons of bug fixes
  4. Rewrote all the docs to the wiki
  5. Plugin based architecture for DLT rewriting (DLT_EN10MB, DLT_NULL, DLT_LOOP, DLT_LINUX_SLL, DLT_HDLC, user defined)
  6. Initial support for Win32 under Cygwin
  7. Cleaner code for easier maintenance and enhancements

So what’s the future?

  • More DLT support (802.11 for one)
  • More plugins (layer 3, 4 and 5+)
  • Possible use of Lua or other embedded language for ease of writing additional editing plugins
  • Native Win32 support
  • Much much more
04/12/07

I hate proprietary formats…

I don’t understand why Samsung decided to use a semi-proprietary file format for their X205L/X210L series of camcorders, but they did. Obviously, they wised up to this mistake since they’ve released the X300L which uses standard DIVX encoding.

But for those of you like me who have a 2xx series and would like to view their movies on something other then Windows, I’ve written a small C program called Sedg2Divx which does a good enough conversion so you can play the .avi files using VLC on OS X and probably under Linux as well.