aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2010-11-10 14:21:23 +0100
committerMartin Willi <martin@revosec.ch>2011-01-05 16:45:43 +0100
commitca93b54e65dc11cec8b7902fdbc093188bd7e20c (patch)
treeca8f109c7f50e0faa661ccea03e0f0e7d86b9746
parentb6c796464d625b192fcdafe19e13f115cfb95c46 (diff)
downloadstrongswan-ca93b54e65dc11cec8b7902fdbc093188bd7e20c.tar.bz2
strongswan-ca93b54e65dc11cec8b7902fdbc093188bd7e20c.tar.xz
Added a constructor for custom uknown payloads
-rw-r--r--src/libcharon/encoding/payloads/unknown_payload.c16
-rw-r--r--src/libcharon/encoding/payloads/unknown_payload.h15
2 files changed, 29 insertions, 2 deletions
diff --git a/src/libcharon/encoding/payloads/unknown_payload.c b/src/libcharon/encoding/payloads/unknown_payload.c
index defc5d361..7fa381632 100644
--- a/src/libcharon/encoding/payloads/unknown_payload.c
+++ b/src/libcharon/encoding/payloads/unknown_payload.c
@@ -179,3 +179,19 @@ unknown_payload_t *unknown_payload_create(payload_type_t type)
return &this->public;
}
+
+
+/*
+ * Described in header
+ */
+unknown_payload_t *unknown_payload_create_data(payload_type_t type,
+ bool critical, chunk_t data)
+{
+ private_unknown_payload_t *this;
+
+ this = (private_unknown_payload_t*)unknown_payload_create(type);
+ this->data = data;
+ this->critical = critical;
+
+ return &this->public;
+}
diff --git a/src/libcharon/encoding/payloads/unknown_payload.h b/src/libcharon/encoding/payloads/unknown_payload.h
index 1f42fcf09..5ae85331b 100644
--- a/src/libcharon/encoding/payloads/unknown_payload.h
+++ b/src/libcharon/encoding/payloads/unknown_payload.h
@@ -72,9 +72,20 @@ struct unknown_payload_t {
/**
* Creates an empty unknown_payload_t.
*
- * @param type of the payload
- * @return unknown_payload_t object
+ * @param type of the payload
+ * @return unknown_payload_t object
*/
unknown_payload_t *unknown_payload_create(payload_type_t type);
+/**
+ * Create an unknown payload with data.
+ *
+ * @param type type of payload to create
+ * @param critical TRUE to set critical bit
+ * @param data data to set for this payload, gets owned by payload
+ * @return payload object
+ */
+unknown_payload_t *unknown_payload_create_data(payload_type_t type,
+ bool critical, chunk_t data);
+
#endif /** UNKNOWN_PAYLOAD_H_ @}*/