diff options
Diffstat (limited to 'src/libstrongswan/credentials')
-rw-r--r-- | src/libstrongswan/credentials/auth_cfg.c | 102 | ||||
-rw-r--r-- | src/libstrongswan/credentials/auth_cfg.h | 9 |
2 files changed, 35 insertions, 76 deletions
diff --git a/src/libstrongswan/credentials/auth_cfg.c b/src/libstrongswan/credentials/auth_cfg.c index a06a028d7..12f75b240 100644 --- a/src/libstrongswan/credentials/auth_cfg.c +++ b/src/libstrongswan/credentials/auth_cfg.c @@ -329,47 +329,6 @@ static void destroy_entry_value(entry_t *entry) } /** - * Replace the type and value of the given entry. - */ -static void replace_entry(entry_t *entry, auth_rule_t type, va_list args) -{ - destroy_entry_value(entry); - entry->type = type; - switch (type) - { - case AUTH_RULE_AUTH_CLASS: - case AUTH_RULE_EAP_TYPE: - case AUTH_RULE_EAP_VENDOR: - case AUTH_RULE_CRL_VALIDATION: - case AUTH_RULE_OCSP_VALIDATION: - case AUTH_RULE_RSA_STRENGTH: - case AUTH_RULE_ECDSA_STRENGTH: - /* integer type */ - entry->value = (void*)(uintptr_t)va_arg(args, u_int); - break; - case AUTH_RULE_IDENTITY: - case AUTH_RULE_EAP_IDENTITY: - case AUTH_RULE_AAA_IDENTITY: - case AUTH_RULE_GROUP: - case AUTH_RULE_CA_CERT: - case AUTH_RULE_IM_CERT: - case AUTH_RULE_SUBJECT_CERT: - case AUTH_RULE_CERT_POLICY: - case AUTH_HELPER_IM_CERT: - case AUTH_HELPER_SUBJECT_CERT: - case AUTH_HELPER_IM_HASH_URL: - case AUTH_HELPER_SUBJECT_HASH_URL: - case AUTH_HELPER_REVOCATION_CERT: - /* pointer type */ - entry->value = va_arg(args, void*); - break; - case AUTH_RULE_MAX: - entry->value = NULL; - break; - } -} - -/** * Implementation of auth_cfg_t.replace. */ static void replace(private_auth_cfg_t *this, entry_enumerator_t *enumerator, @@ -377,37 +336,47 @@ static void replace(private_auth_cfg_t *this, entry_enumerator_t *enumerator, { if (enumerator->current) { + entry_t *entry; va_list args; va_start(args, type); - replace_entry(enumerator->current, type, args); - va_end(args); - } -} - -METHOD(auth_cfg_t, replace_value, bool, - private_auth_cfg_t *this, auth_rule_t type, ...) -{ - enumerator_t *enumerator; - entry_t *entry; - bool found = FALSE; - - enumerator = this->entries->create_enumerator(this->entries); - while (enumerator->enumerate(enumerator, &entry)) - { - if (type == entry->type) + entry = enumerator->current; + destroy_entry_value(entry); + entry->type = type; + switch (type) { - va_list args; - - va_start(args, type); - replace_entry(entry, type, args); - va_end(args); - found = TRUE; - break; + case AUTH_RULE_AUTH_CLASS: + case AUTH_RULE_EAP_TYPE: + case AUTH_RULE_EAP_VENDOR: + case AUTH_RULE_CRL_VALIDATION: + case AUTH_RULE_OCSP_VALIDATION: + case AUTH_RULE_RSA_STRENGTH: + case AUTH_RULE_ECDSA_STRENGTH: + /* integer type */ + entry->value = (void*)(uintptr_t)va_arg(args, u_int); + break; + case AUTH_RULE_IDENTITY: + case AUTH_RULE_EAP_IDENTITY: + case AUTH_RULE_AAA_IDENTITY: + case AUTH_RULE_GROUP: + case AUTH_RULE_CA_CERT: + case AUTH_RULE_IM_CERT: + case AUTH_RULE_SUBJECT_CERT: + case AUTH_RULE_CERT_POLICY: + case AUTH_HELPER_IM_CERT: + case AUTH_HELPER_SUBJECT_CERT: + case AUTH_HELPER_IM_HASH_URL: + case AUTH_HELPER_SUBJECT_HASH_URL: + case AUTH_HELPER_REVOCATION_CERT: + /* pointer type */ + entry->value = va_arg(args, void*); + break; + case AUTH_RULE_MAX: + entry->value = NULL; + break; } + va_end(args); } - enumerator->destroy(enumerator); - return found; } METHOD(auth_cfg_t, get, void*, @@ -996,7 +965,6 @@ auth_cfg_t *auth_cfg_create() .get = _get, .create_enumerator = _create_enumerator, .replace = (void(*)(auth_cfg_t*,enumerator_t*,auth_rule_t,...))replace, - .replace_value = _replace_value, .complies = _complies, .merge = (void(*)(auth_cfg_t*,auth_cfg_t*,bool))merge, .purge = _purge, diff --git a/src/libstrongswan/credentials/auth_cfg.h b/src/libstrongswan/credentials/auth_cfg.h index 7a484c5cc..4d12a9c14 100644 --- a/src/libstrongswan/credentials/auth_cfg.h +++ b/src/libstrongswan/credentials/auth_cfg.h @@ -197,15 +197,6 @@ struct auth_cfg_t { auth_rule_t rule, ...); /** - * Replace the value of the first rule with the given type. - * - * @param rule rule type - * @param ... associated value to rule - * @return TRUE if the rule was found and the value replaced - */ - bool (*replace_value)(auth_cfg_t *this, auth_rule_t rule, ...); - - /** * Check if a used config fulfills a set of configured constraints. * * @param constraints required authorization rules |