Module Name: src Committed By: ozaki-r Date: Tue May 9 04:17:14 UTC 2017
Modified Files: src/sys/netipsec: key.c Log Message: Use LIST_* functions (NFC) To generate a diff of this commit: cvs rdiff -u -r1.118 -r1.119 src/sys/netipsec/key.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netipsec/key.c diff -u src/sys/netipsec/key.c:1.118 src/sys/netipsec/key.c:1.119 --- src/sys/netipsec/key.c:1.118 Wed Apr 26 08:36:32 2017 +++ src/sys/netipsec/key.c Tue May 9 04:17:13 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: key.c,v 1.118 2017/04/26 08:36:32 ozaki-r Exp $ */ +/* $NetBSD: key.c,v 1.119 2017/05/09 04:17:13 ozaki-r Exp $ */ /* $FreeBSD: src/sys/netipsec/key.c,v 1.3.2.3 2004/02/14 22:23:23 bms Exp $ */ /* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.118 2017/04/26 08:36:32 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.119 2017/05/09 04:17:13 ozaki-r Exp $"); /* * This code is referd to RFC 2367 @@ -573,7 +573,7 @@ int key_havesp(u_int dir) { return (dir == IPSEC_DIR_INBOUND || dir == IPSEC_DIR_OUTBOUND ? - LIST_FIRST(&sptree[dir]) != NULL : 1); + !LIST_EMPTY(&sptree[dir]) : 1); } /* %%% IPsec policy management */ @@ -927,17 +927,12 @@ key_allocsa_policy(const struct secasind static struct secasvar * key_do_allocsa_policy(struct secashead *sah, u_int state) { - struct secasvar *sav, *nextsav, *candidate, *d; + struct secasvar *sav, *candidate, *d; /* initilize */ candidate = NULL; - for (sav = LIST_FIRST(&sah->savtree[state]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH(sav, &sah->savtree[state], chain) { /* sanity check */ KEY_CHKSASTATE(sav->state, state, "key_do_allocsa_policy"); @@ -2395,11 +2390,7 @@ key_spdflush(struct socket *so, struct m for (dir = 0; dir < IPSEC_DIR_MAX; dir++) { struct secpolicy * nextsp; - for (sp = LIST_FIRST(&sptree[dir]); - sp != NULL; - sp = nextsp) { - - nextsp = LIST_NEXT(sp, chain); + LIST_FOREACH_SAFE(sp, &sptree[dir], chain, nextsp) { if (sp->state == IPSEC_SPSTATE_DEAD) continue; key_sp_dead(sp); @@ -2875,12 +2866,7 @@ key_delsah(struct secashead *sah) stateidx++) { state = saorder_state_any[stateidx]; - for (sav = (struct secasvar *)LIST_FIRST(&sah->savtree[state]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH_SAFE(sav, &sah->savtree[state], chain, nextsav) { if (sav->refcnt == 0) { /* sanity check */ KEY_CHKSASTATE(state, sav->state, "key_delsah"); @@ -4542,12 +4528,7 @@ key_timehandler(void* arg) struct secpolicy *sp, *nextsp; for (dir = 0; dir < IPSEC_DIR_MAX; dir++) { - for (sp = LIST_FIRST(&sptree[dir]); - sp != NULL; - sp = nextsp) { - - nextsp = LIST_NEXT(sp, chain); - + LIST_FOREACH_SAFE(sp, &sptree[dir], chain, nextsp) { if (sp->state == IPSEC_SPSTATE_DEAD) { key_sp_unlink(sp); /*XXX*/ @@ -4576,12 +4557,7 @@ key_timehandler(void* arg) struct secashead *sah, *nextsah; struct secasvar *sav, *nextsav; - for (sah = LIST_FIRST(&sahtree); - sah != NULL; - sah = nextsah) { - - nextsah = LIST_NEXT(sah, chain); - + LIST_FOREACH_SAFE(sah, &sahtree, chain, nextsah) { /* if sah has been dead, then delete it and process next sah. */ if (sah->state == SADB_SASTATE_DEAD) { key_delsah(sah); @@ -4589,12 +4565,8 @@ key_timehandler(void* arg) } /* if LARVAL entry doesn't become MATURE, delete it. */ - for (sav = LIST_FIRST(&sah->savtree[SADB_SASTATE_LARVAL]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH_SAFE(sav, &sah->savtree[SADB_SASTATE_LARVAL], + chain, nextsav) { if (now - sav->created > key_larval_lifetime) { KEY_FREESAV(&sav); } @@ -4604,12 +4576,8 @@ key_timehandler(void* arg) * check MATURE entry to start to send expire message * whether or not. */ - for (sav = LIST_FIRST(&sah->savtree[SADB_SASTATE_MATURE]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH_SAFE(sav, &sah->savtree[SADB_SASTATE_MATURE], + chain, nextsav) { /* we don't need to check. */ if (sav->lft_s == NULL) continue; @@ -4661,12 +4629,8 @@ key_timehandler(void* arg) } /* check DYING entry to change status to DEAD. */ - for (sav = LIST_FIRST(&sah->savtree[SADB_SASTATE_DYING]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH_SAFE(sav, &sah->savtree[SADB_SASTATE_DYING], + chain, nextsav) { /* we don't need to check. */ if (sav->lft_h == NULL) continue; @@ -4708,12 +4672,8 @@ key_timehandler(void* arg) } /* delete entry in DEAD */ - for (sav = LIST_FIRST(&sah->savtree[SADB_SASTATE_DEAD]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH_SAFE(sav, &sah->savtree[SADB_SASTATE_DEAD], + chain, nextsav) { /* sanity check */ if (sav->state != SADB_SASTATE_DEAD) { ipseclog((LOG_DEBUG, "key_timehandler: " @@ -4738,12 +4698,7 @@ key_timehandler(void* arg) { struct secacq *acq, *nextacq; - for (acq = LIST_FIRST(&acqtree); - acq != NULL; - acq = nextacq) { - - nextacq = LIST_NEXT(acq, chain); - + LIST_FOREACH_SAFE(acq, &acqtree, chain, nextacq) { if (now - acq->created > key_blockacq_lifetime && __LIST_CHAINED(acq)) { LIST_REMOVE(acq, chain); @@ -4757,12 +4712,7 @@ key_timehandler(void* arg) { struct secspacq *acq, *nextacq; - for (acq = LIST_FIRST(&spacqtree); - acq != NULL; - acq = nextacq) { - - nextacq = LIST_NEXT(acq, chain); - + LIST_FOREACH_SAFE(acq, &spacqtree, chain, nextacq) { if (now - acq->created > key_blockacq_lifetime && __LIST_CHAINED(acq)) { LIST_REMOVE(acq, chain); @@ -5833,9 +5783,8 @@ key_delete_all(struct socket *so, struct state = saorder_state_alive[stateidx]; if (state == SADB_SASTATE_LARVAL) continue; - for (sav = LIST_FIRST(&sah->savtree[state]); - sav != NULL; sav = nextsav) { - nextsav = LIST_NEXT(sav, chain); + LIST_FOREACH_SAFE(sav, &sah->savtree[state], chain, + nextsav) { /* sanity check */ if (sav->state != state) { ipseclog((LOG_DEBUG, "key_delete_all: " @@ -6968,7 +6917,7 @@ key_flush(struct socket *so, struct mbuf const struct sadb_msghdr *mhp) { struct sadb_msg *newmsg; - struct secashead *sah, *nextsah; + struct secashead *sah; struct secasvar *sav, *nextsav; u_int16_t proto; u_int8_t state; @@ -6985,11 +6934,7 @@ key_flush(struct socket *so, struct mbuf } /* no SATYPE specified, i.e. flushing all SA. */ - for (sah = LIST_FIRST(&sahtree); - sah != NULL; - sah = nextsah) { - nextsah = LIST_NEXT(sah, chain); - + LIST_FOREACH(sah, &sahtree, chain) { if (mhp->msg->sadb_msg_satype != SADB_SATYPE_UNSPEC && proto != sah->saidx.proto) continue; @@ -6998,12 +6943,8 @@ key_flush(struct socket *so, struct mbuf stateidx < _ARRAYLEN(saorder_state_alive); stateidx++) { state = saorder_state_any[stateidx]; - for (sav = LIST_FIRST(&sah->savtree[state]); - sav != NULL; - sav = nextsav) { - - nextsav = LIST_NEXT(sav, chain); - + LIST_FOREACH_SAFE(sav, &sah->savtree[state], chain, + nextsav) { key_sa_chgstate(sav, SADB_SASTATE_DEAD); KEY_FREESAV(&sav); }