diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2017-10-09 17:51:13 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2017-10-10 23:43:52 +0200 |
commit | 5e661d05b4f760ebb2c867a578af48f3db998243 (patch) | |
tree | f47246bc4584e7ecfe9ed85ff18216c34bcb11a8 /src | |
parent | a085519047f1e140084a00954cf3b6986b7ebae0 (diff) |
refactor db_get_auth_data return val
Adopt the error handling of the other db functions: return -ENOENT on unknown
subscriber and -EIO on SQL failure. Return 0 for no error, instead of the
number of rows modified.
Adjust the single caller: db_get_auc()
(and db_test.c).
Change-Id: I006f471962bdad95d00a3a4c41a28ebbc9740884
Diffstat (limited to 'src')
-rw-r--r-- | src/db_auc.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/db_auc.c b/src/db_auc.c index 71c7262..10c1816 100644 --- a/src/db_auc.c +++ b/src/db_auc.c @@ -19,6 +19,7 @@ #include <string.h> #include <inttypes.h> +#include <errno.h> #include <osmocom/core/utils.h> #include <osmocom/crypt/auth.h> @@ -91,7 +92,7 @@ int db_get_auth_data(struct db_context *dbc, const char *imsi, SQLITE_STATIC); if (rc != SQLITE_OK) { LOGAUC(imsi, LOGL_ERROR, "Error binding IMSI: %d\n", rc); - ret = -1; + ret = -EIO; goto out; } @@ -99,11 +100,11 @@ int db_get_auth_data(struct db_context *dbc, const char *imsi, rc = sqlite3_step(stmt); if (rc == SQLITE_DONE) { LOGAUC(imsi, LOGL_INFO, "No such subscriber\n"); - ret = 0; + ret = -ENOENT; goto out; } else if (rc != SQLITE_ROW) { LOGAUC(imsi, LOGL_ERROR, "Error executing SQL: %d\n", rc); - ret = -1; + ret = -EIO; goto out; } @@ -139,6 +140,7 @@ int db_get_auth_data(struct db_context *dbc, const char *imsi, k = sqlite3_column_text(stmt, 4); if (!k) { LOGAUC(imsi, LOGL_ERROR, "Error reading K: %d\n", rc); + ret = -EIO; goto out; } osmo_hexparse((void*)k, (void*)&aud3g->u.umts.k, sizeof(aud3g->u.umts.k)); @@ -148,6 +150,7 @@ int db_get_auth_data(struct db_context *dbc, const char *imsi, opc = sqlite3_column_text(stmt, 6); if (!opc) { LOGAUC(imsi, LOGL_ERROR, "Error reading OPC: %d\n", rc); + ret = -EIO; goto out; } osmo_hexparse((void*)opc, (void*)&aud3g->u.umts.opc, @@ -166,9 +169,7 @@ int db_get_auth_data(struct db_context *dbc, const char *imsi, LOGAUC(imsi, LOGL_DEBUG, "No 3G Auth Data\n"); if (aud2g->type == 0 && aud3g->type == 0) - ret = -1; - else - ret = 1; + ret = -ENOENT; out: /* remove bindings and reset statement to be re-executed */ @@ -197,7 +198,7 @@ int db_get_auc(struct db_context *dbc, const char *imsi, int rc; rc = db_get_auth_data(dbc, imsi, &aud2g, &aud3g, &subscr_id); - if (rc <= 0) + if (rc) return rc; aud3g.u.umts.ind = auc_3g_ind; |