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?hp=27ed20f7a086fa62e84d4cdac278555e70b207eb 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;