diff options
author | Martin Willi <martin@revosec.ch> | 2010-07-21 17:06:00 +0200 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-07-21 17:25:09 +0200 |
commit | ce7967c50c49131cef2f7afcac771cda8414a320 (patch) | |
tree | cf26c6341d046875bb752be9896c9fc1585e833c /src/libcharon/plugins/eap_radius/eap_radius.c | |
parent | 58d2ef6e14bb6bad4e0c48d63ec39095b982d919 (diff) | |
download | strongswan-ce7967c50c49131cef2f7afcac771cda8414a320.tar.bz2 strongswan-ce7967c50c49131cef2f7afcac771cda8414a320.tar.xz |
Implemented support for multiple RADIUS servers
Diffstat (limited to 'src/libcharon/plugins/eap_radius/eap_radius.c')
-rw-r--r-- | src/libcharon/plugins/eap_radius/eap_radius.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/libcharon/plugins/eap_radius/eap_radius.c b/src/libcharon/plugins/eap_radius/eap_radius.c index 3038e871d..65b868bc6 100644 --- a/src/libcharon/plugins/eap_radius/eap_radius.c +++ b/src/libcharon/plugins/eap_radius/eap_radius.c @@ -53,11 +53,6 @@ struct private_eap_radius_t { u_int32_t vendor; /** - * EAP MSK, if method established one - */ - chunk_t msk; - - /** * RADIUS client instance */ radius_client_t *client; @@ -248,8 +243,6 @@ METHOD(eap_method_t, process, status_t, status = FAILED; break; case RMC_ACCESS_ACCEPT: - this->msk = this->client->decrypt_msk(this->client, - response, request); if (this->class_group) { process_class(this, response); @@ -277,11 +270,14 @@ METHOD(eap_method_t, get_type, eap_type_t, } METHOD(eap_method_t, get_msk, status_t, - private_eap_radius_t *this, chunk_t *msk) + private_eap_radius_t *this, chunk_t *out) { - if (this->msk.ptr) + chunk_t msk; + + msk = this->client->get_msk(this->client); + if (msk.len) { - *msk = this->msk; + *out = msk; return SUCCESS; } return FAILED; @@ -306,7 +302,6 @@ METHOD(eap_method_t, destroy, void, this->peer->destroy(this->peer); this->server->destroy(this->server); this->client->destroy(this->client); - chunk_clear(&this->msk); free(this); } |