* 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.
*
#include "net/if.h"
#include "text_object.h"
#include "net_stat.h"
+#include <netinet/in.h>
#include <errno.h>
#include <string.h>
#include <sys/ioctl.h>
+#include <unistd.h>
/* 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)
{
}
/* 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;
}
void parse_net_stat_graph_arg(struct text_object *obj, const char *arg, void *free_at_crash)
{
char *buf = 0;
- SIZE_DEFAULTS(graph);
- buf = scan_graph(arg, &obj->a, &obj->b, &obj->c, &obj->d,
- &obj->e, &obj->char_a, &obj->char_b);
+ buf = scan_graph(obj, arg, 0);
// default to DEFAULTNETDEV
if (buf) {
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(p, obj->a, obj->b, obj->c, obj->d,
- ns->recv_speed / 1024.0, obj->e, 1, obj->char_a, obj->char_b);
+ 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(p, obj->a, obj->b, obj->c, obj->d,
- ns->trans_speed / 1024.0, obj->e, 1, obj->char_a, obj->char_b);
+ new_graph(obj, p, p_max_size, ns->trans_speed / 1024.0);
}
#endif /* X11 */
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__ */
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);
}
memset(&dns_data, 0, sizeof(dns_data));
}
-void update_dns_data(void)
+int update_dns_data(void)
{
FILE *fp;
char line[256];
free_dns_data();
if ((fp = fopen("/etc/resolv.conf", "r")) == NULL)
- return;
+ return 0;
while(!feof(fp)) {
if (fgets(line, 255, fp) == NULL) {
break;
}
}
fclose(fp);
+ return 0;
}
void parse_nameserver_arg(struct text_object *obj, const char *arg)