int recv_pipe[2];
int error_pipe[2];
extern int preserve_hard_links;
+ extern int delete_after;
+ extern int recurse;
+ extern int delete_mode;
if (preserve_hard_links)
init_hard_links(flist);
- if (pipe(recv_pipe) < 0) {
+ if (!delete_after) {
+ /* I moved this here from recv_files() to prevent a race condition */
+ if (recurse && delete_mode && !local_name && flist->count>0) {
+ delete_files(flist);
+ }
+ }
+
+ if (fd_pair(recv_pipe) < 0) {
rprintf(FERROR,"pipe failed in do_recv\n");
exit_cleanup(RERR_SOCKETIO);
}
- if (pipe(error_pipe) < 0) {
+ if (fd_pair(error_pipe) < 0) {
rprintf(FERROR,"error pipe failed in do_recv\n");
exit_cleanup(RERR_SOCKETIO);
}
{
extern int cvs_exclude;
extern int am_sender;
+ extern int remote_version;
+
+ if (remote_version >= 23)
+ io_start_multiplex_out(f_out);
setup_protocol(f_out, f_in);
char *local_name = NULL;
extern int am_sender;
extern int list_only;
+ extern int remote_version;
+
+ if (remote_version >= 23)
+ io_start_multiplex_in(f_in);
setup_protocol(f_out,f_in);