aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/peers/peers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/peers/peers.c')
-rw-r--r--src/plugins/peers/peers.c114
1 files changed, 63 insertions, 51 deletions
diff --git a/src/plugins/peers/peers.c b/src/plugins/peers/peers.c
index 0b7b5a20..e25072b0 100644
--- a/src/plugins/peers/peers.c
+++ b/src/plugins/peers/peers.c
@@ -48,20 +48,22 @@ static GdkPixbuf *red;
48 48
49static GdkPixbuf *black; 49static GdkPixbuf *black;
50 50
51struct Flags { 51struct Flags
52 struct Flags * next; 52{
53 char * cc; 53 struct Flags *next;
54 GdkPixbuf * flag; 54 char *cc;
55 GdkPixbuf *flag;
55}; 56};
56 57
57static struct Flags * flags; 58static struct Flags *flags;
58 59
59static int 60static int
60collector (void *data, 61collector (void *data,
61 const GNUNET_PeerIdentity * identity, 62 const GNUNET_PeerIdentity * identity,
62 const void *address, 63 const void *address,
63 unsigned int addr_len, 64 unsigned int addr_len,
64 GNUNET_CronTime last_message, unsigned int trust, unsigned int bpmFromPeer) 65 GNUNET_CronTime last_message, unsigned int trust,
66 unsigned int bpmFromPeer)
65{ 67{
66 GtkListStore *model = data; 68 GtkListStore *model = data;
67 GtkTreeIter iter; 69 GtkTreeIter iter;
@@ -78,7 +80,7 @@ collector (void *data,
78 GNUNET_CronTime now; 80 GNUNET_CronTime now;
79 int i; 81 int i;
80 int found; 82 int found;
81 struct Flags * pos; 83 struct Flags *pos;
82 84
83 GNUNET_hash_to_enc (&identity->hashPubKey, &enc); 85 GNUNET_hash_to_enc (&identity->hashPubKey, &enc);
84 /* check if same peer is already in model! */ 86 /* check if same peer is already in model! */
@@ -138,35 +140,38 @@ collector (void *data,
138 if (cc != NULL) 140 if (cc != NULL)
139 { 141 {
140 pos = flags; 142 pos = flags;
141 while (pos != NULL) { 143 while (pos != NULL)
142 if (0 == strcmp(pos->cc, cc)) { 144 {
143 flagBuf = pos->flag; 145 if (0 == strcmp (pos->cc, cc))
144 break; 146 {
145 } 147 flagBuf = pos->flag;
146 pos = pos->next; 148 break;
147 } 149 }
148 if (pos == NULL) { 150 pos = pos->next;
149 cc = GNUNET_strdup (cc); 151 }
150 for (i = 0; i < strlen (cc); i++) 152 if (pos == NULL)
151 cc[i] = tolower (cc[i]); 153 {
152 dir = GNUNET_get_installation_path (GNUNET_IPK_DATADIR); 154 cc = GNUNET_strdup (cc);
153 fn = GNUNET_malloc (strlen (dir) + 32); 155 for (i = 0; i < strlen (cc); i++)
154 strcpy (fn, dir); 156 cc[i] = tolower (cc[i]);
155 strcat (fn, 157 dir = GNUNET_get_installation_path (GNUNET_IPK_DATADIR);
156 DIR_SEPARATOR_STR ".." 158 fn = GNUNET_malloc (strlen (dir) + 32);
157 DIR_SEPARATOR_STR "gnunet-gtk" 159 strcpy (fn, dir);
158 DIR_SEPARATOR_STR "flags" DIR_SEPARATOR_STR); 160 strcat (fn,
159 strcat (fn, cc); 161 DIR_SEPARATOR_STR ".."
160 strcat (fn, ".png"); 162 DIR_SEPARATOR_STR "gnunet-gtk"
161 GNUNET_free (dir); 163 DIR_SEPARATOR_STR "flags" DIR_SEPARATOR_STR);
162 flagBuf = gdk_pixbuf_new_from_file (fn, NULL); 164 strcat (fn, cc);
163 GNUNET_free (fn); 165 strcat (fn, ".png");
164 pos = GNUNET_malloc(sizeof(struct Flags)); 166 GNUNET_free (dir);
165 pos->cc = cc; 167 flagBuf = gdk_pixbuf_new_from_file (fn, NULL);
166 pos->flag = flagBuf; 168 GNUNET_free (fn);
167 pos->next = flags; 169 pos = GNUNET_malloc (sizeof (struct Flags));
168 flags = pos; 170 pos->cc = cc;
169 } 171 pos->flag = flagBuf;
172 pos->next = flags;
173 flags = pos;
174 }
170 } 175 }
171 176
172 /* get LED */ 177 /* get LED */
@@ -236,7 +241,8 @@ updatePeerInfoSafe (void *m)
236 GtkSortType order; 241 GtkSortType order;
237 gint sort_column; 242 gint sort_column;
238 243
239 w = glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersTreeView"); 244 w =
245 glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersTreeView");
240 old_model = gtk_tree_view_get_model (GTK_TREE_VIEW (w)); 246 old_model = gtk_tree_view_get_model (GTK_TREE_VIEW (w));
241 if (old_model != NULL) 247 if (old_model != NULL)
242 { 248 {
@@ -259,7 +265,7 @@ updatePeerInfo (void *dummy)
259 265
260 model = getPeerModel (); 266 model = getPeerModel ();
261 GNUNET_GTK_save_call (&updatePeerInfoSafe, model); 267 GNUNET_GTK_save_call (&updatePeerInfoSafe, model);
262 g_object_unref(G_OBJECT(model)); 268 g_object_unref (G_OBJECT (model));
263} 269}
264 270
265 271
@@ -276,7 +282,8 @@ init_peers (struct GNUNET_GEContext *e, struct GNUNET_GC_Configuration *c)
276 282
277 ectx = e; 283 ectx = e;
278 cfg = c; 284 cfg = c;
279 peers = glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersTreeView"); 285 peers =
286 glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersTreeView");
280 renderer = gtk_cell_renderer_text_new (); 287 renderer = gtk_cell_renderer_text_new ();
281 col = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (peers), 288 col = gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (peers),
282 -1, 289 -1,
@@ -379,17 +386,20 @@ init_peers (struct GNUNET_GEContext *e, struct GNUNET_GC_Configuration *c)
379 GNUNET_free (fn); 386 GNUNET_free (fn);
380 GNUNET_free (dir); 387 GNUNET_free (dir);
381 388
382 tab = glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersScrolledWindow"); 389 tab =
390 glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (),
391 "peersScrolledWindow");
383 gtk_widget_show (tab); 392 gtk_widget_show (tab);
384 cron = GNUNET_GTK_get_cron_manager (); 393 cron = GNUNET_GTK_get_cron_manager ();
385 GNUNET_cron_add_job (cron, &updatePeerInfo, REFRESH_RATE, REFRESH_RATE, NULL); 394 GNUNET_cron_add_job (cron, &updatePeerInfo, REFRESH_RATE, REFRESH_RATE,
395 NULL);
386} 396}
387 397
388void 398void
389done_peers () 399done_peers ()
390{ 400{
391 GtkWidget *w; 401 GtkWidget *w;
392 struct Flags * pos; 402 struct Flags *pos;
393 403
394 GNUNET_cron_del_job (cron, &updatePeerInfo, REFRESH_RATE, NULL); 404 GNUNET_cron_del_job (cron, &updatePeerInfo, REFRESH_RATE, NULL);
395 if (red != NULL) 405 if (red != NULL)
@@ -400,17 +410,19 @@ done_peers ()
400 g_object_unref (black); 410 g_object_unref (black);
401 if (yellow != NULL) 411 if (yellow != NULL)
402 g_object_unref (yellow); 412 g_object_unref (yellow);
403 w = glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersTreeView"); 413 w =
414 glade_xml_get_widget (GNUNET_GTK_get_main_glade_XML (), "peersTreeView");
404 gtk_tree_view_set_model (GTK_TREE_VIEW (w), NULL); 415 gtk_tree_view_set_model (GTK_TREE_VIEW (w), NULL);
405 416
406 while (flags != NULL) { 417 while (flags != NULL)
407 pos = flags->next; 418 {
408 if (flags->flag != NULL) 419 pos = flags->next;
409 g_object_unref(flags->flag); 420 if (flags->flag != NULL)
410 GNUNET_free (flags->cc); 421 g_object_unref (flags->flag);
411 GNUNET_free(flags); 422 GNUNET_free (flags->cc);
412 flags = pos; 423 GNUNET_free (flags);
413 } 424 flags = pos;
425 }
414} 426}
415 427
416 428