-/* 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 (do_lstat(fname, &st) < 0) {
+ failed_op = "re-lstat";
+ goto failed;