/*
* Private data types
*/
-struct interfacelist_s {
+struct interface_list_s {
char *interface;
uint32_t status;
uint32_t sent;
long long unsigned int timestamp;
- struct interfacelist_s *next;
+ struct interface_list_s *next;
};
-typedef struct interfacelist_s interfacelist_t;
+typedef struct interface_list_s interface_list_t;
/*
* Private variables
*/
-static interfacelist_t *interfacelist_head = NULL;
+static interface_list_t *interface_list_head = NULL;
static int connectivity_thread_loop = 0;
static int connectivity_thread_error = 0;
long long unsigned int timestamp, char **buf) {
const unsigned char *buf2;
yajl_gen g;
+ char json_str[DATA_MAX_NAME_LEN];
#if !defined(HAVE_YAJL_V2)
yajl_gen_config conf = {};
event_id = event_id + 1;
int event_id_len = sizeof(char) * sizeof(int) * 4 + 1;
- char *event_id_str = malloc(event_id_len);
- snprintf(event_id_str, event_id_len, "%d", event_id);
+ memset(json_str, '\0', DATA_MAX_NAME_LEN);
+ snprintf(json_str, event_id_len, "%d", event_id);
- if (yajl_gen_number(g, event_id_str, strlen(event_id_str)) !=
- yajl_gen_status_ok) {
- sfree(event_id_str);
+ if (yajl_gen_number(g, json_str, strlen(json_str)) != yajl_gen_status_ok) {
goto err;
}
- sfree(event_id_str);
-
// eventName
if (yajl_gen_string(g, (u_char *)CONNECTIVITY_EVENT_NAME_FIELD,
strlen(CONNECTIVITY_EVENT_NAME_FIELD)) !=
event_name_len = event_name_len + (state == 0 ? 4 : 2); // "down" or "up"
event_name_len =
event_name_len + 12; // "interface", 2 spaces and null-terminator
- char *event_name_str = malloc(event_name_len);
- memset(event_name_str, '\0', event_name_len);
- snprintf(event_name_str, event_name_len, "interface %s %s", interface,
+ memset(json_str, '\0', DATA_MAX_NAME_LEN);
+ snprintf(json_str, event_name_len, "interface %s %s", interface,
(state == 0 ? CONNECTIVITY_EVENT_NAME_DOWN_VALUE
: CONNECTIVITY_EVENT_NAME_UP_VALUE));
- if (yajl_gen_string(g, (u_char *)event_name_str, strlen(event_name_str)) !=
+ if (yajl_gen_string(g, (u_char *)json_str, strlen(json_str)) !=
yajl_gen_status_ok) {
- sfree(event_name_str);
goto err;
}
- sfree(event_name_str);
-
// lastEpochMicrosec
if (yajl_gen_string(g, (u_char *)CONNECTIVITY_LAST_EPOCH_MICROSEC_FIELD,
strlen(CONNECTIVITY_LAST_EPOCH_MICROSEC_FIELD)) !=
int last_epoch_microsec_len =
sizeof(char) * sizeof(long long unsigned int) * 4 + 1;
- char *last_epoch_microsec_str = malloc(last_epoch_microsec_len);
- snprintf(last_epoch_microsec_str, last_epoch_microsec_len, "%llu",
+ memset(json_str, '\0', DATA_MAX_NAME_LEN);
+ snprintf(json_str, last_epoch_microsec_len, "%llu",
(long long unsigned int)CDTIME_T_TO_US(cdtime()));
- if (yajl_gen_number(g, last_epoch_microsec_str,
- strlen(last_epoch_microsec_str)) != yajl_gen_status_ok) {
- sfree(last_epoch_microsec_str);
+ if (yajl_gen_number(g, json_str, strlen(json_str)) != yajl_gen_status_ok) {
goto err;
}
- sfree(last_epoch_microsec_str);
-
// priority
if (yajl_gen_string(g, (u_char *)CONNECTIVITY_PRIORITY_FIELD,
strlen(CONNECTIVITY_PRIORITY_FIELD)) !=
int start_epoch_microsec_len =
sizeof(char) * sizeof(long long unsigned int) * 4 + 1;
- char *start_epoch_microsec_str = malloc(start_epoch_microsec_len);
- snprintf(start_epoch_microsec_str, start_epoch_microsec_len, "%llu",
+ memset(json_str, '\0', DATA_MAX_NAME_LEN);
+ snprintf(json_str, start_epoch_microsec_len, "%llu",
(long long unsigned int)timestamp);
- if (yajl_gen_number(g, start_epoch_microsec_str,
- strlen(start_epoch_microsec_str)) != yajl_gen_status_ok) {
- sfree(start_epoch_microsec_str);
+ if (yajl_gen_number(g, json_str, strlen(json_str)) != yajl_gen_status_ok) {
goto err;
}
- sfree(start_epoch_microsec_str);
-
// version
if (yajl_gen_string(g, (u_char *)CONNECTIVITY_VERSION_FIELD,
strlen(CONNECTIVITY_VERSION_FIELD)) != yajl_gen_status_ok)
pthread_mutex_lock(&connectivity_lock);
- interfacelist_t *il;
+ interface_list_t *il;
/* Scan attribute list for device name. */
mnl_attr_for_each(attr, msg, sizeof(*ifi)) {
dev = mnl_attr_get_str(attr);
- for (il = interfacelist_head; il != NULL; il = il->next)
+ for (il = interface_list_head; il != NULL; il = il->next)
if (strcmp(dev, il->interface) == 0)
break;
static int connectivity_init(void) /* {{{ */
{
- if (interfacelist_head == NULL) {
+ if (interface_list_head == NULL) {
NOTICE("connectivity plugin: No interfaces have been configured.");
return (-1);
}
static int connectivity_config(const char *key, const char *value) /* {{{ */
{
if (strcasecmp(key, "Interface") == 0) {
- interfacelist_t *il;
+ interface_list_t *il;
char *interface;
il = malloc(sizeof(*il));
il->prev_status = LINK_STATE_UNKNOWN;
il->timestamp = (long long unsigned int)CDTIME_T_TO_US(cdtime());
il->sent = 0;
- il->next = interfacelist_head;
- interfacelist_head = il;
+ il->next = interface_list_head;
+ interface_list_head = il;
} else {
return (-1);
stop_thread(0);
- for (interfacelist_t *il = interfacelist_head; il != NULL; il = il->next) {
+ for (interface_list_t *il = interface_list_head; il != NULL;
+ il = il->next) {
il->status = LINK_STATE_UNKNOWN;
il->prev_status = LINK_STATE_UNKNOWN;
il->sent = 0;
return (-1);
} /* if (connectivity_thread_error != 0) */
- for (interfacelist_t *il = interfacelist_head; il != NULL;
+ for (interface_list_t *il = interface_list_head; il != NULL;
il = il->next) /* {{{ */
{
uint32_t status;
}
pthread_mutex_unlock(&connectivity_lock);
- } /* }}} for (il = interfacelist_head; il != NULL; il = il->next) */
+ } /* }}} for (il = interface_list_head; il != NULL; il = il->next) */
return (0);
} /* }}} int connectivity_read */
static int connectivity_shutdown(void) /* {{{ */
{
- interfacelist_t *il;
+ interface_list_t *il;
DEBUG("connectivity plugin: Shutting down thread.");
if (stop_thread(1) < 0)
return (-1);
- il = interfacelist_head;
+ il = interface_list_head;
while (il != NULL) {
- interfacelist_t *il_next;
+ interface_list_t *il_next;
il_next = il->next;