node *config_get_next_node(node *root, char *name, node *last) { node *n; if (last == NULL) { return config_get_node(root, name); } n = last->next; while (n != NULL) { if (n->name != NULL && !strcmp(last->name, n->name)) { return n; } n = n->next; } return NULL; }
struct connection *conn_get_raw_server(struct context *ctx) { int i; struct connection *server = NULL; struct node_conf *node = config_get_node(); for (i = 0; i < node->len; i++) { server = conn_get_server_from_pool(ctx, &node->addr[i], false); if (server == NULL) continue; break; } config_node_dec_ref(node); if (server == NULL) { LOG(ERROR, "conn_get_raw_server: cannot connect to redis server."); return NULL; } return server; }
char *config_get_string(node *root, char *name) { node *n = config_get_node(root, name); node *c; if (n == NULL) { return NULL; } c = n->children; while (c != NULL) { if (c->name == NULL) { return (char *) c->data; } c = c->next; } return NULL; }