]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/sys-solaris.c
A bunch of fixes mostly aimed at fixing the problems we have been
[ppp.git] / pppd / sys-solaris.c
index 10803e2209de67b0a5d59112fdf71ec454853b74..d3675f6296ea7e34aa209e0d01a24042dba0d01a 100644 (file)
@@ -90,7 +90,7 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-#define RCSID  "$Id: sys-solaris.c,v 1.9 2002/12/04 23:03:33 paulus Exp $"
+#define RCSID  "$Id: sys-solaris.c,v 1.10 2003/03/03 05:11:46 paulus Exp $"
 
 #include <limits.h>
 #include <stdio.h>
@@ -1539,24 +1539,27 @@ netif_set_mtu(unit, mtu)
  * tty_send_config - configure the transmit characteristics of
  * the ppp interface.
  */
-void
+int
 tty_send_config(mtu, asyncmap, pcomp, accomp)
     int mtu;
     u_int32_t asyncmap;
     int pcomp, accomp;
 {
     int cf[2];
+    int ret = 0;
 
     link_mtu = mtu;
     if (strioctl(pppfd, PPPIO_MTU, &mtu, sizeof(mtu), 0) < 0) {
        if (hungup && errno == ENXIO)
-           return;
+           return -1;
        error("Couldn't set MTU: %m");
+       ret = -1;
     }
     if (fdmuxid >= 0) {
        if (!sync_serial) {
            if (strioctl(pppfd, PPPIO_XACCM, &asyncmap, sizeof(asyncmap), 0) < 0) {
                error("Couldn't set transmit ACCM: %m");
+               ret = -1;
            }
        }
        cf[0] = (pcomp? COMP_PROT: 0) + (accomp? COMP_AC: 0);
@@ -1564,8 +1567,10 @@ tty_send_config(mtu, asyncmap, pcomp, accomp)
        if (any_compressions() &&
            strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
            error("Couldn't set prot/AC compression: %m");
+           ret = -1;
        }
     }
+    return ret;
 }
 
 /*
@@ -1589,24 +1594,27 @@ tty_set_xaccm(accm)
  * tty_recv_config - configure the receive-side characteristics of
  * the ppp interface.
  */
-void
+int
 tty_recv_config(mru, asyncmap, pcomp, accomp)
     int mru;
     u_int32_t asyncmap;
     int pcomp, accomp;
 {
     int cf[2];
+    int ret = 0;
 
     link_mru = mru;
     if (strioctl(pppfd, PPPIO_MRU, &mru, sizeof(mru), 0) < 0) {
        if (hungup && errno == ENXIO)
-           return;
+           return -1;
        error("Couldn't set MRU: %m");
+       ret = -1;
     }
     if (fdmuxid >= 0) {
        if (!sync_serial) {
            if (strioctl(pppfd, PPPIO_RACCM, &asyncmap, sizeof(asyncmap), 0) < 0) {
                error("Couldn't set receive ACCM: %m");
+               ret = -1;
            }
        }
        cf[0] = (pcomp? DECOMP_PROT: 0) + (accomp? DECOMP_AC: 0);
@@ -1614,8 +1622,10 @@ tty_recv_config(mru, asyncmap, pcomp, accomp)
        if (any_compressions() &&
            strioctl(pppfd, PPPIO_CFLAGS, cf, sizeof(cf), sizeof(int)) < 0) {
            error("Couldn't set prot/AC decompression: %m");
+           ret = -1;
        }
     }
+    return ret;
 }
 
 /*