84f29d4df86c237ec0933c56bc9e4d6ad6d3eb13
[openwrt/svn-archive/archive.git] / package / ppp / patches / 101-debian_close_dev_ppp.patch
1 diff -Naur ppp-2.4.4.orig/pppd/sys-linux.c ppp-2.4.4/pppd/sys-linux.c
2 --- ppp-2.4.4.orig/pppd/sys-linux.c 2005-08-26 18:44:35.000000000 -0400
3 +++ ppp-2.4.4/pppd/sys-linux.c 2009-05-07 15:50:00.000000000 -0400
4 @@ -453,6 +453,13 @@
5 if (new_style_driver) {
6 int flags;
7
8 + /* if a ppp_fd is already open, close it first */
9 + if(ppp_fd > 0) {
10 + close(ppp_fd);
11 + remove_fd(ppp_fd);
12 + ppp_fd = -1;
13 + }
14 +
15 /* Open an instance of /dev/ppp and connect the channel to it */
16 if (ioctl(fd, PPPIOCGCHAN, &chindex) == -1) {
17 error("Couldn't get channel number: %m");
18 diff -Naur ppp-2.4.4.orig/pppd/sys-linux.c ppp-2.4.4/pppd/sys-linux.c
19 --- ppp-2.4.4.orig/pppd/sys-linux.c 2005-08-26 18:44:35.000000000 -0400
20 +++ ppp-2.4.4/pppd/sys-linux.c 2009-05-07 15:50:00.000000000 -0400
21 @@ -453,6 +453,13 @@
22 if (new_style_driver) {
23 int flags;
24
25 + /* if a ppp_fd is already open, close it first */
26 + if(ppp_fd > 0) {
27 + close(ppp_fd);
28 + remove_fd(ppp_fd);
29 + ppp_fd = -1;
30 + }
31 +
32 /* Open an instance of /dev/ppp and connect the channel to it */
33 if (ioctl(fd, PPPIOCGCHAN, &chindex) == -1) {
34 error("Couldn't get channel number: %m");