diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.c b/src/libcharon/sa/ikev1/tasks/quick_mode.c index 8436c66dc..13163dd0f 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_mode.c +++ b/src/libcharon/sa/ikev1/tasks/quick_mode.c @@ -1435,6 +1435,12 @@ METHOD(quick_mode_t, get_mid, uint32_t, return this->mid; } +METHOD(quick_mode_t, get_config, child_cfg_t*, + private_quick_mode_t *this) +{ + return this->initiator ? this->config : NULL; +} + METHOD(quick_mode_t, use_reqid, void, private_quick_mode_t *this, uint32_t reqid) { @@ -1534,6 +1540,7 @@ quick_mode_t *quick_mode_create(ike_sa_t *ike_sa, child_cfg_t *config, .destroy = _destroy, }, .get_mid = _get_mid, + .get_config = _get_config, .use_reqid = _use_reqid, .use_marks = _use_marks, .use_if_ids = _use_if_ids, diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.h b/src/libcharon/sa/ikev1/tasks/quick_mode.h index 2b0489407..23efd3411 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_mode.h +++ b/src/libcharon/sa/ikev1/tasks/quick_mode.h @@ -47,6 +47,13 @@ struct quick_mode_t { */ uint32_t (*get_mid)(quick_mode_t *this); + /** + * Get the child config of this task as initiator. + * + * @return config for the CHILD_SA, NULL as responder + */ + child_cfg_t *(*get_config)(quick_mode_t *this); + /** * Use a specific reqid to install this CHILD_SA. *