If rsync_port is 0, set it to RSYNC_PORT.
[rsync/rsync.git] / clientserver.c
index ac99ae4..c8ba5d8 100644 (file)
@@ -50,6 +50,7 @@ extern char *bind_address;
 extern struct exclude_list_struct server_exclude_list;
 extern char *exclude_path_prefix;
 extern char *config_file;
+extern char *files_from;
 
 char *auth_user;
 
@@ -87,6 +88,9 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
                *p = '\0';
        }
 
+       if (rsync_port == 0)
+               rsync_port = RSYNC_PORT;
+
        fd = open_socket_out_wrapped(host, rsync_port, bind_address,
                                     default_af_hint);
        if (fd == -1)
@@ -461,6 +465,8 @@ static int rsync_module(int f_in, int f_out, int i)
                 * get the error back to the client.  This means getting
                 * the protocol setup finished first in later versions. */
                setup_protocol(f_out, f_in);
+               if (files_from && !am_sender && strcmp(files_from, "-") != 0)
+                       write_byte(f_out, 0);
                io_start_multiplex_out();
        }
 
@@ -595,6 +601,11 @@ int daemon_main(void)
        if (!lp_load(config_file, 1))
                exit_cleanup(RERR_SYNTAX);
 
+       if (rsync_port == 0 && (rsync_port = lp_rsync_port()) == 0)
+               rsync_port = RSYNC_PORT;
+       if (bind_address == NULL)
+               bind_address = lp_bind_address();
+
        log_init();
 
        rprintf(FLOG, "rsyncd version %s starting, listening on port %d\n",