add authorized state to subscribers in db
This commit is contained in:
parent
e9a8261486
commit
6e2e545fa1
|
@ -13,6 +13,7 @@ struct gsm_subscriber {
|
||||||
char tmsi[GSM_TMSI_LENGTH];
|
char tmsi[GSM_TMSI_LENGTH];
|
||||||
u_int16_t lac;
|
u_int16_t lac;
|
||||||
char name[GSM_NAME_LENGTH];
|
char name[GSM_NAME_LENGTH];
|
||||||
|
int authorized;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum gsm_subscriber_field {
|
enum gsm_subscriber_field {
|
||||||
|
|
15
src/db.c
15
src/db.c
|
@ -69,7 +69,8 @@ int db_prepare() {
|
||||||
"imsi NUMERIC UNIQUE NOT NULL, "
|
"imsi NUMERIC UNIQUE NOT NULL, "
|
||||||
"tmsi NUMERIC UNIQUE, "
|
"tmsi NUMERIC UNIQUE, "
|
||||||
"extension TEXT UNIQUE, "
|
"extension TEXT UNIQUE, "
|
||||||
"lac INTEGER"
|
"lac INTEGER NOT NULL DEFAULT 0, "
|
||||||
|
"authorized INTEGER NOT NULL DEFAULT 0"
|
||||||
")"
|
")"
|
||||||
);
|
);
|
||||||
if (result==NULL) {
|
if (result==NULL) {
|
||||||
|
@ -140,10 +141,6 @@ struct gsm_subscriber* db_create_subscriber(char imsi[GSM_IMSI_LENGTH]) {
|
||||||
return subscriber;
|
return subscriber;
|
||||||
}
|
}
|
||||||
|
|
||||||
int db__parse_subscriber(dbi_result result, struct gsm_subscriber* subscriber) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int db_get_subscriber(enum gsm_subscriber_field field, struct gsm_subscriber* subscriber) {
|
int db_get_subscriber(enum gsm_subscriber_field field, struct gsm_subscriber* subscriber) {
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
switch (field) {
|
switch (field) {
|
||||||
|
@ -178,7 +175,9 @@ int db_get_subscriber(enum gsm_subscriber_field field, struct gsm_subscriber* su
|
||||||
strncpy(subscriber->tmsi, dbi_result_get_string(result, "tmsi"), GSM_TMSI_LENGTH);
|
strncpy(subscriber->tmsi, dbi_result_get_string(result, "tmsi"), GSM_TMSI_LENGTH);
|
||||||
// FIXME handle extension
|
// FIXME handle extension
|
||||||
subscriber->lac = dbi_result_get_uint(result, "lac");
|
subscriber->lac = dbi_result_get_uint(result, "lac");
|
||||||
printf("DB: Found Subscriber: IMSI %s, TMSI %s, LAC %hu\n", subscriber->imsi, subscriber->tmsi, subscriber->lac);
|
subscriber->authorized = dbi_result_get_uint(result, "authorized");
|
||||||
|
printf("DB: Found Subscriber: IMSI %s, TMSI %s, LAC %hu, AUTH %u\n",
|
||||||
|
subscriber->imsi, subscriber->tmsi, subscriber->lac, subscriber->authorized);
|
||||||
dbi_result_free(result);
|
dbi_result_free(result);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -187,9 +186,9 @@ int db_set_subscriber(struct gsm_subscriber* subscriber) {
|
||||||
dbi_result result;
|
dbi_result result;
|
||||||
result = dbi_conn_queryf(conn,
|
result = dbi_conn_queryf(conn,
|
||||||
"UPDATE Subscriber "
|
"UPDATE Subscriber "
|
||||||
"SET tmsi = %s, lac = %i "
|
"SET tmsi = %s, lac = %i, authorized = %i "
|
||||||
"WHERE imsi = %s ",
|
"WHERE imsi = %s ",
|
||||||
subscriber->tmsi, subscriber->lac, subscriber->imsi
|
subscriber->tmsi, subscriber->lac, subscriber->authorized, subscriber->imsi
|
||||||
);
|
);
|
||||||
if (result==NULL) {
|
if (result==NULL) {
|
||||||
printf("DB: Failed to update Subscriber (by IMSI).\n");
|
printf("DB: Failed to update Subscriber (by IMSI).\n");
|
||||||
|
|
Loading…
Reference in New Issue