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

Function mod_init

modules/sockets_mgm/sockets_mgm.c:167–237  ·  view source on GitHub ↗

* init module function */

Source from the content-addressed store, hash-verified

165 * init module function
166 */
167static int mod_init(void)
168{
169 LM_NOTICE("initializing sockets management module ...\n");
170
171 /* if not specified, it means that it had never been done anything */
172 init_db_url(sock_mgm_db_url , 1 /*can be null*/);
173
174 sock_mgm_table.len = strlen(sock_mgm_table.s);
175 sock_mgm_socket_col.len = strlen(sock_mgm_socket_col.s);
176 sock_mgm_adv_col.len = strlen(sock_mgm_adv_col.s);
177 sock_mgm_tag_col.len = strlen(sock_mgm_tag_col.s);
178 sock_mgm_flags_col.len = strlen(sock_mgm_flags_col.s);
179 sock_mgm_tos_col.len = strlen(sock_mgm_tos_col.s);
180
181 if(db_bind_mod(&sock_mgm_db_url, &sock_mgm_db_func) == -1) {
182 LM_ERR("Failed bind to database\n");
183 return -1;
184 }
185
186 if (!DB_CAPABILITY(sock_mgm_db_func, DB_CAP_QUERY|DB_CAP_FETCH)) {
187 LM_ERR("Database module does not implement all functions"
188 " needed by sockets_mgm module\n");
189 return -1;
190 }
191
192 sock_mgm_db_con = sock_mgm_db_func.init(&sock_mgm_db_url);
193 if (!sock_mgm_db_con) {
194 LM_ERR("Failed to connect to database\n");
195 return -1;
196 }
197
198 /*verify table versions */
199 if(db_check_table_version(&sock_mgm_db_func, sock_mgm_db_con,
200 &sock_mgm_table, SOCKETS_MGM_TABLE_VERSION) < 0) {
201 LM_ERR("error during table version check\n");
202 return -1;
203 }
204
205 sock_mgm_version = shm_malloc(sizeof *sock_mgm_version);
206 if (!sock_mgm_version) {
207 LM_ERR("oom for sock_mgm_version\n");
208 return -1;
209 }
210 *sock_mgm_version = 0;
211 sock_mgm_proc_no = shm_malloc(sizeof *sock_mgm_proc_no);
212 if (!sock_mgm_proc_no) {
213 LM_ERR("oom for sock_mgm_proc_no\n");
214 return -1;
215 }
216 *sock_mgm_proc_no = -1;
217 sock_mgm_lock = lock_alloc();
218 if (!sock_mgm_version || !lock_init(sock_mgm_lock)) {
219 LM_ERR("initializing sock_mgm_version lock\n");
220 return -1;
221 }
222
223 if (socketpair(AF_UNIX, SOCK_STREAM, 0, sock_mgm_unix) < 0) {
224 LM_ERR("socketpair failed %d/%s\n",

Callers

nothing calls this directly

Calls 5

db_bind_modFunction · 0.85
db_check_table_versionFunction · 0.85
shm_mallocFunction · 0.85
lock_initFunction · 0.85
sockets_pool_initFunction · 0.85

Tested by

no test coverage detected