Ethereal-users: Re: [Ethereal-users] Problems with the -l option

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

Date Next Thread Next
From: Guy Harris <gharris@xxxxxxxxx>
Date: Thu, 01 Sep 2005 01:23:09 -0700
Ronald Granados wrote:

I am piping the tethereal output (Packet Details) to my app. I have some memory problems with the ethereal because everytime that I read the pipe (readfile) the proccess grow, because of this, the proccess crash, when I make the call I use the -l option that flush the output but this doesn't seem to work.

The "-l" option just causes the output to be (approximately) line-buffered, so that each line (or, rather, each packet; that was easier to implement, and is good enough for applications reading a pipe from Tethereal, as well as being more efficient) is written to the pipe separately, so an application reading from the pipe sees packets as they arrive.

It doesn't affect the behavior of Tethereal in any other way. In particular...

I don't understand why the program keep growing and crash.

...it doesn't affect the fact that Tethereal, like Ethereal, has stateful dissectors, that allocate state information about packets for use when dissecting subsequent packets, including large chunks of data allocated if it's reassembling packets.

There might also be real memory leaks; some have been fixed after 0.10.12 was released.

Tethereal, if it's dissecting packets, is not a program that can be left to run forever, because, as indicated, it's stateful, and, for some packets, allocates memory that's never freed.