X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fnet_stat.c;h=c8c76404c2b269644fd67575c3ef2ae04008b33f;hb=fc1bd4cf0a46eb594789d5a5f72a7f9427e89431;hp=51cb4b64069c66e0f451e56d3fe955980cedfce3;hpb=e909cdd4eb71d14abbc3e9984ed32863b16007d6;p=monky diff --git a/src/net_stat.c b/src/net_stat.c index 51cb4b6..c8c7640 100644 --- a/src/net_stat.c +++ b/src/net_stat.c @@ -10,7 +10,7 @@ * Please see COPYING for details * * Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen - * Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al. + * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al. * (see AUTHORS) * All rights reserved. * @@ -35,13 +35,15 @@ #include "net/if.h" #include "text_object.h" #include "net_stat.h" +#include #include #include #include +#include /* network interface stuff */ -struct net_stat netstats[16]; +struct net_stat netstats[MAX_NET_INTERFACES]; struct net_stat *get_net_stat(const char *dev, void *free_at_crash1, void *free_at_crash2) { @@ -52,21 +54,21 @@ struct net_stat *get_net_stat(const char *dev, void *free_at_crash1, void *free_ } /* find interface stat */ - for (i = 0; i < 16; i++) { + for (i = 0; i < MAX_NET_INTERFACES; i++) { if (netstats[i].dev && strcmp(netstats[i].dev, dev) == 0) { return &netstats[i]; } } /* wasn't found? add it */ - for (i = 0; i < 16; i++) { + for (i = 0; i < MAX_NET_INTERFACES; i++) { if (netstats[i].dev == 0) { netstats[i].dev = strndup(dev, text_buffer_size); return &netstats[i]; } } - CRIT_ERR(free_at_crash1, free_at_crash2, "too many interfaces used (limit is 16)"); + CRIT_ERR(free_at_crash1, free_at_crash2, "too many interfaces used (limit is %d)", MAX_NET_INTERFACES); return 0; } @@ -204,24 +206,24 @@ void parse_net_stat_graph_arg(struct text_object *obj, const char *arg, void *fr obj->data.opaque = get_net_stat(DEFAULTNETDEV, obj, free_at_crash); } -void print_downspeedgraph(struct text_object *obj, char *p) +void print_downspeedgraph(struct text_object *obj, char *p, int p_max_size) { struct net_stat *ns = obj->data.opaque; - if (!ns) + if (!ns || !p_max_size) return; - new_graph(obj, p, ns->recv_speed / 1024.0); + new_graph(obj, p, p_max_size, ns->recv_speed / 1024.0); } -void print_upspeedgraph(struct text_object *obj, char *p) +void print_upspeedgraph(struct text_object *obj, char *p, int p_max_size) { struct net_stat *ns = obj->data.opaque; - if (!ns) + if (!ns || !p_max_size) return; - new_graph(obj, p, ns->trans_speed / 1024.0); + new_graph(obj, p, p_max_size, ns->trans_speed / 1024.0); } #endif /* X11 */ @@ -303,14 +305,8 @@ void print_wireless_link_bar(struct text_object *obj, char *p, int p_max_size) if (!ns) return; -#ifdef X11 - if(output_methods & TO_X) { - new_bar(obj, p, ((double) ns->link_qual / - ns->link_qual_max) * 255.0); - } else -#endif /* X11 */ - new_bar_in_shell(obj, p, p_max_size, ((double) ns->link_qual / - ns->link_qual_max) * 100.0); + new_bar(obj, p, p_max_size, + ((double) ns->link_qual / ns->link_qual_max) * 255.0); } #endif /* HAVE_IWLIB */ #endif /* __linux__ */ @@ -318,7 +314,7 @@ void print_wireless_link_bar(struct text_object *obj, char *p, int p_max_size) void clear_net_stats(void) { int i; - for (i = 0; i < 16; i++) { + for (i = 0; i < MAX_NET_INTERFACES; i++) { if (netstats[i].dev) { free(netstats[i].dev); } @@ -404,7 +400,7 @@ void free_dns_data(void) memset(&dns_data, 0, sizeof(dns_data)); } -void update_dns_data(void) +int update_dns_data(void) { FILE *fp; char line[256]; @@ -420,7 +416,7 @@ void update_dns_data(void) free_dns_data(); if ((fp = fopen("/etc/resolv.conf", "r")) == NULL) - return; + return 0; while(!feof(fp)) { if (fgets(line, 255, fp) == NULL) { break; @@ -433,6 +429,7 @@ void update_dns_data(void) } } fclose(fp); + return 0; } void parse_nameserver_arg(struct text_object *obj, const char *arg)