+ if (protocol_version >= 29) {
+ iflags = read_shortint(f_in);
+ if (!(iflags & ITEM_UPDATING) || !S_ISREG(file->mode)) {
+ int see_item = itemizing && (iflags || verbose > 1);
+ write_int(f_out, i);
+ write_shortint(f_out, iflags);
+ if (am_server) {
+ if (am_daemon && !dry_run && see_item)
+ log_send(file, &stats, iflags);
+ } else if (see_item || iflags & ITEM_UPDATING
+ || (S_ISDIR(file->mode)
+ && iflags & ITEM_REPORT_TIME))
+ log_send(file, &stats, iflags);
+ continue;
+ }
+ } else
+ iflags = ITEM_UPDATING | ITEM_MISSING_DATA;
+
+ if (inplace && protocol_version >= 29) {
+ updating_basis_file = !(iflags & ITEM_USING_ALT_BASIS);
+ } else
+ updating_basis_file = inplace && !make_backups;
+
+ if (!S_ISREG(file->mode)) {
+ rprintf(FERROR, "[%s] got index of non-regular file: %d\n",
+ who_am_i(), i);
+ exit_cleanup(RERR_PROTOCOL);
+ }
+
+ stats.current_file_index = i;
+ stats.num_transferred_files++;
+ stats.total_transferred_size += file->length;
+