aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/encoding/payloads/unknown_payload.c
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-11-10 14:17:03 +0100
committerMartin Willi <martin@revosec.ch>2011-01-05 16:45:43 +0100
commitb6c796464d625b192fcdafe19e13f115cfb95c46 (patch)
treeb851497df7497043880f4da92339d13559c07d6a /src/libcharon/encoding/payloads/unknown_payload.c
parent9431023ce61868338d1072cce5e0410b3a700703 (diff)
downloadstrongswan-b6c796464d625b192fcdafe19e13f115cfb95c46.tar.bz2
strongswan-b6c796464d625b192fcdafe19e13f115cfb95c46.tar.xz
Use the payloads actual type in unknown_payload_t
Diffstat (limited to 'src/libcharon/encoding/payloads/unknown_payload.c')
-rw-r--r--src/libcharon/encoding/payloads/unknown_payload.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libcharon/encoding/payloads/unknown_payload.c b/src/libcharon/encoding/payloads/unknown_payload.c
index 06e5754af..defc5d361 100644
--- a/src/libcharon/encoding/payloads/unknown_payload.c
+++ b/src/libcharon/encoding/payloads/unknown_payload.c
@@ -31,6 +31,11 @@ struct private_unknown_payload_t {
unknown_payload_t public;
/**
+ * Type of this payload
+ */
+ payload_type_t type;
+
+ /**
* Next payload type.
*/
u_int8_t next_payload;
@@ -105,7 +110,7 @@ METHOD(payload_t, get_encoding_rules, void,
METHOD(payload_t, get_payload_type, payload_type_t,
private_unknown_payload_t *this)
{
- return UNKNOWN_PAYLOAD;
+ return this->type;
}
METHOD(payload_t, get_next_type, payload_type_t,
@@ -148,7 +153,7 @@ METHOD2(payload_t, unknown_payload_t, destroy, void,
/*
* Described in header
*/
-unknown_payload_t *unknown_payload_create()
+unknown_payload_t *unknown_payload_create(payload_type_t type)
{
private_unknown_payload_t *this;
@@ -169,6 +174,7 @@ unknown_payload_t *unknown_payload_create()
},
.next_payload = NO_PAYLOAD,
.payload_length = UNKNOWN_PAYLOAD_HEADER_LENGTH,
+ .type = type,
);
return &this->public;