maemo: Listen for IKE_SA state changes insted of CHILD_SA state changes.

If the IKE_SA_INIT request fails, there is not yet a CHILD_SA that could
trigger state changes.
This commit is contained in:
Tobias Brunner
2011-02-04 18:02:48 +01:00
parent a90891e6e3
commit 56f57e5814
+6 -7
View File
@@ -115,12 +115,11 @@ METHOD(listener_t, ike_updown, bool,
return TRUE; return TRUE;
} }
METHOD(listener_t, child_state_change, bool, METHOD(listener_t, ike_state_change, bool,
private_maemo_service_t *this, ike_sa_t *ike_sa, child_sa_t *child_sa, private_maemo_service_t *this, ike_sa_t *ike_sa, ike_sa_state_t state)
child_sa_state_t state)
{ {
/* this call back is only registered during initiation */ /* this call back is only registered during initiation */
if (this->ike_sa == ike_sa && state == CHILD_DESTROYING) if (this->ike_sa == ike_sa && state == IKE_DESTROYING)
{ {
change_status(this, VPN_STATUS_CONNECTION_FAILED); change_status(this, VPN_STATUS_CONNECTION_FAILED);
return FALSE; return FALSE;
@@ -138,7 +137,7 @@ METHOD(listener_t, child_updown, bool,
{ {
/* disable hooks registered to catch initiation failures */ /* disable hooks registered to catch initiation failures */
this->public.listener.ike_updown = NULL; this->public.listener.ike_updown = NULL;
this->public.listener.child_state_change = NULL; this->public.listener.ike_state_change = NULL;
change_status(this, VPN_STATUS_CONNECTED); change_status(this, VPN_STATUS_CONNECTED);
} }
else else
@@ -371,7 +370,7 @@ static gboolean initiate_connection(private_maemo_service_t *this,
this->ike_sa = ike_sa; this->ike_sa = ike_sa;
this->status = VPN_STATUS_CONNECTING; this->status = VPN_STATUS_CONNECTING;
this->public.listener.ike_updown = _ike_updown; this->public.listener.ike_updown = _ike_updown;
this->public.listener.child_state_change = _child_state_change; this->public.listener.ike_state_change = _ike_state_change;
charon->bus->add_listener(charon->bus, &this->public.listener); charon->bus->add_listener(charon->bus, &this->public.listener);
if (ike_sa->initiate(ike_sa, child_cfg, 0, NULL, NULL) != SUCCESS) if (ike_sa->initiate(ike_sa, child_cfg, 0, NULL, NULL) != SUCCESS)
@@ -464,7 +463,7 @@ maemo_service_t *maemo_service_create()
.public = { .public = {
.listener = { .listener = {
.ike_updown = _ike_updown, .ike_updown = _ike_updown,
.child_state_change = _child_state_change, .ike_state_change = _ike_state_change,
.child_updown = _child_updown, .child_updown = _child_updown,
.ike_rekey = _ike_rekey, .ike_rekey = _ike_rekey,
}, },