int sargc=0;
char line[1024];
char *p;
- int version;
+ extern int remote_version;
fd = open_socket_out(host, rsync_port);
if (fd == -1) {
return -1;
}
- if (sscanf(line,"@RSYNCD: %d", &version) != 1) {
+ if (sscanf(line,"@RSYNCD: %d", &remote_version) != 1) {
return -1;
}
{
char line[200];
char *motd;
- int version;
int i = -1;
extern char *config_file;
+ extern int remote_version;
if (!lp_load(config_file)) {
exit_cleanup(1);
return -1;
}
- if (sscanf(line,"@RSYNCD: %d", &version) != 1) {
+ if (sscanf(line,"@RSYNCD: %d", &remote_version) != 1) {
return -1;
}
void setup_protocol(int f_out,int f_in)
{
- if (am_server) {
- remote_version = read_int(f_in);
- write_int(f_out,PROTOCOL_VERSION);
- write_flush(f_out);
- } else {
- write_int(f_out,PROTOCOL_VERSION);
- write_flush(f_out);
- remote_version = read_int(f_in);
- }
+ if (remote_version == 0) {
+ if (am_server) {
+ remote_version = read_int(f_in);
+ write_int(f_out,PROTOCOL_VERSION);
+ write_flush(f_out);
+ } else {
+ write_int(f_out,PROTOCOL_VERSION);
+ write_flush(f_out);
+ remote_version = read_int(f_in);
+ }
+ }
- if (remote_version < MIN_PROTOCOL_VERSION ||
- remote_version > MAX_PROTOCOL_VERSION) {
- rprintf(FERROR,"protocol version mismatch - is your shell clean?\n");
- exit_cleanup(1);
- }
-
- if (verbose > 2)
- rprintf(FINFO, "local_version=%d remote_version=%d\n",
- PROTOCOL_VERSION, remote_version);
-
- if (remote_version >= 12) {
- if (am_server) {
- checksum_seed = time(NULL);
- write_int(f_out,checksum_seed);
- } else {
- checksum_seed = read_int(f_in);
- }
- }
-
- checksum_init();
+ if (remote_version < MIN_PROTOCOL_VERSION ||
+ remote_version > MAX_PROTOCOL_VERSION) {
+ rprintf(FERROR,"protocol version mismatch - is your shell clean?\n");
+ exit_cleanup(1);
+ }
+
+ if (verbose > 2)
+ rprintf(FINFO, "local_version=%d remote_version=%d\n",
+ PROTOCOL_VERSION, remote_version);
+
+ if (remote_version >= 12) {
+ if (am_server) {
+ checksum_seed = time(NULL);
+ write_int(f_out,checksum_seed);
+ } else {
+ checksum_seed = read_int(f_in);
+ }
+ }
+
+ checksum_init();
}