void update_tree_row(int row, GtkTreeIter *iter) { ip_t *addr; char str[256], *name; addr = net_addr(row); name = "???"; if ( addrcmp( (void *) addr, (void *) &unspec_addr, af ) != 0 ) { name = dns_lookup(addr); if(!name) { sprintf(str, "%s", strlongip( addr )); name = str; } } gtk_list_store_set(ReportStore, iter, COL_HOSTNAME, name, COL_LOSS, (float)(net_loss(row)/1000.0), COL_RCV, net_returned(row), COL_SNT, net_xmit(row), COL_LAST, net_last(row)/1000, COL_BEST, net_best(row)/1000, COL_AVG, net_avg(row)/1000, COL_WORST, net_worst(row)/1000, COL_STDEV, (float)(net_stdev(row)/1000.0), COL_COLOR, net_up(row) ? "black" : "red", -1); }
void split_redraw(void) { int max; int at; ip_t *addr, *addrs; char newLine[MAX_LINE_SIZE]; int i; #if DEBUG SPLIT_PRINT(("split_redraw()")); #endif /* * If there is less lines than last time, we delete them * TEST THIS PLEASE */ max = net_max(); for (i=LineCount; i>max; i--) { SPLIT_PRINT(("-%d", i)); LineCount--; } /* * For each line, we compute the new one and we compare it to the old one */ for(at = 0; at < max; at++) { addr = net_addr(at); if(addrcmp((void*)addr, (void*)&unspec_addr, af)) { char str[256], *name; if (!(name = dns_lookup(addr))) name = strlongip(addr); if (show_ips) { snprintf(str, sizeof(str), "%s\t%s", name, strlongip(addr)); name = str; } /* May be we should test name's length */ snprintf(newLine, sizeof(newLine), "%s\t%s\t%.1f\t%d\t%d\t%.1f\t%.1f\t%.1f\t%.1f", name, fmt_ipinfo(addr), net_loss(at)/1000.0, net_returned(at), net_xmit(at), net_best(at) /1000.0, net_avg(at)/1000.0, net_worst(at)/1000.0, net_stdev(at)/1000.0); } else { sprintf(newLine, "???"); } if (strcmp(newLine, Lines[at]) == 0) { /* The same, so do nothing */ #if DEBUG SPLIT_PRINT(("SAME LINE")); #endif } else { SPLIT_PRINT(("%d\t%s", at+1, newLine)); if (strcmp(newLine, "???") != 0) { /* Multi path */ for (i=0; i < MAXPATH; i++ ) { addrs = net_addrs(at, i); if ( addrcmp( (void *) addrs, (void *) addr, af ) == 0 ) continue; if ( addrcmp( (void *) addrs, (void *) &unspec_addr, af ) == 0 ) break; char *name; if (!(name = dns_lookup(addrs))) name = strlongip(addrs); if (show_ips) { SPLIT_PRINT(("-\t%d\t%d\t%s\t%s\t%s", at+1, i+1, name, strlongip(addrs), fmt_ipinfo(addrs))); } else { SPLIT_PRINT(("-\t%d\t%d\t%s\t%s", at+1, i+1, name, fmt_ipinfo(addrs))); } } } fflush(stdout); strcpy(Lines[at], newLine); if (LineCount < (at+1)) { LineCount = at+1; } } } }