git.samba.org
/
rsync-patches.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
fb1ec5c
)
Add "use slp" daemon parameter.
author
Wayne Davison
<wayne@opencoder.net>
Sun, 26 Jul 2020 08:31:43 +0000
(
01:31
-0700)
committer
Wayne Davison
<wayne@opencoder.net>
Sun, 26 Jul 2020 08:31:43 +0000
(
01:31
-0700)
slp.diff
patch
|
blob
|
history
diff --git
a/slp.diff
b/slp.diff
index 562b165ef7fd76a34bcb04c1f67f790f94cf95b8..4c2ec94f21133beceaa35e0703cb91bfebd130e1 100644
(file)
--- a/
slp.diff
+++ b/
slp.diff
@@
-10,7
+10,7
@@
To use this patch, run these commands for a successful build:
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
TODO: the configure changes should abort if the user requests --enable-slp
and we can't honor that request.
-based-on: 9
74f49e22ac9f62fcfd750768d0835b900524578
+based-on: 9
1eaffe13f29e9a42032a9f1cd2983e09d7b1ec9
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
diff --git a/Makefile.in b/Makefile.in
--- a/Makefile.in
+++ b/Makefile.in
@@
-44,12
+44,12
@@
diff --git a/Makefile.in b/Makefile.in
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
diff --git a/clientserver.c b/clientserver.c
--- a/clientserver.c
+++ b/clientserver.c
-@@ -14
61,6 +1461
,13 @@ int daemon_main(void)
+@@ -14
56,6 +1456
,13 @@ int daemon_main(void)
* address too. In fact, why not just do getnameinfo on the
* local address??? */
+#ifdef HAVE_LIBSLP
* address too. In fact, why not just do getnameinfo on the
* local address??? */
+#ifdef HAVE_LIBSLP
-+ if (register_services()) {
++ if (
lp_use_slp() &&
register_services()) {
+ rprintf(FINFO,
+ "Couldn't register with service discovery protocol, continuing anyway\n");
+ }
+ rprintf(FINFO,
+ "Couldn't register with service discovery protocol, continuing anyway\n");
+ }
@@
-94,18
+94,21
@@
diff --git a/configure.ac b/configure.ac
diff --git a/daemon-parm.txt b/daemon-parm.txt
--- a/daemon-parm.txt
+++ b/daemon-parm.txt
diff --git a/daemon-parm.txt b/daemon-parm.txt
--- a/daemon-parm.txt
+++ b/daemon-parm.txt
-@@ -10,
6 +10,7 @@ STRING
socket_options NULL
+@@ -10,
8 +10,10 @@ STRING
socket_options NULL
INTEGER listen_backlog 5
INTEGER rsync_port|port 0
+INTEGER slp_refresh 0
BOOL proxy_protocol False
INTEGER listen_backlog 5
INTEGER rsync_port|port 0
+INTEGER slp_refresh 0
BOOL proxy_protocol False
++BOOL use_slp False
+
+ Locals: =================================================================
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
diff --git a/main.c b/main.c
--- a/main.c
+++ b/main.c
-@@ -13
65,6 +1365,18
@@ static int start_client(int argc, char *argv[])
+@@ -13
87,6 +1387,22
@@ 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);
if (!read_batch) { /* for read_batch, NO source is specified */
char *path = check_for_hostspec(argv[0], &shell_machine, &rsync_port);
@@
-113,8
+116,12
@@
diff --git a/main.c b/main.c
+ if (shell_machine && !shell_machine[0]) {
+#ifdef HAVE_LIBSLP
+ /* User entered just rsync:// URI */
+ if (shell_machine && !shell_machine[0]) {
+#ifdef HAVE_LIBSLP
+ /* User entered just rsync:// URI */
-+ print_service_list();
-+ exit_cleanup(0);
++ if (lp_use_slp()) {
++ print_service_list();
++ exit_cleanup(0);
++ }
++ rprintf(FINFO, "SLP is disabled, cannot browse\n");
++ exit_cleanup(RERR_SYNTAX);
+#else /* No SLP, die here */
+ rprintf(FINFO, "No SLP support, cannot browse\n");
+ exit_cleanup(RERR_SYNTAX);
+#else /* No SLP, die here */
+ rprintf(FINFO, "No SLP support, cannot browse\n");
+ exit_cleanup(RERR_SYNTAX);
@@
-127,7
+134,7
@@
diff --git a/main.c b/main.c
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -6
76,6 +676
,11 @@ static void print_info_flags(enum logcode f)
+@@ -6
81,6 +681
,11 @@ static void print_info_flags(enum logcode f)
#endif
"crtimes",
#endif
"crtimes",
@@
-142,20
+149,27
@@
diff --git a/options.c b/options.c
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md
diff --git a/rsync.1.md b/rsync.1.md
--- a/rsync.1.md
+++ b/rsync.1.md
-@@ -1
51,6 +151,13
@@ rsync daemon by leaving off the module name:
+@@ -1
49,7 +149,19
@@ rsync daemon by leaving off the module name:
- See the following section for more details.
+ > rsync somehost.mydomain.com::
+-See the following section for more details.
++And, if Service Location Protocol is available, the following will list the
++available rsync servers:
++
++> rsync rsync://
++
++See the following section for even more usage details.
++
+One more thing, if Service Location Protocol is available, the following will
+list the available rsync servers:
+
+> rsync rsync://
+
+See the following section for even more usage details.
+One more thing, if Service Location Protocol is available, the following will
+list the available rsync servers:
+
+> rsync rsync://
+
+See the following section for even more usage details.
-+
+
# ADVANCED USAGE
# ADVANCED USAGE
- The syntax for requesting multiple files from a remote host is done by
diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
diff --git a/rsync.h b/rsync.h
--- a/rsync.h
+++ b/rsync.h
@@
-179,10
+193,15
@@
new file mode 100644
diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
--- a/rsyncd.conf.5.md
+++ b/rsyncd.conf.5.md
diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
--- a/rsyncd.conf.5.md
+++ b/rsyncd.conf.5.md
-@@ -136,6 +136,
16
@@ a literal % into a value is to use %%.
+@@ -136,6 +136,
21
@@ a literal % into a value is to use %%.
You can override the default backlog value when the daemon listens for
connections. It defaults to 5.
You can override the default backlog value when the daemon listens for
connections. It defaults to 5.
++0. `use slp`
++
++ You can enable Service Location Protocol support by enabling this global
++ parameter. The default is "false".
++
+0. `slp refresh`
+
+ This parameter is used to determine how long service advertisements are
+0. `slp refresh`
+
+ This parameter is used to determine how long service advertisements are
@@
-196,6
+215,14
@@
diff --git a/rsyncd.conf.5.md b/rsyncd.conf.5.md
# MODULE PARAMETERS
After the global parameters you should define a number of modules, each module
# MODULE PARAMETERS
After the global parameters you should define a number of modules, each module
+@@ -1168,6 +1183,7 @@ A more sophisticated example would be:
+ > max connections = 4
+ > syslog facility = local5
+ > pid file = /var/run/rsyncd.pid
++> slp refresh = 3600
+ >
+ > [ftp]
+ > path = /var/ftp/./pub
diff --git a/socket.c b/socket.c
--- a/socket.c
+++ b/socket.c
diff --git a/socket.c b/socket.c
--- a/socket.c
+++ b/socket.c
@@
-205,7
+232,7
@@
diff --git a/socket.c b/socket.c
int *sp, maxfd, i;
+#ifdef HAVE_LIBSLP
+ time_t next_slp_refresh;
int *sp, maxfd, i;
+#ifdef HAVE_LIBSLP
+ time_t next_slp_refresh;
-+ short slp_timeout = lp_
slp_refresh()
;
++ short slp_timeout = lp_
use_slp() ? lp_slp_refresh() : 0
;
+ if (slp_timeout) {
+ if (slp_timeout < SLP_MIN_TIMEOUT)
+ slp_timeout = SLP_MIN_TIMEOUT;
+ if (slp_timeout) {
+ if (slp_timeout < SLP_MIN_TIMEOUT)
+ slp_timeout = SLP_MIN_TIMEOUT;