From 6e2e545fa124b734f22ed0416712a683430f0b55 Mon Sep 17 00:00:00 2001 From: Jan Luebbe Date: Sat, 27 Dec 2008 16:47:55 +0000 Subject: [PATCH] add authorized state to subscribers in db --- include/openbsc/gsm_subscriber.h | 1 + src/db.c | 15 +++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/openbsc/gsm_subscriber.h b/include/openbsc/gsm_subscriber.h index d2c0d4f71..03333d4b1 100644 --- a/include/openbsc/gsm_subscriber.h +++ b/include/openbsc/gsm_subscriber.h @@ -13,6 +13,7 @@ struct gsm_subscriber { char tmsi[GSM_TMSI_LENGTH]; u_int16_t lac; char name[GSM_NAME_LENGTH]; + int authorized; }; enum gsm_subscriber_field { diff --git a/src/db.c b/src/db.c index 73fb0fe1c..94105bdee 100644 --- a/src/db.c +++ b/src/db.c @@ -69,7 +69,8 @@ int db_prepare() { "imsi NUMERIC UNIQUE NOT NULL, " "tmsi NUMERIC UNIQUE, " "extension TEXT UNIQUE, " - "lac INTEGER" + "lac INTEGER NOT NULL DEFAULT 0, " + "authorized INTEGER NOT NULL DEFAULT 0" ")" ); if (result==NULL) { @@ -140,10 +141,6 @@ struct gsm_subscriber* db_create_subscriber(char imsi[GSM_IMSI_LENGTH]) { 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) { dbi_result result; 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); // FIXME handle extension 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); return 0; } @@ -187,9 +186,9 @@ int db_set_subscriber(struct gsm_subscriber* subscriber) { dbi_result result; result = dbi_conn_queryf(conn, "UPDATE Subscriber " - "SET tmsi = %s, lac = %i " + "SET tmsi = %s, lac = %i, authorized = %i " "WHERE imsi = %s ", - subscriber->tmsi, subscriber->lac, subscriber->imsi + subscriber->tmsi, subscriber->lac, subscriber->authorized, subscriber->imsi ); if (result==NULL) { printf("DB: Failed to update Subscriber (by IMSI).\n");