db_carrierroute.c

Go to the documentation of this file.
00001 
00002 /*!
00003  * \file
00004  * \ingroup db
00005  * \brief Database support for modules.
00006  *
00007  * Database support functions for modules.
00008  *
00009  * @cond
00010  * WARNING:
00011  * This file was autogenerated from the XML source file
00012  * ../../modules/carrierroute/kamailio-carrierroute.xml.
00013  * It can be regenerated by running 'make modules' in the db/schema
00014  * directory of the source code. You need to have xsltproc and
00015  * docbook-xsl stylesheets installed.
00016  * ALL CHANGES DONE HERE WILL BE LOST IF THE FILE IS REGENERATED
00017  * @endcond
00018  */
00019 
00020 #include "db_carrierroute.h"
00021 
00022 /* database variables */
00023 /* TODO assign read-write or read-only URI, introduce a parameter in XML */
00024 
00025 //extern str carrierroute_db_url;
00026 db_con_t * carrierroute_dbh = NULL;
00027 db_func_t carrierroute_dbf;
00028 
00029 str carrierroute_table = str_init("carrierroute");
00030 
00031 /* column names */
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 /* table version */
00046 const unsigned int carrierroute_version = 3;
00047 
00048 str carrierfailureroute_table = str_init("carrierfailureroute");
00049 
00050 /* column names */
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 /* table version */
00063 const unsigned int carrierfailureroute_version = 2;
00064 
00065 str carrier_name_table = str_init("carrier_name");
00066 
00067 /* column names */
00068 str carrier_name_id_col = str_init("id");
00069 str carrier_name_carrier_col = str_init("carrier");
00070 
00071 /* table version */
00072 const unsigned int carrier_name_version = 1;
00073 
00074 str domain_name_table = str_init("domain_name");
00075 
00076 /* column names */
00077 str domain_name_id_col = str_init("id");
00078 str domain_name_domain_col = str_init("domain");
00079 
00080 /* table version */
00081 const unsigned int domain_name_version = 1;
00082 
00083 
00084 /*
00085  * Closes the DB connection.
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  * Initialises the DB API, check the table version and closes the connection.
00097  * This should be called from the mod_init function.
00098  *
00099  * \return 0 means ok, -1 means an error occured.
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  * Initialize the DB connection without checking the table version and DB URL.
00131  * This should be called from child_init. An already existing database
00132  * connection will be closed, and a new one created.
00133  *
00134  * \return 0 means ok, -1 means an error occured.
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  * Update the variable length after eventual assignments from the config script.
00150  * This is necessary because we're using the 'str' type.
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 

Generated on Mon May 21 18:00:26 2012 for Kamailio - The Open Source SIP Server by  doxygen 1.5.6