]> granicus.if.org Git - apache/commitdiff
make some small steps towards getting the post config hook
authorJeff Trawick <trawick@apache.org>
Fri, 7 Jun 2002 12:51:49 +0000 (12:51 +0000)
committerJeff Trawick <trawick@apache.org>
Fri, 7 Jun 2002 12:51:49 +0000 (12:51 +0000)
to return an error rather than exiting directly

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95567 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_engine_init.c

index 7116bea1cd1b821ffe0af4cc550cccef203b046a..2203210db7ee30b4d269e7ddc3dc5b3a761153cb 100644 (file)
@@ -141,8 +141,8 @@ static void ssl_tmp_keys_free(server_rec *s)
     MODSSL_TMP_KEYS_FREE(mc, DH);
 }
 
-static void ssl_tmp_key_init_rsa(server_rec *s,
-                                 int bits, int idx)
+static int ssl_tmp_key_init_rsa(server_rec *s,
+                                int bits, int idx)
 {
     SSLModConfigRec *mc = myModConfig(s);
 
@@ -152,13 +152,14 @@ static void ssl_tmp_key_init_rsa(server_rec *s,
         ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
                      "Init: Failed to generate temporary "
                      "%d bit RSA private key", bits);
-        ssl_die();
+        return !OK;
     }
 
+    return OK;
 }
 
-static void ssl_tmp_key_init_dh(server_rec *s,
-                                int bits, int idx)
+static int ssl_tmp_key_init_dh(server_rec *s,
+                               int bits, int idx)
 {
     SSLModConfigRec *mc = myModConfig(s);
 
@@ -168,8 +169,10 @@ static void ssl_tmp_key_init_dh(server_rec *s,
         ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
                      "Init: Failed to generate temporary "
                      "%d bit DH parameters", bits);
-        ssl_die();
+        return !OK;
     }
+
+    return OK;
 }
 
 #define MODSSL_TMP_KEY_INIT_RSA(s, bits) \
@@ -178,19 +181,25 @@ static void ssl_tmp_key_init_dh(server_rec *s,
 #define MODSSL_TMP_KEY_INIT_DH(s, bits) \
     ssl_tmp_key_init_dh(s, bits, SSL_TMP_KEY_DH_##bits)
 
-static void ssl_tmp_keys_init(server_rec *s)
+static int ssl_tmp_keys_init(server_rec *s)
 {
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
                  "Init: Generating temporary RSA private keys (512/1024 bits)");
 
-    MODSSL_TMP_KEY_INIT_RSA(s, 512);
-    MODSSL_TMP_KEY_INIT_RSA(s, 1024);
+    if (MODSSL_TMP_KEY_INIT_RSA(s, 512) ||
+        MODSSL_TMP_KEY_INIT_RSA(s, 1024)) {
+        return !OK;
+    }
 
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, s,
                  "Init: Generating temporary DH parameters (512/1024 bits)");
 
-    MODSSL_TMP_KEY_INIT_DH(s, 512);
-    MODSSL_TMP_KEY_INIT_DH(s, 1024);
+    if (MODSSL_TMP_KEY_INIT_DH(s, 512) ||
+        MODSSL_TMP_KEY_INIT_DH(s, 1024)) {
+        return !OK;
+    }
+
+    return OK;
 }
 
 /*
@@ -278,7 +287,9 @@ int ssl_init_Module(apr_pool_t *p, apr_pool_t *plog,
      */
     ssl_pphrase_Handle(base_server, ptemp);
 
-    ssl_tmp_keys_init(base_server);
+    if (ssl_tmp_keys_init(base_server)) {
+        return !OK;
+    }
 
     /*
      * SSL external crypto device ("engine") support