X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fbackend%2Fmk-livestatus.c;h=bf45da6fdd35df6d3170ed4a4ebafbc1b513b49a;hp=200edc289fc4379d7fadb73cf2c6e662d81005d2;hb=ddb933096618a6bceded29e4dc2b37cb72134366;hpb=ec7449c79712d8fa29d63b7e8f1f08e183b916a1 diff --git a/src/backend/mk-livestatus.c b/src/backend/mk-livestatus.c index 200edc2..bf45da6 100644 --- a/src/backend/mk-livestatus.c +++ b/src/backend/mk-livestatus.c @@ -52,10 +52,8 @@ sdb_livestatus_get_host(sdb_unixsock_client_t __attribute__((unused)) *client, size_t n, sdb_data_t *data, sdb_object_t __attribute__((unused)) *user_data) { - char *hostname = NULL; - sdb_time_t timestamp = 0; - - sdb_host_t host = SDB_HOST_INIT; + const char *hostname; + sdb_time_t timestamp; int status; @@ -63,18 +61,14 @@ sdb_livestatus_get_host(sdb_unixsock_client_t __attribute__((unused)) *client, assert((data[0].type == SDB_TYPE_STRING) && (data[1].type == SDB_TYPE_DATETIME)); - hostname = strdup(data[0].data.string); + hostname = data[0].data.string; timestamp = data[1].data.datetime; - host._name = hostname; - host._last_update = timestamp; - - status = sdb_store_host(&host); + status = sdb_store_host(hostname, timestamp); if (status < 0) { sdb_log(SDB_LOG_ERR, "MK Livestatus backend: Failed to " "store/update host '%s'.", hostname); - free(hostname); return -1; } else if (status > 0) /* value too old */ @@ -83,7 +77,6 @@ sdb_livestatus_get_host(sdb_unixsock_client_t __attribute__((unused)) *client, sdb_log(SDB_LOG_DEBUG, "MK Livestatus backend: Added/updated " "host '%s' (last update timestamp = %"PRIscTIME").", hostname, timestamp); - free(hostname); return 0; } /* sdb_livestatus_get_host */ @@ -92,12 +85,10 @@ sdb_livestatus_get_svc(sdb_unixsock_client_t __attribute__((unused)) *client, size_t n, sdb_data_t *data, sdb_object_t __attribute__((unused)) *user_data) { - char *hostname = NULL; - char *svcname = NULL; + const char *hostname = NULL; + const char *svcname = NULL; sdb_time_t timestamp = 0; - sdb_service_t svc = SDB_SVC_INIT; - int status; assert(n == 3); @@ -105,21 +96,15 @@ sdb_livestatus_get_svc(sdb_unixsock_client_t __attribute__((unused)) *client, && (data[1].type == SDB_TYPE_STRING) && (data[2].type == SDB_TYPE_DATETIME)); - hostname = strdup(data[0].data.string); - svcname = strdup(data[1].data.string); + hostname = data[0].data.string; + svcname = data[1].data.string; timestamp = data[2].data.datetime; - svc.hostname = hostname; - svc._name = svcname; - svc._last_update = timestamp; - - status = sdb_store_service(&svc); + status = sdb_store_service(hostname, svcname, timestamp); if (status < 0) { sdb_log(SDB_LOG_ERR, "MK Livestatus backend: Failed to " "store/update service '%s / %s'.", hostname, svcname); - free(hostname); - free(svcname); return -1; } else if (status > 0) /* value too old */ @@ -128,8 +113,6 @@ sdb_livestatus_get_svc(sdb_unixsock_client_t __attribute__((unused)) *client, sdb_log(SDB_LOG_DEBUG, "MK Livestatus backend: Added/updated " "service '%s / %s' (last update timestamp = %"PRIscTIME").", hostname, svcname, timestamp); - free(hostname); - free(svcname); return 0; } /* sdb_livestatus_get_svc */ @@ -282,7 +265,7 @@ sdb_livestatus_config_instance(oconfig_item_t *ci) return -1; } - user_data = sdb_object_create_wrapper(client, + user_data = sdb_object_create_wrapper("unixsock-client", client, (void (*)(void *))sdb_unixsock_client_destroy); if (! user_data) { sdb_unixsock_client_destroy(client);