Skip to content

Commit

Permalink
RT2275: use BIO_sock_nbio()
Browse files Browse the repository at this point in the history
Now that BIO_sock_nbio is available, use it in the apps.

Reviewed-by: Richard Levitte <[email protected]>
  • Loading branch information
richsalz authored and Rich Salz committed Feb 27, 2016
1 parent 6ab3641 commit ba81081
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 35 deletions.
14 changes: 2 additions & 12 deletions apps/s_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -168,11 +168,6 @@ typedef unsigned int u_int;
#include "s_apps.h"
#include "timeouts.h"

#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000)
/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */
# undef FIONBIO
#endif

#if defined(__has_feature)
# if __has_feature(memory_sanitizer)
# include <sanitizer/msan_interface.h>
Expand Down Expand Up @@ -792,9 +787,7 @@ OPTIONS s_client_options[] = {
#ifdef WATT32
{"wdebug", OPT_WDEBUG, '-', "WATT-32 tcp debugging"},
#endif
#ifdef FIONBIO
{"nbio", OPT_NBIO, '-', "Use non-blocking IO"},
#endif
#ifndef OPENSSL_NO_PSK
{"psk_identity", OPT_PSK_IDENTITY, 's', "PSK identity"},
{"psk", OPT_PSK, 's', "PSK in hex (without 0x)"},
Expand Down Expand Up @@ -1705,16 +1698,13 @@ int s_client_main(int argc, char **argv)
}
BIO_printf(bio_c_out, "CONNECTED(%08X)\n", s);

#ifdef FIONBIO
if (c_nbio) {
unsigned long l = 1;
BIO_printf(bio_c_out, "turning on non blocking io\n");
if (BIO_socket_ioctl(s, FIONBIO, &l) < 0) {
if (!BIO_socket_nbio(s, 1)) {
ERR_print_errors(bio_err);
goto end;
}
BIO_printf(bio_c_out, "Turned on non blocking io\n");
}
#endif
if (socket_type == SOCK_DGRAM) {

sbio = BIO_new_dgram(s, BIO_NOCLOSE);
Expand Down
29 changes: 6 additions & 23 deletions apps/s_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -185,11 +185,6 @@ typedef unsigned int u_int;
#include "s_apps.h"
#include "timeouts.h"

#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000)
/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */
# undef FIONBIO
#endif

static int not_resumable_sess_cb(SSL *s, int is_forward_secure);
static int sv_body(int s, int stype, unsigned char *context);
static int www_body(int s, int stype, unsigned char *context);
Expand Down Expand Up @@ -226,9 +221,7 @@ static const char *s_cert_file = TEST_CERT, *s_key_file =

static const char *s_cert_file2 = TEST_CERT2, *s_key_file2 = NULL;
static char *s_dcert_file = NULL, *s_dkey_file = NULL, *s_dchain_file = NULL;
#ifdef FIONBIO
static int s_nbio = 0;
#endif
static int s_nbio_test = 0;
static int s_crlf = 0;
static SSL_CTX *ctx = NULL;
Expand Down Expand Up @@ -948,9 +941,7 @@ OPTIONS s_server_options[] = {
OPT_S_OPTIONS,
OPT_V_OPTIONS,
OPT_X_OPTIONS,
#ifdef FIONBIO
{"nbio", OPT_NBIO, '-', "Use non-blocking IO"},
#endif
#ifndef OPENSSL_NO_PSK
{"psk_hint", OPT_PSK_HINT, 's', "PSK identity hint to use"},
{"psk", OPT_PSK, 's', "PSK in hex (without 0x)"},
Expand Down Expand Up @@ -2072,16 +2063,12 @@ static int sv_body(int s, int stype, unsigned char *context)
#endif

buf = app_malloc(bufsize, "server buffer");
#ifdef FIONBIO
if (s_nbio) {
unsigned long sl = 1;

if (!s_quiet)
BIO_printf(bio_err, "turning on non blocking io\n");
if (BIO_socket_ioctl(s, FIONBIO, &sl) < 0)
if (!BIO_socket_nbio(s, 1))
ERR_print_errors(bio_err);
else if (!s_quiet)
BIO_printf(bio_err, "Turned on non blocking io\n");
}
#endif

if (con == NULL) {
con = SSL_new(ctx);
Expand Down Expand Up @@ -2670,16 +2657,12 @@ static int www_body(int s, int stype, unsigned char *context)
if ((io == NULL) || (ssl_bio == NULL))
goto err;

#ifdef FIONBIO
if (s_nbio) {
unsigned long sl = 1;

if (!s_quiet)
BIO_printf(bio_err, "turning on non blocking io\n");
if (BIO_socket_ioctl(s, FIONBIO, &sl) < 0)
if (!BIO_socket_nbio(s, 1))
ERR_print_errors(bio_err);
else if (!s_quiet)
BIO_printf(bio_err, "Turned on non blocking io\n");
}
#endif

/* lets make the output buffer a reasonable size */
if (!BIO_set_write_buffer_size(io, bufsize))
Expand Down

0 comments on commit ba81081

Please sign in to comment.