int init_cachedb(str * db_url) { if (cachedb_bind_mod(db_url, &cdbf) < 0) { LM_ERR("cannot bind functions for db_url %.*s\n", db_url->len, db_url->s); return -1; } if (!CACHEDB_CAPABILITY(&cdbf, CACHEDB_CAP_GET|CACHEDB_CAP_ADD|CACHEDB_CAP_SUB)) { LM_ERR("not enough capabilities\n"); return -1; } cdbc = cdbf.init(db_url); if (!cdbc) { LM_ERR("cannot connect to db_url %.*s\n", db_url->len, db_url->s); return -1; } /* guessing that the name is not larger than 32 */ rl_name_buffer.len = db_prefix.len + 32; rl_name_buffer.s = pkg_malloc(rl_name_buffer.len); if (!rl_name_buffer.s) { LM_ERR("no more pkg memory\n"); rl_name_buffer.len = 0; return -1; } /* copy prefix - this is constant*/ memcpy(rl_name_buffer.s, db_prefix.s, db_prefix.len); return 0; }
static int child_init(int rank) { if (cachedb_bind_mod(&cachedb_url, &cdbf) < 0) { LM_ERR("cannot bind functions for db_url %.*s\n", cachedb_url.len, cachedb_url.s); return -1; } if (!CACHEDB_CAPABILITY(&cdbf, CACHEDB_CAP_GET|CACHEDB_CAP_SET)) { LM_ERR("not enough capabilities\n"); return -1; } cdbc = cdbf.init(&cachedb_url); if (!cdbc) { LM_ERR("cannot connect to db_url %.*s\n", cachedb_url.len, cachedb_url.s); return -1; } return 0; }