aboutsummaryrefslogtreecommitdiffstats
path: root/Source/charon/encoding/payloads/sa_payload.c
diff options
context:
space:
mode:
authorJan Hutter <jhutter@hsr.ch>2005-11-29 12:23:40 +0000
committerJan Hutter <jhutter@hsr.ch>2005-11-29 12:23:40 +0000
commit346af6f3de4735b2c7c8b6abf824bd0258c4be6c (patch)
tree0a87d2b7aee3c3ce663c745bf58423b0ec3d1bfb /Source/charon/encoding/payloads/sa_payload.c
parente85220af90ac154e9badeece3aaaab30973f648f (diff)
downloadstrongswan-346af6f3de4735b2c7c8b6abf824bd0258c4be6c.tar.bz2
strongswan-346af6f3de4735b2c7c8b6abf824bd0258c4be6c.tar.xz
- fixed bug in diffie hellman exchange (no public value was written)
Diffstat (limited to 'Source/charon/encoding/payloads/sa_payload.c')
-rw-r--r--Source/charon/encoding/payloads/sa_payload.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/Source/charon/encoding/payloads/sa_payload.c b/Source/charon/encoding/payloads/sa_payload.c
index d9175de60..4054c6fb3 100644
--- a/Source/charon/encoding/payloads/sa_payload.c
+++ b/Source/charon/encoding/payloads/sa_payload.c
@@ -115,7 +115,7 @@ encoding_rule_t sa_payload_encodings[] = {
static status_t verify(private_sa_payload_t *this)
{
int proposal_number = 1;
- status_t status;
+ status_t status = SUCCESS;
iterator_t *iterator;
bool first = TRUE;
@@ -131,10 +131,7 @@ static status_t verify(private_sa_payload_t *this)
while(iterator->has_next(iterator))
{
proposal_substructure_t *current_proposal;
- status = iterator->current(iterator,(void **)&current_proposal);
- {
- break;
- }
+ iterator->current(iterator,(void **)&current_proposal);
if (current_proposal->get_proposal_number(current_proposal) > proposal_number)
{
if (first)
@@ -158,6 +155,12 @@ static status_t verify(private_sa_payload_t *this)
status = FAILED;
break;
}
+
+ status = current_proposal->payload_interface.verify(&(current_proposal->payload_interface));
+ if (status != SUCCESS)
+ {
+ break;
+ }
first = FALSE;
}