On 21 Jan 2009 at 16:36, Konrad Rzeszutek wrote:

> On Wed, Jan 21, 2009 at 11:48:41AM +0100, Ulrich Windl wrote:
> > 
> > On 20 Jan 2009 at 9:23, Konrad Rzeszutek wrote:
> > 
> > > I would recommend that you provide as the first variable in all of the 
> > > structs
> > > an unsigned int called 'version'. This way if the structs are extended 
> > > they
> > > would be backwards compatible and there is an easy way to identify which
> > > version of structs they are.
> > 
> > Hi!
> > 
> > When doing an initial version, why not try to do it right at the beginning? 
> > Addind 
> > a version number to a poor design is terrible, because for compatibility 
> > you'll 
> > always have to support old versions then. If you do not, why the version 
> > number?
> Because we are humans and we make mistakes. It is one of the mechanism to fix
> something later on when an Application Binary Interface (ABI) is "holy" and
> cannot be changed.

Yes sure,

(I had written some primitive communication protocol some years ago, where the 
client asked the server what protocol version it did support (actually it was a 
feature mask). After about the 7th revision of the protocol, I wondered whether 
the server should still support all the older protocol versions).

For your case: I think defining a library interface is not an add-hoc task for 
afternoon; it should be carefully designed (e.g. being thread-safe, even if the 
implementation is not: Once the implementation is, the application need not be 
changed -- the interface is stable).

"Manage your interfaces better than the banks did manage their money ;-)"


You received this message because you are subscribed to the Google Groups 
"open-iscsi" group.
To post to this group, send email to open-iscsi@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at http://groups.google.com/group/open-iscsi

Reply via email to