On Mon, 6 May 2013 16:47:03 +0100
Simon Wilkinson <[email protected]> wrote:

> Hi,
> 
> Just wanted to raise the following further, as it's not been addressed in any 
> of the recent changes:
> 
> >> 7.3 RPC Definition
> >> ------------------
> >> 
> >>>      struct RXGK_TokenInfo {
> >>>          int errorcode;
> >> 
> >> I'm not convinced that we need a separate error code here. Clients 
> >> shouldn't be making negotiation decisions based upon the results of 
> >> CombineTokens - a failure of this function should just be reported up to 
> >> the user.
> > 
> > This came in back in November when we realized that (at that time) 
> > CombineTokens as written was useless, and we pulled in all of the 
> > interesting bits from AFSCombineTokens.  At the moment, the RXGK_TokenInfo 
> > data structure is shared between CombineTokens and AFSCombineTokens; the 
> > latter surely does need an in-band errorcode field.  I would kind of like 
> > to avoid having an abundance of similar-but-different data structures and 
> > keep this sharing, even if the errorcode might not be strictly necessary 
> > here.  (I haven't implemented a CombineTokens yet, so I don't have insight 
> > to add from experience.)
> 
> I still have problems with errorcode in this structure definition. Firstly, I 
> think returning an 'secure' errorcode from CombineTokens, as opposed to an RX 
> abort, is poorly defined. I don't think that it is clear the circumstances 
> where a client would be using multiple calls to CombineTokens to negotiate, 
> either within rxgk itself, or to negotiate between multiple encryption types. 
> So, I still believe, having implemented this, that a secure means of 
> transmitting an error here is not required.
> 
> Secondly, if an errorcode is required, then I'm not sure that it should be 
> part of the RXGK_TokenInfo structure. The errorcode isn't information about 
> the returned token, it is a direct parameter of the RPC. So, if it is 
> included, it should be a separate argument, rather than being buried within a 
> structure.

That is a good point and does seem like a better API choice. If the errorcode
is present, none of the other fields are valid, so that does imply a more
understanble choice would be to have the errorcode (if it stays) as a separate
out arg.



-- 
Michael Meffie <[email protected]>
_______________________________________________
AFS3-standardization mailing list
[email protected]
http://lists.openafs.org/mailman/listinfo/afs3-standardization

Reply via email to