X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/5df1fcf2452b92a48cd520c8363064892334f0d2..e51094b7210fc31fa67cc218c1bd30de841a426e:/options.c diff --git a/options.c b/options.c index 26dfd769..780a2b5b 100644 --- a/options.c +++ b/options.c @@ -23,7 +23,7 @@ extern int sanitize_paths; extern char curr_dir[MAXPATHLEN]; -extern struct exclude_struct **exclude_list; +extern struct exclude_list_struct exclude_list; int make_backups = 0; @@ -183,7 +183,7 @@ static void print_rsync_version(enum logcode f) rprintf(f, " %sIPv6, %d-bit system inums, %d-bit internal inums\n", ipv6, (int) (sizeof dumstat->st_ino * 8), - (int) (sizeof (INO64_T) * 8)); + (int) (sizeof (uint64) * 8)); #ifdef MAINTAINER_MODE rprintf(f, " panic action: \"%s\"\n", get_panic_action()); @@ -290,11 +290,11 @@ void usage(enum logcode F) rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n"); rprintf(F," --write-batch=PREFIX write batch fileset starting with PREFIX\n"); rprintf(F," --read-batch=PREFIX read batch fileset starting with PREFIX\n"); - rprintf(F," -h, --help show this help screen\n"); #ifdef INET6 - rprintf(F," -4 prefer IPv4\n"); - rprintf(F," -6 prefer IPv6\n"); + rprintf(F," -4 --ipv4 prefer IPv4\n"); + rprintf(F," -6 --ipv6 prefer IPv6\n"); #endif + rprintf(F," -h, --help show this help screen\n"); rprintf(F,"\n"); @@ -312,8 +312,8 @@ static struct poptOption long_options[] = { /* longName, shortName, argInfo, argPtr, value, descrip, argDesc */ {"version", 0, POPT_ARG_NONE, 0, OPT_VERSION, 0, 0}, {"suffix", 0, POPT_ARG_STRING, &backup_suffix, 0, 0, 0 }, - {"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 }, - {"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 }, + {"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 }, + {"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 }, {"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 }, {"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 }, {"modify-window", 0, POPT_ARG_INT, &modify_window, OPT_MODIFY_WINDOW, 0, 0 }, @@ -387,14 +387,14 @@ static struct poptOption long_options[] = { {"no-implied-dirs", 0, POPT_ARG_VAL, &implied_dirs, 0, 0, 0 }, {"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 }, #ifdef INET6 - {0, '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 }, - {0, '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 }, + {"ipv4", '4', POPT_ARG_VAL, &default_af_hint, AF_INET, 0, 0 }, + {"ipv6", '6', POPT_ARG_VAL, &default_af_hint, AF_INET6, 0, 0 }, #endif {0,0,0,0, 0, 0, 0} }; -static char err_buf[100]; +static char err_buf[200]; /** @@ -404,15 +404,17 @@ static char err_buf[100]; **/ void option_error(void) { - if (err_buf[0]) { - rprintf(FLOG, "%s", err_buf); - rprintf(FERROR, RSYNC_NAME ": %s", err_buf); - } else { - rprintf (FERROR, "Error parsing options: " - "option may be supported on client but not on server?\n"); - rprintf (FERROR, RSYNC_NAME ": Error parsing options: " - "option may be supported on client but not on server?\n"); + int save_daemon = am_daemon; + + if (!err_buf[0]) { + strcpy(err_buf, "Error parsing options: " + "option may be supported on client but not on server?\n"); } + + rwrite(FLOG, err_buf, strlen(err_buf)); + am_daemon = 0; + rprintf(FERROR, RSYNC_NAME ": %s", err_buf); + am_daemon = save_daemon; } @@ -510,13 +512,12 @@ int parse_arguments(int *argc, const char ***argv, int frommain) break; case OPT_EXCLUDE: - add_exclude(&exclude_list, poptGetOptArg(pc), - ADD_EXCLUDE); + add_exclude(&exclude_list, poptGetOptArg(pc), 0); break; case OPT_INCLUDE: add_exclude(&exclude_list, poptGetOptArg(pc), - ADD_INCLUDE); + XFLG_DEF_INCLUDE); break; case OPT_EXCLUDE_FROM: @@ -524,7 +525,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) if (sanitize_paths) arg = alloc_sanitize_path(arg, curr_dir); add_exclude_file(&exclude_list, arg, - MISSING_FATAL, ADD_EXCLUDE); + XFLG_FATAL_ERRORS); break; case OPT_INCLUDE_FROM: @@ -532,7 +533,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain) if (sanitize_paths) arg = alloc_sanitize_path(arg, curr_dir); add_exclude_file(&exclude_list, arg, - MISSING_FATAL, ADD_INCLUDE); + XFLG_FATAL_ERRORS | XFLG_DEF_INCLUDE); break; case 'h': @@ -581,7 +582,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain) snprintf(err_buf, sizeof err_buf, "hard links are not supported on this %s\n", am_server ? "server" : "client"); - rprintf(FERROR, "ERROR: %s", err_buf); return 0; #endif @@ -614,7 +614,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain) snprintf(err_buf, sizeof err_buf, "symlinks are not supported on this %s\n", am_server ? "server" : "client"); - rprintf(FERROR, "ERROR: %s", err_buf); return 0; } #endif @@ -624,7 +623,6 @@ int parse_arguments(int *argc, const char ***argv, int frommain) snprintf(err_buf, sizeof err_buf, "hard links are not supported on this %s\n", am_server ? "server" : "client"); - rprintf(FERROR, "ERROR: %s", err_buf); return 0; } #endif