Fixed the device/special discarding in get_xattr().
[rsync-patches.git] / slp.diff
index a09ebdf0f05edbdb4cd0e2f9a01326d17dc963f2..6a7e227c3cd0056bd82f683088722f6b6518105c 100644 (file)
--- a/slp.diff
+++ b/slp.diff
@@ -39,11 +39,11 @@ diff --git a/Makefile.in b/Makefile.in
 +      $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(LIBSLP)
  
  $(OBJS): $(HEADERS)
+ $(CHECK_OBJS): $(HEADERS)
 diff --git a/clientserver.c b/clientserver.c
 --- a/clientserver.c
 +++ b/clientserver.c
-@@ -969,6 +969,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??? */
  
@@ -60,7 +60,7 @@ diff --git a/clientserver.c b/clientserver.c
 diff --git a/configure.in b/configure.in
 --- a/configure.in
 +++ b/configure.in
-@@ -632,6 +632,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
  
@@ -103,7 +103,7 @@ diff --git a/loadparm.c b/loadparm.c
  } global;
  
  static global Globals;
-@@ -298,6 +301,9 @@ static struct parm_struct parm_table[] =
+@@ -302,6 +305,9 @@ static struct parm_struct parm_table[] =
   {"motd file",         P_STRING, P_GLOBAL,&Globals.motd_file,          NULL,0},
   {"pid file",          P_STRING, P_GLOBAL,&Globals.pid_file,           NULL,0},
   {"port",              P_INTEGER,P_GLOBAL,&Globals.rsync_port,         NULL,0},
@@ -113,7 +113,7 @@ diff --git a/loadparm.c b/loadparm.c
   {"socket options",    P_STRING, P_GLOBAL,&Globals.socket_options,     NULL,0},
  
   {"auth users",        P_STRING, P_LOCAL, &sDefault.auth_users,        NULL,0},
-@@ -390,6 +396,9 @@ FN_GLOBAL_STRING(lp_pid_file, &Globals.pid_file)
+@@ -396,6 +402,9 @@ FN_GLOBAL_STRING(lp_pid_file, &Globals.pid_file)
  FN_GLOBAL_STRING(lp_socket_options, &Globals.socket_options)
  
  FN_GLOBAL_INTEGER(lp_rsync_port, &Globals.rsync_port)
@@ -122,11 +122,11 @@ diff --git a/loadparm.c b/loadparm.c
 +#endif
  
  FN_LOCAL_STRING(lp_auth_users, auth_users)
- FN_LOCAL_STRING(lp_comment, comment)
+ FN_LOCAL_STRING(lp_charset, charset)
 diff --git a/main.c b/main.c
 --- a/main.c
 +++ b/main.c
-@@ -1141,6 +1141,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);
@@ -148,7 +148,7 @@ diff --git a/main.c b/main.c
 diff --git a/options.c b/options.c
 --- a/options.c
 +++ b/options.c
-@@ -222,6 +222,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 ";
@@ -156,9 +156,9 @@ diff --git a/options.c b/options.c
        STRUCT_STAT *dumstat;
  
  #if SUBPROTOCOL_VERSION != 0
-@@ -251,6 +252,9 @@ static void print_rsync_version(enum logcode f)
- #ifdef ICONV_OPTION
-       iconv = "";
+@@ -257,6 +258,9 @@ static void print_rsync_version(enum logcode f)
+ #if defined HAVE_LUTIMES && defined HAVE_UTIMES
+       symtimes = "";
  #endif
 +#if HAVE_LIBSLP
 +      slp = "";
@@ -166,21 +166,21 @@ diff --git a/options.c b/options.c
  
        rprintf(f, "%s  version %s  protocol version %d%s\n",
                RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol);
-@@ -264,8 +268,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);
--      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv\n",
--              have_inplace, acls, xattrs, iconv);
-+      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %sSLP\n",
-+              have_inplace, acls, xattrs, iconv, slp);
+-      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes\n",
+-              have_inplace, acls, xattrs, iconv, symtimes);
++      rprintf(f, "    %sappend, %sACLs, %sxattrs, %siconv, %ssymtimes, %sSLP\n",
++              have_inplace, acls, xattrs, iconv, symtimes, slp);
  
  #ifdef MAINTAINER_MODE
        rprintf(f, "Panic Action: \"%s\"\n", get_panic_action());
 diff --git a/rsync.h b/rsync.h
 --- a/rsync.h
 +++ b/rsync.h
-@@ -186,6 +186,10 @@
+@@ -191,6 +191,10 @@
  #define SIGNIFICANT_ITEM_FLAGS (~(\
        ITEM_BASIS_TYPE_FOLLOWS | ITEM_XNAME_FOLLOWS | ITEM_LOCAL_CHANGE))
  
@@ -188,7 +188,7 @@ diff --git a/rsync.h b/rsync.h
 +/* 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
@@ -223,9 +223,9 @@ diff --git a/rsyncd.conf.yo b/rsyncd.conf.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).
@@ -235,18 +235,18 @@ diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
  enddit()
  
  
-@@ -603,6 +612,7 @@ use chroot = no
+@@ -652,6 +661,7 @@ use chroot = yes
  max connections = 4
  syslog facility = local5
  pid file = /var/run/rsyncd.pid
 +slp refresh = 3600
  
  [ftp]
-         path = /var/ftp/pub
+         path = /var/ftp/./pub
 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;
@@ -263,7 +263,7 @@ diff --git a/socket.c b/socket.c
  
  #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];
        }
  
@@ -289,7 +289,7 @@ diff --git a/socket.c b/socket.c
  
                /* 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