diff options
| author | Juan Linietsky | 2014-05-01 09:53:37 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2014-05-01 09:53:37 -0300 |
| commit | 4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97 (patch) | |
| tree | 73da4d4d6d0fa1b4c6761a63ac3674aead8b12e3 /drivers/openssl | |
| parent | 5ab65f0eadec6a67eda622787206a01c8af2cf7e (diff) | |
| download | godot-4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97.tar.gz godot-4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97.tar.zst godot-4dc4e96c8a4fb7e34ecae3a39ef0f3f3fb275e97.zip | |
-OpenSSL Fixes
Diffstat (limited to 'drivers/openssl')
| -rw-r--r-- | drivers/openssl/register_openssl.cpp | 16 | ||||
| -rw-r--r-- | drivers/openssl/register_openssl.h | 11 | ||||
| -rw-r--r-- | drivers/openssl/stream_peer_openssl.cpp | 14 | ||||
| -rw-r--r-- | drivers/openssl/stream_peer_openssl.h | 7 |
4 files changed, 42 insertions, 6 deletions
diff --git a/drivers/openssl/register_openssl.cpp b/drivers/openssl/register_openssl.cpp new file mode 100644 index 000000000..fe12c5565 --- /dev/null +++ b/drivers/openssl/register_openssl.cpp @@ -0,0 +1,16 @@ +#include "register_openssl.h"
+
+#include "stream_peer_openssl.h"
+
+void register_openssl() {
+
+ ObjectTypeDB::register_type<StreamPeerOpenSSL>();
+ StreamPeerOpenSSL::initialize_ssl();
+
+}
+
+void unregister_openssl() {
+
+ StreamPeerOpenSSL::finalize_ssl();
+
+}
diff --git a/drivers/openssl/register_openssl.h b/drivers/openssl/register_openssl.h new file mode 100644 index 000000000..e1c554ca4 --- /dev/null +++ b/drivers/openssl/register_openssl.h @@ -0,0 +1,11 @@ +#ifndef REGISTER_OPENSSL_H
+#define REGISTER_OPENSSL_H
+
+#ifdef OPENSSL_ENABLED
+
+void register_openssl();
+void unregister_openssl();
+
+#endif
+
+#endif // REGISTER_OPENSSL_H
diff --git a/drivers/openssl/stream_peer_openssl.cpp b/drivers/openssl/stream_peer_openssl.cpp index 2414533df..0751c76e3 100644 --- a/drivers/openssl/stream_peer_openssl.cpp +++ b/drivers/openssl/stream_peer_openssl.cpp @@ -1,9 +1,6 @@ -#include "stream_peer_openssl.h" #ifdef OPENSSL_ENABLED -#include "globals.h" -#include "os/file_access.h" -#include "curl_hostcheck.h" +#include "stream_peer_openssl.h" //hostname matching code from curl @@ -109,6 +106,7 @@ int StreamPeerOpenSSL::_cert_verify_callback(X509_STORE_CTX *x509_ctx, void *arg bool base_cert_valid = X509_verify_cert(x509_ctx); if (!base_cert_valid) { print_line("Cause: "+String(X509_verify_cert_error_string(X509_STORE_CTX_get_error(x509_ctx)))); + ERR_print_errors_fp(stdout); } X509 *server_cert = X509_STORE_CTX_get_current_cert(x509_ctx); @@ -361,7 +359,11 @@ Error StreamPeerOpenSSL::connect(Ref<StreamPeer> p_base, bool p_validate_certs, // Same as before, try to connect. int result = SSL_connect( ssl ); + print_line("CONNECTION RESULT: "+itos(result)); + if (result<1) { + _print_error(result); + } X509 * peer = SSL_get_peer_certificate(ssl); @@ -547,8 +549,10 @@ void StreamPeerOpenSSL::initialize_ssl() { } BIO_free(mem); } - print_line("Loaded certs: "+itos(certs.size())); + print_line("Loaded certs from '"+certs_path+"': "+itos(certs.size())); } + String config_path =GLOBAL_DEF("ssl/config",""); + Globals::get_singleton()->set_custom_property_info("ssl/config",PropertyInfo(Variant::STRING,"ssl/config",PROPERTY_HINT_FILE,"*.cnf")); } diff --git a/drivers/openssl/stream_peer_openssl.h b/drivers/openssl/stream_peer_openssl.h index e487cfde7..a66b641dd 100644 --- a/drivers/openssl/stream_peer_openssl.h +++ b/drivers/openssl/stream_peer_openssl.h @@ -3,12 +3,17 @@ #ifdef OPENSSL_ENABLED + +#include <stdio.h> // If you don't know what this is for stop reading now. #include "io/stream_peer_ssl.h" +#include "globals.h" +#include "os/file_access.h" +#include "curl_hostcheck.h" + #include <openssl/bio.h> // BIO objects for I/O #include <openssl/ssl.h> // SSL and SSL_CTX for SSL connections #include <openssl/err.h> // Error reporting #include <openssl/x509v3.h> -#include <stdio.h> // If you don't know what this is for stop reading now. class StreamPeerOpenSSL : public StreamPeerSSL { private: |
