]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/sys-linux.c
pppd: Fix variable reference syntax in Makefile.linux
[ppp.git] / pppd / sys-linux.c
index b4a435d2a99368bdb48316c798961f1be8f08147..eedcb53b06923d3e39459551b0a2f594d99f8b47 100644 (file)
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/time.h>
-#include <sys/errno.h>
 #include <sys/file.h>
 #include <sys/stat.h>
 #include <sys/utsname.h>
 #include <sys/sysmacros.h>
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <syslog.h>
 #define MAX_ADDR_LEN 7
 #endif
 
-#if __GLIBC__ >= 2
+#if !defined(__GLIBC__) || __GLIBC__ >= 2
 #include <asm/types.h>         /* glibc 2 conflicts with linux/types.h */
 #include <net/if.h>
 #include <net/if_arp.h>
@@ -643,6 +643,21 @@ static int make_ppp_unit()
        }
        if (x < 0)
                error("Couldn't create new ppp unit: %m");
+
+       if (x == 0 && req_ifname[0] != '\0') {
+               struct ifreq ifr;
+               char t[MAXIFNAMELEN];
+               memset(&ifr, 0, sizeof(struct ifreq));
+               slprintf(t, sizeof(t), "%s%d", PPP_DRV_NAME, ifunit);
+               strncpy(ifr.ifr_name, t, IF_NAMESIZE);
+               strncpy(ifr.ifr_newname, req_ifname, IF_NAMESIZE);
+               x = ioctl(sock_fd, SIOCSIFNAME, &ifr);
+               if (x < 0)
+                   error("Couldn't rename interface %s to %s: %m", t, req_ifname);
+               else
+                   info("Renamed interface %s to %s", t, req_ifname);
+       }
+
        return x;
 }
 
@@ -2152,7 +2167,6 @@ int ppp_available(void)
                }
            }
 
-           close (s);
            if (!ok) {
                slprintf(route_buffer, sizeof(route_buffer),
                         "Sorry - PPP driver version %d.%d.%d is out of date\n",
@@ -2162,6 +2176,7 @@ int ppp_available(void)
            }
        }
     }
+    close(s);
     return ok;
 }
 
@@ -2638,7 +2653,10 @@ get_pty(master_fdp, slave_fdp, slave_name, uid)
                warn("Couldn't unlock pty slave %s: %m", pty_name);
 #endif
            if ((sfd = open(pty_name, O_RDWR | O_NOCTTY)) < 0)
+           {
                warn("Couldn't open pty slave %s: %m", pty_name);
+               close(mfd);
+           }
        }
     }
 #endif /* TIOCGPTN */