aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2014-02-11 09:49:44 +0100
committerMartin Willi <martin@revosec.ch>2014-06-16 15:59:17 +0200
commit7fc98a840b0f6fe0abace9b28db85234ca84b5ec (patch)
treefec1ae64c936d946a5752a6978af4e2901799837 /src/libcharon
parent9d257034d86c6ed47dbd0d6d0e0c6f618dd0a6af (diff)
downloadstrongswan-7fc98a840b0f6fe0abace9b28db85234ca84b5ec.tar.bz2
strongswan-7fc98a840b0f6fe0abace9b28db85234ca84b5ec.tar.xz
ikev1: Invoke the assign_vips() bus hook for IKEv1 as well
Diffstat (limited to 'src/libcharon')
-rw-r--r--src/libcharon/bus/listeners/listener.h6
-rw-r--r--src/libcharon/sa/ikev1/tasks/mode_config.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/src/libcharon/bus/listeners/listener.h b/src/libcharon/bus/listeners/listener.h
index 57445df01..9eee72264 100644
--- a/src/libcharon/bus/listeners/listener.h
+++ b/src/libcharon/bus/listeners/listener.h
@@ -192,10 +192,10 @@ struct listener_t {
narrow_hook_t type, linked_list_t *local, linked_list_t *remote);
/**
- * Virtual IP address assignment hook
+ * Virtual IP address assignment hook.
*
- * This hook gets invoked when a a Virtual IP address is assigned to an
- * IKE_SA (assign = TRUE) and again when it is released (assign = FALSE)
+ * This hook gets invoked after virtual IPs have been assigned to a peer
+ * for a specific IKE_SA, and again before they get released.
*
* @param ike_sa IKE_SA the VIPs are assigned to
* @param assign TRUE if assigned to IKE_SA, FALSE if released
diff --git a/src/libcharon/sa/ikev1/tasks/mode_config.c b/src/libcharon/sa/ikev1/tasks/mode_config.c
index d678f1942..9a33f49f6 100644
--- a/src/libcharon/sa/ikev1/tasks/mode_config.c
+++ b/src/libcharon/sa/ikev1/tasks/mode_config.c
@@ -393,6 +393,8 @@ static status_t build_set(private_mode_config_t *this, message_t *message)
any4->destroy(any4);
any6->destroy(any6);
+ charon->bus->assign_vips(charon->bus, this->ike_sa, TRUE);
+
/* query registered providers for additional attributes to include */
pools = linked_list_create_from_enumerator(
config->create_pool_enumerator(config));
@@ -502,6 +504,8 @@ static status_t build_reply(private_mode_config_t *this, message_t *message)
}
enumerator->destroy(enumerator);
+ charon->bus->assign_vips(charon->bus, this->ike_sa, TRUE);
+
/* query registered providers for additional attributes to include */
enumerator = hydra->attributes->create_responder_enumerator(
hydra->attributes, pools, id, vips);