On Sat, Oct 29, 2011 at 5:36 PM, Luke Howard <[log in to unmask]> wrote:
>> It wouldn't have to be a supplementary status code, but it seems more
>> consistent that way. I guess we're not at risk of running out of
>> supplementary status code bits...
>
> The only risk with supplementary status code is that applications that check for GSS_ERROR()/GSS_S_COMPLETE (rather than GSS_S_CONTINUE_NEEDED/GSS_S_COMPLETE) may go into an infinite loop. But I think logically supplementary makes more sense. It's just a matter of perhaps (like on Windows) only propagating that error past the mechglue when NegoEx is being used. That gives you a line in the sand.
I thought of this concern but dismissed it because the docs for
GSS_Init/Accept_sec_context() say to specifically check for
GSS_S_COMPLETE and GSS_S_CONTINUE_NEEDED, and CONTINUE_NEEDED is a
supplementary error code, so any apps using GSS_ERROR() should be
failing today anyways... But yes, it'd be more conservative to go for
a routine error for two reasons: a) in case of some insane app that
uses GSS_ERROR() and ignores supplementary error codes other than
CONTINUE_NEEDED (but come on!), and b) to conserve the limited number
of remaining unassigned supplementary error codes. I don't think
those two reasons are terribly strong...
FWIW, I don't really care if this is to be a supplementary or routine
error, but have a mild preference for the former in the interest of
consistency.
Nico
--
|