vici: Don't fall back to uninstalling traps if a matching shunt was found

This is different if `ike` and `child` are provided and uninstall()
fails as we call that without knowing whether a matching shunt exists.
But if `ike` is not provided we explicitly search for a matching shunt
and if found don't need to look for a trap policy.
This commit is contained in:
Tobias Brunner
2017-03-23 18:29:18 +01:00
parent 5e8e71d405
commit 550bd654a7
+7 -3
View File
@@ -707,12 +707,16 @@ CALLBACK(uninstall, vici_message_t*,
}
}
enumerator->destroy(enumerator);
if (ike && charon->shunts->uninstall(charon->shunts, ike, child))
if (ike)
{
if (charon->shunts->uninstall(charon->shunts, ike, child))
{
free(ike);
return send_reply(this, NULL);
}
free(ike);
return send_reply(this, NULL);
return send_reply(this, "uninstalling policy '%s' failed", child);
}
free(ike);
}
else if (charon->shunts->uninstall(charon->shunts, ike, child))
{