| 462 | } |
| 463 | |
| 464 | int cachedb_counter_fetch(str* cachedb_name, str* attr, int* val) |
| 465 | { |
| 466 | cachedb_engine* cde; |
| 467 | str cde_engine,grp_name; |
| 468 | char *p; |
| 469 | cachedb_con *con; |
| 470 | int ret; |
| 471 | |
| 472 | if(cachedb_name == NULL || attr == NULL || val == NULL) |
| 473 | { |
| 474 | LM_ERR("null arguments\n"); |
| 475 | return -1; |
| 476 | } |
| 477 | |
| 478 | p = memchr(cachedb_name->s,':',cachedb_name->len); |
| 479 | if (p == NULL) { |
| 480 | cde_engine = *cachedb_name; |
| 481 | grp_name.s = NULL; |
| 482 | grp_name.len = 0; |
| 483 | LM_DBG("from script [%.*s] - no grp\n",cde_engine.len,cde_engine.s); |
| 484 | } else { |
| 485 | cde_engine.s = cachedb_name->s; |
| 486 | cde_engine.len = p - cde_engine.s; |
| 487 | grp_name.s = p+1; |
| 488 | grp_name.len = cachedb_name->len - cde_engine.len -1; |
| 489 | LM_DBG("from script [%.*s] - with grp [%.*s]\n",cde_engine.len, |
| 490 | cde_engine.s,grp_name.len,grp_name.s); |
| 491 | |
| 492 | } |
| 493 | |
| 494 | cde = lookup_cachedb(&cde_engine); |
| 495 | if(cde == NULL) |
| 496 | { |
| 497 | LM_ERR("Wrong argument <%.*s> - no cachedb system with" |
| 498 | " this name registered\n", |
| 499 | cde_engine.len,cde_engine.s); |
| 500 | return -1; |
| 501 | } |
| 502 | |
| 503 | con = cachedb_get_connection(cde,&grp_name); |
| 504 | if (con == NULL) { |
| 505 | LM_ERR("failed to get connection for grp name [%.*s] : check db_url\n", |
| 506 | grp_name.len,grp_name.s); |
| 507 | return -1; |
| 508 | } |
| 509 | |
| 510 | ret = cde->cdb_func.get_counter(con,attr,val); |
| 511 | if (ret == 0) |
| 512 | ret++; |
| 513 | |
| 514 | return ret; |
| 515 | } |
| 516 | |
| 517 | int cachedb_add(str* cachedb_name, str* attr, int val,int expires,int *new_val) |
| 518 | { |
no test coverage detected