From: Tobias Brunner Date: Fri, 3 Nov 2017 09:53:04 +0000 (+0100) Subject: stroke: Remove external enumeration to unroute shunt policies X-Git-Tag: 5.6.3dr1~47^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d69d8a3997c4e40d0b2a62072899a8811dd8b5a;p=thirdparty%2Fstrongswan.git stroke: Remove external enumeration to unroute shunt policies --- diff --git a/src/libcharon/plugins/stroke/stroke_control.c b/src/libcharon/plugins/stroke/stroke_control.c index ee83067727..beda864018 100644 --- a/src/libcharon/plugins/stroke/stroke_control.c +++ b/src/libcharon/plugins/stroke/stroke_control.c @@ -730,30 +730,15 @@ METHOD(stroke_control_t, route, void, METHOD(stroke_control_t, unroute, void, private_stroke_control_t *this, stroke_msg_t *msg, FILE *out) { - child_cfg_t *child_cfg; child_sa_t *child_sa; enumerator_t *enumerator; - char *ns, *found = NULL; uint32_t id = 0; - enumerator = charon->shunts->create_enumerator(charon->shunts); - while (enumerator->enumerate(enumerator, &ns, &child_cfg)) + if (charon->shunts->uninstall(charon->shunts, NULL, msg->unroute.name)) { - if (ns && streq(msg->unroute.name, child_cfg->get_name(child_cfg))) - { - found = strdup(ns); - break; - } - } - enumerator->destroy(enumerator); - if (found && charon->shunts->uninstall(charon->shunts, found, - msg->unroute.name)) - { - free(found); fprintf(out, "shunt policy '%s' uninstalled\n", msg->unroute.name); return; } - free(found); enumerator = charon->traps->create_enumerator(charon->traps); while (enumerator->enumerate(enumerator, NULL, &child_sa))