* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#define RCSID "$Id: options.c,v 1.79 2001/03/08 05:11:15 paulus Exp $"
+#define RCSID "$Id: options.c,v 1.83 2002/04/02 13:54:59 dfs Exp $"
#include <ctype.h>
#include <stdio.h>
}
if (!process_option(opt, w0->word, argv))
goto err;
+ w = w->next;
}
ret = 1;
*(bool *)(opt->addr) = v;
if (opt->addr2 && (opt->flags & OPT_A2COPY))
*(bool *)(opt->addr2) = v;
+ else if (opt->addr2 && (opt->flags & OPT_A2CLR))
+ *(bool *)(opt->addr2) = 0;
+ else if (opt->addr2 && (opt->flags & OPT_A2CLRB))
+ *(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:
}
if (opt->addr2 && (opt->flags & (OPT_A2COPY|OPT_ENABLE
- |OPT_A2PRINTER|OPT_A2STRVAL|OPT_A2LIST)) == 0)
+ |OPT_A2PRINTER|OPT_A2STRVAL|OPT_A2LIST|OPT_A2OR)) == 0)
*(bool *)(opt->addr2) = !(opt->flags & OPT_A2CLR);
mainopt->source = option_source;
case o_bool:
v = opt->flags & OPT_VALUE;
if (*(bool *)opt->addr != v)
- printer(arg, "oops, %s value is %d not %d?\n",
- opt->name, *(bool *)opt->addr, v);
+ /* this can happen legitimately, e.g. lock
+ option turned off for default device */
+ break;
printer(arg, "%s", opt->name);
break;
case o_int:
struct option_list *list;
int i;
+ printer(arg, "pppd options in effect:\n");
print_option_list(general_options, printer, arg);
print_option_list(auth_options, printer, arg);
for (list = extra_options; list != NULL; list = list->next)
warn("Warning: plugin %s has no version information", arg);
} else if (strcmp(vers, VERSION) != 0) {
option_error("Plugin %s is for pppd version %s, this is %s",
- vers, VERSION);
+ arg, vers, VERSION);
goto errclose;
}
info("Plugin %s loaded.", arg);