version 1.12, 2019/03/18 15:33:21 |
version 1.13, 2019/03/23 00:20:55 |
|
|
* It can either be in sender or receiver mode. |
* It can either be in sender or receiver mode. |
* In the former, it synchronises local files from a remote sink. |
* In the former, it synchronises local files from a remote sink. |
* In the latter, the remote sink synchronses to the local files. |
* In the latter, the remote sink synchronses to the local files. |
* |
* Returns exit code 0 on success, 1 on failure, 2 on failure with |
* Pledges: stdio, rpath, wpath, cpath, unveil, fattr, chown. |
* incompatible protocols. |
* |
|
* Pledges (dry-run): -cpath, -wpath, -fattr, chown. |
|
* Pledges (!preserve_times): -fattr. |
|
*/ |
*/ |
int |
int |
rsync_client(const struct opts *opts, int fd, const struct fargs *f) |
rsync_client(const struct opts *opts, int fd, const struct fargs *f) |
{ |
{ |
struct sess sess; |
struct sess sess; |
int rc = 0; |
int rc = 1; |
|
|
/* Standard rsync preamble, sender side. */ |
/* Standard rsync preamble, sender side. */ |
|
|
|
|
} |
} |
|
|
if (sess.rver < sess.lver) { |
if (sess.rver < sess.lver) { |
ERRX(&sess, "remote protocol is older " |
ERRX(&sess, |
"than our own (%" PRId32 " < %" PRId32 "): " |
"remote protocol %d is older than our own %d: unsupported", |
"this is not supported", |
sess.rver, sess.lver); |
sess.rver, sess.lver); |
rc = 2; |
goto out; |
goto out; |
} |
} |
|
|
|
|
WARNX(&sess, "data remains in read pipe"); |
WARNX(&sess, "data remains in read pipe"); |
#endif |
#endif |
|
|
rc = 1; |
rc = 0; |
out: |
out: |
return rc; |
return rc; |
} |
} |