cleaning up
[strongswan.git] / src / charon / encoding / message.h
index 41edd4c..8f0be56 100644 (file)
@@ -7,7 +7,8 @@
 
 /*
  * Copyright (C) 2006 Tobias Brunner, Daniel Roethlisberger
 
 /*
  * Copyright (C) 2006 Tobias Brunner, Daniel Roethlisberger
- * Copyright (C) 2005 Jan Hutter, Martin Willi
+ * Copyright (C) 2005-2006 Martin Willi
+ * Copyright (C) 2005 Jan Hutter
  * Hochschule fuer Technik Rapperswil
  *
  * This program is free software; you can redistribute it and/or modify it
  * Hochschule fuer Technik Rapperswil
  *
  * This program is free software; you can redistribute it and/or modify it
@@ -24,7 +25,9 @@
 #ifndef MESSAGE_H_
 #define MESSAGE_H_
 
 #ifndef MESSAGE_H_
 #define MESSAGE_H_
 
-#include <types.h>
+typedef struct message_t message_t;
+
+#include <library.h>
 #include <sa/ike_sa_id.h>
 #include <network/packet.h>
 #include <encoding/payloads/ike_header.h>
 #include <sa/ike_sa_id.h>
 #include <network/packet.h>
 #include <encoding/payloads/ike_header.h>
@@ -33,9 +36,6 @@
 #include <crypto/crypters/crypter.h>
 #include <crypto/signers/signer.h>
 
 #include <crypto/crypters/crypter.h>
 #include <crypto/signers/signer.h>
 
-
-typedef struct message_t message_t;
-
 /**
  * @brief This class is used to represent an IKEv2-Message.
  *
 /**
  * @brief This class is used to represent an IKEv2-Message.
  *
@@ -184,6 +184,21 @@ struct message_t {
        void (*add_payload) (message_t *this, payload_t *payload);
 
        /**
        void (*add_payload) (message_t *this, payload_t *payload);
 
        /**
+        * @brief Build a notify payload and add it to the message.
+        * 
+        * This is a helper method to create notify messages or add
+        * notify payload to messages. The flush parameter specifies if existing
+        * payloads should get removed before appending the notify.
+        *
+        * @param this                  message_t object
+        * @param flush                 TRUE to remove existing payloads
+        * @param type                  type of the notify
+        * @param data                  a chunk of data to add to the notify, gets cloned
+        */     
+       void (*add_notify) (message_t *this, bool flush, notify_type_t type, 
+                                               chunk_t data);
+
+       /**
         * @brief Parses header of message.
         * 
         * Begins parisng of a message created via message_create_from_packet().
         * @brief Parses header of message.
         * 
         * Begins parisng of a message created via message_create_from_packet().
@@ -304,6 +319,17 @@ struct message_t {
        iterator_t * (*get_payload_iterator) (message_t *this);
        
        /**
        iterator_t * (*get_payload_iterator) (message_t *this);
        
        /**
+        * @brief Find a payload of a specific type.
+        * 
+        * Returns the first occurance. 
+        *
+        * @param this          message_t object
+        * @param type          type of the payload to find
+        * @return                      payload, or NULL if no such payload found
+        */     
+       payload_t* (*get_payload) (message_t *this, payload_type_t type);
+       
+       /**
         * @brief Returns a clone of the internal stored packet_t object.
         *
         * @param this          message_t object
         * @brief Returns a clone of the internal stored packet_t object.
         *
         * @param this          message_t object