+ file = flist->files[i];
+ if (file->dir.root) {
+ /* N.B. We're sure that this fits, so offset is OK. */
+ offset = strlcpy(fname, file->dir.root, sizeof fname);
+ if (!offset || fname[offset-1] != '/')
+ fname[offset++] = '/';
+ } else
+ offset = 0;
+ fname2 = f_name_to(file, fname + offset);
+
+ if (verbose > 2)
+ rprintf(FINFO, "send_files(%d, %s)\n", i, fname);
+
+ 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_recv(file, &stats, iflags);
+ } else if (see_item || iflags & ITEM_UPDATING
+ || (S_ISDIR(file->mode)
+ && iflags & ITEM_REPORT_TIME))
+ log_recv(file, &stats, iflags);
+ continue;
+ }
+ } else
+ iflags = ITEM_UPDATING | ITEM_MISSING_DATA;
+