Eliminate unneeded strlen after strlcpy.
[rsync/rsync.git] / receiver.c
index bc297ca..246caea 100644 (file)
@@ -151,8 +151,7 @@ static int get_tmpname(char *fnametmp, char *fname)
        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 */
        }
@@ -280,7 +279,7 @@ static int receive_data(int f_in,struct map_struct *mapbuf,int fd,char *fname,
  * 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;
@@ -309,12 +308,12 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
 
                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;
@@ -328,6 +327,7 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
 
                file = flist->files[i];
 
+               stats.current_file_index = i;
                stats.num_transferred_files++;
                stats.total_transferred_size += file->length;
                cleanup_got_literal = 0;
@@ -465,9 +465,11 @@ int recv_files(int f_in,struct file_list *flist,char *local_name,int f_gen)
                                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);
                        }
                }
        }