]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
Resolve vendor IDs/types using eap_type_get_names()
authorMartin Willi <martin@revosec.ch>
Thu, 30 Aug 2012 13:34:55 +0000 (15:34 +0200)
committerMartin Willi <martin@revosec.ch>
Mon, 3 Sep 2012 14:13:57 +0000 (16:13 +0200)
src/libcharon/encoding/message.c
src/libcharon/plugins/eap_dynamic/eap_dynamic.c
src/libcharon/plugins/stroke/stroke_list.c
src/libcharon/plugins/tnc_pdp/tnc_pdp.c
src/libcharon/sa/ikev2/authenticators/eap_authenticator.c

index d3b72ea956a3d487dc12d553e67d7c9b94ab4069..f5e54176f267cd2825cb89065530731f97e50cd0 100644 (file)
@@ -1229,15 +1229,8 @@ static char* get_string(private_message_t *this, char *buf, int len)
                        type = eap->get_type(eap, &vendor);
                        if (type)
                        {
-                               if (vendor)
-                               {
-                                       snprintf(method, sizeof(method), "/%d-%d", type, vendor);
-                               }
-                               else
-                               {
-                                       snprintf(method, sizeof(method), "/%N",
-                                                        eap_type_short_names, type);
-                               }
+                               snprintf(method, sizeof(method), "/%N",
+                                               eap_type_get_names(vendor), type);
                        }
                        written = snprintf(pos, len, "/%N%s", eap_code_short_names,
                                                           eap->get_code(eap), method);
index 79177088afbadbc94452bcc91718e3bba9e023de..322263e63024c81b2df7c50796af0e80c9224f09 100644 (file)
@@ -91,15 +91,8 @@ static eap_method_t *load_method(private_eap_dynamic_t *this,
                                                                                  this->server, this->peer);
        if (!method)
        {
-               if (vendor)
-               {
-                       DBG1(DBG_IKE, "loading vendor specific EAP method %d-%d failed",
-                                type, vendor);
-               }
-               else
-               {
-                       DBG1(DBG_IKE, "loading %N method failed", eap_type_names, type);
-               }
+               DBG1(DBG_IKE, "loading EAP-%N method failed",
+                        eap_type_get_names(vendor), type);
        }
        return method;
 }
@@ -127,17 +120,9 @@ static void select_method(private_eap_dynamic_t *this)
                        if (inner->find_first(inner, (void*)entry_matches,
                                                                  NULL, entry) != SUCCESS)
                        {
-                               if (entry->vendor)
-                               {
-                                       DBG2(DBG_IKE, "proposed vendor specific EAP method %d-%d "
-                                                "not supported by %s, skipped", entry->type,
-                                                 entry->vendor, who);
-                               }
-                               else
-                               {
-                                       DBG2(DBG_IKE, "proposed %N method not supported by %s, "
-                                                "skipped", eap_type_names, entry->type, who);
-                               }
+                               DBG2(DBG_IKE, "proposed EAP-%N method not supported "
+                                        "by %s, skipped", eap_type_get_names(entry->vendor),
+                                        entry->type, who);
                                free(entry);
                                continue;
                        }
@@ -145,16 +130,8 @@ static void select_method(private_eap_dynamic_t *this)
                this->method = load_method(this, entry->type, entry->vendor);
                if (this->method)
                {
-                       if (entry->vendor)
-                       {
-                               DBG1(DBG_IKE, "vendor specific EAP method %d-%d selected",
-                                        entry->type, entry->vendor);
-                       }
-                       else
-                       {
-                               DBG1(DBG_IKE, "%N method selected", eap_type_names,
-                                        entry->type);
-                       }
+                       DBG1(DBG_IKE, "EAP-%N method selected",
+                                eap_type_get_names(entry->vendor), entry->type);
                        free(entry);
                        break;
                }
