[1127] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

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

home help back first fref pref prev next nref lref last post