tests/pkd: input test payload buffer

Move the pkd test payload buffer into the arguments struct, to make
way for parameterizing the payload using command-line options.

Signed-off-by: Jon Simons <jon@jonsimons.org>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Jon Simons
2019-04-24 09:01:36 -07:00
committed by Andreas Schneider
parent 104c696bca
commit 410f100968
3 changed files with 17 additions and 3 deletions

View File

@@ -368,9 +368,9 @@ static int pkd_exec_hello(int fd, struct pkd_daemon_args *args)
goto out;
}
rc = ssh_channel_write(c, "hello\n", 6); /* XXX: customizable payloads */
if (rc != 6) {
pkderr("ssh_channel_write partial (%d)\n", rc);
rc = ssh_channel_write(c, args->payload.buf, args->payload.len);
if (rc != args->payload.len) {
pkderr("ssh_channel_write partial (%d != %zd)\n", rc, args->payload.len);
}
rc = ssh_channel_request_send_exit_status(c, 0);

View File

@@ -23,6 +23,11 @@ struct pkd_daemon_args {
enum pkd_hostkey_type_e type;
const char *hostkeypath;
struct {
const uint8_t *buf;
size_t len;
} payload;
struct {
int list;

View File

@@ -22,6 +22,12 @@
#define DEFAULT_ITERATIONS 10
static struct pkd_daemon_args pkd_dargs;
static uint8_t default_payload_buf[] = {
'h', 'e', 'l', 'l', 'o', '\n',
};
static size_t default_payload_len = sizeof(default_payload_buf);
#ifdef HAVE_ARGP_H
#include <argp.h>
#define PROGNAME "pkd_hello"
@@ -957,6 +963,9 @@ int main(int argc, char **argv) {
unsetenv("SSH_AUTH_SOCK");
pkd_dargs.payload.buf = default_payload_buf;
pkd_dargs.payload.len = default_payload_len;
rc = ssh_init();
if (rc != 0) {
rc = SSH_ERROR;