diff --git a/src/main.c b/src/main.c index fc51205..a770768 100644 --- a/src/main.c +++ b/src/main.c @@ -336,12 +336,8 @@ tracker_scrape(gpointer tracker) SHA1((guint8*)string, number, (guint8*)torrent_sha); g_free(string); - if(g_str_has_suffix((gchar*)tracker, "info_hash=")) - string = util_convert_to_hex(torrent_sha, SHA_DIGEST_LENGTH, "%"); - else - string = g_strdup(" "); - - host = g_strdup_printf("%s%s", (gchar*)tracker, string); + string = util_convert_to_hex(torrent_sha, SHA_DIGEST_LENGTH, "%"); + host = g_strdup_printf("%s?info_hash=%s", (gchar*)tracker, string); g_free(string); string = g_strrstr(host, "announce"); diff --git a/src/mainwindow.c b/src/mainwindow.c index 6b1bbf0..415098e 100644 --- a/src/mainwindow.c +++ b/src/mainwindow.c @@ -421,23 +421,23 @@ mainwindow_fill_trackers_tab(MainWindow const *mwin, BencNode *torrent) gtk_combo_box_set_active(mwin->TrackerComboBox, -1); + node = benc_node_find_key(torrent, "announce"); + gtk_list_store_append(liststore, &iter); + gtk_list_store_set(liststore, &iter, 0, benc_node_data(node), -1); + node = benc_node_find_key(torrent, "announce-list"); - if(node == NULL) /* no multi-tracker */ - { - node = benc_node_find_key(torrent, "announce"); - gtk_list_store_append(liststore, &iter); - gtk_list_store_set(liststore, &iter, 0, benc_node_data(node), -1); - } - else /* multi-tracker support */ + if(node != NULL) /* multi-tracker support */ { - node = benc_node_first_child(node); - if(node != NULL) + for (node = benc_node_first_child(node); node != NULL; + node = benc_node_next_sibling(node)) + { for(subnode = benc_node_first_child(node); subnode != NULL; subnode = benc_node_next_sibling(subnode)) { gtk_list_store_append(liststore, &iter); gtk_list_store_set(liststore, &iter, 0, benc_node_data(subnode), -1); } + } } gtk_combo_box_set_model(mwin->TrackerComboBox, GTK_TREE_MODEL(liststore));