-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Greetings,
I've been trying to set up rssh with rsync 3.0.6, with some difficulty I made it work. I had to add the --protocol=29 or --protocol=26 command line argument to rsync, that was not a problem. However, I also had to modify rssh because all the patches I could find were either out of date or would not work. Since the bug I found was rather simple, I figured I could just post my solution here, hoping it'd get picket up some day.
The problem is as follows: rsync should not use the -e argument, so there's a check on that (don't ask me why, but the code says so). That's why you need to use the protocol argument. However, rsync also passes the --server argument. Since the opt_exist function in util.c doesn't grasp the concept of long arguments, it sees the 'e' in 'server' and claims the -e option has been passed.
The fix is rather simple (once you've gotten to this point, after maybe an hour or 3):
- ----- begin rss-2.3.4/util.c.diff -----
- --- util.c Thu Aug 07 17:03:50 2014
+++ util.c~ Thu Aug 07 17:02:48 2014
@@ -139,6 +139,10 @@
/* process command line character by character */
if (!(cl[0] == '-')) return FALSE;
+
+ /* Ignore verbose command line arguments */
+ if ( (1 < len) && (cl[1] == '-') ) return FALSE;
+
while ( i < (len) ){
if ( cl[i] == opt ) return TRUE;
i++;
- ----- begin rss-2.3.4/util.c.diff -----
In this case, the "little over-zealous" really wasn't good enough.
Johan de Vries
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)
iQEcBAEBAgAGBQJT45YiAAoJELlZja9I/jIAO0UH/0p5iv3iTwMKnA9bc/iCh/rc
2TVXd9Scw8qFCTM5kj9dBXGLDICe2Rz1c0e/slLsqbAm9zXUaLGaITnEsxlcDTzy
iN9U1xedLStSwsjhCQ3osz6r4QwLFIob/fuoTXagXXvWv7DfwnB5uDiPPN31M0wb
CCR4039rZzlS6L5fsE0ThoDrtxu1RN5sythVmYJtkOZG6KAAyZYISwb1sxFBSqPL
6PoBPoMuHK0JapbBBS3cvW8TpuhRDz+bkbHs8cKfutSiHzVviWpFgk0E2OjnWh2U
LwUNT0ImOnaNDcEK0CPBbT36ry/Ff3o/kyihg9SboQXaDX+dSgT69V9hbiPgMLE=
=w7W1
-----END PGP SIGNATURE-----
|