encoding: Accept all exchange types for non IKEv1/IKEv2 major versions

This commit is contained in:
Martin Willi
2014-09-22 13:42:11 +02:00
parent d8ad0fc351
commit 2dee0a85a6
+10 -4
View File
@@ -210,8 +210,9 @@ METHOD(payload_t, verify, status_t,
case TRANSACTION: case TRANSACTION:
case QUICK_MODE: case QUICK_MODE:
case NEW_GROUP_MODE: case NEW_GROUP_MODE:
if (this->maj_version != IKEV1_MAJOR_VERSION) if (this->maj_version == IKEV2_MAJOR_VERSION)
{ {
/* IKEv1 exchange type in IKEv2? */
return FAILED; return FAILED;
} }
break; break;
@@ -223,15 +224,21 @@ METHOD(payload_t, verify, status_t,
#ifdef ME #ifdef ME
case ME_CONNECT: case ME_CONNECT:
#endif /* ME */ #endif /* ME */
if (this->maj_version != IKEV2_MAJOR_VERSION) if (this->maj_version == IKEV1_MAJOR_VERSION)
{ {
/* IKEv2 exchange type in IKEv1? */
return FAILED; return FAILED;
} }
break; break;
default: default:
/* unsupported exchange type */ if (this->maj_version == IKEV1_MAJOR_VERSION ||
this->maj_version == IKEV2_MAJOR_VERSION)
{
/* unsupported exchange type for known version */
return FAILED; return FAILED;
} }
break;
}
if (this->initiator_spi == 0) if (this->initiator_spi == 0)
{ {
#ifdef ME #ifdef ME
@@ -501,4 +508,3 @@ ike_header_t *ike_header_create_version(int major, int minor)
} }
return this; return this;
} }