MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / cachedb_raw_query

Function cachedb_raw_query

cachedb/cachedb.c:710–766  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

708}
709
710int cachedb_raw_query(str* cachedb_name, str* attr, cdb_raw_entry*** reply,int expected_kv_no,int *rpl_no)
711{
712 cachedb_engine* cde;
713 str cde_engine,grp_name;
714 char *p;
715 cachedb_con *con;
716 int ret;
717
718 if(cachedb_name == NULL || attr == NULL)
719 {
720 LM_ERR("null arguments\n");
721 return -1;
722 }
723
724 p = memchr(cachedb_name->s,':',cachedb_name->len);
725 if (p == NULL) {
726 cde_engine = *cachedb_name;
727 grp_name.s = NULL;
728 grp_name.len = 0;
729 LM_DBG("from script [%.*s] - no grp\n",cde_engine.len,cde_engine.s);
730 } else {
731 cde_engine.s = cachedb_name->s;
732 cde_engine.len = p - cde_engine.s;
733 grp_name.s = p+1;
734 grp_name.len = cachedb_name->len - cde_engine.len -1;
735 LM_DBG("from script [%.*s] - with grp [%.*s]\n",cde_engine.len,
736 cde_engine.s,grp_name.len,grp_name.s);
737
738 }
739
740 cde = lookup_cachedb(&cde_engine);
741 if(cde == NULL)
742 {
743 LM_ERR("Wrong argument <%.*s> - no cachedb system with"
744 " this name registered\n",
745 cde_engine.len,cde_engine.s);
746 return -1;
747 }
748
749 if (!CACHEDB_CAPABILITY(&cde->cdb_func,CACHEDB_CAP_RAW)) {
750 LM_ERR("The backend does not support raw queries\n");
751 return -1;
752 }
753
754 con = cachedb_get_connection(cde,&grp_name);
755 if (con == NULL) {
756 LM_ERR("failed to get connection for grp name [%.*s] : check db_url\n",
757 grp_name.len,grp_name.s);
758 return -1;
759 }
760
761 ret = cde->cdb_func.raw_query(con,attr,reply,expected_kv_no,rpl_no);
762 if (ret == 0)
763 ret++;
764
765 return ret;
766}
767

Callers 1

w_cache_raw_queryFunction · 0.85

Calls 2

lookup_cachedbFunction · 0.85
cachedb_get_connectionFunction · 0.85

Tested by

no test coverage detected