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

Function db_virtual_bind_api

modules/db_virtual/db_virtual.c:430–495  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

428}
429
430int db_virtual_bind_api(const str* mod, db_func_t *dbb)
431{
432 LM_DBG("BINDING API for virtual url: %.*s\n", mod->len, mod->s);
433
434 int i, j;
435 str s;
436 //int len;
437
438 if(!global)
439 if(virtual_mod_init())
440 return 1;
441
442 if(dbb==NULL)
443 return -1;
444
445 memset(dbb, 0, sizeof(db_func_t));
446
447
448 /* virtual://set5
449 * p
450 */
451 s.s = strchr(mod->s, '/');
452 s.s +=2;
453 s.len = mod->len - (s.s - mod->s);
454
455
456 for(i=0; i< global->size; i++){
457 if ( (s.len==global->set_list[i].set_name.len) &&
458 strncmp(s.s, global->set_list[i].set_name.s,
459 global->set_list[i].set_name.len) == 0)
460 break;
461 }
462 if (i==global->size) {
463 LM_ERR("virtual set <%.*s> was not found. Did you define it?\n",
464 s.len, s.s);
465 return -1;
466 }
467
468 dbb->cap = global->set_list[i].db_list[0].dbf.cap;
469 for(j=1; j< global->set_list[i].size; j++){
470 dbb->cap &= global->set_list[i].db_list[j].dbf.cap;
471 }
472
473 LM_DBG("Computed capabilities for %.*s are %x\n",
474 global->set_list[i].set_name.len, global->set_list[i].set_name.s,
475 dbb->cap);
476
477 dbb->use_table = db_virtual_use_table;
478 dbb->init = db_virtual_init;
479 dbb->close = db_virtual_close;
480 dbb->query = db_virtual_query;
481 dbb->fetch_result = db_virtual_fetch_result;
482 dbb->raw_query = db_virtual_raw_query;
483 dbb->free_result = db_virtual_free_result;
484 dbb->insert = db_virtual_insert;
485 dbb->delete = db_virtual_delete;
486 dbb->update = db_virtual_update;
487 dbb->replace = db_virtual_replace;

Callers

nothing calls this directly

Calls 1

virtual_mod_initFunction · 0.85

Tested by

no test coverage detected