summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2010-12-15 16:18:44 +0000
committerJonny Lamb <jonny.lamb@collabora.co.uk>2010-12-15 16:18:44 +0000
commit2e343ceb90433bdd9eb3847d4f803bc5d880720f (patch)
treecc83ab4f3231386f06acfd240cb1158493d4940f
parentdc8ed3beab9a09b8b9325a721542da4eb5ec29c6 (diff)
protocol: add password-prompt connection parameter
We can't have *-password as it'll be stored in the keyring by mission control. Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
-rw-r--r--src/idle-connection.c13
-rw-r--r--src/protocol.c6
2 files changed, 18 insertions, 1 deletions
diff --git a/src/idle-connection.c b/src/idle-connection.c
index ad2f9c4..2c5182a 100644
--- a/src/idle-connection.c
+++ b/src/idle-connection.c
@@ -122,6 +122,7 @@ enum {
PROP_CHARSET,
PROP_QUITMESSAGE,
PROP_USE_SSL,
+ PROP_PASSWORD_PROMPT,
LAST_PROPERTY_ENUM
};
@@ -145,6 +146,7 @@ struct _IdleConnectionPrivate {
char *charset;
char *quit_message;
gboolean use_ssl;
+ gboolean password_prompt;
/* the string used by the a server as a prefix to any messages we send that
* it relays to other users. We need to know this so we can keep our sent
@@ -262,6 +264,10 @@ static void idle_connection_set_property(GObject *obj, guint prop_id, const GVal
priv->use_ssl = g_value_get_boolean(value);
break;
+ case PROP_PASSWORD_PROMPT:
+ priv->password_prompt = g_value_get_boolean(value);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, prop_id, pspec);
break;
@@ -308,6 +314,10 @@ static void idle_connection_get_property(GObject *obj, guint prop_id, GValue *va
g_value_set_boolean(value, priv->use_ssl);
break;
+ case PROP_PASSWORD_PROMPT:
+ g_value_set_boolean(value, priv->password_prompt);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, prop_id, pspec);
break;
@@ -425,6 +435,9 @@ static void idle_connection_class_init(IdleConnectionClass *klass) {
param_spec = g_param_spec_boolean("use-ssl", "Use SSL", "If the connection should use a SSL tunneled socket connection", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB | G_PARAM_CONSTRUCT);
g_object_class_install_property(object_class, PROP_USE_SSL, param_spec);
+
+ param_spec = g_param_spec_boolean("password-prompt", "Password prompt", "Whether the connection should pop up a SASL channel if no password is given", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_BLURB | G_PARAM_CONSTRUCT);
+ g_object_class_install_property(object_class, PROP_PASSWORD_PROMPT, param_spec);
}
static GPtrArray *_iface_create_channel_managers(TpBaseConnection *self) {
diff --git a/src/protocol.c b/src/protocol.c
index 1863f1e..a450e99 100644
--- a/src/protocol.c
+++ b/src/protocol.c
@@ -71,7 +71,9 @@ static const TpCMParamSpec idle_params[] = {
{ "charset", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING,
TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, "UTF-8" },
{ "quit-message", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0 },
- {"use-ssl", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ { "use-ssl", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
+ TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER (FALSE) },
+ { "password-prompt", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN,
TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER (FALSE) },
{ NULL, NULL, 0, 0, NULL, 0 }
};
@@ -108,6 +110,8 @@ new_connection (TpBaseProtocol *protocol G_GNUC_UNUSED,
"charset", tp_asv_get_string (params, "charset"),
"quit-message", tp_asv_get_string (params, "quit-message"),
"use-ssl", tp_asv_get_boolean (params, "use-ssl", NULL),
+ "password-prompt", tp_asv_get_boolean (params, "password-prompt",
+ NULL),
NULL);
}