]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/ipv6cp.c
only accept frame if it passes the pass filter as well as the
[ppp.git] / pppd / ipv6cp.c
index f444348f8dcbd1dfbfb7fa5b6d8776528dbd7fd4..d2a698fb64420c603ac6e38d8a355db6cbfb3869 100644 (file)
@@ -2,19 +2,14 @@
     ipv6cp.c - PPP IPV6 Control Protocol.
     Copyright (C) 1999  Tommi Komulainen <Tommi.Komulainen@iki.fi>
 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+    Redistribution and use in source and binary forms are permitted
+    provided that the above copyright notice and this paragraph are
+    duplicated in all such forms.  The name of the author may not be
+    used to endorse or promote products derived from this software
+    without specific prior written permission.
+    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+    WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */
 
 /*  Original version, based on RFC2023 :
  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  *
- * $Id: ipv6cp.c,v 1.6 1999/09/30 19:57:45 masputra Exp $ 
+ * $Id: ipv6cp.c,v 1.11 2000/08/05 06:46:47 paulus Exp $ 
  */
 
-#define RCSID  "$Id: ipv6cp.c,v 1.6 1999/09/30 19:57:45 masputra Exp $"
+#define RCSID  "$Id: ipv6cp.c,v 1.11 2000/08/05 06:46:47 paulus Exp $"
 
 /*
  * TODO: 
@@ -179,7 +174,7 @@ static fsm_callbacks ipv6cp_callbacks = { /* IPV6CP callback routines */
 static int setifaceid __P((char **arg));
 
 static option_t ipv6cp_option_list[] = {
-    { "ipv6", o_special, setifaceid,
+    { "ipv6", o_special, (void *)setifaceid,
       "Set interface identifiers for IPV6" },
     { "noipv6", o_bool, &ipv6cp_protent.enabled_flag,
       "Disable IPv6 and IPv6CP" },
@@ -916,14 +911,14 @@ ipv6cp_reqci(f, inp, len, reject_if_disagree)
                orc = CONFREJ;
                break;
            }
-#else
-           orc = CONFREJ;
-           break;
-#endif
 
            ho->neg_vj = 1;
            ho->vj_protocol = cishort;
            break;
+#else
+           orc = CONFREJ;
+           break;
+#endif
 
        default:
            orc = CONFREJ;
@@ -1120,8 +1115,8 @@ ipv6cp_up(f)
            return;
        }
     }
-    script_setenv("LLLOCAL", llv6_ntoa(go->ourid));
-    script_setenv("LLREMOTE", llv6_ntoa(ho->hisid));
+    script_setenv("LLLOCAL", llv6_ntoa(go->ourid), 0);
+    script_setenv("LLREMOTE", llv6_ntoa(ho->hisid), 0);
 
 #ifdef IPV6CP_COMP
     /* set tcp compression */
@@ -1203,12 +1198,6 @@ ipv6cp_up(f)
     np_up(f->unit, PPP_IPV6);
     ipv6cp_is_up = 1;
 
-    /*
-     * In Solaris, neighbor discovery and router advertisement are done
-     * automatically by in.ndpd daemon when the interface comes up or down
-     * and /etc/inet/ndpd.conf is configured properly
-     */
-#if !defined(SOL2)
     /*
      * Execute the ipv6-up script, like this:
      * /etc/ppp/ipv6-up interface tty speed local-LL remote-LL
@@ -1217,7 +1206,6 @@ ipv6cp_up(f)
        ipv6cp_script_state = s_up;
        ipv6cp_script(_PATH_IPV6UP);
     }
-#endif /* !defined(SOL2) */
 }
 
 
@@ -1264,18 +1252,11 @@ ipv6cp_down(f)
 #endif
     }
 
-    /*
-     * In Solaris, neighbor discovery and router advertisement are done
-     * automatically by in.ndpd daemon when the interface comes up or down
-     * and /etc/inet/ndpd.conf is configured properly
-     */
-#if !defined(SOL2)
     /* Execute the ipv6-down script */
     if (ipv6cp_script_state == s_up && ipv6cp_script_pid == 0) {
        ipv6cp_script_state = s_down;
        ipv6cp_script(_PATH_IPV6DOWN);
     }
-#endif /* !defined(SOL2) */
 }
 
 
@@ -1437,7 +1418,7 @@ ipv6cp_printpkt(p, plen, printer, arg)
     case TERMREQ:
        if (len > 0 && *p >= ' ' && *p < 0x7f) {
            printer(arg, " ");
-           print_string(p, len, printer, arg);
+           print_string((char *)p, len, printer, arg);
            p += len;
            len = 0;
        }