[AFS3-std] Re: rxgk ClientInfo and TokenInfo

Benjamin Kaduk kaduk@MIT.EDU
Tue, 12 Feb 2013 18:08:17 -0500 (EST)


On Tue, 12 Feb 2013, Andrew Deason wrote:

> On Tue, 5 Feb 2013 11:05:56 -0500 (EST)
> Benjamin Kaduk <kaduk@MIT.EDU> wrote:
>
>> It seems that the ClientInfo structure contains all of the fields of
>> the TokenInfo structure (in the same order, even!).  I would like to

When implementing I noticed that lifetime, bytelife, and errorcode are 
unsigned in the TokenInfo, but signed in StartParams and ClientInfo.  (So 
the fields are not actually the same.)

I that we should make the signedness agree in all locations, with the 
lifetime and bytelife unsigned, but the errorcode signed.

>> make ClientInfo contain a TokenInfo instead of repeating all the
>> fields.  Both structures are in the rxgk document already.
>
> I'm not sure if the 'errorcode' in those is conceptually the same?
> TokenInfo.errorcode is an error for CombineTokens/AFSCombineTokens,
> where ClientInfo.errorcode is an error for GSSNegotiate.

It could be seen as different, I suppose.  It's still an error producing 
the token that the structure is supposed to describe, though.

> I don't know if that really matters; they both need a 32-bit error, and
> they both have a 32-bit error. But it seems odd to me to either
> duplicate the errorcode field, or have the GSSNegotiate error be in
> ClientInfo.tokeninfo.errorcode (but maybe that's just me?).
>
> You could treat errorcode as separate, and just have the rest of the
> clients moved into another structure, TokenOptions or TokenDetails or
> something. But if that doesn't seem necessary, just putting a TokenInfo
> in ClientInfo seems fine.

I don't think there would be benefit in such a tokendetails structure.
However, given that the implementation is just going to have a 
source-of-truth data structure for the proto-token, and copy information 
from that into the ClientInfo and Token structure, I no longer see a real 
need to collapse the data types.

-Ben