On 06/28/2012 01:31 PM, Marc-André Lureau wrote:
Currently both users are servers.
---
gtk/controller/namedpipe.c | 24
+++++++++++++++++-------
gtk/controller/namedpipe.h | 4 +++-
gtk/controller/spice-controller-listener.c | 2 +-
gtk/controller/spice-foreign-menu-listener.c | 2 +-
4 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/gtk/controller/namedpipe.c b/gtk/controller/namedpipe.c
index 355887a..20dde4c 100644
--- a/gtk/controller/namedpipe.c
+++ b/gtk/controller/namedpipe.c
@@ -80,12 +80,21 @@ spice_named_pipe_constructed (GObject *object)
pipe, in overlapped mode */
goto end;
- np->priv->handle = CreateNamedPipe (np->priv->name,
- PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
- PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
- PIPE_UNLIMITED_INSTANCES,
- DEFAULT_PIPE_BUF_SIZE, DEFAULT_PIPE_BUF_SIZE,
- 0, NULL);
+ if (np->priv->is_server) {
+ np->priv->handle = CreateNamedPipe (np->priv->name,
+ PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,
+ PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT,
+ PIPE_UNLIMITED_INSTANCES,
+ DEFAULT_PIPE_BUF_SIZE, DEFAULT_PIPE_BUF_SIZE,
+ 0, NULL);
+ } else {
+ np->priv->handle = CreateFile (np->priv->name,
+ GENERIC_READ | GENERIC_WRITE,
+ 0, NULL,
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
+ NULL);
+ }
Are you sure you need namedpipe object for that?
I think you could have used regular GWin32InputStream GWin32OutputStream..
(that was my initial design, iirc)
I'm not sure I really need a namedpipe object.
It's one way to implement it, using NamedPipe and NamedPipe connection
and GIOStream.
Does GWin32InputStream/OutputStream better ? In what way ?
Note that the NamedPipe class was only acting as server.
These first two patches implements a NamedPipe client.
Thanks,
Uri.
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel