Ethereal-dev: [ethereal-dev] Re: Adding NetInfo (ONC RPC proto) support to ethereal

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

From: Nicolas Williams <Nicolas.Williams@xxxxxxx>
Date: Sat, 1 Jan 2000 20:18:45 -0500
On Fri, Dec 31, 1999 at 04:21:54PM -0500, Nicolas Williams wrote:

Replying to myself. Apparently I emailed you too soon.

> I started adding NetInfo support to ethereal today.
> 
> I've got a pretty complete packet-netinfobind.[ch] set of files and will
> probably start on packet-netinfo.[ch] once I get the netinfobind
> protocol stuff working.
> 
> I need a feature added to packet-portmap.c: CALLIT call decoding. This
> is because NetInfo relies on indirect RPC calls via the portmapper for
> the most interesting (from a debugging point of view) operational aspect
> of NetInfo: binding (i.e., one domain finding servers for its parent
> domain).

[...]

> Currently there is no dissection done on CALLIT calls. I figure I can
> add a function to do it, but I need to know how to use the protocol,
> version and procedure numbers to find the dissection function for the
> encapsulated arguments. That and how to add a protocol sub-tree for the
> portmapper packet.

Well, I managed to code a dissect_rmtcall() function and it works with
unknown protocols at this point. I have to finish the NetInfo binder
protocol functions before I can complete testing of this function.

I had to change the rpc_progs and rpc_procs variables from packet-rpc.c
to be externs instead of statics so I could reference them in
packet-portmap.c to lookup the dissection function for the indirect
call.

Coding dissect_rmtcall_reply() will be a bit trickier because CALLIT
replies do not include information about what indirect prog/vers/proc
call is being answered, so I'll have to code the CALLIT call and reply
dissectors to store/find the indirect prog/vers/proc information in the
data field of the RPC conversation struct - it's not currently used, so
it's the perfect place for this.

> Any help would be much appreciated. Thanks,

I must say, ethereal is so well written that having never looked at
ethereal before this Friday I've already been able to add features.

Excellent. Congratulations on such a well designed program, and thank
you!


Nico
-DISCLAIMER: an automatically appended disclaimer may follow. By posting-
-to a public e-mail mailing list I hereby grant permission to distribute-
-and copy this message.-

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.