MCPcopy Create free account
hub / github.com/F-Stack/f-stack / key_freesah_flushed

Function key_freesah_flushed

freebsd/netipsec/key.c:7405–7433  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7403}
7404
7405static void
7406key_freesah_flushed(struct secashead_queue *flushq)
7407{
7408 struct secashead *sah, *nextsah;
7409 struct secasvar *sav, *nextsav;
7410
7411 sah = TAILQ_FIRST(flushq);
7412 while (sah != NULL) {
7413 sav = TAILQ_FIRST(&sah->savtree_larval);
7414 while (sav != NULL) {
7415 nextsav = TAILQ_NEXT(sav, chain);
7416 TAILQ_REMOVE(&sah->savtree_larval, sav, chain);
7417 key_freesav(&sav); /* release last reference */
7418 key_freesah(&sah); /* release reference from SAV */
7419 sav = nextsav;
7420 }
7421 sav = TAILQ_FIRST(&sah->savtree_alive);
7422 while (sav != NULL) {
7423 nextsav = TAILQ_NEXT(sav, chain);
7424 TAILQ_REMOVE(&sah->savtree_alive, sav, chain);
7425 key_freesav(&sav); /* release last reference */
7426 key_freesah(&sah); /* release reference from SAV */
7427 sav = nextsav;
7428 }
7429 nextsah = TAILQ_NEXT(sah, chain);
7430 key_freesah(&sah); /* release last reference */
7431 sah = nextsah;
7432 }
7433}
7434
7435/*
7436 * SADB_FLUSH processing

Callers 2

key_flushFunction · 0.85
key_destroyFunction · 0.85

Calls 2

key_freesavFunction · 0.85
key_freesahFunction · 0.85

Tested by

no test coverage detected