- if (file->dir.root) {
- offset = stringjoin(fname, sizeof fname,
- file->dir.root, "/", NULL);
- } else
- offset = 0;
- f_name_to(file, fname + offset);
- if (remove_sent_files && do_unlink(fname) == 0 && verbose > 1) {
- rprintf(FINFO, "sender removed %s\n",
- safe_fname(fname + offset));
- }
-}
-
-/* This is also used by receive.c with f_out = -1. */
-int read_iflags(int f_in, int f_out, int ndx, char *buf)
-{
- int len;
- int iflags = protocol_version >= 29 ? read_shortint(f_in)
- : ITEM_TRANSFER | ITEM_MISSING_DATA;
- int isave = iflags; /* XXX remove soon */
-
- /* Handle the new keep-alive (no-op) packet. */
- if (ndx == the_file_list->count && iflags == ITEM_IS_NEW)
- ;
- else if (ndx < 0 || ndx >= the_file_list->count) {
- rprintf(FERROR, "Invalid file index %d (count=%d) [%s]\n",
- ndx, the_file_list->count, who_am_i());
- exit_cleanup(RERR_PROTOCOL);
- } else if (iflags == ITEM_IS_NEW) {
- rprintf(FERROR, "Invalid itemized flag word [%s]\n",
- who_am_i());
- exit_cleanup(RERR_PROTOCOL);
- }
-
- if (iflags & ITEM_HARD_LINKED)
- len = read_vstring(f_in, buf, MAXPATHLEN);
- else {
- *buf = '\0';
- len = -1;