diff options
author | Tobias Brunner <tobias@strongswan.org> | 2015-08-19 15:28:02 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2015-08-20 19:13:45 +0200 |
commit | 4de361d92c542283c9d24088c0474f147596fa13 (patch) | |
tree | 89a45071354f348e9aa7186f7b8d67a6f96467ca /src/libcharon/sa/ikev1/tasks/quick_mode.h | |
parent | e2a252a86f5f65b6f6a5ff80fa7f97f5b8470817 (diff) | |
download | strongswan-4de361d92c54.tar.bz2 strongswan-4de361d92c54.tar.xz |
ikev1: Fix handling of overlapping Quick Mode exchanges
In some cases the third message of a Quick Mode exchange might arrive
after the first message of a subsequent Quick Mode exchange. Previously
these messages were handled incorrectly and the second Quick Mode
exchange failed.
Some implementations might even try to establish multiple Quick Modes
simultaneously, which is explicitly allowed in RFC 2409. We don't fully
support that, though, in particular in case of retransmits.
Fixes #1076.
Diffstat (limited to 'src/libcharon/sa/ikev1/tasks/quick_mode.h')
-rw-r--r-- | src/libcharon/sa/ikev1/tasks/quick_mode.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.h b/src/libcharon/sa/ikev1/tasks/quick_mode.h index ee9b64d13..062d63465 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_mode.h +++ b/src/libcharon/sa/ikev1/tasks/quick_mode.h @@ -1,4 +1,7 @@ /* + * Copyright (C) 2015 Tobias Brunner + * Hochschule fuer Technik Rapperswil + * * Copyright (C) 2011 Martin Willi * Copyright (C) 2011 revosec AG * @@ -38,6 +41,14 @@ struct quick_mode_t { task_t task; /** + * Get the message ID of the quick mode exchange handled by this task as + * responder. + * + * @return message ID, or 0 (not defined yet or as initiator) + */ + u_int32_t (*get_mid)(quick_mode_t *this); + + /** * Use a specific reqid to install this CHILD_SA. * * @param reqid reqid to use |