]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Improve error messages related to EAP DB
authorBen Greear <greearb@candelatech.com>
Thu, 26 Mar 2015 21:39:57 +0000 (17:39 -0400)
committerJouni Malinen <j@w1.fi>
Sat, 28 Mar 2015 11:16:26 +0000 (13:16 +0200)
Add SQLite error message and DB name to the DB related errors. Add
enough tracing so that users can know exactly where users are failing to
be found.

Signed-off-by: Ben Greear <greearb@candelatech.com>
src/ap/authsrv.c
src/ap/eap_user_db.c
src/ap/ieee802_1x.c
src/radius/radius_server.c

index bd1778e418651140157e4d39cd22694a00839f53..f10e1b724f9575c4558d7fb44c878fb1f8bc60ef 100644 (file)
@@ -55,10 +55,11 @@ static int hostapd_radius_get_eap_user(void *ctx, const u8 *identity,
 {
        const struct hostapd_eap_user *eap_user;
        int i;
+       int rv = -1;
 
        eap_user = hostapd_get_eap_user(ctx, identity, identity_len, phase2);
        if (eap_user == NULL)
-               return -1;
+               goto out;
 
        if (user == NULL)
                return 0;
@@ -72,7 +73,7 @@ static int hostapd_radius_get_eap_user(void *ctx, const u8 *identity,
        if (eap_user->password) {
                user->password = os_malloc(eap_user->password_len);
                if (user->password == NULL)
-                       return -1;
+                       goto out;
                os_memcpy(user->password, eap_user->password,
                          eap_user->password_len);
                user->password_len = eap_user->password_len;
@@ -83,8 +84,13 @@ static int hostapd_radius_get_eap_user(void *ctx, const u8 *identity,
        user->ttls_auth = eap_user->ttls_auth;
        user->remediation = eap_user->remediation;
        user->accept_attr = eap_user->accept_attr;
+       rv = 0;
 
-       return 0;
+out:
+       if (rv)
+               wpa_printf(MSG_DEBUG, "%s: Failed to find user", __func__);
+
+       return rv;
 }
 
 
index 559d77f9ef2b8606555214a589c357ad99a51868..082d0f53175e197f518783945c57ebc222543997 100644 (file)
@@ -138,8 +138,12 @@ eap_user_sqlite_get(struct hostapd_data *hapd, const u8 *identity,
        char id_str[256], cmd[300];
        size_t i;
 
-       if (identity_len >= sizeof(id_str))
+       if (identity_len >= sizeof(id_str)) {
+               wpa_printf(MSG_DEBUG, "%s: identity len too big: %d >= %d",
+                          __func__, (int) identity_len,
+                          (int) (sizeof(id_str)));
                return NULL;
+       }
        os_memcpy(id_str, identity, identity_len);
        id_str[identity_len] = '\0';
        for (i = 0; i < identity_len; i++) {
@@ -182,7 +186,9 @@ eap_user_sqlite_get(struct hostapd_data *hapd, const u8 *identity,
        wpa_printf(MSG_DEBUG, "DB: %s", cmd);
        if (sqlite3_exec(db, cmd, get_user_cb, &hapd->tmp_eap_user, NULL) !=
            SQLITE_OK) {
-               wpa_printf(MSG_DEBUG, "DB: Failed to complete SQL operation");
+               wpa_printf(MSG_DEBUG,
+                          "DB: Failed to complete SQL operation: %s  db: %s",
+                          sqlite3_errmsg(db), hapd->conf->eap_user_sqlite);
        } else if (hapd->tmp_eap_user.next)
                user = &hapd->tmp_eap_user;
 
@@ -192,8 +198,10 @@ eap_user_sqlite_get(struct hostapd_data *hapd, const u8 *identity,
                wpa_printf(MSG_DEBUG, "DB: %s", cmd);
                if (sqlite3_exec(db, cmd, get_wildcard_cb, &hapd->tmp_eap_user,
                                 NULL) != SQLITE_OK) {
-                       wpa_printf(MSG_DEBUG, "DB: Failed to complete SQL "
-                                  "operation");
+                       wpa_printf(MSG_DEBUG,
+                                  "DB: Failed to complete SQL operation: %s  db: %s",
+                                  sqlite3_errmsg(db),
+                                  hapd->conf->eap_user_sqlite);
                } else if (hapd->tmp_eap_user.next) {
                        user = &hapd->tmp_eap_user;
                        os_free(user->identity);
index 79dc0f9574880efb2820527532b5f9059c9c3617..7e17ef4f46b5bbeed8ffeedbc01de7b828ecf86a 100644 (file)
@@ -1926,10 +1926,11 @@ static int ieee802_1x_get_eap_user(void *ctx, const u8 *identity,
        struct hostapd_data *hapd = ctx;
        const struct hostapd_eap_user *eap_user;
        int i;
+       int rv = -1;
 
        eap_user = hostapd_get_eap_user(hapd, identity, identity_len, phase2);
        if (eap_user == NULL)
-               return -1;
+               goto out;
 
        os_memset(user, 0, sizeof(*user));
        user->phase2 = phase2;
@@ -1941,7 +1942,7 @@ static int ieee802_1x_get_eap_user(void *ctx, const u8 *identity,
        if (eap_user->password) {
                user->password = os_malloc(eap_user->password_len);
                if (user->password == NULL)
-                       return -1;
+                       goto out;
                os_memcpy(user->password, eap_user->password,
                          eap_user->password_len);
                user->password_len = eap_user->password_len;
@@ -1951,8 +1952,13 @@ static int ieee802_1x_get_eap_user(void *ctx, const u8 *identity,
        user->macacl = eap_user->macacl;
        user->ttls_auth = eap_user->ttls_auth;
        user->remediation = eap_user->remediation;
+       rv = 0;
 
-       return 0;
+out:
+       if (rv)
+               wpa_printf(MSG_DEBUG, "%s: Failed to find user", __func__);
+
+       return rv;
 }
 
 
index 85a485e91d93223fe567a39c84ebb7c0fecaf986..3f881cf3e74bee2f3e79a6ff2546842493a65b86 100644 (file)
@@ -2035,6 +2035,12 @@ static int radius_server_get_eap_user(void *ctx, const u8 *identity,
                sess->remediation = user->remediation;
                sess->macacl = user->macacl;
        }
+
+       if (ret) {
+               RADIUS_DEBUG("%s: User-Name not found from user database",
+                            __func__);
+       }
+
        return ret;
 }