- if (S_ISDIR(file->mode)) {
- rprintf(FERROR, "[%s] got index of directory: %d\n",
+
+ if (protocol_version >= 29) {
+ iflags = read_short(f_in);
+ if (!(iflags & ITEM_UPDATING) || !S_ISREG(file->mode)) {
+ if (am_server)
+ ; /* do nothing */
+ else if (itemize_changes
+ || iflags & ITEM_UPDATING
+ || (S_ISDIR(file->mode)
+ && iflags & ITEM_REPORT_TIME))
+ log_recv(file, &stats, iflags);
+ continue;
+ }
+ } else
+ iflags = ITEM_UPDATING | ITEM_MISSING_DATA;
+
+ if (!S_ISREG(file->mode)) {
+ rprintf(FERROR, "[%s] got index of non-regular file: %d\n",