aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon/plugins/eap_sim/eap_sim.c
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2009-10-09 10:59:34 +0200
committerMartin Willi <martin@strongswan.org>2009-10-09 13:02:20 +0200
commit5d5e2853b6edde364bad4d49a44adbe2a1584dfc (patch)
tree1d9aa6d86c9abd50cdf6f86cc898d2da9578b5fc /src/charon/plugins/eap_sim/eap_sim.c
parent31f5280cee50200993644cb25f0996abef51823c (diff)
downloadstrongswan-5d5e2853b6edde364bad4d49a44adbe2a1584dfc.tar.bz2
strongswan-5d5e2853b6edde364bad4d49a44adbe2a1584dfc.tar.xz
SIM card interface takes IMSI as parameter (same as in USIM)
Diffstat (limited to 'src/charon/plugins/eap_sim/eap_sim.c')
-rw-r--r--src/charon/plugins/eap_sim/eap_sim.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/src/charon/plugins/eap_sim/eap_sim.c b/src/charon/plugins/eap_sim/eap_sim.c
index c83f051fb..874328db1 100644
--- a/src/charon/plugins/eap_sim/eap_sim.c
+++ b/src/charon/plugins/eap_sim/eap_sim.c
@@ -576,30 +576,22 @@ static bool get_card_triplet(private_eap_sim_t *this,
char *rand, char *sres, char *kc)
{
enumerator_t *enumerator;
- sim_card_t *card = NULL, *current;
- id_match_t match, best = ID_MATCH_NONE;
+ sim_card_t *card;
bool success = FALSE;
- /* find the best matching SIM */
enumerator = charon->sim->create_card_enumerator(charon->sim);
- while (enumerator->enumerate(enumerator, &current))
+ while (enumerator->enumerate(enumerator, &card))
{
- match = this->peer->matches(this->peer, current->get_imsi(current));
- if (match > best)
+ if (card->get_triplet(card, this->peer, rand, sres, kc))
{
- card = current;
- best = match;
+ success = TRUE;
break;
}
}
- if (card)
- {
- success = card->get_triplet(card, rand, sres, kc);
- }
enumerator->destroy(enumerator);
- if (!card)
+ if (!success)
{
- DBG1(DBG_IKE, "no SIM card found matching '%Y'", this->peer);
+ DBG1(DBG_IKE, "no SIM card found with triplets for '%Y'", this->peer);
}
return success;
}