summaryrefslogtreecommitdiff
path: root/ext/openssl/openssl.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2003-02-27 17:43:38 +0000
committerWez Furlong <wez@php.net>2003-02-27 17:43:38 +0000
commitfd61f69077f6156ca71dde60ecfd9ed9765a02db (patch)
tree7285ad393cdb5a85107a3329d1ab2bcafe89f051 /ext/openssl/openssl.c
parent560e33968de93250377606782949f5004affca83 (diff)
downloadphp-git-fd61f69077f6156ca71dde60ecfd9ed9765a02db.tar.gz
Another big commit (tm).
Main Changes: - Implement a socket transport layer for use by all code that needs to open some kind of "special" socket for network or IPC. - Extensions can register (and override) transports. - Implement ftruncate() on streams via the ioctl-alike option interface. - Implement mmap() on streams via the ioctl-alike option interface. - Implement generic crypto API via the ioctl-alike option interface. (currently only supports OpenSSL, but could support other SSL toolkits, and other crypto transport protocols). Impact: - tcp sockets can be overloaded by the openssl capable sockets at runtime, removing the link-time requirement for ssl:// and https:// sockets and streams. - checking stream types using PHP_STREAM_IS_SOCKET is deprecated, since there are now a range of possible socket-type streams. Working towards: - socket servers using the new transport layer - mmap support under win32 - Cleaner code. # I will be updating the win32 build to add the new files shortly # after this commit.
Diffstat (limited to 'ext/openssl/openssl.c')
-rw-r--r--ext/openssl/openssl.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 976023e329..7fc9da3f5d 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -608,6 +608,13 @@ PHP_MINIT_FUNCTION(openssl)
} else {
strlcpy(default_ssl_conf_filename, config_filename, sizeof(default_ssl_conf_filename));
}
+
+ php_stream_xport_register("ssl", php_openssl_ssl_socket_factory TSRMLS_CC);
+ php_stream_xport_register("tls", php_openssl_ssl_socket_factory TSRMLS_CC);
+
+ /* override the default tcp socket provider */
+ php_stream_xport_register("tcp", php_openssl_ssl_socket_factory TSRMLS_CC);
+
return SUCCESS;
}
/* }}} */
@@ -628,6 +635,13 @@ PHP_MINFO_FUNCTION(openssl)
PHP_MSHUTDOWN_FUNCTION(openssl)
{
EVP_cleanup();
+
+ php_stream_xport_unregister("ssl" TSRMLS_CC);
+ php_stream_xport_unregister("tls" TSRMLS_CC);
+
+ /* reinstate the default tcp handler */
+ php_stream_xport_register("tcp", php_stream_generic_socket_factory TSRMLS_CC);
+
return SUCCESS;
}
/* }}} */