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); }
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); }