ipseckey: Added "enable" option for the IPSECKEY plugin to strongswan.conf

This commit is contained in:
Reto Guadagnini
2013-02-19 12:25:00 +01:00
committed by Tobias Brunner
parent a77bbc3b8c
commit 932717fbde
2 changed files with 19 additions and 3 deletions
+3
View File
@@ -568,6 +568,9 @@ Request peer authentication based on a client certificate
.TP .TP
.BR charon.plugins.ha.segment_count " [1]" .BR charon.plugins.ha.segment_count " [1]"
.TP
.BR charon.plugins.ipseckey.enable " [no]"
Enable the fetching of IPSECKEY RRs from the DNS
.TP .TP
.BR charon.plugins.led.activity_led .BR charon.plugins.led.activity_led
@@ -40,6 +40,11 @@ struct private_ipseckey_plugin_t {
* credential set * credential set
*/ */
ipseckey_cred_t *cred; ipseckey_cred_t *cred;
/**
* IPSECKEY based authentication enabled
*/
bool enabled;
}; };
METHOD(plugin_t, get_name, char*, METHOD(plugin_t, get_name, char*,
@@ -51,7 +56,10 @@ METHOD(plugin_t, get_name, char*,
METHOD(plugin_t, destroy, void, METHOD(plugin_t, destroy, void,
private_ipseckey_plugin_t *this) private_ipseckey_plugin_t *this)
{ {
lib->credmgr->remove_set(lib->credmgr, &this->cred->set); if (this->enabled)
{
lib->credmgr->remove_set(lib->credmgr, &this->cred->set);
}
this->res->destroy(this->res); this->res->destroy(this->res);
DESTROY_IF(this->cred); DESTROY_IF(this->cred);
free(this); free(this);
@@ -73,6 +81,8 @@ plugin_t *ipseckey_plugin_create()
}, },
}, },
.res = lib->resolver->create(lib->resolver), .res = lib->resolver->create(lib->resolver),
.enabled = lib->settings->get_bool(lib->settings,
"charon.plugins.ipseckey.enable", FALSE),
); );
if (!this->res) if (!this->res)
@@ -83,8 +93,11 @@ plugin_t *ipseckey_plugin_create()
return NULL; return NULL;
} }
this->cred = ipseckey_cred_create(this->res); if (this->enabled)
lib->credmgr->add_set(lib->credmgr, &this->cred->set); {
this->cred = ipseckey_cred_create(this->res);
lib->credmgr->add_set(lib->credmgr, &this->cred->set);
}
return &this->public.plugin; return &this->public.plugin;
} }