Ethereal-dev: Re: [Ethereal-dev] NFS filenames

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

From: Warren Young <warren@xxxxxxxxxxx>
Date: Thu, 25 Jan 2001 05:44:06 -0700
Ronnie Sahlberg wrote:
> 
> I was thinking something along the line of adding code to packet-nfs.c to
> scan for
> special packets where one can determine the mapping between filehandles and
> filenames,
> say LOOKUP and similar packets.
> The code could then build a dynamic linked list holding all these mappings.

If you use a balanced tree or a hash table, lookup time would be
minimal.  For a balanced tree with 100,000 elements (the number of files
in a typical desktop computer's filesystem), the tree will only be 17
levels deep.  These days, with STL available for virtually every
compiler, you could just use a map container, rather than implement your
own tree algorithm.

100,000 files in a single capture session is a pretty far-out scenario. 
Assuming that each file's record takes 300 bytes to store in memory (256
bytes per file plus some associated data) you're talking about 28.6 MB
of memory.  That's a lot, but within reach of any current computer.  In
more likely scenarios, you won't need to use 300 bytes per file, and
you'll probably see much less than 100,000 files in a single capture
session.

-- 
= Warren Young, maintainer of the Winsock Programmer's FAQ at:
=     http://www.cyberport.com/~tangent/programming/winsock/
= 
= ICBM Address: 36.8274040 N, 108.0204086 W, alt. 1714m