From: Wayne Davison Date: Sat, 21 Feb 2004 21:36:55 +0000 (+0000) Subject: Complain in the daemon log file if there is an unknown option in the X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/55afbb522c3eccdfb5174a42e9f98b3279a4e0e8 Complain in the daemon log file if there is an unknown option in the "refuse options" value. Also changed the idiom used to mark refused options in the popt struct. --- diff --git a/options.c b/options.c index 64ee6651..afab0e2f 100644 --- a/options.c +++ b/options.c @@ -425,9 +425,15 @@ static void set_refuse_options(char *bp) while (1) { if ((cp = strchr(bp, ' ')) != NULL) *cp= '\0'; - for (op = long_options; op->longName; op++) { + for (op = long_options; ; op++) { + if (!op->longName) { + rprintf(FLOG, + "Unknown option %s in \"refuse options\" setting\n", + bp); + break; + } if (strcmp(bp, op->longName) == 0) { - op->val = -(op - long_options) - 1; + op->val = (op - long_options) + 9000; break; } } @@ -571,10 +577,10 @@ int parse_arguments(int *argc, const char ***argv, int frommain) #endif default: - /* A negative opt value means that set_refuse_options() - * turned this option off (-opt-1 is its index). */ - if (opt < 0) { - struct poptOption *op = &long_options[-opt-1]; + /* A large opt value means that set_refuse_options() + * turned this option off (opt-9000 is its index). */ + if (opt >= 9000) { + struct poptOption *op = &long_options[opt-9000]; int n = snprintf(err_buf, sizeof err_buf, "This server does not support --%s\n", op->longName) - 1;