show kind of notify contained in messages in log
[strongswan.git] / src / charon / config / child_cfg.h
index eab3012..e1a6553 100644 (file)
@@ -36,7 +36,7 @@ typedef struct child_cfg_t child_cfg_t;
  *
  * These are equal to those defined in XFRM, so don't change.
  *
- * @ingroup child_cfg
+ * @ingroup config
  */
 enum mode_t {
        /** transport mode, no inner address */
@@ -57,14 +57,16 @@ extern enum_name_t *mode_names;
  *
  * After creation, proposals and traffic selectors may be added to the config.
  * A child_cfg object is referenced multiple times, and is not thread save.
- * Reading from the object is save, adding things is not allowed when other
+ * Reading from the object is save, adding things is not allowed while other
  * threads may access the object. 
  * A reference counter handles the number of references hold to this config.
+ *
+ * @see peer_cfg_t to get an overview over the configurations.
  * 
  * @b Constructors:
  *   - child_cfg_create()
  *
- * @ingroup child_cfg
+ * @ingroup config
  */
 struct child_cfg_t {
        
@@ -94,9 +96,10 @@ struct child_cfg_t {
         * Resulting list and all of its proposals must be freed after use.
         * 
         * @param this                  calling object
+        * @param strip_dh              TRUE strip out diffie hellman groups
         * @return                              list of proposals
         */
-       linked_list_t* (*get_proposals)(child_cfg_t *this);
+       linked_list_t* (*get_proposals)(child_cfg_t *this, bool strip_dh);
        
        /**
         * @brief Select a proposal from a supplied list.
@@ -105,9 +108,11 @@ struct child_cfg_t {
         * 
         * @param this                  calling object
         * @param proposals             list from from wich proposals are selected
+        * @param strip_dh              TRUE strip out diffie hellman groups
         * @return                              selected proposal, or NULL if nothing matches
         */
-       proposal_t* (*select_proposal)(child_cfg_t*this, linked_list_t *proposals);
+       proposal_t* (*select_proposal)(child_cfg_t*this, linked_list_t *proposals,
+                                                                  bool strip_dh);
        
        /**
         * @brief Add a traffic selector to the config.
@@ -187,6 +192,14 @@ struct child_cfg_t {
        mode_t (*get_mode) (child_cfg_t *this);
        
        /**
+        * @brief Get the DH group to use for CHILD_SA setup.
+        * 
+        * @param this          calling object
+        * @return                      dh group to use
+        */
+       diffie_hellman_group_t (*get_dh_group)(child_cfg_t *this);
+       
+       /**
         * @brief Get a new reference.
         *
         * Get a new reference to this child_cfg by increasing
@@ -229,11 +242,10 @@ struct child_cfg_t {
  * @param mode                         mode to propose for CHILD_SA, transport, tunnel or BEET
  * @return                                     child_cfg_t object
  * 
- * @ingroup child_cfg
+ * @ingroup config
  */
 child_cfg_t *child_cfg_create(char *name, u_int32_t lifetime,
-                                                                       u_int32_t rekeytime, u_int32_t jitter,
-                                                                       char *updown, bool hostaccess,
-                                                                       mode_t mode);
+                                                         u_int32_t rekeytime, u_int32_t jitter,
+                                                         char *updown, bool hostaccess, mode_t mode);
 
 #endif /* CHILD_CFG_H_ */