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

Function build_rt_data

modules/drouting/routing.c:49–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47extern str extra_id_chars;
48
49rt_data_t*
50build_rt_data(struct head_db *part)
51{
52 rt_data_t *rdata=NULL;
53 int flags;
54
55 if( NULL==(rdata=func_malloc(part->malloc, sizeof(rt_data_t)))) {
56 LM_ERR("no more shm mem\n");
57 goto err_exit;
58 }
59 memset(rdata, 0, sizeof(rt_data_t));
60
61 INIT_PTREE_NODE(part->malloc, NULL, rdata->pt);
62 flags = (part->cache? AVLMAP_PERSISTENT: AVLMAP_SHARED);
63
64 rdata->pgw_tree = map_create(flags);
65 rdata->carriers_tree = map_create(flags);
66
67 if (rdata->pgw_tree == NULL || rdata->carriers_tree == NULL) {
68 LM_ERR("Initializing avl failed!\n");
69 if (rdata->pgw_tree)
70 map_destroy(rdata->pgw_tree, 0);
71 goto err_exit;
72
73 }
74
75
76 return rdata;
77err_exit:
78 if (rdata)
79 func_free(part->free, rdata);
80 return 0;
81}
82
83
84int parse_destination_list(rt_data_t* rd, char *dstlist, pgw_list_t** pgwl_ret,

Callers 1

dr_load_routing_infoFunction · 0.85

Calls 2

map_createFunction · 0.85
map_destroyFunction · 0.85

Tested by

no test coverage detected