summaryrefslogtreecommitdiff
path: root/src/plugin.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2016-06-29 08:20:12 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2016-06-29 08:20:12 -0400
commiteefb94bb39b7e2abbf5615df742b5a20a04bc6a0 (patch)
tree9d902de8a3c9f7ac35b95a51d3f24f6530e0357f /src/plugin.c
parentb482bfd1b881f0f5aee24c470a082e0ab785e505 (diff)
downloadlighttpd-git-eefb94bb39b7e2abbf5615df742b5a20a04bc6a0.tar.gz
fix error handling for portability (NetBSD)
thx joerg
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugin.c b/src/plugin.c
index 7802aa56..638b46c6 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -175,7 +175,6 @@ int plugins_load(server *srv) {
int plugins_load(server *srv) {
plugin *p;
int (*init)(plugin *pl);
- const char *error;
size_t i, j;
for (i = 0; i < srv->srvconf.modules->used; i++) {
@@ -263,8 +262,13 @@ int plugins_load(server *srv) {
#else
*(void **)(&init) = dlsym(p->lib, srv->tmp_buf->ptr);
#endif
- if ((error = dlerror()) != NULL) {
- log_error_write(srv, __FILE__, __LINE__, "s", error);
+ if (NULL == init) {
+ const char *error = dlerror();
+ if (error != NULL) {
+ log_error_write(srv, __FILE__, __LINE__, "ss", "dlsym:", error);
+ } else {
+ log_error_write(srv, __FILE__, __LINE__, "ss", "dlsym symbol not found:", srv->tmp_buf->ptr);
+ }
plugin_free(p);
return -1;