Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3591c06
)
better negotiation of protocol versions
author
Andrew Tridgell
<tridge@samba.org>
Sun, 10 May 1998 03:08:22 +0000
(
03:08
+0000)
committer
Andrew Tridgell
<tridge@samba.org>
Sun, 10 May 1998 03:08:22 +0000
(
03:08
+0000)
clientserver.c
patch
|
blob
|
blame
|
history
diff --git
a/clientserver.c
b/clientserver.c
index
6d6e01d
..
b07654f
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;
@@
-175,11
+177,20
@@
static int start_daemon(int fd)
{
char line[1024];
char *motd;
{
char line[1024];
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");