version 1.13, 2019/02/21 22:06:26 |
version 1.14, 2019/03/31 08:47:46 |
|
|
#define RSYNC_PATH "rsync" |
#define RSYNC_PATH "rsync" |
|
|
char ** |
char ** |
fargs_cmdline(struct sess *sess, const struct fargs *f) |
fargs_cmdline(struct sess *sess, const struct fargs *f, size_t *skip) |
{ |
{ |
char **args = NULL, **new; |
char **args = NULL, **new; |
size_t i = 0, n = 1, j, argsz = 0; |
size_t i = 0, n = 1, j, argsz = 0; |
|
|
goto out; |
goto out; |
|
|
if (f->host != NULL) { |
if (f->host != NULL) { |
assert(f->host != NULL); |
|
|
|
/* |
/* |
* Splice arguments from -e "foo bar baz" into array |
* Splice arguments from -e "foo bar baz" into array |
* elements required for execve(2). |
* elements required for execve(2). |
|
|
|
|
args[i++] = f->host; |
args[i++] = f->host; |
args[i++] = rsync_path; |
args[i++] = rsync_path; |
|
if (skip) |
|
*skip = i; |
args[i++] = "--server"; |
args[i++] = "--server"; |
if (f->mode == FARGS_RECEIVER) |
if (f->mode == FARGS_RECEIVER) |
args[i++] = "--sender"; |
args[i++] = "--sender"; |