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

Function ng_tee_disconnect

freebsd/netgraph/ng_tee.c:365–395  ·  view source on GitHub ↗

* Hook disconnection */

Source from the content-addressed store, hash-verified

363 * Hook disconnection
364 */
365static int
366ng_tee_disconnect(hook_p hook)
367{
368 sc_p sc = NG_NODE_PRIVATE(NG_HOOK_NODE(hook));
369 hi_p const hinfo = NG_HOOK_PRIVATE(hook);
370
371 KASSERT(hinfo != NULL, ("%s: null info", __func__));
372 hinfo->hook = NULL;
373
374 /* Recalculate internal paths. */
375 if (sc->left.dest == hinfo) {
376 sc->left.dest = sc->left.dup;
377 sc->left.dup = NULL;
378 } else if (sc->left.dup == hinfo)
379 sc->left.dup = NULL;
380 if (sc->right.dest == hinfo) {
381 sc->right.dest = sc->right.dup;
382 sc->right.dup = NULL;
383 } else if (sc->right.dup == hinfo)
384 sc->right.dup = NULL;
385 if (sc->left2right.dest == hinfo)
386 sc->left2right.dest = NULL;
387 if (sc->right2left.dest == hinfo)
388 sc->right2left.dest = NULL;
389
390 /* Die when last hook disconnected. */
391 if ((NG_NODE_NUMHOOKS(NG_HOOK_NODE(hook)) == 0) &&
392 NG_NODE_IS_VALID(NG_HOOK_NODE(hook)))
393 ng_rmnode_self(NG_HOOK_NODE(hook));
394 return (0);
395}

Callers

nothing calls this directly

Calls 1

ng_rmnode_selfFunction · 0.70

Tested by

no test coverage detected