Deleted Added
full compact
40c40
< * $FreeBSD: head/sys/netgraph/ng_ether.c 128376 2004-04-18 01:15:32Z luigi $
---
> * $FreeBSD: head/sys/netgraph/ng_ether.c 129281 2004-05-16 19:31:35Z archie $
73,74c73,74
< hook_p lower; /* lower OR orphan hook connection */
< u_char lowerOrphan; /* whether lower is lower or orphan */
---
> hook_p lower; /* lower hook connection */
> hook_p orphan; /* orphan hook connection */
97d96
< static void ng_ether_input2(node_p node, struct mbuf **mp);
203a203
> int error;
206c206
< if (priv->lower == NULL || priv->lowerOrphan)
---
> if (priv->lower == NULL)
208c208
< ng_ether_input2(node, mp);
---
> NG_SEND_DATA_ONLY(error, priv->lower, *mp); /* sets *mp = NULL */
221a222
> int error;
223,224c224,225
< /* If "orphan" hook not connected, let packet continue */
< if (priv->lower == NULL || !priv->lowerOrphan) {
---
> /* If "orphan" hook not connected, discard packet */
> if (priv->orphan == NULL) {
228,230c229
< ng_ether_input2(node, &m);
< if (m != NULL)
< m_freem(m);
---
> NG_SEND_DATA_ONLY(error, priv->orphan, m);
234,251d232
< * Handle a packet that has come in on an ethernet interface.
< * The Ethernet header has already been detached from the mbuf,
< * so we have to put it back.
< *
< * NOTE: this function will get called at splimp()
< */
< static void
< ng_ether_input2(node_p node, struct mbuf **mp)
< {
< const priv_p priv = NG_NODE_PRIVATE(node);
< int error;
<
< /* Send out lower/orphan hook */
< NG_SEND_DATA_ONLY(error, priv->lower, *mp);
< *mp = NULL;
< }
<
< /*
355d335
< u_char orphan = priv->lowerOrphan;
365c345
< else if (strcmp(name, NG_ETHER_HOOK_LOWER) == 0) {
---
> else if (strcmp(name, NG_ETHER_HOOK_LOWER) == 0)
367,371c347,349
< orphan = 0;
< } else if (strcmp(name, NG_ETHER_HOOK_ORPHAN) == 0) {
< hookptr = &priv->lower;
< orphan = 1;
< } else
---
> else if (strcmp(name, NG_ETHER_HOOK_ORPHAN) == 0)
> hookptr = &priv->orphan;
> else
384d361
< priv->lowerOrphan = orphan;
517c494
< if (hook == priv->lower)
---
> if (hook == priv->lower || hook == priv->orphan)
522c499
< #ifdef RESTARTABLE_PANICS /* so we don;t get an error msg in LINT */
---
> #ifdef RESTARTABLE_PANICS /* so we don't get an error msg in LINT */
528c505
< * Handle an mbuf received on the "lower" hook.
---
> * Handle an mbuf received on the "lower" or "orphan" hook.
632c609
< } else if (hook == priv->lower) {
---
> } else if (hook == priv->lower)
634,635c611,613
< priv->lowerOrphan = 0;
< } else
---
> else if (hook == priv->orphan)
> priv->orphan = NULL;
> else