diff src/event/ngx_event_openssl.h @ 96:ca4f70b3ccc6 NGINX_0_2_2

nginx 0.2.2 *) Feature: the "config errmsg" command of the ngx_http_ssi_module. *) Change: the ngx_http_geo_module variables can be overridden by the "set" directive. *) Feature: the "ssl_protocols" and "ssl_prefer_server_ciphers" directives of the ngx_http_ssl_module and ngx_imap_ssl_module. *) Bugfix: the ngx_http_autoindex_module did not show correctly the long file names; *) Bugfix: the ngx_http_autoindex_module now do not show the files starting by dot. *) Bugfix: if the SSL handshake failed then another connection may be closed too. Thanks to Rob Mueller. *) Bugfix: the export versions of MSIE 5.x could not connect via HTTPS.
author Igor Sysoev <http://sysoev.ru>
date Fri, 30 Sep 2005 00:00:00 +0400
parents 45945fa8b8ba
children 408f195b3482
line wrap: on
line diff
--- a/src/event/ngx_event_openssl.h
+++ b/src/event/ngx_event_openssl.h
@@ -16,44 +16,53 @@
 
 #if OPENSSL_VERSION_NUMBER >= 0x00907000
 #include <openssl/engine.h>
-#define NGX_SSL_ENGINE     1
+#define NGX_SSL_ENGINE   1
 #endif
 
-#define NGX_SSL_NAME       "OpenSSL"
+#define NGX_SSL_NAME     "OpenSSL"
+
+
+typedef struct {
+    SSL_CTX                    *ctx;
+    RSA                        *rsa512_key;
+    ngx_log_t                  *log;
+} ngx_ssl_t;
 
 
 typedef struct {
-    SSL                   *connection;
-    ngx_int_t              last;
-    ngx_buf_t             *buf;
-    ngx_event_handler_pt   saved_read_handler;
-    ngx_event_handler_pt   saved_write_handler;
+    SSL                        *connection;
+    ngx_int_t                   last;
+    ngx_buf_t                  *buf;
+
+    ngx_connection_handler_pt   handler;
 
-    unsigned               buffer:1;
-    unsigned               no_rcv_shut:1;
-    unsigned               no_send_shut:1;
-    unsigned               shutdown_set:1;
+    ngx_event_handler_pt        saved_read_handler;
+    ngx_event_handler_pt        saved_write_handler;
 
-#if (NGX_DEBUG)
-    unsigned               handshaked:1;
-#endif
-} ngx_ssl_t;
+    unsigned                    handshaked:1;
+    unsigned                    buffer:1;
+    unsigned                    no_wait_shutdown:1;
+    unsigned                    no_send_shutdown:1;
+} ngx_ssl_connection_t;
 
 
-typedef SSL_CTX  ngx_ssl_ctx_t;
+#define NGX_SSL_SSLv2    2
+#define NGX_SSL_SSLv3    4
+#define NGX_SSL_TLSv1    8
 
 
-#define NGX_SSL_BUFFER       1
+#define NGX_SSL_BUFFER   1
 
-#define NGX_SSL_BUFSIZE      16384
+#define NGX_SSL_BUFSIZE  16384
 
 
 ngx_int_t ngx_ssl_init(ngx_log_t *log);
-ngx_int_t ngx_ssl_create_connection(ngx_ssl_ctx_t *ctx, ngx_connection_t *c,
+ngx_int_t ngx_ssl_create(ngx_ssl_t *ssl, ngx_uint_t protocols);
+ngx_int_t ngx_ssl_certificate(ngx_ssl_t *ssl, u_char *cert, u_char *key);
+ngx_int_t ngx_ssl_generate_rsa512_key(ngx_ssl_t *ssl);
+ngx_int_t ngx_ssl_create_connection(ngx_ssl_t *ssl, ngx_connection_t *c,
     ngx_uint_t flags);
-
-#define ngx_ssl_handshake(c)     NGX_OK
-
+ngx_int_t ngx_ssl_handshake(ngx_connection_t *c);
 ssize_t ngx_ssl_recv(ngx_connection_t *c, u_char *buf, size_t size);
 ssize_t ngx_ssl_write(ngx_connection_t *c, u_char *data, size_t size);
 ngx_chain_t *ngx_ssl_send_chain(ngx_connection_t *c, ngx_chain_t *in,