libsmbclient revamp - need opinions quickly

Derrell Lipman derrell.lipman at
Mon Mar 3 14:14:05 GMT 2008

I've received feedback from Volker and Andrew, both thinking that no
change to the libsmbclient API should be made.  Volker suggested a
parallel libsmbclient where one maintains the status quo, and the
other is for future improvements.  As a review, my changes are ABI
compatible so existing applications, already compiled, will continue
to run fine, but I have changed the field names of the context
structure so that recompilations will encounter errors (by intention),
the user will look at the header file and see that they should now be
using the getter/setter interface rather than reading/writing the
context structure members, and older programs will eventually all
migrate to the new interface.

I have two choices here.  I can retain what I've done and eat any
criticism I receive from users; or I can switch the context structure
back to its original form (original field names), but retain all of
the "deprecated" comments so that new programs will use the new

As points of comparison between this change and others going into this
same release:

1. Removal of smbmount.  KDE calls smbmount instead of calling mount.
IIRC, the comment says something about mount not being allowed by
non-root users but smbmount with SUID bit set can be.  KDE, one of the
big libsmbclient users, therefore is going to have to make some much
more significant changes due to that change than they would for the
libsmbclient API.

2. smb.conf parameter change: hidden -> admin shares (or something
like that).  This change will not only cause the distros to make
changes, it will cause many of the (millions? of) Samba users
themselves to make changes.

Given the scope of the code changes required for what I've done to
libsmbclient relative to these other two, I don't see a big issue with
what I've done.  However, I'm a pilot, and one of the things that
pilots discuss regarding changes is, "What would it look like on the
accident report".  If there are still objections to my context
structure changes, I'll change those back.  This decision must be made
immediately, though, as this needs to go into tomorrow's release if
the context structure is going to change as I've suggested.

Comments please!



"There is nothing more difficult to plan, more doubtful of success,
nor more dangerous to manage than the creation of a new system. For
the initiator has the enmity of all who would profit by the
preservation of the old system and merely lukewarm defenders in those
who would gain by the new one." --Machiavelli, 1513

More information about the samba-technical mailing list