]> git.ipfire.org Git - people/ms/strongswan.git/blobdiff - src/libcharon/sa/ikev2/tasks/ike_mobike.c
ike-mobike: Make task a no-op if MOBIKE is not supported
[people/ms/strongswan.git] / src / libcharon / sa / ikev2 / tasks / ike_mobike.c
index 283ffd082abd05d3cba97b1fe7edadb292bbc501..092e685acc548fd85f1e10a481a03ab4e14d138e 100644 (file)
@@ -375,6 +375,14 @@ METHOD(task_t, build_i, status_t,
        {
                host_t *old, *new;
 
+               /* this task might have been queued before we knew if MOBIKE will be
+                * supported */
+               if (!this->ike_sa->supports_extension(this->ike_sa, EXT_MOBIKE))
+               {
+                       message->set_exchange_type(message, EXCHANGE_TYPE_UNDEFINED);
+                       return SUCCESS;
+               }
+
                /* we check if the existing address is still valid */
                old = message->get_source(message);
                new = charon->kernel->get_source_addr(charon->kernel,