X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=src%2Fopenldap.c;h=50757db8ac513017c954a690cd227b0e2291ea02;hb=01d23e3f5daf016d03f82d92a76be2fe3decdca4;hp=61eb62e3577eb508e0dd613bfd92570d374e4b42;hpb=2079ee1517e34de372f58e7e2267ad5c71a8a41f;p=collectd.git diff --git a/src/openldap.c b/src/openldap.c index 61eb62e3..50757db8 100644 --- a/src/openldap.c +++ b/src/openldap.c @@ -92,7 +92,8 @@ static int cldap_init_host(cldap_t *st) /* {{{ */ if (rc != LDAP_SUCCESS) { ERROR("openldap plugin: ldap_initialize failed: %s", ldap_err2string(rc)); st->state = 0; - ldap_unbind_ext_s(ld, NULL, NULL); + if (ld != NULL) + ldap_unbind_ext_s(ld, NULL, NULL); return (-1); } @@ -119,7 +120,8 @@ static int cldap_init_host(cldap_t *st) /* {{{ */ ERROR("openldap plugin: Failed to start tls on %s: %s", st->url, ldap_err2string(rc)); st->state = 0; - ldap_unbind_ext_s(st->ld, NULL, NULL); + if (st->ld != NULL) + ldap_unbind_ext_s(st->ld, NULL, NULL); return (-1); } } @@ -139,7 +141,8 @@ static int cldap_init_host(cldap_t *st) /* {{{ */ ERROR("openldap plugin: Failed to bind to %s: %s", st->url, ldap_err2string(rc)); st->state = 0; - ldap_unbind_ext_s(st->ld, NULL, NULL); + if (st->ld != NULL) + ldap_unbind_ext_s(st->ld, NULL, NULL); return (-1); } else { DEBUG("openldap plugin: Successfully connected to %s", st->url); @@ -156,10 +159,7 @@ static void cldap_submit_value(const char *type, vl.values = &value; vl.values_len = 1; - if ((st->host == NULL) || (strcmp("", st->host) == 0) || - (strcmp("localhost", st->host) == 0)) - sstrncpy(vl.host, hostname_g, sizeof(vl.host)); - else + if ((st->host != NULL) && (strcmp("localhost", st->host) != 0)) sstrncpy(vl.host, st->host, sizeof(vl.host)); sstrncpy(vl.plugin, "openldap", sizeof(vl.plugin)); @@ -176,17 +176,13 @@ static void cldap_submit_value(const char *type, static void cldap_submit_derive(const char *type, const char *type_instance, /* {{{ */ derive_t d, cldap_t *st) { - value_t v; - v.derive = d; - cldap_submit_value(type, type_instance, v, st); + cldap_submit_value(type, type_instance, (value_t){.derive = d}, st); } /* }}} void cldap_submit_derive */ static void cldap_submit_gauge(const char *type, const char *type_instance, /* {{{ */ gauge_t g, cldap_t *st) { - value_t v; - v.gauge = g; - cldap_submit_value(type, type_instance, v, st); + cldap_submit_value(type, type_instance, (value_t){.gauge = g}, st); } /* }}} void cldap_submit_gauge */ static int cldap_read_host(user_data_t *ud) /* {{{ */ @@ -221,7 +217,8 @@ static int cldap_read_host(user_data_t *ud) /* {{{ */ ERROR("openldap plugin: Failed to execute search: %s", ldap_err2string(rc)); ldap_msgfree(result); st->state = 0; - ldap_unbind_ext_s(st->ld, NULL, NULL); + if (st->ld != NULL) + ldap_unbind_ext_s(st->ld, NULL, NULL); return (-1); } @@ -410,7 +407,7 @@ static int cldap_config_add(oconfig_item_t *ci) /* {{{ */ } st->starttls = 0; - st->timeout = (long)(CDTIME_T_TO_MS(plugin_get_interval()) / 1000); + st->timeout = (long)CDTIME_T_TO_TIME_T(plugin_get_interval()); st->verifyhost = 1; st->version = LDAP_VERSION3; @@ -487,13 +484,12 @@ static int cldap_config_add(oconfig_item_t *ci) /* {{{ */ (st->host != NULL) ? st->host : hostname_g, (st->name != NULL) ? st->name : "default"); - user_data_t ud = {.data = st}; - status = plugin_register_complex_read(/* group = */ NULL, /* name = */ callback_name, /* callback = */ cldap_read_host, - /* interval = */ 0, - /* user_data = */ &ud); + /* interval = */ 0, &(user_data_t){ + .data = st, + }); } }