plugin-loader: Optionally use load option in each plugin section to load plugins
[strongswan.git] / src / manager / gateway.h
index 1fe2aef..5792ebf 100644 (file)
@@ -1,10 +1,3 @@
-/**
- * @file gateway.h
- * 
- * @brief Interface of gateway_t.
- * 
- */
-
 /*
  * Copyright (C) 2007 Martin Willi
  * Hochschule fuer Technik Rapperswil
  * for more details.
  */
 
+/**
+ * @defgroup gateway gateway
+ * @{ @ingroup manager
+ */
+
 #ifndef GATEWAY_H_
 #define GATEWAY_H_
 
-#include <utils/host.h>
-#include <utils/enumerator.h>
+#include <networking/host.h>
+#include <collections/enumerator.h>
 
 typedef struct gateway_t gateway_t;
 
 /**
- * @brief A connection to a gateway.
+ * A connection to a gateway.
  */
 struct gateway_t {
-       
+
        /**
-        * @brief Send an XML request to the gateway.
+        * Send an XML request to the gateway.
         *
         * @param xml           xml request string
+        * @param ...           printf style argument list for xml request string
         * @return                      allocated xml response string
         */
-       char* (*request)(gateway_t *this, char *xml);
-       
+       char* (*request)(gateway_t *this, char *xml, ...);
+
        /**
-        * @brief Query the list of IKE_SAs and all its children.
+        * Query the list of IKE_SAs and all its children.
         *
         * @return                      enumerator over ikesa XML elements
         */
        enumerator_t* (*query_ikesalist)(gateway_t *this);
-       
+
+       /**
+        * Query the list of peer configs and its subconfigs.
+        *
+        * @return                      enumerator over peerconfig XML elements
+        */
+       enumerator_t* (*query_configlist)(gateway_t *this);
+
+       /**
+        * Terminate an IKE or a CHILD SA.
+        *
+        * @param ike           TRUE for IKE-, FALSE for a CHILD-SA
+        * @param id            ID of the SA to terminate
+        * @return                      enumerator over control response XML children
+        */
+       enumerator_t* (*terminate)(gateway_t *this, bool ike, u_int32_t id);
+
        /**
-     * @brief Destroy a gateway instance.
-     */
-    void (*destroy)(gateway_t *this);
+        * Initiate an IKE or a CHILD SA.
+        *
+        * @param ike           TRUE for IKE-, FALSE for CHILD-SA
+        * @param name          name of the peer/child config
+        * @return                      enumerator over control response XML children
+        */
+       enumerator_t* (*initiate)(gateway_t *this, bool ike, char *name);
+
+       /**
+        * Destroy a gateway instance.
+        */
+       void (*destroy)(gateway_t *this);
 };
 
 /**
- * @brief Create a gateway instance using a TCP connection.
+ * Create a gateway instance using a TCP connection.
  *
  * @param name                 name of the gateway
  * @param host                 gateway connection endpoint
- * @param 
+ * @return                             gateway connection
  */
 gateway_t *gateway_create_tcp(char *name, host_t *host);
 
 /**
- * @brief Create a gateway instance using a UNIX socket.
+ * Create a gateway instance using a UNIX socket.
  *
  * @param name                 name of the gateway
- * @param 
+ * @return                             gateway connection
  */
 gateway_t *gateway_create_unix(char *name);
 
-#endif /* GATEWAY_H_ */
+#endif /** GATEWAY_H_ @}*/