From: Matt Caswell Date: Mon, 27 Feb 2017 20:55:04 +0000 (+0000) Subject: Updates to s_server and s_client for the latest early_data API changes X-Git-Tag: OpenSSL_1_1_1-pre1~2134 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=ade1e88806461df5516525a8f36e707820167e01;hp=3eaa4170956dc7ca2a0c9fc9414dc42cac7b426e Updates to s_server and s_client for the latest early_data API changes Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/2737) --- diff --git a/apps/s_client.c b/apps/s_client.c index c11a634ac9..fdfd90bf1e 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -2375,9 +2375,7 @@ int s_client_main(int argc, char **argv) if (!BIO_read_ex(edfile, cbuf, BUFSIZZ, &readbytes)) finish = 1; - while (finish ? !SSL_write_early_finish(con) - : !SSL_write_early(con, cbuf, readbytes, - &writtenbytes)) { + while (!SSL_write_early(con, cbuf, readbytes, &writtenbytes)) { switch (SSL_get_error(con, 0)) { case SSL_ERROR_WANT_WRITE: case SSL_ERROR_WANT_ASYNC: diff --git a/apps/s_server.c b/apps/s_server.c index 6e5c945e71..8d157642d5 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -104,6 +104,7 @@ static void free_sessions(void); #ifndef OPENSSL_NO_DH static DH *load_dh_param(const char *dhfile); #endif +static void print_connection_info(SSL *con); /* static int load_CA(SSL_CTX *ctx, char *file);*/ @@ -2244,6 +2245,8 @@ static int sv_body(int s, int stype, unsigned char *context) BIO_printf(bio_s_out, "No early data received\n"); else BIO_printf(bio_s_out, "\nEnd of early data\n"); + if (SSL_is_init_finished(con)) + print_connection_info(con); } if (fileno_stdin() > s) @@ -2571,15 +2574,7 @@ static void close_accept_socket(void) static int init_ssl_connection(SSL *con) { int i; - const char *str; - X509 *peer; long verify_err; - char buf[BUFSIZ]; -#if !defined(OPENSSL_NO_NEXTPROTONEG) - const unsigned char *next_proto_neg; - unsigned next_proto_neg_len; -#endif - unsigned char *exportedkeymat; int retry = 0; #ifndef OPENSSL_NO_DTLS @@ -2673,6 +2668,22 @@ static int init_ssl_connection(SSL *con) return (0); } + print_connection_info(con); + return 1; +} + +static void print_connection_info(SSL *con) +{ + const char *str; + X509 *peer; + char buf[BUFSIZ]; +#if !defined(OPENSSL_NO_NEXTPROTONEG) + const unsigned char *next_proto_neg; + unsigned next_proto_neg_len; +#endif + unsigned char *exportedkeymat; + int i; + if (s_brief) print_ssl_summary(con); @@ -2743,7 +2754,6 @@ static int init_ssl_connection(SSL *con) } (void)BIO_flush(bio_s_out); - return (1); } #ifndef OPENSSL_NO_DH