diff options
author | Matt Caswell <matt@openssl.org> | 2015-07-22 17:50:51 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2015-11-20 23:33:46 +0000 |
commit | 252d6d3aa62dccf0dc826644b7da0b6bafa3831b (patch) | |
tree | 529055a0ca2eb9f6564f18e4a87d25d1d458c371 /apps | |
parent | 7070e5ca2fa41940d56599bf016a45cb1c0e03f0 (diff) |
Add ASYNC_JOB pools
It is expensive to create the ASYNC_JOB objects due to the "makecontext"
call. This change adds support for pools of ASYNC_JOB objects so that we
don't have to create a new ASYNC_JOB every time we want to use one.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/Makefile | 46 | ||||
-rw-r--r-- | apps/s_server.c | 8 |
2 files changed, 30 insertions, 24 deletions
diff --git a/apps/Makefile b/apps/Makefile index 932f615146..a6d931c91c 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -802,29 +802,29 @@ s_client.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h s_client.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h s_client.o: ../include/openssl/x509v3.h apps.h progs.h s_apps.h s_client.c s_client.o: timeouts.h -s_server.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h -s_server.o: ../include/openssl/bn.h ../include/openssl/buffer.h -s_server.o: ../include/openssl/comp.h ../include/openssl/conf.h -s_server.o: ../include/openssl/crypto.h ../include/openssl/dh.h -s_server.o: ../include/openssl/dtls1.h ../include/openssl/e_os2.h -s_server.o: ../include/openssl/ec.h ../include/openssl/ecdh.h -s_server.o: ../include/openssl/ecdsa.h ../include/openssl/engine.h -s_server.o: ../include/openssl/err.h ../include/openssl/evp.h -s_server.o: ../include/openssl/hmac.h ../include/openssl/lhash.h -s_server.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h -s_server.o: ../include/openssl/ocsp.h ../include/openssl/opensslconf.h -s_server.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h -s_server.o: ../include/openssl/pem.h ../include/openssl/pem2.h -s_server.o: ../include/openssl/pkcs7.h ../include/openssl/rand.h -s_server.o: ../include/openssl/rsa.h ../include/openssl/safestack.h -s_server.o: ../include/openssl/sha.h ../include/openssl/srp.h -s_server.o: ../include/openssl/srtp.h ../include/openssl/ssl.h -s_server.o: ../include/openssl/ssl2.h ../include/openssl/ssl3.h -s_server.o: ../include/openssl/stack.h ../include/openssl/symhacks.h -s_server.o: ../include/openssl/tls1.h ../include/openssl/txt_db.h -s_server.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h -s_server.o: ../include/openssl/x509v3.h apps.h progs.h s_apps.h s_server.c -s_server.o: timeouts.h +s_server.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/async.h +s_server.o: ../include/openssl/bio.h ../include/openssl/bn.h +s_server.o: ../include/openssl/buffer.h ../include/openssl/comp.h +s_server.o: ../include/openssl/conf.h ../include/openssl/crypto.h +s_server.o: ../include/openssl/dh.h ../include/openssl/dtls1.h +s_server.o: ../include/openssl/e_os2.h ../include/openssl/ec.h +s_server.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h +s_server.o: ../include/openssl/engine.h ../include/openssl/err.h +s_server.o: ../include/openssl/evp.h ../include/openssl/hmac.h +s_server.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h +s_server.o: ../include/openssl/objects.h ../include/openssl/ocsp.h +s_server.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h +s_server.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h +s_server.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h +s_server.o: ../include/openssl/rand.h ../include/openssl/rsa.h +s_server.o: ../include/openssl/safestack.h ../include/openssl/sha.h +s_server.o: ../include/openssl/srp.h ../include/openssl/srtp.h +s_server.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h +s_server.o: ../include/openssl/ssl3.h ../include/openssl/stack.h +s_server.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h +s_server.o: ../include/openssl/txt_db.h ../include/openssl/x509.h +s_server.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h apps.h +s_server.o: progs.h s_apps.h s_server.c timeouts.h s_socket.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h s_socket.o: ../include/openssl/buffer.h ../include/openssl/comp.h s_socket.o: ../include/openssl/conf.h ../include/openssl/crypto.h diff --git a/apps/s_server.c b/apps/s_server.c index 548eacbbce..6fb8f675a3 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -143,6 +143,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <openssl/async.h> #include <openssl/e_os2.h> @@ -1657,8 +1658,10 @@ int s_server_main(int argc, char *argv[]) else SSL_CTX_sess_set_cache_size(ctx, 128); - if (async) + if (async) { SSL_CTX_set_mode(ctx, SSL_MODE_ASYNC); + ASYNC_init_pool(0, 0, 0); + } #ifndef OPENSSL_NO_SRTP if (srtp_profiles != NULL) { @@ -1970,6 +1973,9 @@ int s_server_main(int argc, char *argv[]) bio_s_out = NULL; BIO_free(bio_s_msg); bio_s_msg = NULL; + if (async) { + ASYNC_free_pool(); + } return (ret); } |