diff options
author | Senko Rasic <senko.rasic@collabora.co.uk> | 2007-02-02 18:49:55 +0000 |
---|---|---|
committer | Senko Rasic <senko.rasic@collabora.co.uk> | 2007-02-02 18:49:55 +0000 |
commit | 033964912b147178ba59f8709cdac889bf3be1d1 (patch) | |
tree | c43cc736d7cda16e2d158ace3ab46d99eb9a9ebf | |
parent | 74cb66b92515dd110b66bfebb57a58e7de906136 (diff) | |
download | telepathy-gabble-033964912b147178ba59f8709cdac889bf3be1d1.tar.gz |
GabbleConnection: optionally randomize resource string to avoid collisions; ask for roster before signalling presence as per RFC
20070202184955-01440-a7e333a3e05c6346c24441af2f259192d71953f9.gz
-rw-r--r-- | src/gabble-connection-manager.c | 10 | ||||
-rw-r--r-- | src/gabble-connection.c | 50 |
2 files changed, 9 insertions, 51 deletions
diff --git a/src/gabble-connection-manager.c b/src/gabble-connection-manager.c index e1c7b1f03..927fd6ea3 100644 --- a/src/gabble-connection-manager.c +++ b/src/gabble-connection-manager.c @@ -162,8 +162,6 @@ struct _GabbleParams { guint stun_port; gboolean ignore_ssl_errors; gchar *alias; - gchar *auth_mac; - gchar *auth_btid; }; enum { @@ -183,8 +181,6 @@ enum { JABBER_PARAM_STUN_PORT, JABBER_PARAM_IGNORE_SSL_ERRORS, JABBER_PARAM_ALIAS, - JABBER_PARAM_AUTH_MAC, - JABBER_PARAM_AUTH_BTID, LAST_JABBER_PARAM }; @@ -205,8 +201,6 @@ static const GabbleParamSpec jabber_params[] = { { "stun-port", DBUS_TYPE_UINT16_AS_STRING, G_TYPE_UINT, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(GABBLE_PARAMS_DEFAULT_STUN_PORT), G_STRUCT_OFFSET(GabbleParams, stun_port) }, { "ignore-ssl-errors", DBUS_TYPE_BOOLEAN_AS_STRING, G_TYPE_BOOLEAN, TP_CONN_MGR_PARAM_FLAG_HAS_DEFAULT, GINT_TO_POINTER(FALSE), G_STRUCT_OFFSET(GabbleParams, ignore_ssl_errors) }, { "alias", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, alias) }, - { "mac", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, auth_mac) }, - { "btid", DBUS_TYPE_STRING_AS_STRING, G_TYPE_STRING, 0, NULL, G_STRUCT_OFFSET(GabbleParams, auth_btid) }, { NULL, NULL, 0, 0, NULL, 0 } }; @@ -643,10 +637,6 @@ gabble_connection_manager_request_connection (GabbleConnectionManager *self, JABBER_PARAM_IGNORE_SSL_ERRORS, params.ignore_ssl_errors); SET_PROPERTY_IF_PARAM_SET ("alias", JABBER_PARAM_ALIAS, params.alias); - SET_PROPERTY_IF_PARAM_SET ("auth-mac", JABBER_PARAM_AUTH_MAC, - params.auth_mac); - SET_PROPERTY_IF_PARAM_SET ("auth-btid", JABBER_PARAM_AUTH_BTID, - params.auth_btid); /* split up account into username, stream-server and resource */ if (!_gabble_connection_set_properties_from_account (conn, params.account, error)) diff --git a/src/gabble-connection.c b/src/gabble-connection.c index 085881dda..9a8f4cd55 100644 --- a/src/gabble-connection.c +++ b/src/gabble-connection.c @@ -167,8 +167,6 @@ enum PROP_STUN_RELAY_PASSWORD, PROP_IGNORE_SSL_ERRORS, PROP_ALIAS, - PROP_AUTH_MAC, - PROP_AUTH_BTID, LAST_PROPERTY }; @@ -240,8 +238,6 @@ struct _GabbleConnectionPrivate gchar *resource; gint8 priority; gchar *alias; - gchar *auth_mac; - gchar *auth_btid; /* reference to conference server name */ const gchar *conference_server; @@ -421,12 +417,6 @@ gabble_connection_get_property (GObject *object, case PROP_ALIAS: g_value_set_string (value, priv->alias); break; - case PROP_AUTH_MAC: - g_value_set_string (value, priv->auth_mac); - break; - case PROP_AUTH_BTID: - g_value_set_string (value, priv->auth_btid); - break; default: param_name = g_param_spec_get_name (pspec); @@ -494,7 +484,11 @@ gabble_connection_set_property (GObject *object, break; case PROP_RESOURCE: g_free (priv->resource); - priv->resource = g_value_dup_string (value); + if (priv->randomize_resource) + priv->resource = g_strdup_printf ("%s.%u", g_value_get_string (value), + g_random_int_range(1000000, 9999999)); + else + priv->resource = g_value_dup_string (value); break; case PROP_PRIORITY: priv->priority = CLAMP (g_value_get_int (value), G_MININT8, G_MAXINT8); @@ -513,18 +507,10 @@ gabble_connection_set_property (GObject *object, case PROP_IGNORE_SSL_ERRORS: priv->ignore_ssl_errors = g_value_get_boolean (value); break; - case PROP_ALIAS: + case PROP_ALIAS: g_free (priv->alias); priv->alias = g_value_dup_string (value); break; - case PROP_AUTH_MAC: - g_free (priv->auth_mac); - priv->auth_mac = g_value_dup_string (value); - break; - case PROP_AUTH_BTID: - g_free (priv->auth_btid); - priv->auth_btid = g_value_dup_string (value); - break; default: param_name = g_param_spec_get_name (pspec); @@ -789,24 +775,6 @@ gabble_connection_class_init (GabbleConnectionClass *gabble_connection_class) G_PARAM_STATIC_BLURB); g_object_class_install_property (object_class, PROP_ALIAS, param_spec); - param_spec = g_param_spec_string ("auth-mac", - "MAC for authorization", - "MAC for authorization", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_NAME | - G_PARAM_STATIC_BLURB); - g_object_class_install_property (object_class, PROP_AUTH_MAC, param_spec); - - param_spec = g_param_spec_string ("auth-btid", - "BTID for authorization", - "BTID for authorization", - NULL, - G_PARAM_READWRITE | - G_PARAM_STATIC_NAME | - G_PARAM_STATIC_BLURB); - g_object_class_install_property (object_class, PROP_AUTH_BTID, param_spec); - /* signal definitions */ signals[ALIASES_CHANGED] = @@ -2816,6 +2784,9 @@ connection_disco_cb (GabbleDisco *disco, DEBUG ("set features flags to %d", conn->features); } + /* go go gadget on-line */ + connection_status_change (conn, TP_CONN_STATUS_CONNECTED, TP_CONN_STATUS_REASON_REQUESTED); + /* send presence to the server to indicate availability */ if (!signal_own_presence (conn, &error)) { @@ -2823,9 +2794,6 @@ connection_disco_cb (GabbleDisco *disco, goto ERROR; } - /* go go gadget on-line */ - connection_status_change (conn, TP_CONN_STATUS_CONNECTED, TP_CONN_STATUS_REASON_REQUESTED); - if (conn->features & GABBLE_CONNECTION_FEATURES_GOOGLE_JINGLE_INFO) { jingle_info_discover_servers (conn); |