summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/protocol-constants.h1
-rw-r--r--src/requests.c1
-rw-r--r--src/torrent.c5
-rw-r--r--src/torrent.h1
-rw-r--r--src/tpeer.c14
-rw-r--r--src/tpeer.h7
-rw-r--r--src/trg-status-bar.c4
-rw-r--r--src/trg-torrent-model.c11
-rw-r--r--src/trg-torrent-model.h2
-rw-r--r--src/trg-torrent-tree-view.c6
10 files changed, 44 insertions, 8 deletions
diff --git a/src/protocol-constants.h b/src/protocol-constants.h
index e28cf05..a22e12d 100644
--- a/src/protocol-constants.h
+++ b/src/protocol-constants.h
@@ -55,6 +55,7 @@
#define FIELD_HAVEUNCHECKED "haveUnchecked"
#define FIELD_PERCENTDONE "percentDone"
#define FIELD_PEERS "peers"
+#define FIELD_PEERSFROM "peersFrom"
#define FIELD_FILES "files"
#define FIELD_WANTED "wanted"
#define FIELD_PRIORITIES "priorities"
diff --git a/src/requests.c b/src/requests.c
index a38e3ef..7a38806 100644
--- a/src/requests.c
+++ b/src/requests.c
@@ -129,6 +129,7 @@ JsonNode *torrent_get(gint64 id)
json_array_add_string_element(fields, FIELD_ETA);
json_array_add_string_element(fields, FIELD_PEERS);
+ json_array_add_string_element(fields, FIELD_PEERSFROM);
json_array_add_string_element(fields, FIELD_FILES);
json_array_add_string_element(fields, FIELD_HAVEVALID);
json_array_add_string_element(fields, FIELD_HAVEUNCHECKED);
diff --git a/src/torrent.c b/src/torrent.c
index bdd6d75..98eb687 100644
--- a/src/torrent.c
+++ b/src/torrent.c
@@ -32,6 +32,11 @@ JsonArray *torrent_get_peers(JsonObject * t)
return json_object_get_array_member(t, FIELD_PEERS);
}
+JsonObject *torrent_get_peersfrom(JsonObject * t)
+{
+ return json_object_get_object_member(t, FIELD_PEERSFROM);
+}
+
JsonArray *torrent_get_wanted(JsonObject * t)
{
return json_object_get_array_member(t, FIELD_WANTED);
diff --git a/src/torrent.h b/src/torrent.h
index d3bf90c..44e15f5 100644
--- a/src/torrent.h
+++ b/src/torrent.h
@@ -58,6 +58,7 @@ gchar *torrent_get_status_string(gint64 rpcv, gint64 value);
gchar *torrent_get_status_icon(gint64 rpcv, guint flags);
guint32 torrent_get_flags(JsonObject * t, gint64 rpcv, gint64 status, gint64 downRate, gint64 upRate);
JsonArray *torrent_get_peers(JsonObject * t);
+JsonObject *torrent_get_peersfrom(JsonObject * t);
JsonArray *torrent_get_tracker_stats(JsonObject * t);
JsonArray *torrent_get_wanted(JsonObject * t);
JsonArray *torrent_get_priorities(JsonObject * t);
diff --git a/src/tpeer.c b/src/tpeer.c
index 1941d14..a0cbe6c 100644
--- a/src/tpeer.c
+++ b/src/tpeer.c
@@ -52,9 +52,19 @@ gdouble peer_get_progress(JsonObject * p) {
}
gint64 peer_get_rate_to_client(JsonObject * p) {
- return json_node_get_int(json_object_get_member(p, TPEER_RATE_TO_CLIENT));
+ return json_object_get_int_member(p, TPEER_RATE_TO_CLIENT);
}
gint64 peer_get_rate_to_peer(JsonObject * p) {
- return json_node_get_int(json_object_get_member(p, TPEER_RATE_TO_PEER));
+ return json_object_get_int_member(p, TPEER_RATE_TO_PEER);
+}
+
+gint64 peerfrom_get_pex(JsonObject *pf)
+{
+ return json_object_get_int_member(pf, TPEERFROM_FROMPEX);
+}
+
+gint64 peerfrom_get_dht(JsonObject *pf)
+{
+ return json_object_get_int_member(pf, TPEERFROM_FROMDHT);
}
diff --git a/src/tpeer.h b/src/tpeer.h
index 4c41c9f..bc7852e 100644
--- a/src/tpeer.h
+++ b/src/tpeer.h
@@ -31,9 +31,11 @@
#define TPEER_IS_ENCRYPTED "isEncrypted"
#define TPEER_IS_DOWNLOADING_FROM "isDownloadingFrom"
#define TPEER_IS_UPLOADING_TO "isUploadingTo"
-
#define TPEER_FLAGSTR "flagStr"
+#define TPEERFROM_FROMPEX "fromPex"
+#define TPEERFROM_FROMDHT "fromDht"
+
const gchar *peer_get_address(JsonObject * p);
const gchar *peer_get_client_name(JsonObject * p);
gboolean peer_get_is_encrypted(JsonObject * p);
@@ -44,4 +46,7 @@ gint64 peer_get_rate_to_peer(JsonObject * p);
gboolean peer_get_is_uploading_to(JsonObject * p);
gboolean peer_get_is_downloading_from(JsonObject * p);
+gint64 peerfrom_get_pex(JsonObject *pf);
+gint64 peerfrom_get_dht(JsonObject *pf);
+
#endif /* TPEER_H_ */
diff --git a/src/trg-status-bar.c b/src/trg-status-bar.c
index 42dacd1..7df8069 100644
--- a/src/trg-status-bar.c
+++ b/src/trg-status-bar.c
@@ -103,9 +103,6 @@ void trg_status_bar_session_update(TrgStatusBar *sb, JsonObject *session)
} else {
gtk_label_set_text(GTK_LABEL(priv->free_lbl), "");
}
-
-
-
}
void trg_status_bar_update(TrgStatusBar * sb,
@@ -168,7 +165,6 @@ void trg_status_bar_update(TrgStatusBar * sb,
gtk_label_set_text(GTK_LABEL(priv->info_lbl), infoText);
gtk_label_set_text(GTK_LABEL(priv->speed_lbl), speedText);
-
g_free(speedText);
g_free(infoText);
}
diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c
index 7cea804..735bda0 100644
--- a/src/trg-torrent-model.c
+++ b/src/trg-torrent-model.c
@@ -176,6 +176,8 @@ static void trg_torrent_model_init(TrgTorrentModel * self)
column_types[TORRENT_COLUMN_DOWNLOADDIR] = G_TYPE_STRING;
column_types[TORRENT_COLUMN_BANDWIDTH_PRIORITY] = G_TYPE_INT64;
column_types[TORRENT_COLUMN_DONE_DATE] = G_TYPE_INT64;
+ column_types[TORRENT_COLUMN_FROMPEX] = G_TYPE_INT64;
+ column_types[TORRENT_COLUMN_FROMDHT] = G_TYPE_INT64;
gtk_list_store_set_column_types(GTK_LIST_STORE(self),
TORRENT_COLUMN_COLUMNS, column_types);
@@ -225,7 +227,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
{
GtkListStore *ls = GTK_LIST_STORE(model);
guint lastFlags, newFlags;
- JsonObject *lastJson;
+ JsonObject *lastJson, *pf;
gchar *statusString, *statusIcon;
gint64 downRate, upRate, downloaded, uploaded, id, status;
@@ -244,6 +246,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
statusString = torrent_get_status_string(rpcv, status);
newFlags = torrent_get_flags(t, rpcv, status, downRate, upRate);
statusIcon = torrent_get_status_icon(rpcv, newFlags);
+ pf = torrent_get_peersfrom(t);
gtk_tree_model_get(GTK_TREE_MODEL(model), iter,
TORRENT_COLUMN_FLAGS, &lastFlags,
@@ -286,6 +289,10 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
torrent_get_bandwidth_priority(t), -1);
gtk_list_store_set(ls, iter, TORRENT_COLUMN_DONE_DATE,
torrent_get_done_date(t), -1);
+ gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMPEX,
+ peerfrom_get_pex(pf), -1);
+ gtk_list_store_set(ls, iter, TORRENT_COLUMN_FROMDHT,
+ peerfrom_get_dht(pf), -1);
#else
gtk_list_store_set(ls, iter,
TORRENT_COLUMN_ICON, statusIcon,
@@ -302,6 +309,8 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial,
TORRENT_COLUMN_ETA, torrent_get_eta(t),
TORRENT_COLUMN_UPLOADED, uploaded,
TORRENT_COLUMN_DOWNLOADED, downloaded,
+ TORRENT_COLUMN_FROMPEX, peerfrom_get_pex(pf),
+ TORRENT_COLUMN_FROMDHT, peerfrom_get_dht(pf),
TORRENT_COLUMN_RATIO,
uploaded >
0
diff --git a/src/trg-torrent-model.h b/src/trg-torrent-model.h
index 714af50..9716a97 100644
--- a/src/trg-torrent-model.h
+++ b/src/trg-torrent-model.h
@@ -99,6 +99,8 @@ enum {
TORRENT_COLUMN_DOWNLOADDIR,
TORRENT_COLUMN_BANDWIDTH_PRIORITY,
TORRENT_COLUMN_DONE_DATE,
+ TORRENT_COLUMN_FROMPEX,
+ TORRENT_COLUMN_FROMDHT,
TORRENT_COLUMN_COLUMNS
};
diff --git a/src/trg-torrent-tree-view.c b/src/trg-torrent-tree-view.c
index 8c73fcc..5cd07d1 100644
--- a/src/trg-torrent-tree-view.c
+++ b/src/trg-torrent-tree-view.c
@@ -57,6 +57,12 @@ static void trg_torrent_tree_view_init(TrgTorrentTreeView * tttv)
trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO,
TORRENT_COLUMN_LEECHERS, _("Leechers"),
"leechers", 0);
+ trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO,
+ TORRENT_COLUMN_FROMPEX, _("PEX Peers"),
+ "from-pex", TRG_COLUMN_EXTRA);
+ trg_tree_view_reg_column(ttv, TRG_COLTYPE_NUMGTZERO,
+ TORRENT_COLUMN_FROMDHT, _("DHT Peers"),
+ "from-dht", TRG_COLUMN_EXTRA);
trg_tree_view_reg_column(ttv, TRG_COLTYPE_SPEED,
TORRENT_COLUMN_DOWNSPEED, _("Down Speed"),
"down-speed", 0);