Add an "unsafe" symlink to the symlink test case so we can see what happens.
[rsync/rsync.git] / options.c
index 9395117..8893195 100644 (file)
--- a/options.c
+++ b/options.c
@@ -74,11 +74,21 @@ int modify_window=0;
 #endif
 int blocking_io=0;
 
-/** Global options set from command line. **/
-struct global_opts global_opts;
+/** Network address family. **/
+#ifdef INET6
+int default_af_hint = 0;       /* Any protocol */
+#else
+int default_af_hint = AF_INET; /* Must use IPv4 */
+#endif
+
+/** Do not go into the background when run as --daemon.  Good
+ * for debugging and required for running as a service on W32,
+ * or under Unix process-monitors. **/
+int no_detach = 0;
+
 
-int read_batch=0;  /* dw */
-int write_batch=0; /* dw */
+int read_batch=0;
+int write_batch=0;
 
 char *backup_suffix = BACKUP_SUFFIX;
 char *tmpdir = NULL;
@@ -106,7 +116,7 @@ static int modify_window_set;
 char *bind_address;
 
 
-static void print_rsync_version(int f)
+static void print_rsync_version(enum logcode f)
 {
         char const *got_socketpair = "no ";
         char const *hardlinks = "no ";
@@ -171,8 +181,8 @@ void usage(enum logcode F)
   rprintf(F,"     --backup-dir            make backups into this directory\n");
   rprintf(F,"     --suffix=SUFFIX         override backup suffix\n");  
   rprintf(F," -u, --update                update only (don't overwrite newer files)\n");
-  rprintf(F," -l, --links                 preserve soft links\n");
-  rprintf(F," -L, --copy-links            treat soft links like regular files\n");
+  rprintf(F," -l, --links                 copy symlinks as symlinks\n");
+  rprintf(F," -L, --copy-links            copy the referent of symlinks\n");
   rprintf(F,"     --copy-unsafe-links     copy links outside the source tree\n");
   rprintf(F,"     --safe-links            ignore links outside the destination tree\n");
   rprintf(F," -H, --hard-links            preserve hard links\n");
@@ -212,7 +222,8 @@ void usage(enum logcode F)
   rprintf(F,"     --include-from=FILE     don't exclude patterns listed in FILE\n");
   rprintf(F,"     --version               print version number\n");  
   rprintf(F,"     --daemon                run as a rsync daemon\n");  
-  rprintf(F,"     --address               bind to the specified address\n");  
+  rprintf(F,"     --no-detach             do not detach from the parent\n");  
+  rprintf(F,"     --address=ADDRESS       bind to the specified address\n");  
   rprintf(F,"     --config=FILE           specify alternate rsyncd.conf file\n");  
   rprintf(F,"     --port=PORT             specify alternate rsyncd port number\n");
   rprintf(F,"     --blocking-io           use blocking IO for the remote shell\n");  
@@ -298,6 +309,7 @@ static struct poptOption long_options[] = {
   /* TODO: Should this take an optional int giving the compression level? */
   {"compress",        'z', POPT_ARG_NONE,   &do_compression},
   {"daemon",           0,  POPT_ARG_NONE,   &am_daemon},
+  {"no-detach",        0,  POPT_ARG_NONE,   &no_detach},
   {"stats",            0,  POPT_ARG_NONE,   &do_stats},
   {"progress",         0,  POPT_ARG_NONE,   &do_progress},
   {"partial",          0,  POPT_ARG_NONE,   &keep_partial},
@@ -314,8 +326,8 @@ static struct poptOption long_options[] = {
   {"read-batch",      'f', POPT_ARG_STRING, &batch_ext, 'f'},
   {"write-batch",     'F', POPT_ARG_NONE,   &write_batch, 0},
 #ifdef INET6
-  {0,                '4', POPT_ARG_VAL,    &global_opts.af,   AF_INET },
-  {0,                '6', POPT_ARG_VAL,    &global_opts.af,   AF_INET6 },
+  {0,                '4', POPT_ARG_VAL,    &default_af_hint,   AF_INET },
+  {0,                '6', POPT_ARG_VAL,    &default_af_hint,   AF_INET6 },
 #endif
   {0,0,0,0}
 };