aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/control
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/control')
-rw-r--r--src/libcharon/control/controller.c1
-rw-r--r--src/libcharon/control/controller.h20
2 files changed, 11 insertions, 10 deletions
diff --git a/src/libcharon/control/controller.c b/src/libcharon/control/controller.c
index da6687779..84adce073 100644
--- a/src/libcharon/control/controller.c
+++ b/src/libcharon/control/controller.c
@@ -182,6 +182,7 @@ METHOD(listener_t, listener_log, bool,
{
if (!this->callback(this->param, group, level, ike_sa, format, args))
{
+ this->status = NEED_MORE;
return listener_done(this);
}
}
diff --git a/src/libcharon/control/controller.h b/src/libcharon/control/controller.h
index 6adaef109..e7e922204 100644
--- a/src/libcharon/control/controller.h
+++ b/src/libcharon/control/controller.h
@@ -34,8 +34,8 @@
* @param args list of arguments to use for format
* @return FALSE to return from invoked function
*/
-typedef bool(*controller_cb_t)(void* param, debug_t group, level_t level,
- ike_sa_t* ike_sa, char* format, va_list args);
+typedef bool (*controller_cb_t)(void* param, debug_t group, level_t level,
+ ike_sa_t* ike_sa, char* format, va_list args);
/**
* Empty callback function for controller_t functions.
@@ -75,9 +75,8 @@ struct controller_t {
/**
* Initiate a CHILD_SA, and if required, an IKE_SA.
*
- * The initiate() function is synchronous and thus blocks until the
- * IKE_SA is established or failed. Because of this, the initiate() function
- * contains a thread cancellation point.
+ * If a callback is provided the function is synchronous and thus blocks
+ * until the IKE_SA is established or failed.
*
* @param peer_cfg peer_cfg to use for IKE_SA setup
* @param child_cfg child_cfg to set up CHILD_SA from
@@ -97,9 +96,8 @@ struct controller_t {
/**
* Terminate an IKE_SA and all of its CHILD_SAs.
*
- * The terminate() function is synchronous and thus blocks until the
- * IKE_SA is properly deleted, or the delete timed out.
- * The terminate() function contains a thread cancellation point.
+ * If a callback is provided the function is synchronous and thus blocks
+ * until the IKE_SA is properly deleted, or the call timed out.
*
* @param unique_id unique id of the IKE_SA to terminate.
* @param cb logging callback
@@ -118,6 +116,9 @@ struct controller_t {
/**
* Terminate a CHILD_SA.
*
+ * If a callback is provided the function is synchronous and thus blocks
+ * until the CHILD_SA is properly deleted, or the call timed out.
+ *
* @param reqid reqid of the CHILD_SA to terminate
* @param cb logging callback
* @param param parameter to include in each call of cb
@@ -138,12 +139,11 @@ struct controller_t {
void (*destroy) (controller_t *this);
};
-
/**
* Creates a controller instance.
*
* @return controller_t object
*/
-controller_t *controller_create(void);
+controller_t *controller_create();
#endif /** CONTROLLER_H_ @}*/