aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Luebbe <jluebbe@lasnet.de>2008-12-27 16:47:55 +0000
committerJan Luebbe <jluebbe@lasnet.de>2008-12-27 16:47:55 +0000
commit6e2e545fa124b734f22ed0416712a683430f0b55 (patch)
tree6e6ce4900b386bbb36d276f8b05902318d0a6328
parente9a8261486cce294060955d5beae6978546d3781 (diff)
add authorized state to subscribers in db
-rw-r--r--include/openbsc/gsm_subscriber.h1
-rw-r--r--src/db.c15
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");