summaryrefslogtreecommitdiff
path: root/crypto/apr_crypto.c
diff options
context:
space:
mode:
authorminfrin <minfrin@13f79535-47bb-0310-9956-ffa450edef68>2009-01-03 17:30:06 +0000
committerminfrin <minfrin@13f79535-47bb-0310-9956-ffa450edef68>2009-01-03 17:30:06 +0000
commit78a78db37a81fbf0d710db2b602a2b007ab75207 (patch)
tree18756390a78552f29b8eb44332f2e8d7785838cb /crypto/apr_crypto.c
parent99ce8e90edb1fa72d39c38d7f4ef68a826937c58 (diff)
downloadlibapr-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.c4
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;
}
}