From dbf5d92605a9db10e3e3cb154d03a515c5d5c5af Mon Sep 17 00:00:00 2001 From: reinelt Date: Sun, 8 May 2005 04:32:45 +0000 Subject: [lcd4linux @ 2005-05-08 04:32:43 by reinelt] CodingStyle added and applied git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@547 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- plugin_isdn.c | 275 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 143 insertions(+), 132 deletions(-) (limited to 'plugin_isdn.c') diff --git a/plugin_isdn.c b/plugin_isdn.c index 3010d4c..7f28a5b 100644 --- a/plugin_isdn.c +++ b/plugin_isdn.c @@ -1,4 +1,4 @@ -/* $Id: plugin_isdn.c,v 1.6 2005/01/18 06:30:23 reinelt Exp $ +/* $Id: plugin_isdn.c,v 1.7 2005/05/08 04:32:44 reinelt Exp $ * * plugin for ISDN subsystem * @@ -26,6 +26,9 @@ * * * $Log: plugin_isdn.c,v $ + * Revision 1.7 2005/05/08 04:32:44 reinelt + * CodingStyle added and applied + * * Revision 1.6 2005/01/18 06:30:23 reinelt * added (C) to all copyright statements * @@ -86,8 +89,8 @@ typedef struct { - unsigned long in; - unsigned long out; + unsigned long in; + unsigned long out; } CPS; @@ -95,178 +98,186 @@ static HASH ISDN_INFO; static HASH ISDN_CPS; -static void hash_put_info (const char *name, const int channel, const char *val) +static void hash_put_info(const char *name, const int channel, const char *val) { - char key[16]; + char key[16]; - qprintf (key, sizeof(key), "%s[%d]", name, channel); - hash_put (&ISDN_INFO, key, val); + qprintf(key, sizeof(key), "%s[%d]", name, channel); + hash_put(&ISDN_INFO, key, val); } -static int parse_isdninfo (void) +static int parse_isdninfo(void) { - int age; - FILE *stream; - long flags; - - /* reread every 10 msec only */ - age = hash_age(&ISDN_INFO, NULL); - if (age > 0 && age <= 10) return 0; - - /* open file */ - stream = fopen ("/dev/isdninfo", "r"); - if (stream == NULL) { - error ("open(/dev/isdninfo) failed: %s", strerror(errno)); - return -1; - } - - /* get flags */ - flags = fcntl(fileno(stream), F_GETFL); - if (flags < 0) { - error ("fcntl(/dev/isdninfo, F_GETFL) failed: %s", strerror(errno)); - return -1; - } - - /* set O_NONBLOCK */ - if (fcntl (fileno(stream), F_SETFL, flags | O_NONBLOCK) < 0) { - error ("fcntl(/dev/isdninfo, F_SETFL, O_NONBLOCK) failed: %s", strerror(errno)); - return -1; - } - - while (!feof(stream)) { - char buffer[4096]; - char *beg, *end; - if (fgets (buffer, sizeof(buffer), stream) == NULL) break; - beg = strchr(buffer, ':'); - if (beg!=NULL) { - char delim[] = " \t\n"; - int i = 0; - *beg++ = '\0'; - while (*beg && strchr(delim, *beg)) beg++; - while (beg && *beg) { - if ((end = strpbrk(beg, delim))) *end = '\0'; - hash_put_info(buffer, i, beg); - beg = end ? end+1 : NULL; - while (*beg && strchr(delim, *beg)) beg++; - i++; - } - } else { - error ("Huh? no colon found in <%s>", buffer); + int age; + FILE *stream; + long flags; + + /* reread every 10 msec only */ + age = hash_age(&ISDN_INFO, NULL); + if (age > 0 && age <= 10) + return 0; + + /* open file */ + stream = fopen("/dev/isdninfo", "r"); + if (stream == NULL) { + error("open(/dev/isdninfo) failed: %s", strerror(errno)); + return -1; + } + + /* get flags */ + flags = fcntl(fileno(stream), F_GETFL); + if (flags < 0) { + error("fcntl(/dev/isdninfo, F_GETFL) failed: %s", strerror(errno)); + return -1; + } + + /* set O_NONBLOCK */ + if (fcntl(fileno(stream), F_SETFL, flags | O_NONBLOCK) < 0) { + error("fcntl(/dev/isdninfo, F_SETFL, O_NONBLOCK) failed: %s", strerror(errno)); + return -1; } - } - fclose (stream); + while (!feof(stream)) { + char buffer[4096]; + char *beg, *end; + if (fgets(buffer, sizeof(buffer), stream) == NULL) + break; + beg = strchr(buffer, ':'); + if (beg != NULL) { + char delim[] = " \t\n"; + int i = 0; + *beg++ = '\0'; + while (*beg && strchr(delim, *beg)) + beg++; + while (beg && *beg) { + if ((end = strpbrk(beg, delim))) + *end = '\0'; + hash_put_info(buffer, i, beg); + beg = end ? end + 1 : NULL; + while (*beg && strchr(delim, *beg)) + beg++; + i++; + } + } else { + error("Huh? no colon found in <%s>", buffer); + } + } + + fclose(stream); - return 0; -} + return 0; +} -static void my_isdn_info (RESULT *result, RESULT *arg1, RESULT *arg2) +static void my_isdn_info(RESULT * result, RESULT * arg1, RESULT * arg2) { - char key[16], *val; - - if (parse_isdninfo()<0) { - SetResult(&result, R_STRING, ""); - return; - } - - qprintf(key, sizeof(key), "%s[%d]", R2S(arg1), (int)R2N(arg2)); - val = hash_get(&ISDN_INFO, key, NULL); - if (val == NULL) val = ""; - SetResult(&result, R_STRING, val); + char key[16], *val; + + if (parse_isdninfo() < 0) { + SetResult(&result, R_STRING, ""); + return; + } + + qprintf(key, sizeof(key), "%s[%d]", R2S(arg1), (int) R2N(arg2)); + val = hash_get(&ISDN_INFO, key, NULL); + if (val == NULL) + val = ""; + SetResult(&result, R_STRING, val); } #ifdef HAVE_LINUX_ISDN_H -static void hash_put_cps (const int channel, const CPS *cps) +static void hash_put_cps(const int channel, const CPS * cps) { - char key[16], val[16]; + char key[16], val[16]; - qprintf (key, sizeof(key), channel < 0 ? "i" : "i%d", channel); - qprintf (val, sizeof(val), "%u", cps->in); - hash_put_delta (&ISDN_CPS, key, val); + qprintf(key, sizeof(key), channel < 0 ? "i" : "i%d", channel); + qprintf(val, sizeof(val), "%u", cps->in); + hash_put_delta(&ISDN_CPS, key, val); - qprintf (key, sizeof(key), channel < 0 ? "o" : "o%d", channel); - qprintf (val, sizeof(val), "%u", cps->out); - hash_put_delta (&ISDN_CPS, key, val); + qprintf(key, sizeof(key), channel < 0 ? "o" : "o%d", channel); + qprintf(val, sizeof(val), "%u", cps->out); + hash_put_delta(&ISDN_CPS, key, val); } static int get_cps(void) { - int age, i; - static int fd = -2; - CPS cps[ISDN_MAX_CHANNELS]; - CPS sum; - - /* reread every 10 msec only */ - age = hash_age(&ISDN_CPS, NULL); - if (age > 0 && age <= 10) return 0; - - if (fd == -1) return -1; - - if (fd == -2) { - fd = open("/dev/isdninfo", O_RDONLY | O_NDELAY); - if (fd == -1) { - error ("open(/dev/isdninfo) failed: %s", strerror(errno)); - return -1; + int age, i; + static int fd = -2; + CPS cps[ISDN_MAX_CHANNELS]; + CPS sum; + + /* reread every 10 msec only */ + age = hash_age(&ISDN_CPS, NULL); + if (age > 0 && age <= 10) + return 0; + + if (fd == -1) + return -1; + + if (fd == -2) { + fd = open("/dev/isdninfo", O_RDONLY | O_NDELAY); + if (fd == -1) { + error("open(/dev/isdninfo) failed: %s", strerror(errno)); + return -1; + } + } + + if (ioctl(fd, IIOCGETCPS, &cps)) { + error("ioctl(IIOCGETCPS) failed: %s", strerror(errno)); + fd = -1; + return -1; + } + + sum.in = 0; + sum.out = 0; + for (i = 0; i < ISDN_MAX_CHANNELS; i++) { + sum.in += cps[i].in; + sum.out += cps[i].out; + hash_put_cps(i, &cps[i]); } - } - - if (ioctl(fd, IIOCGETCPS, &cps)) { - error("ioctl(IIOCGETCPS) failed: %s", strerror(errno)); - fd = -1; - return -1; - } - - sum.in = 0; - sum.out = 0; - for (i = 0; i < ISDN_MAX_CHANNELS; i++) { - sum.in += cps[i].in; - sum.out += cps[i].out; - hash_put_cps (i, &cps[i]); - } - hash_put_cps (-1, &sum); - - return 0; + hash_put_cps(-1, &sum); + + return 0; } -static void my_isdn_cps (RESULT *result, RESULT *arg1, RESULT *arg2) +static void my_isdn_cps(RESULT * result, RESULT * arg1, RESULT * arg2) { - double value; - - if (get_cps()<0) { - SetResult(&result, R_STRING, ""); - return; - } - - value = hash_get_delta(&ISDN_CPS, R2S(arg1), NULL, R2N(arg2)); - SetResult(&result, R_NUMBER, &value); + double value; + + if (get_cps() < 0) { + SetResult(&result, R_STRING, ""); + return; + } + + value = hash_get_delta(&ISDN_CPS, R2S(arg1), NULL, R2N(arg2)); + SetResult(&result, R_NUMBER, &value); } #endif -int plugin_init_isdn (void) +int plugin_init_isdn(void) { - hash_create(&ISDN_INFO); - hash_create(&ISDN_CPS); + hash_create(&ISDN_INFO); + hash_create(&ISDN_CPS); - AddFunction ("isdn::info", 2, my_isdn_info); + AddFunction("isdn::info", 2, my_isdn_info); #ifdef HAVE_LINUX_ISDN_H - AddFunction ("isdn::cps", 2, my_isdn_cps); + AddFunction("isdn::cps", 2, my_isdn_cps); #endif - return 0; + return 0; } -void plugin_exit_isdn(void) +void plugin_exit_isdn(void) { - hash_destroy(&ISDN_INFO); - hash_destroy(&ISDN_CPS); + hash_destroy(&ISDN_INFO); + hash_destroy(&ISDN_CPS); } -- cgit v1.2.3