/* callback function invoked from OpenIPMI */ static void setup_done(ipmi_domain_t *domain, int err, unsigned int conn_num, unsigned int port_num, int still_connected, void *cb_data) { const char *__function_name = "setup_done"; int ret; zbx_ipmi_host_t *h = cb_data; zabbix_log(LOG_LEVEL_DEBUG, "In %s() phost:%p host:'[%s]:%d'", __function_name, h, h->ip, h->port); if (0 != err) { zabbix_log(LOG_LEVEL_DEBUG, "%s() fail: %s", __function_name, zbx_strerror(err)); h->err = zbx_dsprintf(h->err, "cannot connect to IPMI host: %s", zbx_strerror(err)); h->ret = NETWORK_ERROR; if (0 != (ret = ipmi_domain_close(domain, domain_closed, h))) zabbix_log(LOG_LEVEL_DEBUG, "cannot close IPMI domain: [0x%x]", ret); goto out; } if (0 != (ret = ipmi_domain_add_entity_update_handler(domain, entity_change, h))) zabbix_log(LOG_LEVEL_DEBUG, "ipmi_domain_add_entity_update_handler() return error: [0x%x]", ret); out: zabbix_log(LOG_LEVEL_DEBUG, "End of %s():%s", __function_name, zbx_result_string(h->ret)); }
/* callback function invoked from OpenIPMI */ static void domain_close_cb(ipmi_domain_t *domain, void *cb_data) { zbx_ipmi_host_t *h = cb_data; int ret; if (0 != (ret = ipmi_domain_close(domain, domain_closed, h))) zabbix_log(LOG_LEVEL_DEBUG, "cannot close IPMI domain: [0x%x]", ret); else domain_close_ok = 1; }
static void close_connection(ipmi_domain_t *domain, void *user_data) { int rv, *flag = user_data; trace_ipmi("close flag:%d", *flag); rv = ipmi_domain_close(domain, close_done, user_data); if (rv) { err("ipmi_close_connection failed!"); *flag = 1; } }
static void setup_done(ipmi_domain_t *domain, int err, unsigned int conn_num, unsigned int port_num, int still_connected, void *cb_data) { int ret; zbx_ipmi_host_t *h = cb_data; zabbix_log(LOG_LEVEL_DEBUG, "In setup_done() [%s]:%d", h->ip, h->port); if (err) { h->err = zbx_dsprintf(h->err, "Cannot connect to IPMI host. Error 0x%x %s", err, strerror(err)); h->ret = NETWORK_ERROR; if (0 != (ret = ipmi_domain_close(domain, domain_closed, h))) zabbix_log(LOG_LEVEL_DEBUG, "Cannot close IPMI domain. Error 0x%x", ret); return; } if (0 != (ret = ipmi_domain_add_entity_update_handler(domain, entity_change, h))) zabbix_log(LOG_LEVEL_DEBUG, "ipmi_domain_add_entity_update_handler() return error: 0x%x", ret); }