rsync/rsync-add_back_use_slp_directive.patch
Ismail Dönmez aee63f30ce Accepting request 337003 from home:vitezslav_cizek:branches:network
- better disable slp by default, it doesn't seem to be used much
  and it often caused problems (eg boo#898513, bsc#922710)
  * set "use slp" in rsyncd.conf to enable
  * modified rsync-add_back_use_slp_directive.patch

OBS-URL: https://build.opensuse.org/request/show/337003
OBS-URL: https://build.opensuse.org/package/show/network/rsync?expand=0&rev=48
2015-10-07 16:20:55 +00:00

120 lines
4.6 KiB
Diff

Index: rsync-3.1.1/clientserver.c
===================================================================
--- rsync-3.1.1.orig/clientserver.c 2015-10-07 14:58:43.767379915 +0200
+++ rsync-3.1.1/clientserver.c 2015-10-07 14:59:24.515920754 +0200
@@ -1200,7 +1200,7 @@ int daemon_main(void)
* 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");
}
Index: rsync-3.1.1/loadparm.c
===================================================================
--- rsync-3.1.1.orig/loadparm.c 2015-10-07 14:58:43.767379915 +0200
+++ rsync-3.1.1/loadparm.c 2015-10-07 14:59:24.515920754 +0200
@@ -101,6 +101,7 @@ typedef struct {
int rsync_port;
#ifdef HAVE_LIBSLP
int slp_refresh;
+ BOOL use_slp;
#endif
} global_vars;
@@ -181,6 +182,10 @@ static const all_vars Defaults = {
/* listen_backlog; */ 5,
/* rsync_port; */ 0,
+#ifdef HAVE_LIBSLP
+ /* slp_refresh; */ 0,
+ /* use_slp; */ False,
+#endif
},
/* ==== local_vars ==== */
@@ -322,6 +327,7 @@ static struct parm_struct parm_table[] =
{"port", P_INTEGER,P_GLOBAL,&Vars.g.rsync_port, NULL,0},
#ifdef HAVE_LIBSLP
{"slp refresh", P_INTEGER,P_GLOBAL,&Vars.g.slp_refresh, NULL,0},
+ {"use slp", P_BOOL, P_GLOBAL,&Vars.g.use_slp, NULL,0},
#endif
{"socket options", P_STRING, P_GLOBAL,&Vars.g.socket_options, NULL,0},
@@ -458,6 +464,7 @@ FN_GLOBAL_INTEGER(lp_listen_backlog, &Va
FN_GLOBAL_INTEGER(lp_rsync_port, &Vars.g.rsync_port)
#ifdef HAVE_LIBSLP
FN_GLOBAL_INTEGER(lp_slp_refresh, &Vars.g.slp_refresh)
+FN_GLOBAL_BOOL(lp_use_slp, &Vars.g.use_slp)
#endif
FN_LOCAL_STRING(lp_auth_users, auth_users)
Index: rsync-3.1.1/rsyncd.conf.yo
===================================================================
--- rsync-3.1.1.orig/rsyncd.conf.yo 2015-10-07 14:58:43.767379915 +0200
+++ rsync-3.1.1/rsyncd.conf.yo 2015-10-07 14:59:24.516920767 +0200
@@ -124,6 +124,10 @@ via the bf(--sockopts) command-line opti
dit(bf(listen backlog)) You can override the default backlog value when the
daemon listens for connections. It defaults to 5.
+dit(bf(use slp)) This parameter is used to determine if the module names are
+advertised via slp. The default is for this to be disabled, which won't
+advertise your public modules.
+
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 is
Index: rsync-3.1.1/socket.c
===================================================================
--- rsync-3.1.1.orig/socket.c 2015-10-07 14:58:43.767379915 +0200
+++ rsync-3.1.1/socket.c 2015-10-07 14:59:24.516920767 +0200
@@ -546,7 +546,7 @@ void start_accept_loop(int port, int (*f
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;
Index: rsync-3.1.1/main.c
===================================================================
--- rsync-3.1.1.orig/main.c 2015-10-07 14:58:43.767379915 +0200
+++ rsync-3.1.1/main.c 2015-10-07 14:59:24.516920767 +0200
@@ -1250,11 +1250,14 @@ static int start_client(int argc, char *
if (shell_machine && !shell_machine[0]) {
#ifdef HAVE_LIBSLP
/* User entered just rsync:// URI */
- print_service_list();
- exit_cleanup(0);
-#else /* No SLP, die here */
+ if (lp_use_slp()) {
+ print_service_list();
+ exit_cleanup(0);
+ } else {
+ rprintf(FINFO, "SLP is disabled, cannot browse\n");
+ }
+#else /* No SLP */
rprintf(FINFO, "No SLP support, cannot browse\n");
- exit_cleanup(RERR_SYNTAX);
#endif
}
Index: rsync-3.1.1/rsyncd.conf.5
===================================================================
--- rsync-3.1.1.orig/rsyncd.conf.5 2015-10-07 14:36:06.288364061 +0200
+++ rsync-3.1.1/rsyncd.conf.5 2015-10-07 15:00:28.309767222 +0200
@@ -142,6 +142,11 @@ via the \fB\-\-sockopts\fP command\-line
You can override the default backlog value when the
daemon listens for connections. It defaults to 5.
.IP
+.IP "\fBuse slp\fP"
+This parameter is used to determine if the module names are
+advertised via slp. The default is for this to be disabled, which won't
+advertise your public modules.
+.IP
.IP "\fBslp refresh\fP"
This parameter is used to determine how long service
advertisements are valid (measured in seconds), and is only applicable if