diff options
author | 2020-09-25 10:38:05 +0000 | |
---|---|---|
committer | 2020-09-25 10:38:05 +0000 | |
commit | 9c3d68f7d63149dc76143c6a45a704ad8b90a026 (patch) | |
tree | 3b7400f8de4e19cf33710ca0bb3269dbe81abadd | |
parent | Remove work around kcov_remote_leave() that no longer is needed since (diff) | |
download | wireguard-openbsd-9c3d68f7d63149dc76143c6a45a704ad8b90a026.tar.xz wireguard-openbsd-9c3d68f7d63149dc76143c6a45a704ad8b90a026.zip |
Simplify RB_TREE cleanup loops.
ok markus@
-rw-r--r-- | sbin/iked/config.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/sbin/iked/config.c b/sbin/iked/config.c index 4a888b55b86..967d90d3eae 100644 --- a/sbin/iked/config.c +++ b/sbin/iked/config.c @@ -1,4 +1,4 @@ -/* $OpenBSD: config.c,v 1.66 2020/09/23 14:25:55 tobhe Exp $ */ +/* $OpenBSD: config.c,v 1.67 2020/09/25 10:38:05 tobhe Exp $ */ /* * Copyright (c) 2019 Tobias Heider <tobias.heider@stusta.de> @@ -278,10 +278,9 @@ config_free_proposals(struct iked_proposals *head, unsigned int proto) void config_free_flows(struct iked *env, struct iked_flows *head) { - struct iked_flow *flow, *next; + struct iked_flow *flow; - for (flow = RB_MIN(iked_flows, head); flow != NULL; flow = next) { - next = RB_NEXT(iked_flows, head, flow); + while ((flow = RB_MIN(iked_flows, head))) { log_debug("%s: free %p", __func__, flow); RB_REMOVE(iked_flows, head, flow); flow_free(flow); @@ -509,8 +508,8 @@ int config_getreset(struct iked *env, struct imsg *imsg) { struct iked_policy *pol, *poltmp; - struct iked_sa *sa, *nextsa; - struct iked_user *usr, *nextusr; + struct iked_sa *sa; + struct iked_user *usr; unsigned int mode; IMSG_SIZE_CHECK(imsg, &mode); @@ -525,9 +524,7 @@ config_getreset(struct iked *env, struct imsg *imsg) if (mode == RESET_ALL || mode == RESET_SA) { log_debug("%s: flushing SAs", __func__); - for (sa = RB_MIN(iked_sas, &env->sc_sas); - sa != NULL; sa = nextsa) { - nextsa = RB_NEXT(iked_sas, &env->sc_sas, sa); + while ((sa = RB_MIN(iked_sas, &env->sc_sas))) { /* for RESET_SA we try send a DELETE */ if (mode == RESET_ALL || ikev2_ike_sa_delete(env, sa) != 0) { @@ -539,9 +536,7 @@ config_getreset(struct iked *env, struct imsg *imsg) if (mode == RESET_ALL || mode == RESET_USER) { log_debug("%s: flushing users", __func__); - for (usr = RB_MIN(iked_users, &env->sc_users); - usr != NULL; usr = nextusr) { - nextusr = RB_NEXT(iked_users, &env->sc_users, usr); + while ((usr = RB_MIN(iked_users, &env->sc_users))) { RB_REMOVE(iked_users, &env->sc_users, usr); free(usr); } |