summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bencode.c6
-rw-r--r--src/trg-cell-renderer-numgtzero.c2
-rw-r--r--src/trg-client.h1
-rw-r--r--src/trg-main-window.c6
4 files changed, 11 insertions, 4 deletions
diff --git a/src/bencode.c b/src/bencode.c
index 0a66cdb..0f26f53 100644
--- a/src/bencode.c
+++ b/src/bencode.c
@@ -121,7 +121,8 @@ static be_node *_be_decode(const char **data, gint64 * data_len)
--(*data_len);
++(*data);
- ret->val.l[i] = NULL;
+ if (i > 0)
+ ret->val.l[i] = NULL;
return ret;
} else if (dc == 'd') {
@@ -143,7 +144,8 @@ static be_node *_be_decode(const char **data, gint64 * data_len)
--(*data_len);
++(*data);
- ret->val.d[i].val = NULL;
+ if (i > 0)
+ ret->val.d[i].val = NULL;
return ret;
} else if (dc == 'i') {
diff --git a/src/trg-cell-renderer-numgtzero.c b/src/trg-cell-renderer-numgtzero.c
index 004844b..3ce9e47 100644
--- a/src/trg-cell-renderer-numgtzero.c
+++ b/src/trg-cell-renderer-numgtzero.c
@@ -87,7 +87,7 @@ trg_cell_renderer_numgtzero_class_init(TrgCellRendererNumgtzeroClass * klass)
g_param_spec_int64("value",
"Value",
"Value",
- 0,
+ INT64_MIN,
INT64_MAX,
0,
G_PARAM_READWRITE
diff --git a/src/trg-client.h b/src/trg-client.h
index a562f68..92a30e0 100644
--- a/src/trg-client.h
+++ b/src/trg-client.h
@@ -30,6 +30,7 @@
#define TORRENT_GET_MODE_UPDATE 3
#define TRG_NO_HOSTNAME_SET -2
+#define SESSION_UPDATE_DIVISOR 10
#include <json-glib/json-glib.h>
#include <glib-object.h>
diff --git a/src/trg-main-window.c b/src/trg-main-window.c
index 84efee0..6ef88bd 100644
--- a/src/trg-main-window.c
+++ b/src/trg-main-window.c
@@ -861,13 +861,17 @@ static gboolean trg_update_torrents_timerfunc(gpointer data) {
TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data);
TrgClient *tc = priv->client;
- if (trg_client_is_connected(tc))
+ if (trg_client_is_connected(tc)) {
dispatch_async(
tc,
torrent_get(trg_client_get_activeonlyupdate(tc) ? -2 : -1),
trg_client_get_activeonlyupdate(tc) ? on_torrent_get_active
: on_torrent_get_update, data);
+ if (trg_client_get_serial(tc) % SESSION_UPDATE_DIVISOR == 0)
+ dispatch_async(priv->client, session_get(), on_session_get, data);
+ }
+
return FALSE;
}