Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
split the options parsing code into options.c
[rsync/rsync.git]
/
clientserver.c
diff --git
a/clientserver.c
b/clientserver.c
index
6d6e01d
..
38bb171
100644
(file)
--- a/
clientserver.c
+++ b/
clientserver.c
@@
-48,11
+48,6
@@
int start_socket_client(char *host, char *path, int argc, char *argv[])
sargs[sargc] = NULL;
sargs[sargc] = NULL;
- p = strchr(path,'/');
- if (p) *p = 0;
- io_printf(fd,"%s\n",path);
- if (p) *p = '/';
-
if (!read_line(fd, line, sizeof(line)-1)) {
return -1;
}
if (!read_line(fd, line, sizeof(line)-1)) {
return -1;
}
@@
-61,6
+56,13
@@
int start_socket_client(char *host, char *path, int argc, char *argv[])
return -1;
}
return -1;
}
+ io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);
+
+ p = strchr(path,'/');
+ if (p) *p = 0;
+ io_printf(fd,"%s\n",path);
+ if (p) *p = '/';
+
while (1) {
if (!read_line(fd, line, sizeof(line)-1)) {
return -1;
while (1) {
if (!read_line(fd, line, sizeof(line)-1)) {
return -1;
@@
-158,6
+160,8
@@
static int rsync_module(int fd, int i)
return 0;
}
return 0;
}
+/* send a list of available modules to the client. Don't list those
+ with "list = False". */
static void send_listing(int fd)
{
int n = lp_numservices();
static void send_listing(int fd)
{
int n = lp_numservices();
@@
-173,13
+177,22
@@
static void send_listing(int fd)
here */
static int start_daemon(int fd)
{
here */
static int start_daemon(int fd)
{
- char line[
1024
];
+ char line[
200
];
char *motd;
char *motd;
+ int version;
set_socket_options(fd,"SO_KEEPALIVE");
io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);
set_socket_options(fd,"SO_KEEPALIVE");
io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);
+ if (!read_line(fd, line, sizeof(line)-1)) {
+ return -1;
+ }
+
+ if (sscanf(line,"@RSYNCD: %d", &version) != 1) {
+ return -1;
+ }
+
motd = lp_motd_file();
if (*motd) {
FILE *f = fopen(motd,"r");
motd = lp_motd_file();
if (*motd) {
FILE *f = fopen(motd,"r");
@@
-194,7
+207,6
@@
static int start_daemon(int fd)
io_printf(fd,"\n");
}
io_printf(fd,"\n");
}
- /* read a single line indicating the resource that is wanted */
while (1) {
int i;
while (1) {
int i;
@@
-229,7
+241,9
@@
static int start_daemon(int fd)
int daemon_main(void)
{
int daemon_main(void)
{
- if (!lp_load(RSYNCD_CONF)) {
+ extern char *config_file;
+
+ if (!lp_load(config_file)) {
exit_cleanup(1);
}
exit_cleanup(1);
}