diff options
-rw-r--r-- | src/bencode.c | 6 | ||||
-rw-r--r-- | src/trg-cell-renderer-numgtzero.c | 2 | ||||
-rw-r--r-- | src/trg-client.h | 1 | ||||
-rw-r--r-- | src/trg-main-window.c | 6 |
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; } |