79 static DBPool *pool = NULL;
    87 static long dlr_messages_mssql()
    99 #if defined(DLR_TRACE)   121 static void dlr_shutdown_mssql()
   127 static void dlr_add_mssql(
struct dlr_entry *entry)
   131     debug(
"dlr.mssql", 0, 
"adding DLR entry into database");
   141     sql = 
octstr_format(
"INSERT INTO %S (%S, %S, %S, %S, %S, %S, %S, %S, %S) VALUES "   142                 "('%S', '%S', '%S', '%S', '%S', '%S', '%d', '%S', '%d')",
   149 #if defined(DLR_TRACE)   168     debug(
"dlr.mssql", 0, 
"removing DLR from database");
   180     sql = 
octstr_format(
"SET ROWCOUNT 1\nDELETE FROM %S WHERE %S='%S' AND "   184 #if defined(DLR_TRACE)   202     List *result = NULL, *row;
   214     sql = 
octstr_format(
"SELECT %S, %S, %S, %S, %S, %S FROM %S WHERE %S='%S'"   220 #if defined(DLR_TRACE)   232 #define LO2CSTR(r, i) octstr_get_cstr(gwlist_get(r, i))   238         res->
mask = atoi(LO2CSTR(row,0));
   260     debug(
"dlr.mssql", 0, 
"updating DLR status in database");
   272     sql = 
octstr_format(
"SET ROWCOUNT 1\nUPDATE %S SET %S=%d WHERE %S='%S' "   273         "AND %S='%S' %S\nSET ROWCOUNT 0",
   277 #if defined(DLR_TRACE)   290 static void dlr_flush_mssql (
void)
   302 #if defined(DLR_TRACE)   307         error(0, 
"DLR: MSSQL: Error while flushing dlr entries from database");
   309         debug(
"dlr.mssql", 0, 
"Flushing %d DLR entries from database", rows);
   316     .dlr_messages = dlr_messages_mssql,
   317     .dlr_shutdown = dlr_shutdown_mssql,
   318     .dlr_add = dlr_add_mssql,
   319     .dlr_get = dlr_get_mssql,
   320     .dlr_remove = dlr_remove_mssql,
   321     .dlr_update = dlr_update_mssql,
   322     .dlr_flush = dlr_flush_mssql
   335         panic(0, 
"DLR: MSSQL: group 'dlr-db' is not specified!");
   338        panic(0, 
"DLR: MSSQL: directive 'id' is not specified!");
   359         panic(0, 
"DLR: MSSQL: connection settings for id '%s' are not specified!",
   370         panic(0, 
"DLR: MSSQL: connection settings missing for id '%s'. "   374     db_conf = gw_malloc(
sizeof(*db_conf));
   386         panic(0, 
"DLR: MSSQL: Could not establish mssql connection(s).");
 void error(int err, const char *fmt,...)
long dbpool_conn_count(DBPool *p)
DBPool * dbpool_create(enum db_type db_type, DBConf *conf, unsigned int connections)
gw_assert(wtls_machine->packet_to_send !=NULL)
void dlr_db_fields_destroy(struct dlr_db_fields *fields)
struct dlr_entry * dlr_entry_create(void)
long gwlist_len(List *list)
void * gwlist_get(List *list, long pos)
#define cfg_get(grp, varname)
#define octstr_get_cstr(ostr)
static struct pid_list * found
void dbpool_conn_produce(DBPoolConn *conn)
static struct dlr_storage * handles
Octstr * octstr_imm(const char *cstr)
void * gwlist_extract_first(List *list)
#define octstr_duplicate(ostr)
List * cfg_get_multi_group(Cfg *cfg, Octstr *name)
void warning(int err, const char *fmt,...)
Octstr * octstr_format(const char *fmt,...)
void octstr_destroy(Octstr *ostr)
#define octstr_create(cstr)
void octstr_destroy_item(void *os)
struct dlr_storage * dlr_init_mssql(Cfg *cfg)
void dbpool_destroy(DBPool *p)
int dbpool_conn_update(DBPoolConn *conn, const Octstr *sql, List *binds)
void dlr_entry_destroy(struct dlr_entry *dlr)
void debug(const char *place, int err, const char *fmt,...)
int cfg_get_integer(long *n, CfgGroup *grp, Octstr *varname)
int dbpool_conn_select(DBPoolConn *conn, const Octstr *sql, List *binds, List **result)
static void server(int lport, int pport)
DBPoolConn * dbpool_conn_consume(DBPool *p)
CfgGroup * cfg_get_single_group(Cfg *cfg, Octstr *name)
struct dlr_db_fields * dlr_db_fields_create(CfgGroup *grp)
int octstr_compare(const Octstr *ostr1, const Octstr *ostr2)
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)