diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/control/controller.c | 1 | ||||
-rw-r--r-- | src/libcharon/control/controller.h | 20 |
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_ @}*/ |