add authorized state to subscribers in db

This commit is contained in:
Jan Luebbe 2008-12-27 16:47:55 +00:00
parent e9a8261486
commit 6e2e545fa1
2 changed files with 8 additions and 8 deletions

View File

@ -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 {

View File

@ -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");