Commit dfd14d2b authored by Jeff Trawick's avatar Jeff Trawick
Browse files

make some small steps towards getting the post config hook

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
parent 74debc66
Loading
Loading
Loading
Loading
+23 −12
Original line number Diff line number Diff line
@@ -141,7 +141,7 @@ 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,
static int ssl_tmp_key_init_rsa(server_rec *s,
                                int bits, int idx)
{
    SSLModConfigRec *mc = myModConfig(s);
@@ -152,12 +152,13 @@ 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,
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