int64_t mv_signed_int;
uint64_t mv_unsigned_int;
double mv_double;
- _Bool mv_boolean;
+ bool mv_boolean;
};
typedef union meta_value_u meta_value_t;
char *dest;
if (orig == NULL)
- return (NULL);
+ return NULL;
sz = strlen(orig) + 1;
dest = malloc(sz);
if (dest == NULL)
- return (NULL);
+ return NULL;
memcpy(dest, orig, sz);
- return (dest);
+ return dest;
} /* }}} char *md_strdup */
static meta_entry_t *md_entry_alloc(const char *key) /* {{{ */
e = calloc(1, sizeof(*e));
if (e == NULL) {
ERROR("md_entry_alloc: calloc failed.");
- return (NULL);
+ return NULL;
}
e->key = md_strdup(key);
if (e->key == NULL) {
free(e);
ERROR("md_entry_alloc: md_strdup failed.");
- return (NULL);
+ return NULL;
}
e->type = 0;
e->next = NULL;
- return (e);
+ return e;
} /* }}} meta_entry_t *md_entry_alloc */
/* XXX: The lock on md must be held while calling this function! */
copy = md_entry_alloc(orig->key);
if (copy == NULL)
- return (NULL);
+ return NULL;
copy->type = orig->type;
if (copy->type == MD_TYPE_STRING)
copy->value.mv_string = strdup(orig->value.mv_string);
else
copy->value = orig->value;
- return (copy);
+ return copy;
} /* }}} meta_entry_t *md_entry_clone_contents */
static meta_entry_t *md_entry_clone(const meta_entry_t *orig) /* {{{ */
meta_entry_t *copy;
if (orig == NULL)
- return (NULL);
+ return NULL;
copy = md_entry_clone_contents(orig);
copy->next = md_entry_clone(orig->next);
- return (copy);
+ return copy;
} /* }}} meta_entry_t *md_entry_clone */
static void md_entry_free(meta_entry_t *e) /* {{{ */
meta_entry_t *prev;
if ((md == NULL) || (e == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
md_entry_free(this);
}
- return (0);
+ return 0;
} /* }}} int md_entry_insert */
/* XXX: The lock on md must be held while calling this function! */
md_entry_free(this);
}
- return (0);
+ return 0;
} /* }}} int md_entry_insert_clone */
/* XXX: The lock on md must be held while calling this function! */
meta_entry_t *e;
if ((md == NULL) || (key == NULL))
- return (NULL);
+ return NULL;
for (e = md->head; e != NULL; e = e->next)
if (strcasecmp(key, e->key) == 0)
break;
- return (e);
+ return e;
} /* }}} meta_entry_t *md_entry_lookup */
/*
md = calloc(1, sizeof(*md));
if (md == NULL) {
ERROR("meta_data_create: calloc failed.");
- return (NULL);
+ return NULL;
}
pthread_mutex_init(&md->lock, /* attr = */ NULL);
- return (md);
+ return md;
} /* }}} meta_data_t *meta_data_create */
meta_data_t *meta_data_clone(meta_data_t *orig) /* {{{ */
meta_data_t *copy;
if (orig == NULL)
- return (NULL);
+ return NULL;
copy = meta_data_create();
if (copy == NULL)
- return (NULL);
+ return NULL;
pthread_mutex_lock(&orig->lock);
copy->head = md_entry_clone(orig->head);
pthread_mutex_unlock(&orig->lock);
- return (copy);
+ return copy;
} /* }}} meta_data_t *meta_data_clone */
int meta_data_clone_merge(meta_data_t **dest, meta_data_t *orig) /* {{{ */
{
if (orig == NULL)
- return (0);
+ return 0;
if (*dest == NULL) {
*dest = meta_data_clone(orig);
- return (0);
+ return 0;
}
pthread_mutex_lock(&orig->lock);
}
pthread_mutex_unlock(&orig->lock);
- return (0);
+ return 0;
} /* }}} int meta_data_clone_merge */
void meta_data_destroy(meta_data_t *md) /* {{{ */
int meta_data_exists(meta_data_t *md, const char *key) /* {{{ */
{
if ((md == NULL) || (key == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
for (meta_entry_t *e = md->head; e != NULL; e = e->next) {
if (strcasecmp(key, e->key) == 0) {
pthread_mutex_unlock(&md->lock);
- return (1);
+ return 1;
}
}
pthread_mutex_unlock(&md->lock);
- return (0);
+ return 0;
} /* }}} int meta_data_exists */
int meta_data_type(meta_data_t *md, const char *key) /* {{{ */
if (count == 0) {
pthread_mutex_unlock(&md->lock);
- return (count);
+ return count;
}
*toc = calloc(count, sizeof(**toc));
meta_entry_t *prev;
if ((md == NULL) || (key == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
if (this == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
if (prev == NULL)
this->next = NULL;
md_entry_free(this);
- return (0);
+ return 0;
} /* }}} int meta_data_delete */
/*
meta_entry_t *e;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
e = md_entry_alloc(key);
if (e == NULL)
- return (-ENOMEM);
+ return -ENOMEM;
e->value.mv_string = md_strdup(value);
if (e->value.mv_string == NULL) {
ERROR("meta_data_add_string: md_strdup failed.");
md_entry_free(e);
- return (-ENOMEM);
+ return -ENOMEM;
}
e->type = MD_TYPE_STRING;
- return (md_entry_insert(md, e));
+ return md_entry_insert(md, e);
} /* }}} int meta_data_add_string */
int meta_data_add_signed_int(meta_data_t *md, /* {{{ */
meta_entry_t *e;
if ((md == NULL) || (key == NULL))
- return (-EINVAL);
+ return -EINVAL;
e = md_entry_alloc(key);
if (e == NULL)
- return (-ENOMEM);
+ return -ENOMEM;
e->value.mv_signed_int = value;
e->type = MD_TYPE_SIGNED_INT;
- return (md_entry_insert(md, e));
+ return md_entry_insert(md, e);
} /* }}} int meta_data_add_signed_int */
int meta_data_add_unsigned_int(meta_data_t *md, /* {{{ */
meta_entry_t *e;
if ((md == NULL) || (key == NULL))
- return (-EINVAL);
+ return -EINVAL;
e = md_entry_alloc(key);
if (e == NULL)
- return (-ENOMEM);
+ return -ENOMEM;
e->value.mv_unsigned_int = value;
e->type = MD_TYPE_UNSIGNED_INT;
- return (md_entry_insert(md, e));
+ return md_entry_insert(md, e);
} /* }}} int meta_data_add_unsigned_int */
int meta_data_add_double(meta_data_t *md, /* {{{ */
meta_entry_t *e;
if ((md == NULL) || (key == NULL))
- return (-EINVAL);
+ return -EINVAL;
e = md_entry_alloc(key);
if (e == NULL)
- return (-ENOMEM);
+ return -ENOMEM;
e->value.mv_double = value;
e->type = MD_TYPE_DOUBLE;
- return (md_entry_insert(md, e));
+ return md_entry_insert(md, e);
} /* }}} int meta_data_add_double */
int meta_data_add_boolean(meta_data_t *md, /* {{{ */
- const char *key, _Bool value) {
+ const char *key, bool value) {
meta_entry_t *e;
if ((md == NULL) || (key == NULL))
- return (-EINVAL);
+ return -EINVAL;
e = md_entry_alloc(key);
if (e == NULL)
- return (-ENOMEM);
+ return -ENOMEM;
e->value.mv_boolean = value;
e->type = MD_TYPE_BOOLEAN;
- return (md_entry_insert(md, e));
+ return md_entry_insert(md, e);
} /* }}} int meta_data_add_boolean */
/*
char *temp;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
e = md_entry_lookup(md, key);
if (e == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
if (e->type != MD_TYPE_STRING) {
ERROR("meta_data_get_string: Type mismatch for key `%s'", e->key);
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
temp = md_strdup(e->value.mv_string);
if (temp == NULL) {
pthread_mutex_unlock(&md->lock);
ERROR("meta_data_get_string: md_strdup failed.");
- return (-ENOMEM);
+ return -ENOMEM;
}
pthread_mutex_unlock(&md->lock);
*value = temp;
- return (0);
+ return 0;
} /* }}} int meta_data_get_string */
int meta_data_get_signed_int(meta_data_t *md, /* {{{ */
meta_entry_t *e;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
e = md_entry_lookup(md, key);
if (e == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
if (e->type != MD_TYPE_SIGNED_INT) {
ERROR("meta_data_get_signed_int: Type mismatch for key `%s'", e->key);
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
*value = e->value.mv_signed_int;
pthread_mutex_unlock(&md->lock);
- return (0);
+ return 0;
} /* }}} int meta_data_get_signed_int */
int meta_data_get_unsigned_int(meta_data_t *md, /* {{{ */
meta_entry_t *e;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
e = md_entry_lookup(md, key);
if (e == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
if (e->type != MD_TYPE_UNSIGNED_INT) {
ERROR("meta_data_get_unsigned_int: Type mismatch for key `%s'", e->key);
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
*value = e->value.mv_unsigned_int;
pthread_mutex_unlock(&md->lock);
- return (0);
+ return 0;
} /* }}} int meta_data_get_unsigned_int */
int meta_data_get_double(meta_data_t *md, /* {{{ */
meta_entry_t *e;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
e = md_entry_lookup(md, key);
if (e == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
if (e->type != MD_TYPE_DOUBLE) {
ERROR("meta_data_get_double: Type mismatch for key `%s'", e->key);
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
*value = e->value.mv_double;
pthread_mutex_unlock(&md->lock);
- return (0);
+ return 0;
} /* }}} int meta_data_get_double */
int meta_data_get_boolean(meta_data_t *md, /* {{{ */
- const char *key, _Bool *value) {
+ const char *key, bool *value) {
meta_entry_t *e;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
e = md_entry_lookup(md, key);
if (e == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
if (e->type != MD_TYPE_BOOLEAN) {
ERROR("meta_data_get_boolean: Type mismatch for key `%s'", e->key);
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
*value = e->value.mv_boolean;
pthread_mutex_unlock(&md->lock);
- return (0);
+ return 0;
} /* }}} int meta_data_get_boolean */
int meta_data_as_string(meta_data_t *md, /* {{{ */
int type;
if ((md == NULL) || (key == NULL) || (value == NULL))
- return (-EINVAL);
+ return -EINVAL;
pthread_mutex_lock(&md->lock);
e = md_entry_lookup(md, key);
if (e == NULL) {
pthread_mutex_unlock(&md->lock);
- return (-ENOENT);
+ return -ENOENT;
}
type = e->type;
actual = e->value.mv_string;
break;
case MD_TYPE_SIGNED_INT:
- ssnprintf(buffer, sizeof(buffer), "%" PRIi64, e->value.mv_signed_int);
+ snprintf(buffer, sizeof(buffer), "%" PRIi64, e->value.mv_signed_int);
actual = buffer;
break;
case MD_TYPE_UNSIGNED_INT:
- ssnprintf(buffer, sizeof(buffer), "%" PRIu64, e->value.mv_unsigned_int);
+ snprintf(buffer, sizeof(buffer), "%" PRIu64, e->value.mv_unsigned_int);
actual = buffer;
break;
case MD_TYPE_DOUBLE:
- ssnprintf(buffer, sizeof(buffer), GAUGE_FORMAT, e->value.mv_double);
+ snprintf(buffer, sizeof(buffer), GAUGE_FORMAT, e->value.mv_double);
actual = buffer;
break;
case MD_TYPE_BOOLEAN:
default:
pthread_mutex_unlock(&md->lock);
ERROR("meta_data_as_string: unknown type %d for key `%s'", type, key);
- return (-ENOENT);
+ return -ENOENT;
}
pthread_mutex_unlock(&md->lock);
temp = md_strdup(actual);
if (temp == NULL) {
- pthread_mutex_unlock(&md->lock);
ERROR("meta_data_as_string: md_strdup failed for key `%s'.", key);
- return (-ENOMEM);
+ return -ENOMEM;
}
*value = temp;
- return (0);
+ return 0;
} /* }}} int meta_data_as_string */