Use macro ERROUT() to make code more laconic and follow style of other
netgraph code. Submitted by: Dmitry Luhtionov <dmitryluhtionov gmail.com>
This commit is contained in:
parent
1d904a55c8
commit
3a4c61c2fd
@ -148,6 +148,8 @@ static struct ng_type typestruct = {
|
||||
};
|
||||
NETGRAPH_INIT(framerelay, &typestruct);
|
||||
|
||||
#define ERROUT(x) do { error = (x); goto done; } while (0)
|
||||
|
||||
/*
|
||||
* Given a DLCI, return the index of the context table entry for it,
|
||||
* Allocating a new one if needs be, or -1 if none available.
|
||||
@ -335,10 +337,8 @@ ngfrm_rcvdata(hook_p hook, item_p item)
|
||||
char *data;
|
||||
|
||||
/* Data doesn't come in from just anywhere (e.g debug hook) */
|
||||
if (ctxp == NULL) {
|
||||
error = ENETDOWN;
|
||||
goto bad;
|
||||
}
|
||||
if (ctxp == NULL)
|
||||
ERROUT(ENETDOWN);
|
||||
|
||||
/* If coming from downstream, decode it to a channel */
|
||||
dlci = ctxp->dlci;
|
||||
@ -351,20 +351,16 @@ ngfrm_rcvdata(hook_p hook, item_p item)
|
||||
|
||||
/* If there is no live channel, throw it away */
|
||||
if ((sc->downstream.hook == NULL)
|
||||
|| ((ctxp->flags & CHAN_ACTIVE) == 0)) {
|
||||
error = ENETDOWN;
|
||||
goto bad;
|
||||
}
|
||||
|| ((ctxp->flags & CHAN_ACTIVE) == 0))
|
||||
ERROUT(ENETDOWN);
|
||||
|
||||
/* Store the DLCI on the front of the packet */
|
||||
alen = sc->addrlen;
|
||||
if (alen == 0)
|
||||
alen = 2; /* default value for transmit */
|
||||
M_PREPEND(m, alen, M_NOWAIT);
|
||||
if (m == NULL) {
|
||||
error = ENOBUFS;
|
||||
goto bad;
|
||||
}
|
||||
if (m == NULL)
|
||||
ERROUT(ENOBUFS);
|
||||
data = mtod(m, char *);
|
||||
|
||||
/*
|
||||
@ -401,7 +397,7 @@ ngfrm_rcvdata(hook_p hook, item_p item)
|
||||
NG_FWD_NEW_DATA(error, item, sc->downstream.hook, m);
|
||||
return (error);
|
||||
|
||||
bad:
|
||||
done:
|
||||
NG_FREE_ITEM(item);
|
||||
NG_FREE_M(m);
|
||||
return (error);
|
||||
@ -422,10 +418,8 @@ ngfrm_decode(node_p node, item_p item)
|
||||
struct mbuf *m;
|
||||
|
||||
NGI_GET_M(item, m);
|
||||
if (m->m_len < 4 && (m = m_pullup(m, 4)) == NULL) {
|
||||
error = ENOBUFS;
|
||||
goto out;
|
||||
}
|
||||
if (m->m_len < 4 && (m = m_pullup(m, 4)) == NULL)
|
||||
ERROUT(ENOBUFS);
|
||||
data = mtod(m, char *);
|
||||
if ((alen = sc->addrlen) == 0) {
|
||||
sc->addrlen = alen = ngfrm_addrlen(data);
|
||||
@ -447,14 +441,11 @@ ngfrm_decode(node_p node, item_p item)
|
||||
SHIFTIN(makeup + 3, data[3], dlci);
|
||||
break;
|
||||
default:
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
ERROUT(EINVAL);
|
||||
}
|
||||
|
||||
if (dlci > 1023) {
|
||||
error = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
if (dlci > 1023)
|
||||
ERROUT(EINVAL);
|
||||
ctxnum = sc->ALT[dlci];
|
||||
if ((ctxnum & CTX_VALID) && sc->channel[ctxnum &= CTX_VALUE].hook) {
|
||||
/* Send it */
|
||||
@ -464,7 +455,7 @@ ngfrm_decode(node_p node, item_p item)
|
||||
} else {
|
||||
error = ENETDOWN;
|
||||
}
|
||||
out:
|
||||
done:
|
||||
NG_FREE_ITEM(item);
|
||||
NG_FREE_M(m);
|
||||
return (error);
|
||||
|
Loading…
x
Reference in New Issue
Block a user