X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/d5dcb6f7753020a86973e3a66c632ed0ef9e7832..f0fbf1d670ee13bb461d44ac089ef9ecea267c7f:/receiver.c diff --git a/receiver.c b/receiver.c index 4ac407fa..43d1be36 100644 --- a/receiver.c +++ b/receiver.c @@ -39,6 +39,7 @@ extern int preserve_hard_links; extern int preserve_perms; extern int basis_dir_cnt; extern int make_backups; +extern int flist_extra_ndx; extern int cleanup_got_literal; extern int remove_source_files; extern int append_mode; @@ -82,7 +83,7 @@ static int updating_basis; * As long as it's unique, rsync will work. */ -static int get_tmpname(char *fnametmp, char *fname) +int get_tmpname(char *fnametmp, char *fname) { int maxname, added, length = 0; char *f; @@ -164,7 +165,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, offset = j; } if (offset < sum.flength) { - int32 len = sum.flength - offset; + int32 len = (int32)(sum.flength - offset); if (do_progress) show_progress(offset, total_size); sum_update(map_ptr(mapbuf, offset, len), len); @@ -279,7 +280,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 +301,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 && IS_HLINKED(file))) + send_msg_int(MSG_SUCCESS, i); handle_partial_dir(partialptr, PDIR_DELETE); } } @@ -341,7 +339,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 +367,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); @@ -655,12 +653,10 @@ 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 && IS_HLINKED(file))) + send_msg_int(MSG_SUCCESS, i); } else if (!recv_ok) { - int msgtype = phase || read_batch ? FERROR : FINFO; + enum logcode msgtype = phase || read_batch ? FERROR : FINFO; if (msgtype == FERROR || verbose) { char *errstr, *redostr, *keptstr; if (!(keep_partial && partialptr) && !inplace) @@ -680,10 +676,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;