extern int remote_protocol;
extern int protocol_version;
extern int io_timeout;
+extern int select_timeout;
extern int orig_umask;
extern int no_detach;
extern int default_af_hint;
extern struct exclude_list_struct server_exclude_list;
extern char *exclude_path_prefix;
extern char *config_file;
+extern char *files_from;
char *auth_user;
*p = '\0';
}
+ if (rsync_port == 0)
+ rsync_port = RSYNC_PORT;
+
fd = open_socket_out_wrapped(host, rsync_port, bind_address,
default_af_hint);
if (fd == -1)
* get the error back to the client. This means getting
* the protocol setup finished first in later versions. */
setup_protocol(f_out, f_in);
+ if (files_from && !am_sender && strcmp(files_from, "-") != 0)
+ write_byte(f_out, 0);
io_start_multiplex_out();
}
exit_cleanup(RERR_UNSUPPORTED);
}
- if (lp_timeout(i))
+ if (lp_timeout(i)) {
io_timeout = lp_timeout(i);
+ if (io_timeout < select_timeout)
+ select_timeout = io_timeout;
+ }
start_server(f_in, f_out, argc, argp);
if (!lp_load(config_file, 1))
exit_cleanup(RERR_SYNTAX);
+ if (rsync_port == 0 && (rsync_port = lp_rsync_port()) == 0)
+ rsync_port = RSYNC_PORT;
+ if (bind_address == NULL && *lp_bind_address())
+ bind_address = lp_bind_address();
+
log_init();
rprintf(FLOG, "rsyncd version %s starting, listening on port %d\n",