From 242ebeb98a05ff8e032105a2f875b807f6b61757 Mon Sep 17 00:00:00 2001 From: Bradley Nicholes Date: Mon, 2 Jun 2003 15:24:30 +0000 Subject: [PATCH] Allow for an unclean shutdown of SSL ports to avoid timeout conditions between the client and the server. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@100138 13f79535-47bb-0310-9956-ffa450edef68 --- modules/arch/netware/mod_nw_ssl.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/arch/netware/mod_nw_ssl.c b/modules/arch/netware/mod_nw_ssl.c index a931cf8f33..84cfc76c0c 100644 --- a/modules/arch/netware/mod_nw_ssl.c +++ b/modules/arch/netware/mod_nw_ssl.c @@ -89,6 +89,10 @@ #include "apr_portable.h" #include "apr_optional.h" +#ifndef SO_TLS_UNCLEAN_SHUTDOWN +#define SO_TLS_UNCLEAN_SHUTDOWN 0 +#endif + APR_DECLARE_OPTIONAL_FN(int, ssl_proxy_enable, (conn_rec *)); APR_DECLARE_OPTIONAL_FN(int, ssl_engine_disable, (conn_rec *)); @@ -266,7 +270,7 @@ static int make_secure_socket(apr_pool_t *pconf, const struct sockaddr_in *serve } if (mutual) { - optParam = 0x07; // SO_SSL_AUTH_CLIENT + optParam = 0x07; // SO_SSL_AUTH_CLIENT if(WSAIoctl(s, SO_SSL_SET_FLAGS, (char*)&optParam, sizeof(optParam), NULL, 0, NULL, NULL, NULL)) { @@ -277,6 +281,10 @@ static int make_secure_socket(apr_pool_t *pconf, const struct sockaddr_in *serve } } + optParam = SO_TLS_UNCLEAN_SHUTDOWN; + WSAIoctl(s, SO_SSL_SET_FLAGS, (char *)&optParam, sizeof(optParam), + NULL, 0, NULL, NULL, NULL); + return s; } @@ -307,6 +315,10 @@ int convert_secure_socket(conn_rec *c, apr_socket_t *csd) return rcode; } + ulFlags = SO_TLS_UNCLEAN_SHUTDOWN; + WSAIoctl(sock, SO_TLS_SET_FLAGS, &ulFlags, sizeof(unsigned long), + NULL, 0, NULL, NULL, NULL); + /* setup the socket for SSL */ memset (&sWS2Opts, 0, sizeof(sWS2Opts)); memset (&sNWTLSOpts, 0, sizeof(sNWTLSOpts)); @@ -526,12 +538,13 @@ static int isSecure (const request_rec *r) static int nwssl_hook_Fixup(request_rec *r) { - apr_table_t *e = r->subprocess_env; + int i; + if (!isSecure(r)) return DECLINED; - apr_table_set(e, "HTTPS", "on"); - + apr_table_set(r->subprocess_env, "HTTPS", "on"); + return DECLINED; } -- 2.50.1