add runtime context flag to enforce defeat of OS CA CERTS even if build option selected
authorAndy Green <andy.green@linaro.org>
Sat, 5 Jul 2014 02:59:59 +0000 (10:59 +0800)
committerAndy Green <andy.green@linaro.org>
Sun, 6 Jul 2014 01:36:44 +0000 (09:36 +0800)
Signed-off-by: Andy Green <andy.green@linaro.org>
lib/libwebsockets.h
lib/ssl.c

index 147297b..0bb67f5 100644 (file)
@@ -152,6 +152,7 @@ enum libwebsocket_context_options {
        LWS_SERVER_OPTION_ALLOW_NON_SSL_ON_SSL_PORT = 8,
        LWS_SERVER_OPTION_LIBEV = 16,
        LWS_SERVER_OPTION_DISABLE_IPV6 = 32,
+       LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS = 64,
 };
 
 enum libwebsocket_callback_reasons {
index 7ccff55..940e00d 100644 (file)
--- a/lib/ssl.c
+++ b/lib/ssl.c
@@ -262,8 +262,9 @@ int lws_context_init_client_ssl(struct lws_context_creation_info *info,
                                                info->ssl_cipher_list);
 
 #ifdef LWS_SSL_CLIENT_USE_OS_CA_CERTS
-       /* loads OS default CA certs */
-       SSL_CTX_set_default_verify_paths(context->ssl_client_ctx);
+       if (!(info->options & LWS_SERVER_OPTION_DISABLE_OS_CA_CERTS))
+               /* loads OS default CA certs */
+               SSL_CTX_set_default_verify_paths(context->ssl_client_ctx);
 #endif
 
        /* openssl init for cert verification (for client sockets) */