+ if (server_exclude_list.head && !am_sender) {
+ struct exclude_list_struct *elp = &server_exclude_list;
+ if (tmpdir) {
+ clean_fname(tmpdir);
+ if (check_exclude(elp, tmpdir, 1) < 0)
+ goto options_rejected;
+ }
+ if (partial_dir) {
+ clean_fname(partial_dir);
+ if (check_exclude(elp, partial_dir, 1) < 0)
+ goto options_rejected;
+ }
+ if (compare_dest) {
+ clean_fname(compare_dest);
+ if (check_exclude(elp, compare_dest, 1) < 0)
+ goto options_rejected;
+ }
+ if (backup_dir) {
+ clean_fname(backup_dir);
+ if (check_exclude(elp, backup_dir, 1) < 0)
+ goto options_rejected;
+ }
+ }
+ if (server_exclude_list.head && files_from) {
+ clean_fname(files_from);
+ if (check_exclude(&server_exclude_list, files_from, 0) < 0) {
+ options_rejected:
+ snprintf(err_buf, sizeof err_buf,
+ "Your options have been rejected by the server.\n");
+ return 0;
+ }
+ }