diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-01-14 12:11:24 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-01-14 12:14:16 +0100 |
commit | 66bb4f63b24e8adcf8c79be2625a8deb56d533ee (patch) | |
tree | a0fec2f67e76a2698f55df5ac91f508fcba5c34e /src/libcharon | |
parent | c4a49008e899fdddded5fdac9fbdaf60836ba8ab (diff) | |
download | strongswan-66bb4f63b24e8adcf8c79be2625a8deb56d533ee.tar.bz2 strongswan-66bb4f63b24e8adcf8c79be2625a8deb56d533ee.tar.xz |
Properly send IKEv1 packets if no ike_cfg is known yet
This applies for error notifies.
Diffstat (limited to 'src/libcharon')
-rw-r--r-- | src/libcharon/sa/ikev1/task_manager_v1.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libcharon/sa/ikev1/task_manager_v1.c b/src/libcharon/sa/ikev1/task_manager_v1.c index 7d6e7ac91..8a4761d5c 100644 --- a/src/libcharon/sa/ikev1/task_manager_v1.c +++ b/src/libcharon/sa/ikev1/task_manager_v1.c @@ -411,13 +411,16 @@ static bool send_fragment(private_task_manager_t *this, bool request, static bool send_packet(private_task_manager_t *this, bool request, packet_t *packet) { - fragmentation_t fragmentation; + fragmentation_t fragmentation = FRAGMENTATION_NO; ike_cfg_t *ike_cfg; host_t *src, *dst; chunk_t data; ike_cfg = this->ike_sa->get_ike_cfg(this->ike_sa); - fragmentation = ike_cfg->fragmentation(ike_cfg); + if (ike_cfg) + { + fragmentation = ike_cfg->fragmentation(ike_cfg); + } data = packet->get_data(packet); if (data.len > this->frag.size && (fragmentation == FRAGMENTATION_FORCE || (this->ike_sa->supports_extension(this->ike_sa, EXT_IKE_FRAGMENTATION) && |