[linux-cifs-client] Re: RFC 1001/1002 support

Steve French smfltc at us.ibm.com
Mon Apr 26 20:09:21 GMT 2004


On Mon, 2004-04-26 at 14:56, Juan Lang wrote:

> 
> Wine's two main issues are 1) the NBT ports are
> already taken by Samba, and 2) integrating with a
> userspace smbclient is difficult.  I'm sorry if this
> is rehashing something you already know, but since
> Chris asked I'll expand here:
> 
> 1) has a lot of consequences.  We can't get the list
> of backup master browsers, so we can't "play nice" in
> the network neighborhood--we have to get the browse
> list from the browse master.  (Chris, sorry for the
> sloppy terminology).  We also can't defend names, so
> we can't have NetBIOS datagram support.  And, most
> obviously, we can't act as NetBIOS servers.
> 
> 2) has two main reasons.  One is the smbclient API
> through at least Samba3 is much too high-level to be
> useful to Wine.  Another, just as important, is that
> Wine is LGPL, and I don't have enough energy to
> maintain a GPL fork of Wine to allow it to integrate
> with a userspace Samba library.

Issue two is at least easier to deal with.  The cifs vfs is
mostly LGPL, and in any case would be accessed across the
system call API rather than linked, and it make sense
to think of the cifs vfs as providing a lower level
API.

> 
> Rather more interesting from Wine's point of view is
> if we could implement named pipes or file I/O on top
> of a kernel module.  For file I/O if we could send the
> equivalent of a NtCreateFile (or the NT_CREATE_ANDX
> SMB) that'd be just dandy, since that's what Wine uses
> internally.

Named pipes should not be too hard to implement in
cifs vfs - they show up in the file name space (in Linux) a
bit differently than os/2 or windows or dos but open/read/write 
over the wire are quite similar to standard file i/o (there are a few
differences requiring specialized transact calls, and of course seek and
a few other ops are forbidden).  I just haven't tried to test them.
There has got to be a way to sensibly map them (on the client) to Unix
pipes but I have not done enough research into how special pseudo
file types are handled. Although Samba currently breaks a few
apps that require pseudo files to be created on the server because one
of the Unix extensions is disabled by default on the server, I don't
think that will be necessary to get Windows style named pipes working.
Have you thought of what calling convention you would like and whether
you want to treat them as a special case of Unix pipe?



More information about the linux-cifs-client mailing list