Hi,
        Here's another patch to fix one of the TODO items for SSL - it
enables the use of the ssl_var_lookup functionality in the various source
files in modules/ssl. The ap_hook_* functions are still not yet ported to
Apache 2.0 style.. Pl. let me know if you have any comments / suggestions..

Thanks
-Madhu


 <<patch_vars.txt>> 
Index: mod_ssl.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/ssl/mod_ssl.c,v
retrieving revision 1.10
diff -u -r1.10 mod_ssl.c
--- mod_ssl.c   2001/07/30 22:35:33     1.10
+++ mod_ssl.c   2001/07/31 00:07:19
@@ -488,6 +488,7 @@
     ap_hook_http_method   (ssl_hook_http_method,   NULL,NULL, APR_HOOK_MIDDLE);
     ap_hook_default_port  (ssl_hook_default_port,  NULL,NULL, APR_HOOK_MIDDLE);
     ap_hook_handler       (ssl_hook_Handler,       NULL,NULL, APR_HOOK_MIDDLE);
+    ap_hook_fixups        (ssl_hook_Fixup,         NULL,NULL, APR_HOOK_MIDDLE);
 
 #if 0 /* XXX - Work in progress */
     ap_hook_pre_config    (ssl_hook_pre_config,    NULL,NULL, APR_HOOK_MIDDLE);
@@ -509,10 +510,8 @@
     ap_hook_type_checker  (ssl_hook_fixer_upper,   NULL,NULL, APR_HOOK_MIDDLE);
     ap_hook_insert_filter (ssl_hook_insert_filter, NULL,NULL, APR_HOOK_MIDDLE);
 #endif
-#if 0 /* XXX */
     ssl_var_register();
     ssl_io_register();
-#endif
 }
 
 module AP_MODULE_DECLARE_DATA ssl_module = {
Index: mod_ssl.h
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/ssl/mod_ssl.h,v
retrieving revision 1.22
diff -u -r1.22 mod_ssl.h
--- mod_ssl.h   2001/07/30 22:35:33     1.22
+++ mod_ssl.h   2001/07/31 00:07:19
@@ -685,10 +685,8 @@
 void         ssl_die(void);
 
 /*  Variables  */
-#if 0 /* XXX */
 void         ssl_var_register(void);
 void         ssl_var_unregister(void);
-#endif /* XXX */
 char        *ssl_var_lookup(apr_pool_t *, server_rec *, conn_rec *, request_rec *, 
char *);
 
 /*  I/O  */
Index: ssl_engine_init.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/ssl/ssl_engine_init.c,v
retrieving revision 1.7
diff -u -r1.7 ssl_engine_init.c
--- ssl_engine_init.c   2001/07/19 16:08:01     1.7
+++ ssl_engine_init.c   2001/07/31 00:07:19
@@ -76,6 +76,7 @@
     SSLModConfigRec *mc = myModConfig(s);
     SSLSrvConfigRec *sc;
     server_rec *s2;
+    char *cp;
 
     /*
      * Let us cleanup on restarts and exists
@@ -121,12 +122,10 @@
      * Identification
      */
     if (mc->nInitCount == 1) {
-#if 0 /* XXX */
         ssl_log(s, SSL_LOG_INFO, "Server: %s, Interface: %s, Library: %s",
                 AP_SERVER_BASEVERSION,
-                ssl_var_lookup(p, NULL, NULL, NULL, "SSL_VERSION_INTERFACE"),
-                ssl_var_lookup(p, NULL, NULL, NULL, "SSL_VERSION_LIBRARY"));
-#endif
+                ssl_var_lookup(p, s, NULL, NULL, "SSL_VERSION_INTERFACE"),
+                ssl_var_lookup(p, s, NULL, NULL, "SSL_VERSION_LIBRARY"));
     }
 
     /*
@@ -257,12 +256,10 @@
      *  Announce mod_ssl and SSL library in HTTP Server field
      *  as ``mod_ssl/X.X.X OpenSSL/X.X.X''
      */
