int maxname;
if (tmpdir) {
- strlcpy(fnametmp, tmpdir, MAXPATHLEN - 2);
- length = strlen(fnametmp);
+ length = strlcpy(fnametmp, tmpdir, MAXPATHLEN - 2);
fnametmp[length++] = '/';
fnametmp[length] = '\0'; /* always NULL terminated */
}
* main routine for receiver process.
*
* Receiver process runs on the same host as the generator process. */
-int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
+int recv_files(int f_in,struct file_list *flist,char *local_name)
{
int fd1,fd2;
STRUCT_STAT st;
i = read_int(f_in);
if (i == -1) {
- if (phase==0) {
+ if (phase == 0) {
phase++;
csum_length = SUM_LENGTH;
if (verbose > 2)
rprintf(FINFO,"recv_files phase=%d\n",phase);
- write_int(f_gen,-1);
+ send_msg(MSG_DONE, "", 0);
continue;
}
break;
file = flist->files[i];
+ stats.current_file_index = i;
stats.num_transferred_files++;
stats.total_transferred_size += file->length;
cleanup_got_literal = 0;
rprintf(FERROR,"ERROR: file corruption in %s. File changed during transfer?\n",
full_fname(fname));
} else {
+ char buf[4];
if (verbose > 1)
rprintf(FINFO,"redoing %s(%d)\n",fname,i);
- write_int(f_gen,i);
+ SIVAL(buf, 0, i);
+ send_msg(MSG_REDO, buf, 4);
}
}
}