static int mod_init(void) { /* Find a database module */ if (group_db_bind(&db_url)) { return -1; } if (group_db_init(&db_url) < 0 ){ LM_ERR("unable to open database connection\n"); return -1; } /* check version for group table */ if (db_check_table_version(&group_dbf, group_dbh, &table, TABLE_VERSION) < 0) { LM_ERR("error during group table version check.\n"); return -1; } if (re_table.len) { /* check version for group re_group table */ if (db_check_table_version(&group_dbf, group_dbh, &re_table, RE_TABLE_VERSION) < 0) { LM_ERR("error during re_group table version check.\n"); return -1; } if (load_re( &re_table )!=0 ) { LM_ERR("failed to load <%s> table\n", re_table.s); return -1; } } group_db_close(); return 0; }
static int child_init(int rank) { if (rank==PROC_INIT || rank==PROC_MAIN || rank==PROC_TCP_MAIN) return 0; /* do nothing for the main process */ return group_db_init(&db_url); }
static int child_init(int rank) { if (db_url.s) return group_db_init(&db_url); LM_DBG("db_url is null\n"); return 0; }
static int mod_init(void) { LM_DBG("group module - initializing\n"); /* check for a database module */ if (db_url.s) { db_url.len = strlen(db_url.s); table.len = strlen(table.s); user_column.len = strlen(user_column.s); domain_column.len = strlen(domain_column.s); group_column.len = strlen(group_column.s); re_table.len = (re_table.s && re_table.s[0])?strlen(re_table.s):0; re_exp_column.len = strlen(re_exp_column.s); re_gid_column.len = strlen(re_gid_column.s); if (group_db_bind(&db_url)) { LM_ERR("unable to bind database module\n"); return -1; } if (group_db_init(&db_url) < 0 ){ LM_ERR("unable to open database connection\n"); return -1; } /* check version for group table */ if (db_check_table_version(&group_dbf, group_dbh, &table, TABLE_VERSION) < 0) { LM_ERR("error during group table version check.\n"); return -1; } if (re_table.len) { /* check version for group re_group table */ if (db_check_table_version(&group_dbf, group_dbh, &re_table, RE_TABLE_VERSION) < 0) { LM_ERR("error during re_group table version check.\n"); return -1; } if (load_re( &re_table )!=0 ) { LM_ERR("failed to load <%s> table\n", re_table.s); return -1; } } group_db_close(); LM_DBG("group database loaded\n"); } /* check for an aaa module */ if (aaa_proto_url.s) { aaa_proto_url.len = strlen(aaa_proto_url.s); memset(attrs, 0, sizeof(attrs)); memset(vals, 0, sizeof(vals)); attrs[A_SERVICE_TYPE].name = "Service-Type"; attrs[A_USER_NAME].name = "User-Name"; attrs[A_SIP_GROUP].name = "Sip-Group"; attrs[A_ACCT_SESSION_ID].name = "Acct-Session-Id"; vals[V_GROUP_CHECK].name = "Group-Check"; if (aaa_prot_bind(&aaa_proto_url, &proto)) { LM_ERR("unable to bind aaa protocol module\n"); return -1; } if (!(conn = proto.init_prot(&aaa_proto_url))) { LM_ERR("unable to initialize aaa protocol module\n"); return -1; } INIT_AV(proto, conn, attrs, A_MAX, vals, V_MAX, "group", -3, -4); LM_DBG("aaa protocol module loaded\n"); } return 0; }