[Spice-devel] [spice-gtk Win32 v3 02/12] NamedPipe: spice_named_pipe_new: add param to distinguish Server or Client
Arnon Gilboa
agilboa at redhat.com
Wed Jun 27 23:20:16 PDT 2012
ack
Uri Lublin 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);
> + }
>
> if (np->priv->handle == INVALID_HANDLE_VALUE)
> {
> @@ -244,11 +253,12 @@ spice_named_pipe_initable_iface_init (GInitableIface *iface)
> }
>
> SpiceNamedPipe *
> -spice_named_pipe_new (const gchar *name, GError **error)
> +spice_named_pipe_new (const gchar *name, const gboolean is_server, GError **error)
> {
> return SPICE_NAMED_PIPE (g_initable_new (SPICE_TYPE_NAMED_PIPE,
> NULL, error,
> "name", name,
> + "isserver", is_server,
> NULL));
> }
>
> diff --git a/gtk/controller/namedpipe.h b/gtk/controller/namedpipe.h
> index e0e873b..59f5618 100644
> --- a/gtk/controller/namedpipe.h
> +++ b/gtk/controller/namedpipe.h
> @@ -50,7 +50,9 @@ struct _SpiceNamedPipe
>
> GType spice_named_pipe_get_type (void) G_GNUC_CONST;
>
> -SpiceNamedPipe * spice_named_pipe_new (const gchar *name, GError **error);
> +SpiceNamedPipe * spice_named_pipe_new (const gchar *name,
> + const gboolean is_server,
> + GError **error);
> void * spice_named_pipe_get_handle(SpiceNamedPipe *namedpipe);
> gboolean spice_named_pipe_close (SpiceNamedPipe *namedpipe,
> GError **error);
> diff --git a/gtk/controller/spice-controller-listener.c b/gtk/controller/spice-controller-listener.c
> index da1121e..202d516 100644
> --- a/gtk/controller/spice-controller-listener.c
> +++ b/gtk/controller/spice-controller-listener.c
> @@ -89,7 +89,7 @@ spice_controller_listener_new (const gchar *address, GError **error)
>
> listener = G_OBJECT (spice_named_pipe_listener_new ());
>
> - np = spice_named_pipe_new (addr, error);
> + np = spice_named_pipe_new (addr, TRUE, error);
> if (!np) {
> g_object_unref (listener);
> listener = NULL;
> diff --git a/gtk/controller/spice-foreign-menu-listener.c b/gtk/controller/spice-foreign-menu-listener.c
> index 8322a13..53e03e7 100644
> --- a/gtk/controller/spice-foreign-menu-listener.c
> +++ b/gtk/controller/spice-foreign-menu-listener.c
> @@ -91,7 +91,7 @@ spice_foreign_menu_listener_new (const gchar *address, GError **error)
>
> listener = G_OBJECT (spice_named_pipe_listener_new ());
>
> - np = spice_named_pipe_new (addr, error);
> + np = spice_named_pipe_new (addr, TRUE, error);
> if (!np) {
> g_object_unref (listener);
> listener = NULL;
>
More information about the Spice-devel
mailing list