From 70881b7e8acf5ef6cdd57a084a99055d7decc1c2 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Sun, 27 Dec 2009 15:41:59 +0100 Subject: [PATCH] db: Add issued/use_count/key_seq fields to AuthTuples Theses will be useful to know if we can reuse the tuples or if we should renew. The 'issued' is currently purely informative. Signed-off-by: Sylvain Munaut --- openbsc/include/openbsc/gsm_data.h | 2 ++ openbsc/src/db.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index cc023b3ab..a50d9f21d 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -605,6 +605,8 @@ struct gsm_auth_info { }; struct gsm_auth_tuple { + int use_count; + int key_seq; u_int8_t rand[16]; u_int8_t sres[8]; u_int8_t kc[8]; diff --git a/openbsc/src/db.c b/openbsc/src/db.c index bfc7d9310..5ad951ac1 100644 --- a/openbsc/src/db.c +++ b/openbsc/src/db.c @@ -133,9 +133,12 @@ static char *create_stmts[] = { "CREATE TABLE IF NOT EXISTS AuthTuples (" "id INTEGER PRIMARY KEY AUTOINCREMENT, " "subscriber_id NUMERIC UNIQUE NOT NULL, " - "rand BLOB, " - "sres BLOB, " - "kc BLOB " + "issued TIMESTAMP NOT NULL, " + "use_count INTEGER NOT NULL DEFAULT 0, " + "key_seq INTEGER NOT NULL, " + "rand BLOB NOT NULL, " + "sres BLOB NOT NULL, " + "kc BLOB NOT NULL " ")", }; @@ -383,6 +386,9 @@ int get_authtuple_by_subscr(struct gsm_auth_tuple *atuple, memset(atuple, 0, sizeof(atuple)); + atuple->use_count = dbi_result_get_ulonglong(result, "use_count"); + atuple->key_seq = dbi_result_get_ulonglong(result, "key_seq"); + len = dbi_result_get_field_length(result, "rand"); if (len != sizeof(atuple->rand)) goto err_size;