summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-03-30 11:22:27 +0200
committerHarald Welte <laforge@gnumonks.org>2016-03-31 11:56:29 +0200
commitf9b212fabd0d5c37dac9639fc9d9ecd73688e3a3 (patch)
tree39b0fe83d18acdb2d643ba0f86552c425c52328d
parentd617c5d3ac65b5090f787da3e2911fb6742f515c (diff)
MM Auth: introduce AUTH_ERROR constant.
Instead of using hardcoded -1 for errors, include -1 in the enum auth_action type; apply its use. In the mm_auth test, the string output changes from '(internal error)' to 'AUTH_ERROR', since now the proper enum value is used in auth_action_names[].
-rw-r--r--openbsc/include/openbsc/auth.h1
-rw-r--r--openbsc/src/libmsc/auth.c6
-rw-r--r--openbsc/tests/mm_auth/mm_auth_test.c2
-rw-r--r--openbsc/tests/mm_auth/mm_auth_test.ok2
4 files changed, 6 insertions, 5 deletions
diff --git a/openbsc/include/openbsc/auth.h b/openbsc/include/openbsc/auth.h
index 90495bb58..61811316b 100644
--- a/openbsc/include/openbsc/auth.h
+++ b/openbsc/include/openbsc/auth.h
@@ -7,6 +7,7 @@ struct gsm_auth_tuple;
struct gsm_subscriber;
enum auth_action {
+ AUTH_ERROR = -1, /* Internal error */
AUTH_NOT_AVAIL = 0, /* No auth tuple available */
AUTH_DO_AUTH_THEN_CIPH = 1, /* Firsth authenticate, then cipher */
AUTH_DO_CIPH = 2, /* Only ciphering */
diff --git a/openbsc/src/libmsc/auth.c b/openbsc/src/libmsc/auth.c
index 85123167b..99e3a243e 100644
--- a/openbsc/src/libmsc/auth.c
+++ b/openbsc/src/libmsc/auth.c
@@ -33,7 +33,7 @@
const struct value_string auth_action_names[] = {
#define AUTH_ACTION_STR(X) { X, #X }
- { -1, "(internal error)" }, /* soon to be fixed with an enum val */
+ AUTH_ACTION_STR(AUTH_ERROR),
AUTH_ACTION_STR(AUTH_NOT_AVAIL),
AUTH_ACTION_STR(AUTH_DO_AUTH_THEN_CIPH),
AUTH_ACTION_STR(AUTH_DO_CIPH),
@@ -93,7 +93,7 @@ int auth_get_tuple_for_subscr(struct gsm_auth_tuple *atuple,
if (rc < 0) {
LOGP(DMM, LOGL_NOTICE,
"No retrievable Ki for subscriber, skipping auth\n");
- return rc == -ENOENT ? AUTH_NOT_AVAIL : -1;
+ return rc == -ENOENT ? AUTH_NOT_AVAIL : AUTH_ERROR;
}
/* If possible, re-use the last tuple and skip auth */
@@ -114,7 +114,7 @@ int auth_get_tuple_for_subscr(struct gsm_auth_tuple *atuple,
if (RAND_bytes(atuple->rand, sizeof(atuple->rand)) != 1) {
LOGP(DMM, LOGL_NOTICE, "RAND_bytes failed, can't generate new auth tuple\n");
- return -1;
+ return AUTH_ERROR;
}
switch (ainfo.auth_algo) {
diff --git a/openbsc/tests/mm_auth/mm_auth_test.c b/openbsc/tests/mm_auth/mm_auth_test.c
index e54189834..1d65984cb 100644
--- a/openbsc/tests/mm_auth/mm_auth_test.c
+++ b/openbsc/tests/mm_auth/mm_auth_test.c
@@ -141,7 +141,7 @@ static void test_error()
test_get_authinfo_rc = -EIO;
auth_action = auth_get_tuple_for_subscr_verbose(&atuple, &subscr,
key_seq);
- OSMO_ASSERT(auth_action == -1);
+ OSMO_ASSERT(auth_action == AUTH_ERROR);
}
static void test_auth_not_avail()
diff --git a/openbsc/tests/mm_auth/mm_auth_test.ok b/openbsc/tests/mm_auth/mm_auth_test.ok
index cc0e76960..7dedadc38 100644
--- a/openbsc/tests/mm_auth/mm_auth_test.ok
+++ b/openbsc/tests/mm_auth/mm_auth_test.ok
@@ -1,7 +1,7 @@
* test_error()
wrapped: db_get_authinfo_for_subscr(): rc = -5
-auth_get_tuple_for_subscr(key_seq=0) --> auth_action == (internal error)
+auth_get_tuple_for_subscr(key_seq=0) --> auth_action == AUTH_ERROR
* test_auth_not_avail()
wrapped: db_get_authinfo_for_subscr(): rc = -2