]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/sys-linux.c
pppd: Workaround for generating ppp unit id on Linux (#355)
[ppp.git] / pppd / sys-linux.c
index e7f851c02512394cc1ebe5b63f771eb4890846b4..c5ba49d6e1fed38177c657dc02849af9b518b677 100644 (file)
@@ -878,6 +878,11 @@ static int make_ppp_unit(void)
                ifunit = -1;
                x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &ifunit);
        }
+       if (x < 0 && errno == EEXIST) {
+               srand(time(NULL) * getpid());
+               ifunit = rand() % 10000;
+               x = ioctl(ppp_dev_fd, PPPIOCNEWUNIT, &ifunit);
+       }
        if (x < 0)
                error("Couldn't create new ppp unit: %m");