#define RSYNC_RSH_ENV "RSYNC_RSH"
#define RSYNC_NAME "rsync"
-#define RSYNCD_CONF "/etc/rsyncd.conf"
+#define RSYNCD_SYSCONF "/etc/rsyncd.conf"
+#define RSYNCD_USERCONF "rsyncd.conf"
#define DEFAULT_LOCK_FILE "/var/run/rsyncd.lock"
#define URL_PREFIX "rsync://"
#include "config.h"
-#if HAVE_REMSH
-#define RSYNC_RSH "remsh"
-#else
-#define RSYNC_RSH "rsh"
-#endif
+/* The default RSYNC_RSH is always set in config.h, either to "remsh",
+ * "rsh", or otherwise something specified by the user. HAVE_REMSH
+ * controls parameter munging for HP/UX, etc. */
#include <sys/types.h>
#include <compat.h>
#endif
+#include <assert.h>
+
#define BOOL int
* major/minor, and transfer the two parts as 32-bit ints. That gives
* you somewhat more of a chance that they'll come from a big machine
* to a little one in a useful way.
+ *
+ * FIXME: Really we need an unsigned type, and we perhaps ought to
+ * cope with platforms on which this is an unsigned int or even a
+ * struct. Later.
*/
#define INO64_T int64
#define DEV64_T int64
#define INADDR_NONE 0xffffffff
#endif
+#ifndef IN_LOOPBACKNET
+#define IN_LOOPBACKNET 127
+#endif
+
struct file_struct {
unsigned flags;
time_t modtime;
};
struct sum_buf {
- OFF_T offset; /* offset in file of this chunk */
- int len; /* length of chunk of file */
- int i; /* index of this chunk */
- uint32 sum1; /* simple checksum */
- char sum2[SUM_LENGTH]; /* checksum */
+ OFF_T offset; /**< offset in file of this chunk */
+ int len; /**< length of chunk of file */
+ int i; /**< index of this chunk */
+ uint32 sum1; /**< simple checksum */
+ char sum2[SUM_LENGTH]; /**< checksum */
};
struct sum_struct {
- OFF_T flength; /* total file length */
- int count; /* how many chunks */
- int remainder; /* flength % block_length */
- int n; /* block_length */
- struct sum_buf *sums; /* points to info for each chunk */
+ OFF_T flength; /**< total file length */
+ size_t count; /**< how many chunks */
+ size_t remainder; /**< flength % block_length */
+ size_t n; /**< block_length */
+ struct sum_buf *sums; /**< points to info for each chunk */
};
struct map_struct {
}
#include "byteorder.h"
-#include "proto.h"
#include "lib/mdfour.h"
#include "lib/permstring.h"
#include "lib/addrinfo.h"
+#include "proto.h"
+
/* We have replacement versions of these if they're missing. */
#ifndef HAVE_ASPRINTF
int asprintf(char **ptr, const char *format, ...);
#define SUPPORT_LINKS HAVE_READLINK
#define SUPPORT_HARD_LINKS HAVE_LINK
+/* This could be bad on systems which have no lchown and where chown
+ * follows symbollic links. On such systems it might be better not to
+ * try to chown symlinks at all. */
#ifndef HAVE_LCHOWN
#define lchown chown
#endif
/* handler for null strings in printf format */
#define NS(s) ((s)?(s):"<NULL>")
+#if !defined(__GNUC__) || defined(APPLE)
+/* Apparently the OS X port of gcc gags on __attribute__.
+ *
+ * <http://www.opensource.apple.com/bugs/X/gcc/2512150.html> */
+#define __attribute__(x)
+
+#endif
+
+
/* use magic gcc attributes to catch format errors */
void rprintf(enum logcode , const char *, ...)
-#ifdef __GNUC__
- __attribute__ ((format (printf, 2, 3)))
-#endif
+ __attribute__((format (printf, 2, 3)))
;
/* This is just like rprintf, but it also tries to print some
* representation of the error code. Normally errcode = errno. */
void rsyserr(enum logcode, int, const char *, ...)
-#ifdef __GNUC__
- __attribute__ ((format (printf, 3, 4)))
-#endif
+ __attribute__((format (printf, 3, 4)))
;
#ifdef REPLACE_INET_NTOA
#endif /* !HAVE_INET_NTOP */
#ifndef HAVE_INET_PTON
-int isc_net_pton(int af, const char *src, void *dst);
+int inet_pton(int af, const char *src, void *dst);
+#endif
+
+#ifdef MAINTAINER_MODE
+const char *get_panic_action(void);
#endif
+
+#define UNUSED(x) x __attribute__((__unused__))
+
+extern const char *io_write_phase, *io_read_phase;