X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Foptions.c;h=b8a2103ac8a264e7c683801539471a366e94a2d7;hp=223d1fa63a835bfc53b3ebbdfefc8a3faa189a41;hb=b289ec4c473338c67bce0cb5712616da2d2493e8;hpb=b2f8595268e72c1668eb8f2e4d942b6290266db5 diff --git a/pppd/options.c b/pppd/options.c index 223d1fa..b8a2103 100644 --- a/pppd/options.c +++ b/pppd/options.c @@ -1,23 +1,46 @@ /* * options.c - handles option processing for PPP. * - * Copyright (c) 1989 Carnegie Mellon University. - * All rights reserved. + * Copyright (c) 1984-2000 Carnegie Mellon University. All rights reserved. * - * 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 and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by Carnegie Mellon University. The name of the - * University 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. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. The name "Carnegie Mellon University" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For permission or any legal + * details, please contact + * Office of Technology Transfer + * Carnegie Mellon University + * 5000 Forbes Avenue + * Pittsburgh, PA 15213-3890 + * (412) 268-4387, fax: (412) 268-7395 + * tech-transfer@andrew.cmu.edu + * + * 4. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by Computing Services + * at Carnegie Mellon University (http://www.cmu.edu/computing/)." + * + * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO + * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE + * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN + * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define RCSID "$Id: options.c,v 1.84 2002/07/13 06:24:36 kad Exp $" +#define RCSID "$Id: options.c,v 1.91 2003/03/03 05:11:46 paulus Exp $" #include #include @@ -602,6 +625,7 @@ process_option(opt, cmd, argv) int prio = option_priority; option_t *mainopt = opt; + current_option = opt->name; if ((opt->flags & OPT_PRIVFIX) && privileged_option) prio += OPRIO_ROOT; while (mainopt->flags & OPT_PRIOSUB) @@ -653,8 +677,6 @@ process_option(opt, cmd, argv) *(u_char *)(opt->addr2) &= ~v; else if (opt->addr2 && (opt->flags & OPT_A2OR)) *(u_char *)(opt->addr2) |= v; - if (opt->addr3 && (opt->flags & OPT_A3OR)) - *(u_char *)(opt->addr3) |= v; break; case o_int: @@ -677,7 +699,7 @@ process_option(opt, cmd, argv) break; case OPT_LIMITS: option_error("%s value must be%s between %d and %d", - opt->name, opt->lower_limit, opt->upper_limit); + opt->name, zok, opt->lower_limit, opt->upper_limit); break; } return 0; @@ -902,7 +924,9 @@ print_option(opt, mainopt, printer, arg) void (*oprt) __P((option_t *, void ((*)__P((void *, char *, ...))), void *)); - oprt = opt->addr2; + oprt = (void (*) __P((option_t *, + void ((*)__P((void *, char *, ...))), + void *)))opt->addr2; (*oprt)(opt, printer, arg); } else if (opt->flags & OPT_A2STRVAL) { p = (char *) opt->addr2; @@ -1459,7 +1483,6 @@ setdomain(argv) return (1); } - static int setlogfile(argv) char **argv; @@ -1487,6 +1510,7 @@ setlogfile(argv) log_default = 0; return 1; } + #ifdef MAXOCTETS static int setmodir(argv) @@ -1499,7 +1523,7 @@ setmodir(argv) } else if (!strcmp(*argv,"out")) { maxoctets_dir = PPP_OCTETS_DIRECTION_OUT; } else if (!strcmp(*argv,"max")) { - maxoctets_dir = PPP_OCTETS_DIRECTION_MAX; + maxoctets_dir = PPP_OCTETS_DIRECTION_MAXOVERAL; } else { maxoctets_dir = PPP_OCTETS_DIRECTION_SUM; }