db: coding style cleanup
This commit is contained in:
parent
426da090db
commit
0b906d0e1a
104
openbsc/src/db.c
104
openbsc/src/db.c
|
@ -139,8 +139,9 @@ static char *create_stmts[] = {
|
||||||
")",
|
")",
|
||||||
};
|
};
|
||||||
|
|
||||||
void db_error_func(dbi_conn conn, void* data) {
|
void db_error_func(dbi_conn conn, void *data)
|
||||||
const char* msg;
|
{
|
||||||
|
const char *msg;
|
||||||
dbi_conn_error(conn, &msg);
|
dbi_conn_error(conn, &msg);
|
||||||
printf("DBI: %s\n", msg);
|
printf("DBI: %s\n", msg);
|
||||||
}
|
}
|
||||||
|
@ -169,10 +170,12 @@ static int check_db_revision(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_init(const char *name) {
|
int db_init(const char *name)
|
||||||
|
{
|
||||||
dbi_initialize(NULL);
|
dbi_initialize(NULL);
|
||||||
|
|
||||||
conn = dbi_conn_new("sqlite3");
|
conn = dbi_conn_new("sqlite3");
|
||||||
if (conn==NULL) {
|
if (conn == NULL) {
|
||||||
printf("DB: Failed to create connection.\n");
|
printf("DB: Failed to create connection.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -206,13 +209,14 @@ out_err:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int db_prepare() {
|
int db_prepare()
|
||||||
|
{
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(create_stmts); i++) {
|
for (i = 0; i < ARRAY_SIZE(create_stmts); i++) {
|
||||||
result = dbi_conn_query(conn, create_stmts[i]);
|
result = dbi_conn_query(conn, create_stmts[i]);
|
||||||
if (result==NULL) {
|
if (!result) {
|
||||||
printf("DB: Failed to create some table.\n");
|
printf("DB: Failed to create some table.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -228,7 +232,8 @@ int db_prepare() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_fini() {
|
int db_fini()
|
||||||
|
{
|
||||||
dbi_conn_close(conn);
|
dbi_conn_close(conn);
|
||||||
dbi_shutdown();
|
dbi_shutdown();
|
||||||
|
|
||||||
|
@ -239,10 +244,10 @@ int db_fini() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct gsm_subscriber* db_create_subscriber(struct gsm_network *net, char *imsi)
|
struct gsm_subscriber *db_create_subscriber(struct gsm_network *net, char *imsi)
|
||||||
{
|
{
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
struct gsm_subscriber* subscr;
|
struct gsm_subscriber *subscr;
|
||||||
|
|
||||||
/* Is this subscriber known in the db? */
|
/* Is this subscriber known in the db? */
|
||||||
subscr = db_get_subscriber(net, GSM_SUBSCRIBER_IMSI, imsi);
|
subscr = db_get_subscriber(net, GSM_SUBSCRIBER_IMSI, imsi);
|
||||||
|
@ -250,11 +255,10 @@ struct gsm_subscriber* db_create_subscriber(struct gsm_network *net, char *imsi)
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
"UPDATE Subscriber set updated = datetime('now') "
|
"UPDATE Subscriber set updated = datetime('now') "
|
||||||
"WHERE imsi = %s " , imsi);
|
"WHERE imsi = %s " , imsi);
|
||||||
if (result==NULL) {
|
if (!result)
|
||||||
printf("DB: failed to update timestamp\n");
|
printf("DB: failed to update timestamp\n");
|
||||||
} else {
|
else
|
||||||
dbi_result_free(result);
|
dbi_result_free(result);
|
||||||
}
|
|
||||||
return subscr;
|
return subscr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -269,9 +273,8 @@ struct gsm_subscriber* db_create_subscriber(struct gsm_network *net, char *imsi)
|
||||||
"(%s, datetime('now'), datetime('now')) ",
|
"(%s, datetime('now'), datetime('now')) ",
|
||||||
imsi
|
imsi
|
||||||
);
|
);
|
||||||
if (result==NULL) {
|
if (!result)
|
||||||
printf("DB: Failed to create Subscriber by IMSI.\n");
|
printf("DB: Failed to create Subscriber by IMSI.\n");
|
||||||
}
|
|
||||||
subscr->net = net;
|
subscr->net = net;
|
||||||
subscr->id = dbi_conn_sequence_last(conn, NULL);
|
subscr->id = dbi_conn_sequence_last(conn, NULL);
|
||||||
strncpy(subscr->imsi, imsi, GSM_IMSI_LENGTH-1);
|
strncpy(subscr->imsi, imsi, GSM_IMSI_LENGTH-1);
|
||||||
|
@ -456,7 +459,7 @@ struct gsm_subscriber *db_get_subscriber(struct gsm_network *net,
|
||||||
printf("DB: Unknown query selector for Subscriber.\n");
|
printf("DB: Unknown query selector for Subscriber.\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (result==NULL) {
|
if (!result) {
|
||||||
printf("DB: Failed to query Subscriber.\n");
|
printf("DB: Failed to query Subscriber.\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -498,7 +501,8 @@ struct gsm_subscriber *db_get_subscriber(struct gsm_network *net,
|
||||||
return subscr;
|
return subscr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_sync_subscriber(struct gsm_subscriber* subscriber) {
|
int db_sync_subscriber(struct gsm_subscriber *subscriber)
|
||||||
|
{
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
char tmsi[14];
|
char tmsi[14];
|
||||||
char *q_tmsi;
|
char *q_tmsi;
|
||||||
|
@ -510,6 +514,7 @@ int db_sync_subscriber(struct gsm_subscriber* subscriber) {
|
||||||
&q_tmsi);
|
&q_tmsi);
|
||||||
} else
|
} else
|
||||||
q_tmsi = strdup("NULL");
|
q_tmsi = strdup("NULL");
|
||||||
|
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
"UPDATE Subscriber "
|
"UPDATE Subscriber "
|
||||||
"SET updated = datetime('now'), "
|
"SET updated = datetime('now'), "
|
||||||
|
@ -524,14 +529,17 @@ int db_sync_subscriber(struct gsm_subscriber* subscriber) {
|
||||||
subscriber->authorized,
|
subscriber->authorized,
|
||||||
q_tmsi,
|
q_tmsi,
|
||||||
subscriber->lac,
|
subscriber->lac,
|
||||||
subscriber->imsi
|
subscriber->imsi);
|
||||||
);
|
|
||||||
free(q_tmsi);
|
free(q_tmsi);
|
||||||
if (result==NULL) {
|
|
||||||
|
if (!result) {
|
||||||
printf("DB: Failed to update Subscriber (by IMSI).\n");
|
printf("DB: Failed to update Subscriber (by IMSI).\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
dbi_result_free(result);
|
dbi_result_free(result);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,10 +586,12 @@ int db_sync_equipment(struct gsm_equipment *equip)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_subscriber_alloc_tmsi(struct gsm_subscriber* subscriber) {
|
int db_subscriber_alloc_tmsi(struct gsm_subscriber *subscriber)
|
||||||
dbi_result result=NULL;
|
{
|
||||||
|
dbi_result result = NULL;
|
||||||
char tmsi[14];
|
char tmsi[14];
|
||||||
char* tmsi_quoted;
|
char* tmsi_quoted;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
subscriber->tmsi = rand();
|
subscriber->tmsi = rand();
|
||||||
if (subscriber->tmsi == GSM_RESERVED_TMSI)
|
if (subscriber->tmsi == GSM_RESERVED_TMSI)
|
||||||
|
@ -592,14 +602,15 @@ int db_subscriber_alloc_tmsi(struct gsm_subscriber* subscriber) {
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
"SELECT * FROM Subscriber "
|
"SELECT * FROM Subscriber "
|
||||||
"WHERE tmsi = %s ",
|
"WHERE tmsi = %s ",
|
||||||
tmsi_quoted
|
tmsi_quoted);
|
||||||
);
|
|
||||||
free(tmsi_quoted);
|
free(tmsi_quoted);
|
||||||
if (result==NULL) {
|
|
||||||
|
if (!result) {
|
||||||
printf("DB: Failed to query Subscriber while allocating new TMSI.\n");
|
printf("DB: Failed to query Subscriber while allocating new TMSI.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (dbi_result_get_numrows(result)){
|
if (dbi_result_get_numrows(result)) {
|
||||||
dbi_result_free(result);
|
dbi_result_free(result);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -613,9 +624,11 @@ int db_subscriber_alloc_tmsi(struct gsm_subscriber* subscriber) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_subscriber_alloc_exten(struct gsm_subscriber* subscriber) {
|
int db_subscriber_alloc_exten(struct gsm_subscriber *subscriber)
|
||||||
dbi_result result=NULL;
|
{
|
||||||
|
dbi_result result = NULL;
|
||||||
u_int32_t try;
|
u_int32_t try;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
try = (rand()%(GSM_MAX_EXTEN-GSM_MIN_EXTEN+1)+GSM_MIN_EXTEN);
|
try = (rand()%(GSM_MAX_EXTEN-GSM_MIN_EXTEN+1)+GSM_MIN_EXTEN);
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
|
@ -623,7 +636,7 @@ int db_subscriber_alloc_exten(struct gsm_subscriber* subscriber) {
|
||||||
"WHERE extension = %i",
|
"WHERE extension = %i",
|
||||||
try
|
try
|
||||||
);
|
);
|
||||||
if (result==NULL) {
|
if (!result) {
|
||||||
printf("DB: Failed to query Subscriber while allocating new extension.\n");
|
printf("DB: Failed to query Subscriber while allocating new extension.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -647,7 +660,7 @@ int db_subscriber_alloc_exten(struct gsm_subscriber* subscriber) {
|
||||||
* an error.
|
* an error.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int db_subscriber_alloc_token(struct gsm_subscriber* subscriber, u_int32_t* token)
|
int db_subscriber_alloc_token(struct gsm_subscriber *subscriber, u_int32_t *token)
|
||||||
{
|
{
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
u_int32_t try;
|
u_int32_t try;
|
||||||
|
@ -691,7 +704,8 @@ int db_subscriber_alloc_token(struct gsm_subscriber* subscriber, u_int32_t* toke
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db_subscriber_assoc_imei(struct gsm_subscriber* subscriber, char imei[GSM_IMEI_LENGTH]) {
|
int db_subscriber_assoc_imei(struct gsm_subscriber *subscriber, char imei[GSM_IMEI_LENGTH])
|
||||||
|
{
|
||||||
unsigned long long equipment_id, watch_id;
|
unsigned long long equipment_id, watch_id;
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
|
|
||||||
|
@ -703,27 +717,27 @@ int db_subscriber_assoc_imei(struct gsm_subscriber* subscriber, char imei[GSM_IM
|
||||||
"(imei, created, updated) "
|
"(imei, created, updated) "
|
||||||
"VALUES "
|
"VALUES "
|
||||||
"(%s, datetime('now'), datetime('now')) ",
|
"(%s, datetime('now'), datetime('now')) ",
|
||||||
imei
|
imei);
|
||||||
);
|
if (!result) {
|
||||||
if (result==NULL) {
|
|
||||||
printf("DB: Failed to create Equipment by IMEI.\n");
|
printf("DB: Failed to create Equipment by IMEI.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
equipment_id = 0;
|
equipment_id = 0;
|
||||||
if (dbi_result_get_numrows_affected(result)) {
|
if (dbi_result_get_numrows_affected(result)) {
|
||||||
equipment_id = dbi_conn_sequence_last(conn, NULL);
|
equipment_id = dbi_conn_sequence_last(conn, NULL);
|
||||||
}
|
}
|
||||||
dbi_result_free(result);
|
dbi_result_free(result);
|
||||||
if (equipment_id) {
|
|
||||||
|
if (equipment_id)
|
||||||
printf("DB: New Equipment: ID %llu, IMEI %s\n", equipment_id, imei);
|
printf("DB: New Equipment: ID %llu, IMEI %s\n", equipment_id, imei);
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
"SELECT id FROM Equipment "
|
"SELECT id FROM Equipment "
|
||||||
"WHERE imei = %s ",
|
"WHERE imei = %s ",
|
||||||
imei
|
imei
|
||||||
);
|
);
|
||||||
if (result==NULL) {
|
if (!result) {
|
||||||
printf("DB: Failed to query Equipment by IMEI.\n");
|
printf("DB: Failed to query Equipment by IMEI.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -741,28 +755,26 @@ int db_subscriber_assoc_imei(struct gsm_subscriber* subscriber, char imei[GSM_IM
|
||||||
"(subscriber_id, equipment_id, created, updated) "
|
"(subscriber_id, equipment_id, created, updated) "
|
||||||
"VALUES "
|
"VALUES "
|
||||||
"(%llu, %llu, datetime('now'), datetime('now')) ",
|
"(%llu, %llu, datetime('now'), datetime('now')) ",
|
||||||
subscriber->id, equipment_id
|
subscriber->id, equipment_id);
|
||||||
);
|
if (!result) {
|
||||||
if (result==NULL) {
|
|
||||||
printf("DB: Failed to create EquipmentWatch.\n");
|
printf("DB: Failed to create EquipmentWatch.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
watch_id = 0;
|
watch_id = 0;
|
||||||
if (dbi_result_get_numrows_affected(result)) {
|
if (dbi_result_get_numrows_affected(result))
|
||||||
watch_id = dbi_conn_sequence_last(conn, NULL);
|
watch_id = dbi_conn_sequence_last(conn, NULL);
|
||||||
}
|
|
||||||
dbi_result_free(result);
|
dbi_result_free(result);
|
||||||
if (watch_id) {
|
if (watch_id)
|
||||||
printf("DB: New EquipmentWatch: ID %llu, IMSI %s, IMEI %s\n", equipment_id, subscriber->imsi, imei);
|
printf("DB: New EquipmentWatch: ID %llu, IMSI %s, IMEI %s\n", equipment_id, subscriber->imsi, imei);
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
"UPDATE EquipmentWatch "
|
"UPDATE EquipmentWatch "
|
||||||
"SET updated = datetime('now') "
|
"SET updated = datetime('now') "
|
||||||
"WHERE subscriber_id = %llu AND equipment_id = %llu ",
|
"WHERE subscriber_id = %llu AND equipment_id = %llu ",
|
||||||
subscriber->id, equipment_id
|
subscriber->id, equipment_id);
|
||||||
);
|
if (!result) {
|
||||||
if (result==NULL) {
|
|
||||||
printf("DB: Failed to update EquipmentWatch.\n");
|
printf("DB: Failed to update EquipmentWatch.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue