X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/b20830b338da114c6248726d15c2d15ed09fee91..112d728f4858fef5c75e0b25bf6f02af8aa5b83c:/receiver.c diff --git a/receiver.c b/receiver.c index 28eec5fb..e3b79c39 100644 --- a/receiver.c +++ b/receiver.c @@ -279,7 +279,7 @@ static void discard_receive_data(int f_in, OFF_T length) static void handle_delayed_updates(struct file_list *flist, char *local_name) { - char *fname, *partialptr, numbuf[4]; + char *fname, *partialptr; int i; for (i = -1; (i = bitbag_next_bit(delayed_bits, i)) >= 0; ) { @@ -300,11 +300,8 @@ static void handle_delayed_updates(struct file_list *flist, char *local_name) full_fname(fname), partialptr); } else { if (remove_source_files - || (preserve_hard_links - && file->link_u.links)) { - SIVAL(numbuf, 0, i); - send_msg(MSG_SUCCESS,numbuf,4); - } + || (preserve_hard_links && F_IS_HLINKED(file))) + send_msg_int(MSG_SUCCESS, i); handle_partial_dir(partialptr, PDIR_DELETE); } } @@ -341,7 +338,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) char *fname, fbuf[MAXPATHLEN]; char xname[MAXPATHLEN]; char fnametmp[MAXPATHLEN]; - char *fnamecmp, *partialptr, numbuf[4]; + char *fnamecmp, *partialptr; char fnamecmpbuf[MAXPATHLEN]; uchar fnamecmp_type; struct file_struct *file; @@ -369,7 +366,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) cleanup_disable(); i = read_int(f_in); - if (i == -1) { + if (i == NDX_DONE) { if (read_batch) { get_next_gen_i(batch_gen_fd, next_gen_i, flist->count); @@ -416,7 +413,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) stats.current_file_index = i; stats.num_transferred_files++; - stats.total_transferred_size += file->length; + stats.total_transferred_size += F_LENGTH(file); cleanup_got_literal = 0; if (server_filter_list.head @@ -428,13 +425,13 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) if (!do_xfers) { /* log the transfer */ log_item(FCLIENT, file, &stats, iflags, NULL); if (read_batch) - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); continue; } if (write_batch < 0) { log_item(FINFO, file, &stats, iflags, NULL); if (!am_server) - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); continue; } @@ -444,7 +441,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) rprintf(FINFO, "(Skipping batched update for \"%s\")\n", fname); - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); continue; } next_gen_i = -1; @@ -526,7 +523,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) } else if (do_fstat(fd1,&st) != 0) { rsyserr(FERROR, errno, "fstat %s failed", full_fname(fnamecmp)); - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); close(fd1); continue; } @@ -539,7 +536,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) */ rprintf(FERROR,"recv_files: %s is a directory\n", full_fname(fnamecmp)); - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); close(fd1); continue; } @@ -562,14 +559,14 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) if (fd2 == -1) { rsyserr(FERROR, errno, "open %s failed", full_fname(fname)); - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); if (fd1 != -1) close(fd1); continue; } } else { if (!get_tmpname(fnametmp,fname)) { - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); if (fd1 != -1) close(fd1); continue; @@ -595,7 +592,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) if (fd2 == -1) { rsyserr(FERROR, errno, "mkstemp %s failed", full_fname(fnametmp)); - discard_receive_data(f_in, file->length); + discard_receive_data(f_in, F_LENGTH(file)); if (fd1 != -1) close(fd1); continue; @@ -612,7 +609,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) /* recv file data */ recv_ok = receive_data(f_in, fnamecmp, fd1, st.st_size, - fname, fd2, file->length); + fname, fd2, F_LENGTH(file)); log_item(log_code, file, &initial_stats, iflags, NULL); @@ -655,10 +652,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) if (recv_ok > 0) { if (remove_source_files - || (preserve_hard_links && file->link_u.links)) { - SIVAL(numbuf, 0, i); - send_msg(MSG_SUCCESS, numbuf, 4); - } + || (preserve_hard_links && F_IS_HLINKED(file))) + send_msg_int(MSG_SUCCESS, i); } else if (!recv_ok) { enum logcode msgtype = phase || read_batch ? FERROR : FINFO; if (msgtype == FERROR || verbose) { @@ -680,10 +675,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name) "%s: %s failed verification -- update %s%s.\n", errstr, fname, keptstr, redostr); } - if (!phase) { - SIVAL(numbuf, 0, i); - send_msg(MSG_REDO, numbuf, 4); - } + if (!phase) + send_msg_int(MSG_REDO, i); } } make_backups = save_make_backups;