]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/plugins/pppoatm/pppoatm.c
pppd: Use a compile test to detect crypt.h (#198)
[ppp.git] / pppd / plugins / pppoatm / pppoatm.c
index f99fd0ad16c1eb6e1b5021c4a0a4f33f7dde03ef..5a3ecd61b6a2c278781ad94151c6e92458b4f77b 100644 (file)
@@ -70,18 +70,20 @@ static int setdevname_pppoatm(const char *cp, const char **argv, int doit)
 {
        struct sockaddr_atmpvc addr;
        extern struct stat devstat;
+
        if (device_got_set)
                return 0;
-       //info("PPPoATM setdevname_pppoatm: '%s'", cp);
+
        memset(&addr, 0, sizeof addr);
        if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
-           T2A_PVC | T2A_NAME) < 0) {
-               if(doit)
-                   info("atm does not recognize: %s", cp);
+           T2A_PVC | T2A_NAME | T2A_WILDCARD) < 0) {
+               if (doit)
+                       info("cannot parse the ATM address: %s", cp);
                return 0;
-           }
-       if (!doit) return 1;
-       //if (!dev_set_ok()) return -1;
+       }
+       if (!doit)
+               return 1;
+
        memcpy(&pvcaddr, &addr, sizeof pvcaddr);
        strlcpy(devnam, cp, sizeof devnam);
        devstat.st_mode = S_IFSOCK;
@@ -93,7 +95,6 @@ static int setdevname_pppoatm(const char *cp, const char **argv, int doit)
                lcp_allowoptions[0].neg_asyncmap = 0;
                lcp_wantoptions[0].neg_pcompression = 0;
        }
-       info("PPPoATM setdevname_pppoatm - SUCCESS:%s", cp);
        device_got_set = 1;
        return 1;
 }
@@ -108,6 +109,7 @@ static void no_device_given_pppoatm(void)
 static void set_line_discipline_pppoatm(int fd)
 {
        struct atm_backend_ppp be;
+
        be.backend_num = ATM_BACKEND_PPP;
        if (!llc_encaps)
                be.encaps = PPPOATM_ENCAPS_VC;
@@ -115,6 +117,7 @@ static void set_line_discipline_pppoatm(int fd)
                be.encaps = PPPOATM_ENCAPS_LLC;
        else
                be.encaps = PPPOATM_ENCAPS_AUTODETECT;
+
        if (ioctl(fd, ATM_SETBACKEND, &be) < 0)
                fatal("ioctl(ATM_SETBACKEND): %m");
 }
@@ -133,8 +136,6 @@ static int connect_pppoatm(void)
        int fd;
        struct atm_qos qos;
 
-       system ("/sbin/modprobe pppoatm");
-
        if (!device_got_set)
                no_device_given_pppoatm();
        fd = socket(AF_ATMPVC, SOCK_DGRAM, 0);
@@ -168,37 +169,9 @@ static void disconnect_pppoatm(void)
        close(pppoa_fd);
 }
 
-static void send_config_pppoa(int mtu,
-                             u_int32_t asyncmap,
-                             int pcomp,
-                             int accomp)
-{
-       int sock;
-       struct ifreq ifr;
-       if (mtu > pppoatm_max_mtu)
-               error("Couldn't increase MTU to %d", mtu);
-       sock = socket(AF_INET, SOCK_DGRAM, 0);
-       if (sock < 0)
-               fatal("Couldn't create IP socket: %m");
-       strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-       ifr.ifr_mtu = mtu;
-       if (ioctl(sock, SIOCSIFMTU, (caddr_t) &ifr) < 0)
-               fatal("ioctl(SIOCSIFMTU): %m");
-       (void) close (sock);
-}
-
-static void recv_config_pppoa(int mru,
-                             u_int32_t asyncmap,
-                             int pcomp,
-                             int accomp)
-{
-       if (mru > pppoatm_max_mru)
-               error("Couldn't increase MRU to %d", mru);
-}
-
 void plugin_init(void)
 {
-#if defined(__linux__)
+#ifdef linux
        extern int new_style_driver;    /* From sys-linux.c */
        if (!ppp_available() && !new_style_driver)
                fatal("Kernel doesn't support ppp_generic - "
@@ -206,9 +179,9 @@ void plugin_init(void)
 #else
        fatal("No PPPoATM support on this OS");
 #endif
-       info("PPPoATM plugin_init");
        add_options(pppoa_options);
 }
+
 struct channel pppoa_channel = {
     options: pppoa_options,
     process_extra_options: NULL,
@@ -217,8 +190,8 @@ struct channel pppoa_channel = {
     disconnect: &disconnect_pppoatm,
     establish_ppp: &generic_establish_ppp,
     disestablish_ppp: &generic_disestablish_ppp,
-    send_config: &send_config_pppoa,
-    recv_config: &recv_config_pppoa,
+    send_config: NULL,
+    recv_config: NULL,
     close: NULL,
     cleanup: NULL
 };