db_carrierroute.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "db_carrierroute.h"
00021
00022
00023
00024
00025
00026 db_con_t * carrierroute_dbh = NULL;
00027 db_func_t carrierroute_dbf;
00028
00029 str carrierroute_table = str_init("carrierroute");
00030
00031
00032 str carrierroute_id_col = str_init("id");
00033 str carrierroute_carrier_col = str_init("carrier");
00034 str carrierroute_domain_col = str_init("domain");
00035 str carrierroute_scan_prefix_col = str_init("scan_prefix");
00036 str carrierroute_flags_col = str_init("flags");
00037 str carrierroute_mask_col = str_init("mask");
00038 str carrierroute_prob_col = str_init("prob");
00039 str carrierroute_strip_col = str_init("strip");
00040 str carrierroute_rewrite_host_col = str_init("rewrite_host");
00041 str carrierroute_rewrite_prefix_col = str_init("rewrite_prefix");
00042 str carrierroute_rewrite_suffix_col = str_init("rewrite_suffix");
00043 str carrierroute_description_col = str_init("description");
00044
00045
00046 const unsigned int carrierroute_version = 3;
00047
00048 str carrierfailureroute_table = str_init("carrierfailureroute");
00049
00050
00051 str carrierfailureroute_id_col = str_init("id");
00052 str carrierfailureroute_carrier_col = str_init("carrier");
00053 str carrierfailureroute_domain_col = str_init("domain");
00054 str carrierfailureroute_scan_prefix_col = str_init("scan_prefix");
00055 str carrierfailureroute_host_name_col = str_init("host_name");
00056 str carrierfailureroute_reply_code_col = str_init("reply_code");
00057 str carrierfailureroute_flags_col = str_init("flags");
00058 str carrierfailureroute_mask_col = str_init("mask");
00059 str carrierfailureroute_next_domain_col = str_init("next_domain");
00060 str carrierfailureroute_description_col = str_init("description");
00061
00062
00063 const unsigned int carrierfailureroute_version = 2;
00064
00065 str carrier_name_table = str_init("carrier_name");
00066
00067
00068 str carrier_name_id_col = str_init("id");
00069 str carrier_name_carrier_col = str_init("carrier");
00070
00071
00072 const unsigned int carrier_name_version = 1;
00073
00074 str domain_name_table = str_init("domain_name");
00075
00076
00077 str domain_name_id_col = str_init("id");
00078 str domain_name_domain_col = str_init("domain");
00079
00080
00081 const unsigned int domain_name_version = 1;
00082
00083
00084
00085
00086
00087 void carrierroute_db_close(void) {
00088 if (carrierroute_dbh) {
00089 carrierroute_dbf.close(carrierroute_dbh);
00090 carrierroute_dbh = NULL;
00091 }
00092 }
00093
00094
00095
00096
00097
00098
00099
00100
00101 int carrierroute_db_init(void) {
00102 if (!carrierroute_db_url.s || !carrierroute_db_url.len) {
00103 LM_ERR("you have to set the db_url module parameter.\n");
00104 return -1;
00105 }
00106 if (db_bind_mod(&carrierroute_db_url, &carrierroute_dbf) < 0) {
00107 LM_ERR("can't bind database module.\n");
00108 return -1;
00109 }
00110 if ((carrierroute_dbh = carrierroute_dbf.init(&carrierroute_db_url)) == NULL) {
00111 LM_ERR("can't connect to database.\n");
00112 return -1;
00113 }
00114 if (
00115 (db_check_table_version(&carrierroute_dbf, carrierroute_dbh, &carrierroute_table, carrierroute_version) < 0) ||
00116 (db_check_table_version(&carrierroute_dbf, carrierroute_dbh, &carrierfailureroute_table, carrierfailureroute_version) < 0) ||
00117 (db_check_table_version(&carrierroute_dbf, carrierroute_dbh, &carrier_name_table, carrier_name_version) < 0) ||
00118 (db_check_table_version(&carrierroute_dbf, carrierroute_dbh, &domain_name_table, domain_name_version) < 0)
00119 ) {
00120 LM_ERR("during table version check.\n");
00121 carrierroute_db_close();
00122 return -1;
00123 }
00124 carrierroute_db_close();
00125 return 0;
00126 }
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136 int carrierroute_db_open(void) {
00137 if (carrierroute_dbh) {
00138 carrierroute_dbf.close(carrierroute_dbh);
00139 }
00140 if ((carrierroute_dbh = carrierroute_dbf.init(&carrierroute_db_url)) == NULL) {
00141 LM_ERR("can't connect to database.\n");
00142 return -1;
00143 }
00144 return 0;
00145 }
00146
00147
00148
00149
00150
00151
00152 void carrierroute_db_vars(void) {
00153 if (carrierroute_db_url.s) carrierroute_db_url.len = strlen(carrierroute_db_url.s);
00154 carrierroute_table.len = strlen(carrierroute_table.s);
00155 carrierroute_id_col.len = strlen(carrierroute_id_col.s);
00156 carrierroute_carrier_col.len = strlen(carrierroute_carrier_col.s);
00157 carrierroute_domain_col.len = strlen(carrierroute_domain_col.s);
00158 carrierroute_scan_prefix_col.len = strlen(carrierroute_scan_prefix_col.s);
00159 carrierroute_flags_col.len = strlen(carrierroute_flags_col.s);
00160 carrierroute_mask_col.len = strlen(carrierroute_mask_col.s);
00161 carrierroute_prob_col.len = strlen(carrierroute_prob_col.s);
00162 carrierroute_strip_col.len = strlen(carrierroute_strip_col.s);
00163 carrierroute_rewrite_host_col.len = strlen(carrierroute_rewrite_host_col.s);
00164 carrierroute_rewrite_prefix_col.len = strlen(carrierroute_rewrite_prefix_col.s);
00165 carrierroute_rewrite_suffix_col.len = strlen(carrierroute_rewrite_suffix_col.s);
00166 carrierroute_description_col.len = strlen(carrierroute_description_col.s);
00167 carrierfailureroute_table.len = strlen(carrierfailureroute_table.s);
00168 carrierfailureroute_id_col.len = strlen(carrierfailureroute_id_col.s);
00169 carrierfailureroute_carrier_col.len = strlen(carrierfailureroute_carrier_col.s);
00170 carrierfailureroute_domain_col.len = strlen(carrierfailureroute_domain_col.s);
00171 carrierfailureroute_scan_prefix_col.len = strlen(carrierfailureroute_scan_prefix_col.s);
00172 carrierfailureroute_host_name_col.len = strlen(carrierfailureroute_host_name_col.s);
00173 carrierfailureroute_reply_code_col.len = strlen(carrierfailureroute_reply_code_col.s);
00174 carrierfailureroute_flags_col.len = strlen(carrierfailureroute_flags_col.s);
00175 carrierfailureroute_mask_col.len = strlen(carrierfailureroute_mask_col.s);
00176 carrierfailureroute_next_domain_col.len = strlen(carrierfailureroute_next_domain_col.s);
00177 carrierfailureroute_description_col.len = strlen(carrierfailureroute_description_col.s);
00178 carrier_name_table.len = strlen(carrier_name_table.s);
00179 carrier_name_id_col.len = strlen(carrier_name_id_col.s);
00180 carrier_name_carrier_col.len = strlen(carrier_name_carrier_col.s);
00181 domain_name_table.len = strlen(domain_name_table.s);
00182 domain_name_id_col.len = strlen(domain_name_id_col.s);
00183 domain_name_domain_col.len = strlen(domain_name_domain_col.s);
00184 }
00185