diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
-@@ -1028,6 +1028,13 @@ int daemon_main(void)
+@@ -1062,6 +1062,13 @@ int daemon_main(void)
* address too. In fact, why not just do inet_ntop on the
* local address??? */
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
-@@ -637,6 +637,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
+@@ -639,6 +639,29 @@ if test $rsync_cv_can_hardlink_special = yes; then
AC_DEFINE(CAN_HARDLINK_SPECIAL, 1, [Define to 1 if link() can hard-link special files.])
fi
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
-@@ -1146,6 +1146,18 @@ static int start_client(int argc, char *argv[])
+@@ -1120,6 +1120,18 @@ static int start_client(int argc, char *argv[])
if (!read_batch) { /* for read_batch, NO source is specified */
char *path = check_for_hostspec(argv[0], &shell_machine, &rsync_port);
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -224,6 +224,7 @@ static void print_rsync_version(enum logcode f)
+@@ -225,6 +225,7 @@ static void print_rsync_version(enum logcode f)
char const *links = "no ";
char const *iconv = "no ";
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
#if SUBPROTOCOL_VERSION != 0
-@@ -256,6 +257,9 @@ static void print_rsync_version(enum logcode f)
+@@ -257,6 +258,9 @@ static void print_rsync_version(enum logcode f)
#if defined HAVE_LUTIMES && defined HAVE_UTIMES
symtimes = "";
#endif
rprintf(f, "%s version %s protocol version %d%s\n",
RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol);
-@@ -269,8 +273,8 @@ static void print_rsync_version(enum logcode f)
+@@ -270,8 +274,8 @@ static void print_rsync_version(enum logcode f)
(int)(sizeof (int64) * 8));
rprintf(f, " %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n",
got_socketpair, hardlinks, links, ipv6, have_inplace);
diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
-@@ -187,6 +187,10 @@
+@@ -191,6 +191,10 @@
#define SIGNIFICANT_ITEM_FLAGS (~(\
ITEM_BASIS_TYPE_FOLLOWS | ITEM_XNAME_FOLLOWS | ITEM_LOCAL_CHANGE))
+/* definately don't set to less than about 30 seconds */
+#define SLP_MIN_TIMEOUT 120
+
- #define CFN_KEEP_LEADING_DOT_DIR (1<<0)
+ #define CFN_KEEP_DOT_DIRS (1<<0)
#define CFN_KEEP_TRAILING_SLASH (1<<1)
#define CFN_DROP_TRAILING_DOT_DIR (1<<2)
diff --git a/rsync.yo b/rsync.yo
special socket options are set. These settings are superseded by the
bf(--sockopts) command-line option.
-+dit(bf(slp refresh)) This option is used to determine how long service
++dit(bf(slp refresh)) This parameter is used to determine how long service
+advertisements are valid (measured in seconds), and is only applicable if
-+you have Service Location Protocol support compiled in. If this option is
++you have Service Location Protocol support compiled in. If this is
+not set or is set to zero, then service advertisements never time out. If
+this is set to less than 120 seconds, then 120 seconds is used. If it is
+set to more than 65535, then 65535 is used (which is a limitation of SLP).
enddit()
-@@ -654,6 +663,7 @@ use chroot = yes
+@@ -652,6 +661,7 @@ use chroot = yes
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
diff --git a/socket.c b/socket.c
--- a/socket.c
+++ b/socket.c
-@@ -524,6 +524,16 @@ void start_accept_loop(int port, int (*fn)(int, int))
+@@ -530,6 +530,16 @@ void start_accept_loop(int port, int (*fn)(int, int))
{
fd_set deffds;
int *sp, maxfd, i;
#ifdef HAVE_SIGACTION
sigact.sa_flags = SA_NOCLDSTOP;
-@@ -552,14 +562,25 @@ void start_accept_loop(int port, int (*fn)(int, int))
+@@ -558,14 +568,25 @@ void start_accept_loop(int port, int (*fn)(int, int))
maxfd = sp[i];
}
/* close log file before the potentially very long select so
* file can be trimmed by another process instead of growing
-@@ -571,8 +592,18 @@ void start_accept_loop(int port, int (*fn)(int, int))
+@@ -577,8 +598,18 @@ void start_accept_loop(int port, int (*fn)(int, int))
#else
fds = deffds;
#endif