Fixed error messages when opening /dev/isdnctrl - /dev/isdn/isdnctrl etc.,

only /dev/isdnctrl was mentioned and people assumed that isdnctrl wasn't
devfs-compliant yet when the open failed due to other reasons.
Zero the phone struct before use.
This commit is contained in:
paul 2002-01-31 19:53:41 +00:00
parent 23ad3f4a9c
commit 8f0ac2615c
1 changed files with 15 additions and 4 deletions

View File

@ -1,4 +1,4 @@
/* $Id: isdnctrl.c,v 1.49 2001/06/11 17:55:58 paul Exp $
/* $Id: isdnctrl.c,v 1.50 2002/01/31 19:53:41 paul Exp $
* ISDN driver for Linux. (Control-Utility)
*
* Copyright 1994,95 by Fritz Elfert (fritz@isdn4linux.de)
@ -21,6 +21,12 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: isdnctrl.c,v $
* Revision 1.50 2002/01/31 19:53:41 paul
* Fixed error messages when opening /dev/isdnctrl - /dev/isdn/isdnctrl etc.,
* only /dev/isdnctrl was mentioned and people assumed that isdnctrl wasn't
* devfs-compliant yet when the open failed due to other reasons.
* Zero the phone struct before use.
*
* Revision 1.49 2001/06/11 17:55:58 paul
* Added 'break' statement after handling data version 5 (otherwise fallthrough
* into data version 6 handling!!)
@ -310,6 +316,10 @@ int set_isdn_net_ioctl_phone(isdn_net_ioctl_phone *ph, char *name,
fprintf(stderr, "phone-number must not exceed %d characters\n", 19);
return -1;
}
/*
* null termination happens automatically because
* we clear the entire struct first
*/
strncpy(ph->phone_5.name, name, sizeof(ph->phone_5.name)-1);
strncpy(ph->phone_5.phone, phone, sizeof(ph->phone_5.phone)-1);
ph->phone_5.outgoing = outflag;
@ -581,11 +591,12 @@ static void statusif(int isdnctrl, char *name, int errexit)
if (isdninfo < 0)
isdninfo = open("/dev/isdninfo", O_RDONLY);
if (isdninfo < 0) {
perror("Can't open /dev/isdninfo");
perror("Can't open /dev/isdninfo or /dev/isdn/isdninfo");
exit(-1);
}
}
memset(&phone, 0, sizeof phone);
set_isdn_net_ioctl_phone(&phone, name, "", 0);
rc = ioctl(isdninfo, IIOCNETGPN, &phone);
if (rc < 0) {
@ -1602,7 +1613,7 @@ void check_version(int report) {
if (fd < 0)
fd = open("/dev/isdninfo", O_RDONLY);
if (fd < 0) {
perror("/dev/isdninfo");
perror("Can't open /dev/isdninfo or /dev/isdn/isdninfo");
exit(-1);
}
data_version = ioctl(fd, IIOCGETDVR, 0);
@ -1750,7 +1761,7 @@ int main(int argc, char **argv)
if (fd < 0)
fd = open("/dev/isdnctrl", O_RDWR);
if (fd < 0) {
perror("/dev/isdnctrl");
perror("Can't open /dev/isdnctrl or /dev/isdn/isdnctrl");
exit(-1);
}