aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstrongswan/attributes/attribute_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstrongswan/attributes/attribute_manager.h')
-rw-r--r--src/libstrongswan/attributes/attribute_manager.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/libstrongswan/attributes/attribute_manager.h b/src/libstrongswan/attributes/attribute_manager.h
index ba194b563..642662366 100644
--- a/src/libstrongswan/attributes/attribute_manager.h
+++ b/src/libstrongswan/attributes/attribute_manager.h
@@ -62,10 +62,11 @@ struct attribute_manager_t {
* Create an enumerator over attributes to hand out to a peer.
*
* @param id peer identity to hand out attributes to
+ * @param vip virtual IP to assign to peer, if any
* @return enumerator (configuration_attribute_type_t, chunk_t)
*/
- enumerator_t* (*create_attribute_enumerator)(attribute_manager_t *this,
- identification_t *id);
+ enumerator_t* (*create_responder_enumerator)(attribute_manager_t *this,
+ identification_t *id, host_t *vip);
/**
* Register an attribute provider to the manager.
@@ -86,13 +87,14 @@ struct attribute_manager_t {
* Handle a configuration attribute by passing them to the handlers.
*
* @param server server from which the attribute was received
+ * @param handler handler we requested the attribute for, if any
* @param type type of configuration attribute
* @param data associated attribute data
* @return handler which handled this attribute, NULL if none
*/
attribute_handler_t* (*handle)(attribute_manager_t *this,
- identification_t *server,
- configuration_attribute_type_t type, chunk_t data);
+ identification_t *server, attribute_handler_t *handler,
+ configuration_attribute_type_t type, chunk_t data);
/**
* Release an attribute previously handle()d by a handler.
@@ -108,6 +110,16 @@ struct attribute_manager_t {
chunk_t data);
/**
+ * Create an enumerator over attributes to request from server.
+ *
+ * @param id server identity to hand out attributes to
+ * @param vip virtual IP going to request, if any
+ * @return enumerator (attribute_handler_t, ca_type_t, chunk_t)
+ */
+ enumerator_t* (*create_initiator_enumerator)(attribute_manager_t *this,
+ identification_t *id, host_t *vip);
+
+ /**
* Register an attribute handler to the manager.
*
* @param handler attribute handler to register