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

Function alias_db_query

modules/alias_db/alookup.c:55–212  ·  view source on GitHub ↗

* */

Source from the content-addressed store, hash-verified

53 *
54 */
55static int alias_db_query(struct sip_msg* _msg, str* table_s,
56 struct sip_uri *puri, unsigned long flags,
57 set_alias_f set_alias, pv_spec_t *param)
58{
59 static db_ps_t my_ps[4] = {NULL,NULL,NULL,NULL};
60 str user_s;
61 db_key_t db_keys[2];
62 db_val_t db_vals[2];
63 db_key_t db_cols[2];
64 db_res_t* db_res = NULL;
65 int i;
66 int ps_idx=0;
67
68 if (flags&ALIAS_REVERT_FLAG) {
69 /* revert lookup: user->alias */
70 db_keys[0] = &user_column;
71 db_keys[1] = &domain_column;
72 db_cols[0] = &alias_user_column;
73 db_cols[1] = &alias_domain_column;
74 ps_idx += 2;
75 } else {
76 /* rnormal lookup: alias->user */
77 db_keys[0] = &alias_user_column;
78 db_keys[1] = &alias_domain_column;
79 db_cols[0] = &user_column;
80 db_cols[1] = &domain_column;
81 }
82
83 db_vals[0].type = DB_STR;
84 db_vals[0].nul = 0;
85 db_vals[0].val.str_val.s = puri->user.s;
86 db_vals[0].val.str_val.len = puri->user.len;
87
88 if ( (flags&ALIAS_NO_DOMAIN_FLAG)==0 ) {
89 db_vals[1].type = DB_STR;
90 db_vals[1].nul = 0;
91 db_vals[1].val.str_val.s = puri->host.s;
92 db_vals[1].val.str_val.len = puri->host.len;
93
94 if (domain_prefix.s && domain_prefix.len>0
95 && domain_prefix.len<puri->host.len
96 && strncasecmp(puri->host.s,domain_prefix.s,
97 domain_prefix.len)==0)
98 {
99 db_vals[1].val.str_val.s += domain_prefix.len;
100 db_vals[1].val.str_val.len -= domain_prefix.len;
101 }
102 ps_idx ++;
103 }
104
105 adbf.use_table(db_handle, table_s);
106
107 if (!ald_append_branches)
108 CON_SET_CURR_PS(db_handle, my_ps[ps_idx]);
109 if(adbf.query( db_handle, db_keys, NULL, db_vals, db_cols,
110 (flags&ALIAS_NO_DOMAIN_FLAG)?1:2 /*no keys*/, 2 /*no cols*/,
111 NULL, &db_res)!=0)
112 {

Callers 2

alias_db_lookupFunction · 0.85
alias_db_findFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected