diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-10-07 20:26:57 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-10-07 20:26:57 +0000 |
commit | 101a9dcdbd3ad8c2431f420a9c26bab0482a8949 (patch) | |
tree | 5e933afa81be4a259fc43240229b0c18a61c4c02 /src | |
parent | 51d4e4c1239baecfdb8a988f5c6612731f00a1c8 (diff) |
makes more sense to increment the connection id just before a connection attempt, not after.
Diffstat (limited to 'src')
-rw-r--r-- | src/trg-client.c | 7 | ||||
-rw-r--r-- | src/trg-client.h | 1 | ||||
-rw-r--r-- | src/trg-main-window.c | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/trg-client.c b/src/trg-client.c index ec53e3e..0f6731d 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -169,6 +169,12 @@ gint64 trg_client_get_rpc_version(TrgClient *tc) return session_get_rpc_version(priv->session); } +void trg_client_inc_connid(TrgClient *tc) +{ + TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); + g_atomic_int_inc(&priv->connid); +} + void trg_client_set_session(TrgClient * tc, JsonObject * session) { TrgClientPrivate *priv = TRG_CLIENT_GET_PRIVATE(tc); @@ -177,7 +183,6 @@ void trg_client_set_session(TrgClient * tc, JsonObject * session) json_object_unref(priv->session); } else { session_get_version(session, &priv->version); - g_atomic_int_inc(&priv->connid); } priv->session = session; diff --git a/src/trg-client.h b/src/trg-client.h index 1ac46ed..4ef93f9 100644 --- a/src/trg-client.h +++ b/src/trg-client.h @@ -169,6 +169,7 @@ guint trg_client_get_minimised_interval(TrgClient *tc); void trg_client_set_interval(TrgClient *tc, guint interval); void trg_client_set_minimised_interval(TrgClient *tc, guint interval); void trg_client_set_activeonlyupdate(TrgClient *tc, gboolean activeOnlyUpdate); +void trg_client_inc_connid(TrgClient *tc); G_END_DECLS diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 2d63112..a031d4b 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -461,7 +461,8 @@ void connect_cb(GtkWidget * w, gpointer data) { if (w) profile = (JsonObject*)g_object_get_data(G_OBJECT(w), "profile"); - disconnect_cb(NULL, data); + if (trg_client_is_connected(priv->client)) + disconnect_cb(NULL, data); if (profile && currentProfile != profile) trg_prefs_set_profile(prefs, profile); @@ -490,6 +491,7 @@ void connect_cb(GtkWidget * w, gpointer data) { } trg_status_bar_push_connection_msg(priv->statusBar, _("Connecting...")); + trg_client_inc_connid(priv->client); dispatch_async(priv->client, session_get(), on_session_get, data); } |