summaryrefslogtreecommitdiff
path: root/src/erasurecode.c
diff options
context:
space:
mode:
authorTushar Gohad <tushar.gohad@intel.com>2014-07-07 15:37:14 -0700
committerTushar Gohad <tushar.gohad@intel.com>2014-07-07 15:37:14 -0700
commit6e600786f16bbcfbcaef9f0da7af7d5418f40c62 (patch)
treeeebe4eb54b8208eae6ff9faf0ca3b3c58e637d01 /src/erasurecode.c
parent411e53aae74384b3d3c5d1882d4b57f555391ce1 (diff)
downloadliberasurecode-6e600786f16bbcfbcaef9f0da7af7d5418f40c62.tar.gz
Add wrapper for dlerror()
Signed-off-by: Tushar Gohad <tushar.gohad@intel.com>
Diffstat (limited to 'src/erasurecode.c')
-rw-r--r--src/erasurecode.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c
index a26d42b..0142f44 100644
--- a/src/erasurecode.c
+++ b/src/erasurecode.c
@@ -97,6 +97,15 @@ int liberasurecode_backend_supported(const char *name)
return (liberasurecode_backend_lookup_by_name(name) != NULL);
}
+static void print_dlerror(const char *caller)
+{
+ char *msg = dlerror();
+ if (NULL == msg)
+ fprintf (stderr, "%s: unknown dynamic linking error\n", caller);
+ else
+ fprintf (stderr, "%s: dynamic linking error %s\n", caller, msg);
+}
+
/* Generic dlopen/dlclose routines */
int liberasurecode_backend_open(ec_backend_t instance)
{
@@ -107,7 +116,7 @@ int liberasurecode_backend_open(ec_backend_t instance)
/* Use RTLD_LOCAL to avoid symbol collisions */
instance->handle = dlopen(instance->common.soname, RTLD_LAZY | RTLD_LOCAL);
if (NULL == instance->handle) {
- fprintf(stderr, "%s\n", dlerror());
+ print_dlerror(__func__);
return -EBACKENDNOTAVAIL;
}