aboutsummaryrefslogtreecommitdiffstats
path: root/plugin_netdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugin_netdev.c')
-rw-r--r--plugin_netdev.c237
1 files changed, 124 insertions, 113 deletions
diff --git a/plugin_netdev.c b/plugin_netdev.c
index a989a0f..6d5d430 100644
--- a/plugin_netdev.c
+++ b/plugin_netdev.c
@@ -1,4 +1,4 @@
-/* $Id: plugin_netdev.c,v 1.13 2005/01/18 06:30:23 reinelt Exp $
+/* $Id: plugin_netdev.c,v 1.14 2005/05/08 04:32:44 reinelt Exp $
*
* plugin for /proc/net/dev parsing
*
@@ -23,6 +23,9 @@
*
*
* $Log: plugin_netdev.c,v $
+ * Revision 1.14 2005/05/08 04:32:44 reinelt
+ * CodingStyle added and applied
+ *
* Revision 1.13 2005/01/18 06:30:23 reinelt
* added (C) to all copyright statements
*
@@ -108,132 +111,140 @@ static HASH NetDev;
static FILE *Stream = NULL;
static char *DELIMITER = " :|\t\n";
-static int parse_netdev (void)
+static int parse_netdev(void)
{
- int age;
- int row, col;
- static int first_time = 1;
-
- /* reread every 10 msec only */
- age = hash_age(&NetDev, NULL);
- if (age > 0 && age <= 10) return 0;
-
- if (Stream == NULL) Stream = fopen("/proc/net/dev", "r");
- if (Stream == NULL) {
- error ("fopen(/proc/net/dev) failed: %s", strerror(errno));
- return -1;
- }
-
- rewind(Stream);
- row = 0;
-
- while (!feof(Stream)) {
- char buffer[256];
- char dev[16];
- char *beg, *end;
- unsigned int len;
-
- if (fgets (buffer, sizeof(buffer), Stream) == NULL) break;
-
- switch (++row) {
-
- case 1:
- /* skip row 1 */
- continue;
-
- case 2:
- /* row 2 used for headers */
- if (first_time) {
- char *RxTx = strrchr(buffer, '|');
- first_time = 0;
- col = 0;
- beg = buffer;
- while (beg) {
- char key[32];
-
- while (strchr(DELIMITER, *beg)) beg++;
- if ((end = strpbrk(beg, DELIMITER)) != NULL) *end = '\0';
- qprintf(key, sizeof(key), "%s_%s", beg < RxTx ? "Rx" : "Tx", beg);
- hash_set_column (&NetDev, col++, key);
- beg = end ? end + 1 : NULL;
+ int age;
+ int row, col;
+ static int first_time = 1;
+
+ /* reread every 10 msec only */
+ age = hash_age(&NetDev, NULL);
+ if (age > 0 && age <= 10)
+ return 0;
+
+ if (Stream == NULL)
+ Stream = fopen("/proc/net/dev", "r");
+ if (Stream == NULL) {
+ error("fopen(/proc/net/dev) failed: %s", strerror(errno));
+ return -1;
+ }
+
+ rewind(Stream);
+ row = 0;
+
+ while (!feof(Stream)) {
+ char buffer[256];
+ char dev[16];
+ char *beg, *end;
+ unsigned int len;
+
+ if (fgets(buffer, sizeof(buffer), Stream) == NULL)
+ break;
+
+ switch (++row) {
+
+ case 1:
+ /* skip row 1 */
+ continue;
+
+ case 2:
+ /* row 2 used for headers */
+ if (first_time) {
+ char *RxTx = strrchr(buffer, '|');
+ first_time = 0;
+ col = 0;
+ beg = buffer;
+ while (beg) {
+ char key[32];
+
+ while (strchr(DELIMITER, *beg))
+ beg++;
+ if ((end = strpbrk(beg, DELIMITER)) != NULL)
+ *end = '\0';
+ qprintf(key, sizeof(key), "%s_%s", beg < RxTx ? "Rx" : "Tx", beg);
+ hash_set_column(&NetDev, col++, key);
+ beg = end ? end + 1 : NULL;
+ }
+ }
+ continue;
+
+ default:
+ /* fetch interface name (1st column) as key */
+ beg = buffer;
+ while (*beg && *beg == ' ')
+ beg++;
+ end = beg + 1;
+ while (*end && *end != ':')
+ end++;
+ len = end - beg;
+ if (len >= sizeof(dev))
+ len = sizeof(dev) - 1;
+ strncpy(dev, beg, len);
+ dev[len] = '\0';
+
+ hash_put_delta(&NetDev, dev, buffer);
}
- }
- continue;
-
- default:
- /* fetch interface name (1st column) as key */
- beg = buffer;
- while (*beg && *beg == ' ') beg++;
- end = beg + 1;
- while (*end && *end != ':') end++;
- len = end - beg;
- if (len >= sizeof(dev)) len = sizeof(dev)-1;
- strncpy (dev, beg, len);
- dev[len] = '\0';
-
- hash_put_delta (&NetDev, dev, buffer);
}
- }
-
- return 0;
-}
-static void my_netdev (RESULT *result, RESULT *arg1, RESULT *arg2, RESULT *arg3)
+ return 0;
+}
+
+static void my_netdev(RESULT * result, RESULT * arg1, RESULT * arg2, RESULT * arg3)
{
- char *dev, *key;
- int delay;
- double value;
-
- if (parse_netdev()<0) {
- SetResult(&result, R_STRING, "");
- return;
- }
-
- dev = R2S(arg1);
- key = R2S(arg2);
- delay = R2N(arg3);
-
- value = hash_get_regex(&NetDev, dev, key, delay);
-
- SetResult(&result, R_NUMBER, &value);
+ char *dev, *key;
+ int delay;
+ double value;
+
+ if (parse_netdev() < 0) {
+ SetResult(&result, R_STRING, "");
+ return;
+ }
+
+ dev = R2S(arg1);
+ key = R2S(arg2);
+ delay = R2N(arg3);
+
+ value = hash_get_regex(&NetDev, dev, key, delay);
+
+ SetResult(&result, R_NUMBER, &value);
}
-static void my_netdev_fast(RESULT *result, RESULT *arg1, RESULT *arg2, RESULT *arg3)
+static void my_netdev_fast(RESULT * result, RESULT * arg1, RESULT * arg2, RESULT * arg3)
{
- char *dev, *key;
- int delay;
- double value;
-
- if (parse_netdev()<0) {
- SetResult(&result, R_STRING, "");
- return;
- }
-
- dev = R2S(arg1);
- key = R2S(arg2);
- delay = R2N(arg3);
-
- value = hash_get_delta(&NetDev, dev, key, delay);
-
- SetResult(&result, R_NUMBER, &value);
+ char *dev, *key;
+ int delay;
+ double value;
+
+ if (parse_netdev() < 0) {
+ SetResult(&result, R_STRING, "");
+ return;
+ }
+
+ dev = R2S(arg1);
+ key = R2S(arg2);
+ delay = R2N(arg3);
+
+ value = hash_get_delta(&NetDev, dev, key, delay);
+
+ SetResult(&result, R_NUMBER, &value);
}
-int plugin_init_netdev (void)
+int plugin_init_netdev(void)
{
- hash_create(&NetDev);
- hash_set_delimiter (&NetDev, " :|\t\n");
+ hash_create(&NetDev);
+ hash_set_delimiter(&NetDev, " :|\t\n");
- AddFunction ("netdev", 3, my_netdev);
- AddFunction ("netdev::fast", 3, my_netdev_fast);
- return 0;
+ AddFunction("netdev", 3, my_netdev);
+ AddFunction("netdev::fast", 3, my_netdev_fast);
+ return 0;
}
-void plugin_exit_netdev(void)
+void plugin_exit_netdev(void)
{
- if(Stream!=NULL) {
- fclose (Stream);
- Stream=NULL;
- }
- hash_destroy(&NetDev);
+ if (Stream != NULL) {
+ fclose(Stream);
+ Stream = NULL;
+ }
+ hash_destroy(&NetDev);
}