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

Function mqueue_db_load_queue

modules/mqueue/mqueue_db.c:88–259  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

86}
87
88int mqueue_db_load_queue(str *name)
89{
90 int ncols = 2;
91 db_res_t *db_res = NULL;
92 db_key_t db_cols[2] = {&mq_db_key_column, &mq_db_val_column};
93 db_key_t db_ord = &mq_db_id_column;
94 int mq_fetch_rows = 100;
95 int ret = 0;
96 str val = str_init("");
97 str key = str_init("");
98 int i;
99 int cnt = 0;
100
101 if(mqueue_db_open_con() != 0) {
102 LM_ERR("no db connection\n");
103 return -1;
104 }
105
106 if(mq_dbf.use_table(mqueue_db_con, name) < 0) {
107 LM_ERR("failed to use_table\n");
108 goto error;
109 }
110
111 LM_INFO("=============== loading queue table [%.*s] from database\n",
112 name->len, name->s);
113
114 if(DB_CAPABILITY(mq_dbf, DB_CAP_FETCH)) {
115 if(mq_dbf.query(mqueue_db_con, 0, 0, 0, db_cols, 0, ncols, db_ord, 0)
116 < 0) {
117 LM_ERR("Error while querying db\n");
118 goto error;
119 }
120 if(mq_dbf.fetch_result(mqueue_db_con, &db_res, mq_fetch_rows) < 0) {
121 LM_ERR("Error while fetching result\n");
122 if(db_res)
123 mq_dbf.free_result(mqueue_db_con, db_res);
124 goto error;
125 } else {
126 if(RES_ROW_N(db_res) == 0) {
127 mq_dbf.free_result(mqueue_db_con, db_res);
128 LM_DBG("Nothing to be loaded in queue\n");
129 mqueue_db_close_con();
130 return 0;
131 }
132 }
133 } else {
134 if((ret = mq_dbf.query(mqueue_db_con, NULL, NULL, NULL, db_cols, 0,
135 ncols, 0, &db_res))
136 != 0
137 || RES_ROW_N(db_res) <= 0) {
138 if(ret == 0) {
139 mq_dbf.free_result(mqueue_db_con, db_res);
140 mqueue_db_close_con();
141 return 0;
142 } else {
143 goto error;
144 }
145 }

Callers 1

mod_initFunction · 0.85

Calls 3

mqueue_db_open_conFunction · 0.85
mqueue_db_close_conFunction · 0.85
mq_item_addFunction · 0.85

Tested by

no test coverage detected