http://wiki.winehq.org/NamedPipes
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Fri Feb 6 11:52:41 CST 2009
> Funny enough, the Samba project codenamed "franky"
> (http://wiki.samba.org/index.php/Franky) will be doing all of this. It's not
> quite there yet, but after some nice work done in the Samba3 smbd by Volker
> Lendecke and some more work in the Samba4 "samba" daemon by Stefan
> Metzmacher, Jelmer Vernooij and some overall effort by other folks from the
> Samba Team, franky is coming along quite well.
http://wiki.samba.org/index.php/Franky/Notes_20080508
how veery iiinteresting.
i see that the justification for adding proper named pipe break-out
isn't to do with inter-project cooperation, at all - it's to provide a
samba3 - samba4 migration path, utilising components from each.
by fortunate coincidence, it so happens that the exact same reasons
and near-exact same architecture as required for samba3-samba4
interoperability is exactly what's required for every other project
that also wants to use samba as a service not as _the_
be-all-and-end-all service.
just make sure you add an SMB SetNamedPipeHandleState function to the
list of callbacks / capabilities, not just createpipe, readpipe,
writepipe, transactnamedpipe and closepipe.
in samba, the _only_ operation you will ever see on-wire, is
SetNamedPipeHandleState to 0x3 (PIPE_MESSAGE_READ |
PIPE_MESSAGE_WRITE).
but other systems will want to use franky-breakout read,
franky-breakout write, franky-breakout transactnamedpipe in
NON-message-mode.
and also make sure that the namedpipestate flag on the initial
SMBcreateX is also passed over to the franky-breakout-create-pipe
function.
oh, and a franky-breakout-get-namedpipe-state too. which probably
maps to an SMB IPC$ ioctl somewhere. needs analysis.
rob, you'll want to put these on your list of things to keep an eye on:
1) franky-create-pipe receives PIPE_MESSAGE_MODE flags on/off
2) franky-set-namedpipe_handle_state function exists
3) franky-get-namedpipe-handle-state function has to exist somewhere.
all of them will be necessary for the "existing" wine apps to work
correctly over-the-wire because that's what wine presently only
supports: non-message-moded named pipes.
l.
More information about the wine-devel
mailing list