version 1.4, 2019/02/11 19:18:36 |
version 1.5, 2019/02/11 21:41:22 |
|
|
int32_t idx; |
int32_t idx; |
struct blkset *blks = NULL; |
struct blkset *blks = NULL; |
|
|
if (-1 == pledge("stdio rpath unveil", NULL)) { |
if (pledge("stdio rpath unveil", NULL) == -1) { |
ERR(sess, "pledge"); |
ERR(sess, "pledge"); |
return 0; |
return 0; |
} |
} |
|
|
|
|
/* Exit if we're the server with zero files. */ |
/* Exit if we're the server with zero files. */ |
|
|
if (0 == flsz && sess->opts->server) { |
if (flsz == 0 && sess->opts->server) { |
WARNX(sess, "sender has empty file list: exiting"); |
WARNX(sess, "sender has empty file list: exiting"); |
rc = 1; |
rc = 1; |
goto out; |
goto out; |
|
|
if (!io_read_size(sess, fdin, &excl)) { |
if (!io_read_size(sess, fdin, &excl)) { |
ERRX1(sess, "io_read_size"); |
ERRX1(sess, "io_read_size"); |
goto out; |
goto out; |
} else if (0 != excl) { |
} else if (excl != 0) { |
ERRX1(sess, "exclusion list is non-empty"); |
ERRX1(sess, "exclusion list is non-empty"); |
goto out; |
goto out; |
} |
} |
|
|
* exit, depending upon which phase we're in. |
* exit, depending upon which phase we're in. |
*/ |
*/ |
|
|
if (-1 == idx) { |
if (idx == -1) { |
if (!io_write_int(sess, fdout, idx)) { |
if (!io_write_int(sess, fdout, idx)) { |
ERRX1(sess, "io_write_int"); |
ERRX1(sess, "io_write_int"); |
goto out; |
goto out; |
|
|
*/ |
*/ |
|
|
blks = blk_recv(sess, fdin, fl[idx].path); |
blks = blk_recv(sess, fdin, fl[idx].path); |
if (NULL == blks) { |
if (blks == NULL) { |
ERRX1(sess, "blk_recv"); |
ERRX1(sess, "blk_recv"); |
goto out; |
goto out; |
} else if (!blk_recv_ack(sess, fdout, blks, idx)) { |
} else if (!blk_recv_ack(sess, fdout, blks, idx)) { |
|
|
if (!io_read_int(sess, fdin, &idx)) { |
if (!io_read_int(sess, fdin, &idx)) { |
ERRX1(sess, "io_read_int"); |
ERRX1(sess, "io_read_int"); |
goto out; |
goto out; |
} else if (-1 != idx) { |
} else if (idx != -1) { |
ERRX(sess, "read incorrect update complete ack"); |
ERRX(sess, "read incorrect update complete ack"); |
goto out; |
goto out; |
} |
} |