char *p, *user=NULL;
extern int remote_version;
extern int am_sender;
+ extern struct in_addr socket_address;
if (*path == '/') {
rprintf(FERROR,"ERROR: The remote path must start with a module name\n");
if (!user) user = getenv("USER");
if (!user) user = getenv("LOGNAME");
- fd = open_socket_out(host, rsync_port);
+ fd = open_socket_out(host, rsync_port, &socket_address);
if (fd == -1) {
exit_cleanup(RERR_SOCKETIO);
}
}
io_printf(fd,"\n");
- if (remote_version > 17 && !am_sender)
+ if (remote_version >= 22 || (remote_version > 17 && !am_sender))
io_start_multiplex_in(fd);
return client_run(fd, fd, -1, argc, argv);
argp = argv + optind;
optind = 0;
- if (remote_version > 17 && am_sender)
+ if (remote_version >= 22 || (remote_version > 17 && am_sender))
io_start_multiplex_out(fd);
+ if (read_only) {
+ extern int am_sender;
+ if (!am_sender) {
+ rprintf(FERROR,"ERROR: module is read only\n");
+ return -1;
+ }
+ }
+
if (!ret) {
option_error();
}