yajl_val jobj_value = NULL;
const char *obj_key = NULL;
size_t obj_len = 0;
- yajl_gen_status yajl_gen_ret;
+ yajl_gen_status yajl_gen_ret = yajl_gen_status_ok;
+
+ if (jval == NULL)
+ return yajl_gen_generation_complete;
if (YAJL_IS_STRING(jval))
OVS_YAJL_CALL(ovs_yajl_gen_tstring, jgen, YAJL_GET_STRING(jval));
array_len = YAJL_GET_ARRAY(jval)->len;
jvalues = YAJL_GET_ARRAY(jval)->values;
OVS_YAJL_CALL(yajl_gen_array_open, jgen);
- for (int i = 0; i < array_len; i++)
+ for (size_t i = 0; i < array_len; i++)
OVS_YAJL_CALL(ovs_yajl_gen_val, jgen, jvalues[i]);
OVS_YAJL_CALL(yajl_gen_array_close, jgen);
} else if (YAJL_IS_OBJECT(jval)) {
/* create new object and add all elements into the object */
OVS_YAJL_CALL(yajl_gen_map_open, jgen);
obj_len = YAJL_GET_OBJECT(jval)->len;
- for (int i = 0; i < obj_len; i++) {
+ for (size_t i = 0; i < obj_len; i++) {
obj_key = YAJL_GET_OBJECT(jval)->keys[i];
jobj_value = YAJL_GET_OBJECT(jval)->values[i];
OVS_YAJL_CALL(ovs_yajl_gen_tstring, jgen, obj_key);
yajl_val jvalue;
yajl_val jparams;
yajl_val jtable_updates;
- yajl_val jtable_update;
- size_t obj_len = 0;
- const char *table_name = NULL;
const char *params_path[] = {"params", NULL};
const char *id_path[] = {"id", NULL};
/* get method name */
if ((jval = yajl_tree_get(jnode, method_path, yajl_t_string)) != NULL) {
- method = YAJL_GET_STRING(jval);
+ if ((method = YAJL_GET_STRING(jval)) == NULL) {
+ yajl_tree_free(jnode);
+ sfree(sjson);
+ return (-1);
+ }
if (strcmp("echo", method) == 0) {
/* echo request from the server */
if (ovs_db_table_echo_cb(pdb, jnode) < 0)
char *json = NULL;
/* search open/close brace */
- for (int i = jreader->json_offset; i < jreader->buff_offset; i++) {
+ for (size_t i = jreader->json_offset; i < jreader->buff_offset; i++) {
if (jreader->buff_ptr[i] == '{') {
nbraces++;
} else if (jreader->buff_ptr[i] == '}')
* and zero rest of the buffer data */
json = &jreader->buff_ptr[jreader->json_offset];
json_len = jreader->buff_offset - jreader->json_offset;
- for (int i = 0; i < jreader->buff_size; i++)
+ for (size_t i = 0; i < jreader->buff_size; i++)
jreader->buff_ptr[i] = ((i < json_len) ? (json[i]) : (0));
jreader->buff_offset = json_len;
} else
* if connection has been established.
*/
static void ovs_db_reconnect(ovs_db_t *pdb) {
- const char unix_prefix[] = "unix:";
const char *node_info = pdb->node;
struct addrinfo *result;
- struct sockaddr_un saunix;
if (pdb->unix_path[0] != '\0') {
/* use UNIX socket instead of INET address */
/* Initialize EVENT thread */
static int ovs_db_event_thread_init(ovs_db_t *pdb) {
- pdb->event_thread.tid = -1;
+ pdb->event_thread.tid = (pthread_t)-1;
/* init event thread condition variable */
if (pthread_cond_init(&pdb->event_thread.cond, NULL)) {
return (-1);
/* Destroy EVENT thread */
static int ovs_db_event_thread_destroy(ovs_db_t *pdb) {
- if (pdb->event_thread.tid < 0)
+ if (pdb->event_thread.tid == (pthread_t)-1)
/* already destroyed */
return (0);
ovs_db_event_post(pdb, OVS_DB_EVENT_TERMINATE);
pthread_mutex_unlock(&pdb->event_thread.mutex);
pthread_mutex_destroy(&pdb->event_thread.mutex);
pthread_cond_destroy(&pdb->event_thread.cond);
- pdb->event_thread.tid = -1;
+ pdb->event_thread.tid = (pthread_t)-1;
return (0);
}
/* Initialize POLL thread */
static int ovs_db_poll_thread_init(ovs_db_t *pdb) {
- pdb->poll_thread.tid = -1;
+ pdb->poll_thread.tid = (pthread_t)-1;
/* init event thread mutex */
if (pthread_mutex_init(&pdb->poll_thread.mutex, NULL)) {
return (-1);
/* Destroy POLL thread */
static int ovs_db_poll_thread_destroy(ovs_db_t *pdb) {
- if (pdb->poll_thread.tid < 0)
+ if (pdb->poll_thread.tid == (pthread_t)-1)
/* already destroyed */
return (0);
/* change thread state */
if (pthread_join(pdb->poll_thread.tid, NULL) != 0)
return (-1);
pthread_mutex_destroy(&pdb->poll_thread.mutex);
- pdb->poll_thread.tid = -1;
+ pdb->poll_thread.tid = (pthread_t)-1;
return (0);
}
return NULL;
/* find a value by key */
- for (int i = 0; i < YAJL_GET_OBJECT(jval)->len; i++) {
+ for (size_t i = 0; i < YAJL_GET_OBJECT(jval)->len; i++) {
obj_key = YAJL_GET_OBJECT(jval)->keys[i];
if (strcmp(obj_key, key) == 0)
return YAJL_GET_OBJECT(jval)->values[i];
/* try to find map value by map key */
map_len = YAJL_GET_ARRAY(array_values[1])->len;
map_values = YAJL_GET_ARRAY(array_values[1])->values;
- for (int i = 0; i < map_len; i++) {
+ for (size_t i = 0; i < map_len; i++) {
/* check YAJL array */
if (!YAJL_IS_ARRAY(map_values[i]))
break;