index 1381e5842be171f8debf784d90f94d2bf8e028e7..bcaa19a6f53af838a86e39df2c31d513c357ff79 100644 (file)
@@ -355,17 +355,10 @@ static void log_auth_cfgs(FILE *out, peer_cfg_t *peer_cfg, bool local)
                        }
                        else
                        {
-                               if ((uintptr_t)auth->get(auth, AUTH_RULE_EAP_VENDOR))
-                               {
-                                       fprintf(out, "EAP_%" PRIuPTR "-%" PRIuPTR " authentication",
-                                               (uintptr_t)auth->get(auth, AUTH_RULE_EAP_TYPE),
-                                               (uintptr_t)auth->get(auth, AUTH_RULE_EAP_VENDOR));
-                               }
-                               else
-                               {
-                                       fprintf(out, "%N authentication", eap_type_names,
+                               fprintf(out, "EAP-%N authentication",
+                                               eap_type_get_names(
+                                                       (uintptr_t)auth->get(auth, AUTH_RULE_EAP_VENDOR)),
                                                (uintptr_t)auth->get(auth, AUTH_RULE_EAP_TYPE));
-                               }
                        }
                        id = auth->get(auth, AUTH_RULE_EAP_IDENTITY);
                        if (id)
index 69f0f26bc1f164082fe47bb598e7da2ef57c395a..570f20c643aea504381c06ceea014dcb9a8b277e 100644 (file)
@@ -358,7 +358,8 @@ static void process_eap(private_tnc_pdp_t *this, radius_message_t *request,
                /* apply EAP method selected by RADIUS server */
                eap_type = in->get_type(in, &eap_vendor);
 
-               DBG3(DBG_CFG, "%N payload %B", eap_type_names, eap_type, &message);
+               DBG3(DBG_CFG, "EAP-%N payload %B",
+                        eap_type_get_names(eap_vendor), eap_type, &message);
 
                if (eap_type == EAP_IDENTITY)
                {
index aa064403336ae078454a30f3da381288e58717bb..c7d3fb6569163a81ec0a4b59e7ff2c0c8323e561 100644 (file)
@@ -190,30 +190,15 @@ static eap_payload_t* server_initiate_eap(private_eap_authenticator_t *this,
                if (this->method->initiate(this->method, &out) == NEED_MORE)
                {
                        type = this->method->get_type(this->method, &vendor);
-                       if (vendor)
-                       {
-                               DBG1(DBG_IKE, "initiating EAP vendor type %d-%d method (id 0x%02X)",
-                                        type, vendor, out->get_identifier(out));
-                       }
-                       else
-                       {
-                               DBG1(DBG_IKE, "initiating %N method (id 0x%02X)", eap_type_names,
-                                        type, out->get_identifier(out));
-                       }
+                       DBG1(DBG_IKE, "%s EAP-%N method (id 0x%02X)", action,
+                                eap_type_get_names(vendor), type, out->get_identifier(out));
                        return out;
                }
                /* type might have changed for virtual methods */
                type = this->method->get_type(this->method, &vendor);
        }
-       if (vendor)
-       {
-               DBG1(DBG_IKE, "%s EAP vendor type %d-%d method failed",
-                                         action, type, vendor);
-       }
-       else
-       {
-               DBG1(DBG_IKE, "%s %N method failed", action, eap_type_names, type);
-       }
+       DBG1(DBG_IKE, "%s EAP-%N method failed", action,
+                eap_type_get_names(vendor), type);
        return eap_payload_create_code(EAP_FAILURE, 0);
 }
 
@@ -299,17 +284,8 @@ static eap_payload_t* server_process_eap(private_eap_authenticator_t *this,
                        {
                                this->msk = chunk_clone(this->msk);
                        }
-                       if (vendor)
-                       {
-                               DBG1(DBG_IKE, "EAP vendor specific method %d-%d succeeded, "
-                                        "%sMSK established", type, vendor,
-                                        this->msk.ptr ? "" : "no ");
-                       }
-                       else
-                       {
-                               DBG1(DBG_IKE, "EAP method %N succeeded, %sMSK established",
-                                        eap_type_names, type, this->msk.ptr ? "" : "no ");
-                       }
+                       DBG1(DBG_IKE, "EAP method %N succeeded, %sMSK established",
+                                eap_type_get_names(vendor), type, this->msk.ptr ? "" : "no ");
                        this->ike_sa->set_condition(this->ike_sa, COND_EAP_AUTHENTICATED,
                                                                                TRUE);
                        this->eap_complete = TRUE;
@@ -317,19 +293,9 @@ static eap_payload_t* server_process_eap(private_eap_authenticator_t *this,
                case FAILED:
                default:
                        /* type might have changed for virtual methods */
-                       type = this->method->get_type(this->method, &vendor);
-                       if (vendor)
-                       {
-                               DBG1(DBG_IKE, "EAP vendor specific method %d-%d failed for "
-                                        "peer %Y", type, vendor,
-                                        this->ike_sa->get_other_id(this->ike_sa));
-                       }
-                       else
-                       {
-                               DBG1(DBG_IKE, "EAP method %N failed for peer %Y",
-                                        eap_type_names, type,
-                                        this->ike_sa->get_other_id(this->ike_sa));
-                       }
+                       DBG1(DBG_IKE, "EAP method %N failed for peer %Y",
+                                eap_type_get_names(vendor), type,
+                                this->ike_sa->get_other_id(this->ike_sa));
                        return eap_payload_create_code(EAP_FAILURE, in->get_identifier(in));
        }
 }
@@ -381,32 +347,17 @@ static eap_payload_t* client_process_eap(private_eap_authenticator_t *this,
        }
        if (this->method == NULL)
        {
-               if (vendor)
-               {
-                       DBG1(DBG_IKE, "server requested vendor specific EAP method %d-%d ",
-                                                 "(id 0x%02X)", type, vendor, in->get_identifier(in));
-               }
-               else
-               {
-                       DBG1(DBG_IKE, "server requested %N authentication (id 0x%02X)",
-                                eap_type_names, type, in->get_identifier(in));
-               }
+               DBG1(DBG_IKE, "server requested %N authentication (id 0x%02X)",
+                        eap_type_get_names(vendor), type, in->get_identifier(in));
+
                auth = this->ike_sa->get_auth_cfg(this->ike_sa, TRUE);
                conf_type = (uintptr_t)auth->get(auth, AUTH_RULE_EAP_TYPE);
                conf_vendor = (uintptr_t)auth->get(auth, AUTH_RULE_EAP_VENDOR);
                if (conf_type != EAP_NAK &&
                   (conf_type != type || conf_vendor != vendor))
                {
-                       if (conf_vendor)
-                       {
-                               DBG1(DBG_IKE, "requesting EAP method %d-%d, sending EAP_NAK",
-                                        conf_type, conf_vendor);
-                       }
-                       else
-                       {
-                               DBG1(DBG_IKE, "requesting %N authentication, sending EAP_NAK",
-                                        eap_type_names, conf_type);
-                       }
+                       DBG1(DBG_IKE, "requesting EAP-%N authentication, sending EAP_NAK",
+                                eap_type_get_names(conf_vendor), conf_type);
                        return eap_payload_create_nak(in->get_identifier(in), conf_type,
                                                                                  conf_vendor, in->is_expanded(in));
                }
@@ -426,14 +377,7 @@ static eap_payload_t* client_process_eap(private_eap_authenticator_t *this,
                return out;
        }
 
-       if (vendor)
-       {
-               DBG1(DBG_IKE, "vendor specific EAP method %d-%d failed", type, vendor);
-       }
-       else
-       {
-               DBG1(DBG_IKE, "%N method failed", eap_type_names, type);
-       }
+       DBG1(DBG_IKE, "EAP-%N method failed", eap_type_get_names(vendor), type);
        return NULL;
 }
 
@@ -579,11 +523,12 @@ METHOD(authenticator_t, process_client, status_t,
                }
                if (this->require_mutual && !this->method->is_mutual(this->method))
                {       /* we require mutual authentication due to EAP-only */
-                       u_int32_t vendor;
+                       u_int32_t vendor, type;
 
+                       type = this->method->get_type(this->method, &vendor);
                        DBG1(DBG_IKE, "EAP-only authentication requires a mutual and "
                                 "MSK deriving EAP method, but %N is not",
-                                eap_type_names, this->method->get_type(this->method, &vendor));
+                                eap_type_get_names(vendor), type);
                        return FAILED;
                }
                return SUCCESS;
@@ -615,17 +560,9 @@ METHOD(authenticator_t, process_client, status_t,
                                        this->msk = chunk_clone(this->msk);
                                }
                                type = this->method->get_type(this->method, &vendor);
-                               if (vendor)
-                               {
-                                       DBG1(DBG_IKE, "EAP vendor specific method %d-%d succeeded, "
-                                                "%sMSK established", type, vendor,
-                                                this->msk.ptr ? "" : "no ");
-                               }
-                               else
-                               {
-                                       DBG1(DBG_IKE, "EAP method %N succeeded, %sMSK established",
-                                                eap_type_names, type, this->msk.ptr ? "" : "no ");
-                               }
+                               DBG1(DBG_IKE, "EAP method %N succeeded, %sMSK established",
+                                        eap_type_get_names(vendor), type,
+                                        this->msk.ptr ? "" : "no ");
                                cfg = this->ike_sa->get_auth_cfg(this->ike_sa, TRUE);
                                cfg->add(cfg, AUTH_RULE_EAP_TYPE, type);
                                if (vendor)