[1127] in Kerberos_V5_Development
Re: API change proposal: API versioning
daemon@ATHENA.MIT.EDU (Theodore Y. Ts'o)
Tue May 7 00:20:51 1996
Date: Tue, 7 May 1996 00:20:45 -0400
From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
To: "Barry Jaspan" <bjaspan@MIT.EDU>
Cc: krbdev@MIT.EDU
In-Reply-To: Barry Jaspan's message of Mon, 6 May 1996 16:21:45 -0400,
<9605062021.AA13399@starkiller.MIT.EDU>
Date: Mon, 6 May 1996 16:21:45 -0400
From: "Barry Jaspan" <bjaspan@MIT.EDU>
The beauty of introducting a versioning system is that it takes
essentially no work up front; you only have to deal with it in the
future when you define a new version and change a function's behavior.
Basically, the only change you need to make is to add a new argument
to the init function,
krb5_error_code INTERFACE
krb5_init_context(context, api_version)
krb5_context *context;
u_login api_version;
and then store the version value in the context structure. Version
constants (KRB5_API_VERSION_1, ...) are defined in krb5.h. krb5
functions that depend on the api version then check the context to
determine how to behave.
If people think this is a good idea, I'll write up a more careful
explanation of the change, how it will work, and how new versions will
be handled.
I like this. If you can write up a more detailed explanation of how it
will work when we want to do API revisions, that would be a good thing.
- Ted