From: Tobias Brunner Date: Fri, 26 Jul 2024 16:07:23 +0000 (+0200) Subject: ike-sa: Assign function pointers for mediation extension separately X-Git-Tag: android-2.5.2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9a7c9822d44aa2161616074d5b0b74ba0f59a60;p=thirdparty%2Fstrongswan.git ike-sa: Assign function pointers for mediation extension separately Using preprocessor directives in calls of function-like macros is not recommended as it might lead to undefined behavior. --- diff --git a/src/libcharon/sa/ike_sa.c b/src/libcharon/sa/ike_sa.c index a8cda54bf2..c9b2a6c082 100644 --- a/src/libcharon/sa/ike_sa.c +++ b/src/libcharon/sa/ike_sa.c @@ -3203,17 +3203,6 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id, bool initiator, .queue_task = _queue_task, .queue_task_delayed = _queue_task_delayed, .adopt_child_tasks = _adopt_child_tasks, -#ifdef ME - .act_as_mediation_server = _act_as_mediation_server, - .get_server_reflexive_host = _get_server_reflexive_host, - .set_server_reflexive_host = _set_server_reflexive_host, - .get_connect_id = _get_connect_id, - .initiate_mediation = _initiate_mediation, - .initiate_mediated = _initiate_mediated, - .relay = _relay, - .callback = _callback, - .respond = _respond, -#endif /* ME */ }, .ike_sa_id = ike_sa_id->clone(ike_sa_id), .version = version, @@ -3245,6 +3234,18 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id, bool initiator, "%s.follow_redirects", TRUE, lib->ns), ); +#ifdef ME + this->public.act_as_mediation_server = _act_as_mediation_server; + this->public.get_server_reflexive_host = _get_server_reflexive_host; + this->public.set_server_reflexive_host = _set_server_reflexive_host; + this->public.get_connect_id = _get_connect_id; + this->public.initiate_mediation = _initiate_mediation; + this->public.initiate_mediated = _initiate_mediated; + this->public.relay = _relay; + this->public.callback = _callback; + this->public.respond = _respond; +#endif /* ME */ + if (version == IKEV2) { /* always supported with IKEv2 */ enable_extension(this, EXT_DPD);