- retransmitting of requests implemented
[strongswan.git] / Source / charon / config / configuration_manager.h
index 9cc6a31..bc6c6e8 100644 (file)
@@ -39,7 +39,7 @@ typedef struct configuration_manager_t configuration_manager_t;
 struct configuration_manager_t { 
 
        /**
-        * Gets the configuration information needed for IKE_SA_INIT exchange 
+        * Get the configuration information needed for IKE_SA_INIT exchange 
         * for a specific configuration name.
         * 
         * The returned init_config_t object MUST NOT be destroyed cause it's the original one.
@@ -55,7 +55,7 @@ struct configuration_manager_t {
        status_t (*get_init_config_for_name) (configuration_manager_t *this, char *name, init_config_t **init_config);
 
        /**
-        * Gets the configuration information needed for IKE_SA_INIT exchange 
+        * Get the configuration information needed for IKE_SA_INIT exchange 
         * for specific host informations.
         * 
         * The returned init_config_t object MUST NOT be destroyed cause it's the original one.
@@ -72,7 +72,7 @@ struct configuration_manager_t {
        status_t (*get_init_config_for_host) (configuration_manager_t *this, host_t *my_host, host_t *other_host,init_config_t **init_config);
        
        /**
-        * Gets the configuration information needed after IKE_SA_INIT exchange.
+        * Get the configuration information needed after IKE_SA_INIT exchange.
         * 
         * The returned sa_config_t object MUST not be destroyed cause it's the original one.
         * 
@@ -87,7 +87,7 @@ struct configuration_manager_t {
        status_t (*get_sa_config_for_name) (configuration_manager_t *this, char *name, sa_config_t **sa_config);
        
        /**
-        * Gets the configuration information needed after IKE_SA_INIT exchange 
+        * Get the configuration information needed after IKE_SA_INIT exchange 
         * for specific init_config_t and ID data.
         * 
         * The returned sa_config_t object MUST NOT be destroyed cause it's the original one.
@@ -105,6 +105,21 @@ struct configuration_manager_t {
        status_t (*get_sa_config_for_init_config_and_id) (configuration_manager_t *this, init_config_t *init_config, identification_t *other_id, identification_t *my_id,sa_config_t **sa_config);
 
        /**
+        * Get the retransmit timeout.
+        * 
+        * The timeout values are managed by the configuration manager.
+        * 
+        * @param this                          calling object
+        * @param retransmit_count      number of times a message was allready retransmitted
+        * @param[out] timeout          the new retransmit timeout in milliseconds
+        * 
+        * @return              
+        *                              - FAILED        if the message should not be resent again
+        *                              - SUCCESS
+        */
+       status_t (*get_retransmit_timeout) (configuration_manager_t *this, u_int32_t retransmit_count, u_int32_t *timeout);
+
+       /**
         * Destroys configuration manager
         * 
         * 
@@ -118,12 +133,14 @@ struct configuration_manager_t {
 /**
  * Creates the mighty configuration manager
  * 
+ * @param first_retransmit_timeout     first retransmit timeout in milliseconds
+ * @param max_retransmit_count         max number of retransmitted requests (0 for infinite)
  * @return 
  *                     - pointer to created manager object if succeeded
  *                     - NULL if memory allocation failed
  * 
  * @ingroup config
  */
-configuration_manager_t *configuration_manager_create();
+configuration_manager_t *configuration_manager_create(u_int32_t first_retransmit_timeout,u_int32_t max_retransmit_count);
 
 #endif /*CONFIGURATION_MANAGER_H_*/