-#if 0 /* XXX */
-    if ((cp = ssl_var_lookup(p, NULL, NULL, NULL, "SSL_VERSION_PRODUCT")) != NULL && 
cp[0] != NUL)
+    if ((cp = ssl_var_lookup(p, s, NULL, NULL, "SSL_VERSION_PRODUCT")) != NULL && 
+cp[0] != NUL)
         ap_add_version_component(p, cp);
-    ap_add_version_component(p, ssl_var_lookup(p, NULL, NULL, NULL, 
"SSL_VERSION_INTERFACE"));
-    ap_add_version_component(p, ssl_var_lookup(p, NULL, NULL, NULL, 
"SSL_VERSION_LIBRARY"));
-#endif
+    ap_add_version_component(p, ssl_var_lookup(p, s, NULL, NULL, 
+"SSL_VERSION_INTERFACE"));
+    ap_add_version_component(p, ssl_var_lookup(p, s, NULL, NULL, 
+"SSL_VERSION_LIBRARY"));
 
     return;
 }
Index: ssl_engine_kernel.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/ssl/ssl_engine_kernel.c,v
retrieving revision 1.11
diff -u -r1.11 ssl_engine_kernel.c
--- ssl_engine_kernel.c 2001/07/30 22:30:51     1.11
+++ ssl_engine_kernel.c 2001/07/31 00:07:20
@@ -1296,9 +1298,7 @@
     if (dc->nOptions & SSL_OPT_STDENVVARS) {
         for (i = 0; ssl_hook_Fixup_vars[i] != NULL; i++) {
             var = (char *)ssl_hook_Fixup_vars[i];
-#if 0 /* XXX */
             val = ssl_var_lookup(r->pool, r->server, r->connection, r, var);
-#endif
             if (!strIsEmpty(val))
                 apr_table_set(e, var, val);
         }
@@ -1308,18 +1308,14 @@
      * On-demand bloat up the SSI/CGI environment with certificate data
      */
     if (dc->nOptions & SSL_OPT_EXPORTCERTDATA) {
-#if 0 /* XXX */
         val = ssl_var_lookup(r->pool, r->server, r->connection, r, "SSL_SERVER_CERT");
         apr_table_set(e, "SSL_SERVER_CERT", val);
         val = ssl_var_lookup(r->pool, r->server, r->connection, r, "SSL_CLIENT_CERT");
         apr_table_set(e, "SSL_CLIENT_CERT", val);
-#endif
         if ((sk = SSL_get_peer_cert_chain(ssl)) != NULL) {
             for (i = 0; i < sk_X509_num(sk); i++) {
                 var = apr_psprintf(r->pool, "SSL_CLIENT_CERT_CHAIN_%d", i);
-#if 0 /* XXX */
                 val = ssl_var_lookup(r->pool, r->server, r->connection, r, var);
-#endif
                 if (val != NULL)
                      apr_table_setn(e, var, val);
             }
@@ -1892,7 +1888,6 @@
      * right after a finished handshake.
      */
     if (where & SSL_CB_HANDSHAKE_DONE) {
-#if 0 /* XXX */
         ssl_log(s, SSL_LOG_INFO,
                 "Connection: Client IP: %s, Protocol: %s, Cipher: %s (%s/%s bits)",
                 ssl_var_lookup(NULL, s, c, NULL, "REMOTE_ADDR"),
@@ -1900,7 +1895,6 @@
                 ssl_var_lookup(NULL, s, c, NULL, "SSL_CIPHER"),
                 ssl_var_lookup(NULL, s, c, NULL, "SSL_CIPHER_USEKEYSIZE"),
                 ssl_var_lookup(NULL, s, c, NULL, "SSL_CIPHER_ALGKEYSIZE"));
-#endif
     }
 
     return;

Reply via email to