extern int log_before_transfer;
extern int log_format_has_i;
extern int daemon_log_format_has_i;
-extern int delete_after;
extern int csum_length;
extern int read_batch;
extern int batch_gen_fd;
extern struct filter_list_struct server_filter_list;
-
-/* This deletes any files on the receiving side that are not present on the
- * sending side. This is used by --delete-before and --delete-after. */
-void delete_files(struct file_list *flist)
-{
- char fbuf[MAXPATHLEN];
- int j;
-
- for (j = 0; j < flist->count; j++) {
- struct file_struct *file = flist->files[j];
-
- if (!(file->flags & FLAG_DEL_HERE))
- continue;
-
- f_name_to(file, fbuf);
- if (verbose > 1 && file->flags & FLAG_TOP_DIR)
- rprintf(FINFO, "deleting in %s\n", safe_fname(fbuf));
-
- delete_in_dir(flist, fbuf, file);
- }
-}
-
#define SLOT_SIZE (16*1024) /* Desired size in bytes */
#define PER_SLOT_BITS (SLOT_SIZE * 8) /* Number of bits per slot */
#define PER_SLOT_INTS (SLOT_SIZE / 4) /* Number of int32s per slot */
static void read_gen_name(int fd, char *dirname, char *buf)
{
int dlen;
- int len = read_byte(fd);
-
- if (len & 0x80) {
-#if MAXPATHLEN > 32767
- uchar lenbuf[2];
- read_buf(fd, (char *)lenbuf, 2);
- len = (len & ~0x80) * 0x10000 + lenbuf[0] * 0x100 + lenbuf[1];
-#else
- len = (len & ~0x80) * 0x100 + read_byte(fd);
-#endif
- }
if (dirname) {
dlen = strlcpy(buf, dirname, MAXPATHLEN);
} else
dlen = 0;
- if (dlen + len >= MAXPATHLEN) {
- rprintf(FERROR, "bogus data on generator name pipe\n");
- exit_cleanup(RERR_PROTOCOL);
- }
-
- read_sbuf(fd, buf + dlen, len);
+ read_vstring(fd, buf + dlen, MAXPATHLEN - dlen);
}
}
}
- if (delete_after && !local_name && flist->count > 0)
- delete_files(flist);
-
if (verbose > 2)
rprintf(FINFO,"recv_files finished\n");