From 0daf65ef73ec2089aa16c12e2cd4e1c109f3a865 Mon Sep 17 00:00:00 2001 From: Martin Baulig Date: Sun, 6 Feb 2000 13:36:45 +0000 Subject: [PATCH] Make this work with multiple ISDN devices. 2000-02-06 Martin Baulig * ppp.c: Make this work with multiple ISDN devices. --- sysdeps/linux/ChangeLog | 4 ++++ sysdeps/linux/ppp.c | 29 ++++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/sysdeps/linux/ChangeLog b/sysdeps/linux/ChangeLog index fda368d0..840d5442 100644 --- a/sysdeps/linux/ChangeLog +++ b/sysdeps/linux/ChangeLog @@ -1,3 +1,7 @@ +2000-02-06 Martin Baulig + + * ppp.c: Make this work with multiple ISDN devices. + 2000-01-22 Martin Baulig * Makefile.am: Install the library in $(backenddir). diff --git a/sysdeps/linux/ppp.c b/sysdeps/linux/ppp.c index ec70ecdd..877e8c92 100644 --- a/sysdeps/linux/ppp.c +++ b/sysdeps/linux/ppp.c @@ -177,13 +177,11 @@ is_ISDN_on (glibtop *server, int device, int *online) p = buffer+6; - while (*p) { + for (i = 0; i <= device; i++) { char *end = p; - if (isspace (*p)) { + while (isspace (*p)) p++; - continue; - } for (end = p; *end && !isspace (*end); end++) ; @@ -191,23 +189,32 @@ is_ISDN_on (glibtop *server, int device, int *online) if (*end == 0) break; else - *end = 0; + *end++ = 0; - if (!strcmp (p, "?") || !strcmp (p, "0")) { - p = end+1; + if (i < device) { + p = end; continue; } fclose (f); - *online = TRUE; - return TRUE; + if (strlen (p) != 1) + return FALSE; + + if (*p == '0') { + *online = FALSE; + return TRUE; + } else if (*p == '1') { + *online = TRUE; + return TRUE; + } + + return FALSE; } fclose (f); - *online = FALSE; - return TRUE; + return FALSE; } static int