+ /*
+ * Open the ppp device again and link it under the ip multiplexor.
+ * IP will assign a unit number which hopefully is the same as ifunit.
+ * I don't know any way to be certain they will be the same. :-(
+ */
+ ifd = open("/dev/ppp", O_RDWR, 0);
+ if (ifd < 0) {
+ syslog(LOG_ERR, "Can't open /dev/ppp (2): %m");
+ die(1);
+ }
+ if (ioctl(ifd, I_PUSH, "ip") < 0) {
+ syslog(LOG_ERR, "Can't push IP module: %m");
+ close(ifd);
+ die(1);
+ }
+ ipmuxid = ioctl(ipfd, I_LINK, ifd);
+ close(ifd);
+ if (ipmuxid < 0) {
+ syslog(LOG_ERR, "Can't link PPP device to IP: %m");
+ die(1);
+ }
+