smb2www - libsmbclient.so

Richard Sharpe sharpe at ns.aus.com
Thu Jan 3 20:04:02 GMT 2002


Andrew Bartlett wrote:

>Richard Sharpe wrote:
>
>>Hmmm,
>>
>>I guess I should look at this :-)
>>
>
>I just started looking at this, and it looks to me like a fundamental
>design problem :-(
>
:-(

>
>The problem (IMHO) is that you are using global variables in your lib,
>preventing people from creating multiple contexts - in this case the
>ability to shut that context down.
>
Yes. The usage model we were thinking off was process based. We were 
trying to provide a Posix-like library, and did not think of a 
persistant script that needs to change context.

>
>As this is a part of Samba I actually want to use (the new smb2www
>sounds *really* neat) I put some thought into how I would fix it:
>
>smbc_init() returns a SMBC_CTX.
>
Agreed. 

>
>All functions are pointers off that context, and take that context as
>their first arg.
>
OK.

>
>For backward compatibility, existing functions are replaced with new
>functions that use a static SMBC_CTX, initilised at startup in the same
>way the current stuff is.
>
OK, that should work. It would even allow programs coded to the existing 
interface to do a shutdown if they needed to. If smbc_init() is called 
twice, then does the static SMBC_CTX gets overwritten with the new one? 
 Hmmm, perhaps we need smbc_init(), like now, and then struct smbc_ctx_t 
*smbc_init2().

>
>We then have the ability to sensibly do a smbc_destroy() without
>significant pain, and programs that accidentily use the lib twice don't
>get nasty shocks (becouse it should be up to the app to determine the
>scope for 'magic' connection reuse, not the lib).
>
>This would not only solve the problem mentioned, but would make the lib
>much more flexible.
>
>Other ideas I have:  I want to allow kerberos authentication via
>libsmbclient, because I'll be using mod_auth_krb5 on my webserver, and
>this will allow me to avoid passing passwords about :-).
>
I also want to extend libsmbclient. I want to provide a way to access 
all the extra bits than a Posix-like interface does not give you access to.

Having a vnode-like interface as well as the current posix-like 
interface would seem to solve that problem.

-- 
Richard Sharpe, rsharpe at ns.aus.com, LPIC-1
www.samba.org, www.ethereal.com, SAMS Teach Yourself Samba 
in 24 Hours, Special Edition, Using Samba







More information about the samba-technical mailing list