#define RSYNC_RSH_ENV "RSYNC_RSH"
#define RSYNC_NAME "rsync"
+#define RSYNCD_CONF "/etc/rsyncd.conf"
+
#define BACKUP_SUFFIX "~"
/* a non-zero CHAR_OFFSET makes the rolling sum stronger, but is
#define SAME_TIME (1<<7)
/* update this if you make incompatible changes */
-#define PROTOCOL_VERSION 17
+#define PROTOCOL_VERSION 19
#define MIN_PROTOCOL_VERSION 11
#define MAX_PROTOCOL_VERSION 30
#define SPARSE_WRITE_SIZE (1024)
#define WRITE_SIZE (32*1024)
#define CHUNK_SIZE (32*1024)
-#define MAX_MAP_SIZE (4*1024*1024)
+#define MAX_MAP_SIZE (1*1024*1024)
+#define IO_BUFFER_SIZE (4092)
+#define MAX_READ_BUFFER (1024*1024)
-#define BLOCKING_TIMEOUT 10
+#define MAX_ARGS 1000
+#define MPLEX_BASE 7
#define FERROR 1
#define FINFO 2
#include <unistd.h>
#endif
#include <stdio.h>
+#include <stddef.h>
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#include <errno.h>
-#ifdef HAVE_MMAP
+#if defined(HAVE_MMAP) && defined(HAVE_MUNMAP)
#include <sys/mman.h>
+#define USE_MMAP 1
#endif
#ifdef HAVE_UTIME_H
#include "lib/getopt.h"
#endif
+#ifdef HAVE_GLOB
+#include <glob.h>
+#endif
+
/* these are needed for the uid/gid mapping code */
#include <pwd.h>
#include <grp.h>
#include <stdarg.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <syslog.h>
+#include <sys/file.h>
#ifndef S_IFLNK
#define S_IFLNK 0120000
#define S_ISLNK(mode) (((mode) & S_IFLNK) == S_IFLNK)
#endif
+#define BOOL int
+
#ifndef uchar
#define uchar unsigned char
#endif
#define MAXPATHLEN 1024
#endif
+#ifndef INADDR_NONE
+#define INADDR_NONE 0xffffffff
+#endif
+
struct file_struct {
unsigned flags;
time_t modtime;
};
struct file_list {
- int count;
- int malloced;
- struct file_struct **files;
+ int count;
+ int malloced;
+ struct file_struct **files;
};
struct sum_buf {
OFF_T size, p_offset;
};
+struct exclude_struct {
+ char *orig;
+ char *pattern;
+ int regular_exp;
+ int include;
+ int directory;
+ int local;
+};
+
+struct stats {
+ int64 total_size;
+ int64 total_transferred_size;
+ int64 total_written;
+ int64 total_read;
+ int64 literal_data;
+ int64 matched_data;
+ int flist_size;
+ int num_files;
+ int num_transferred_files;
+};
+
+
/* we need this function because of the silly way in which duplicate
entries are handled in the file lists - we can't change this
without breaking existing versions */