summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-07 20:26:57 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-10-07 20:26:57 +0000
commit101a9dcdbd3ad8c2431f420a9c26bab0482a8949 (patch)
tree5e933afa81be4a259fc43240229b0c18a61c4c02 /src
parent51d4e4c1239baecfdb8a988f5c6612731f00a1c8 (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.c7
-rw-r--r--src/trg-client.h1
-rw-r--r--src/trg-main-window.c4
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);
}