diff options
author | minfrin <minfrin@13f79535-47bb-0310-9956-ffa450edef68> | 2009-01-03 17:30:06 +0000 |
---|---|---|
committer | minfrin <minfrin@13f79535-47bb-0310-9956-ffa450edef68> | 2009-01-03 17:30:06 +0000 |
commit | 78a78db37a81fbf0d710db2b602a2b007ab75207 (patch) | |
tree | 18756390a78552f29b8eb44332f2e8d7785838cb /crypto/apr_crypto.c | |
parent | 99ce8e90edb1fa72d39c38d7f4ef68a826937c58 (diff) | |
download | libapr-util-78a78db37a81fbf0d710db2b602a2b007ab75207.tar.gz |
Make sure that the underlying result code during driver initialisation
is exposed to the caller.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr-util/trunk@731033 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'crypto/apr_crypto.c')
-rw-r--r-- | crypto/apr_crypto.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/apr_crypto.c b/crypto/apr_crypto.c index 7e794caa..ef843102 100644 --- a/crypto/apr_crypto.c +++ b/crypto/apr_crypto.c @@ -111,6 +111,7 @@ APU_DECLARE(apr_status_t) apr_crypto_get_driver(apr_pool_t *pool, const char *na apr_dso_handle_sym_t symbol; #endif apr_status_t rv; + int rc = 0; #if APU_DSO_BUILD rv = apu_dso_mutex_lock(); @@ -151,7 +152,7 @@ APU_DECLARE(apr_status_t) apr_crypto_get_driver(apr_pool_t *pool, const char *na } *driver = symbol; if ((*driver)->init) { - (*driver)->init(pool, params); + rv = (*driver)->init(pool, params, &rc); } name = apr_pstrdup(pool, name); apr_hash_set(drivers, name, APR_HASH_KEY_STRING, *driver); @@ -165,6 +166,7 @@ APU_DECLARE(apr_status_t) apr_crypto_get_driver(apr_pool_t *pool, const char *na apr_dso_error(dso, buffer, ERROR_SIZE - 1); err->msg = buffer; err->reason = modname; + err->rc = rc; *result = err; } } |