[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ethereal-dev
Subject:    Re: [Ethereal-dev] RX/AFS dissectors updated
From:       "Ronnie Sahlberg" <rsahlber () bigpond ! net ! au>
Date:       2001-05-27 8:35:51
[Download RAW message or body]

Hi,

----- Original Message -----
From: "Guy Harris" <gharris@sonic.net>
To: "Nathan Neulinger" <nneul@umr.edu>
Cc: "Guy Harris" <gharris@sonic.net>; "Ronnie Sahlberg"
<rsahlber@bigpond.net.au>; <ethereal-dev@ethereal.com>
Sent: Sunday, May 27, 2001 6:05 PM
Subject: Re: [Ethereal-dev] RX/AFS dissectors updated


> On Sat, May 26, 2001 at 09:14:00PM -0500, Nathan Neulinger wrote:
> >
> > > On frame 65 of "afs.cap", the old dissector listed a bunch of
arguments
> > > to the give-up-callbacks information, but the new dissector doesn't;
> > > does that operation take any arguments, or is the stuff after the
opcode
> > > just junk?
> >
> > Yes, it is supposed to have arguments:
> >
> > GiveUpCallBacks(
> >   IN  AFSCBFids *Fids_Array,
> >   AFSCBs *CallBacks_Array
> > ) = 147;
> >
> >
> > Should have a file id array, followed by a callback array.
>
> So are the lengths of those arrays 1 byte long, or 4 bytes long?

I think they should be 4 bytes long. I will check this.

>
> In the version of "packet-afs-macros.h" before Ronnie Sahlberg's
> changes, "OUT_FS_AFSCBFids()" and "OUT_FS_AFSCBs()" did:
>
>                 unsigned int j,i; \
>                 TRUNC(1); \
>                 j = pntohl(&pd[curoffset]); \
>                 curoffset += 1; \
>
> which fetches a 4-byte length field, but only bumps the offset by 1
> byte.
>
> In Ronnie's version, it does
>
>                 j = tvb_get_guint8(tvb, offset); \
>                 offset += 1; \
>
> which fetches a 1-byte length field, and bumps the offset by 1 byte -
> but that doesn't look correct for frame 65.
>
> If, however, we do
>
>                 j = tvb_get_ntohl(tvb, offset); \
>                 offset += 4; \

I think this would be the correct behaviour. I will check this.

>
> i.e., fetching a 4-byte length field and bumping the offset by 4 bytes,
> that appears to do the right thing, although the "version" value in the
> callback is a large number (3309083628) and the "expires" value in the
> callback is 1 second after the UNIX Epoch, which seems a bit wrong.
>
> If the lengths are 4 bytes long, "OUT_FS_ViceIds()", "OUT_FS_IPAddrs()",
> and "OUT_FS_AFSBulkStats()" might need to be fixed to fetch 4-byte
> lengths.
>
> _______________________________________________
> Ethereal-dev mailing list
> Ethereal-dev@ethereal.com
> http://www.ethereal.com/mailman/listinfo/ethereal-dev


_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@ethereal.com
http://www.ethereal.com/mailman/listinfo/ethereal-dev

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic