[vino] Add VinoServer:reject-incoming property
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vino] Add VinoServer:reject-incoming property
- Date: Wed, 25 Apr 2012 06:43:28 +0000 (UTC)
commit 83b6f3e602088a64b3a67e5bfebd87472889b141
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Tue Apr 24 11:49:03 2012 +0200
Add VinoServer:reject-incoming property
See bug 651960.
server/vino-server.c | 46 ++++++++++++++++++++++++++++++++++++++++++++--
server/vino-server.h | 3 +++
2 files changed, 47 insertions(+), 2 deletions(-)
---
diff --git a/server/vino-server.c b/server/vino-server.c
index 6231d29..eeb8a2a 100644
--- a/server/vino-server.c
+++ b/server/vino-server.c
@@ -88,6 +88,7 @@ struct _VinoServerPrivate
guint use_upnp : 1;
guint disable_xdamage : 1;
guint notify_on_connect : 1;
+ guint reject_incoming : 1;
};
struct _VinoClient
@@ -123,7 +124,8 @@ enum
PROP_DISABLE_BACKGROUND,
PROP_USE_UPNP,
PROP_DISABLE_XDAMAGE,
- PROP_NOTIFY_ON_CONNECT
+ PROP_NOTIFY_ON_CONNECT,
+ PROP_REJECT_INCOMING
};
static enum rfbNewClientAction vino_server_auth_client (VinoServer *server,
@@ -502,6 +504,12 @@ vino_server_handle_new_client (rfbClientPtr rfb_client)
g_return_val_if_fail (VINO_IS_SERVER (server), RFB_CLIENT_REFUSE);
+ if (server->priv->reject_incoming)
+ {
+ dprintf (RFB, "Reject client on fd %d\n", rfb_client->sock);
+ return RFB_CLIENT_REFUSE;
+ }
+
dprintf (RFB, "New client on fd %d\n", rfb_client->sock);
if (!server->priv->fb)
@@ -1196,6 +1204,9 @@ vino_server_set_property (GObject *object,
case PROP_DISABLE_XDAMAGE:
vino_server_set_disable_xdamage (server, g_value_get_boolean (value));
break;
+ case PROP_REJECT_INCOMING:
+ vino_server_set_reject_incoming (server, g_value_get_boolean (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1263,6 +1274,9 @@ vino_server_get_property (GObject *object,
case PROP_NOTIFY_ON_CONNECT:
g_value_set_boolean (value, server->priv->notify_on_connect);
break;
+ case PROP_REJECT_INCOMING:
+ g_value_set_boolean (value, server->priv->reject_incoming);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1505,7 +1519,15 @@ vino_server_class_init (VinoServerClass *klass)
G_PARAM_STATIC_NAME |
G_PARAM_STATIC_NICK |
G_PARAM_STATIC_BLURB));
-
+ g_object_class_install_property (gobject_class,
+ PROP_REJECT_INCOMING,
+ g_param_spec_boolean ("reject-incoming",
+ "Reject incoming",
+ "If TRUE reject incoming connections",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
}
VinoServer *
@@ -1918,3 +1940,23 @@ vino_server_get_status_icon (VinoServer *server)
return server->priv->icon;
}
+void
+vino_server_set_reject_incoming (VinoServer *server,
+ gboolean reject)
+{
+ g_return_if_fail (VINO_IS_SERVER (server));
+
+ if (server->priv->reject_incoming == reject)
+ return;
+
+ server->priv->reject_incoming = reject;
+ g_object_notify (G_OBJECT (server), "reject-incoming");
+}
+
+gboolean
+vino_server_get_reject_incoming (VinoServer *server)
+{
+ g_return_val_if_fail (VINO_IS_SERVER (server), FALSE);
+
+ return server->priv->reject_incoming;
+}
diff --git a/server/vino-server.h b/server/vino-server.h
index 2037bce..d3defc8 100644
--- a/server/vino-server.h
+++ b/server/vino-server.h
@@ -120,6 +120,9 @@ gboolean vino_server_get_use_upnp (VinoServer *serve
void vino_server_set_disable_xdamage (VinoServer *server,
gboolean disable_xdamage);
gboolean vino_server_get_disable_xdamage (VinoServer *server);
+void vino_server_set_reject_incoming (VinoServer *server,
+ gboolean reject);
+gboolean vino_server_get_reject_incoming (VinoServer *server);
#include "vino-status-icon.h"
VinoStatusIcon *vino_server_get_status_icon (VinoServer *server);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]