static void
run_kex(struct ssh *client, struct ssh *server)
{
	int r = 0;

	while (!server->kex->done || !client->kex->done) {
		if (do_debug)
			printf(" S:");
		if ((r = do_send_and_receive(server, client)))
			break;
		if (do_debug)
			printf(" C:");
		if ((r = do_send_and_receive(client, server)))
			break;
	}
	if (do_debug)
		printf("done: %s\n", ssh_err(r));
	ASSERT_INT_EQ(r, 0);
	ASSERT_INT_EQ(server->kex->done, 1);
	ASSERT_INT_EQ(client->kex->done, 1);
}
Exemple #2
0
static void
run_kex(struct ssh *client, struct ssh *server, int *s2c, int *c2s,
    int direction, int packet_index,
    const char *dump_path, struct sshbuf *replace_data)
{
	int r = 0;

	while (!server->kex->done || !client->kex->done) {
		if ((r = do_send_and_receive(server, client, S2C, s2c,
		    direction, packet_index, dump_path, replace_data)))
			break;
		if ((r = do_send_and_receive(client, server, C2S, c2s,
		    direction, packet_index, dump_path, replace_data)))
			break;
	}
	if (do_debug)
		printf("done: %s\n", ssh_err(r));
	ASSERT_INT_EQ(r, 0);
	ASSERT_INT_EQ(server->kex->done, 1);
	ASSERT_INT_EQ(client->kex->done, 1);
}