diff options
author | Shaun Ruffell <sruffell@digium.com> | 2008-12-17 15:57:56 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2008-12-17 15:57:56 +0000 |
commit | fc2298b94251437cb10313ca48c133655c3f7d7b (patch) | |
tree | 5d7b53a7be3f55cbb9be0b09e13e128ee0590c28 /drivers/dahdi/wcb4xxp | |
parent | 546f03bcf76ba26c46f7a9407382c38284f3ec40 (diff) |
wcb4xxp: Do not propogate received HDLC frames on channels that are not
configured. Issue: DAHDI-217
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@5576 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/wcb4xxp')
-rw-r--r-- | drivers/dahdi/wcb4xxp/base.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/dahdi/wcb4xxp/base.c b/drivers/dahdi/wcb4xxp/base.c index 6f23206..27903ad 100644 --- a/drivers/dahdi/wcb4xxp/base.c +++ b/drivers/dahdi/wcb4xxp/base.c @@ -1579,7 +1579,8 @@ static int hdlc_rx_frame(struct b4xxp_span *bspan) spin_unlock_irqrestore(&b4->fifolock, irq_flags); /* don't send STAT byte to DAHDI */ - dahdi_hdlc_putbuf(bspan->sigchan, buf, (j == WCB4XXP_HDLC_BUF_LEN) ? j : j - 1); + if (bspan->sigchan) + dahdi_hdlc_putbuf(bspan->sigchan, buf, (j == WCB4XXP_HDLC_BUF_LEN) ? j : j - 1); zleft -= j; if (DBG_HDLC && DBG_SPANFILTER) { @@ -1595,6 +1596,11 @@ static int hdlc_rx_frame(struct b4xxp_span *bspan) get_F(f1, f2, flen); spin_unlock_irqrestore(&b4->fifolock, irq_flags); + /* If this channel is not configured with a signalling span we don't + * need to notify the rest of dahdi about this frame. */ + if (!bspan->sigchan) + return flen; + ++bspan->frames_in; if (zlen < 3) { if (DBG_HDLC && DBG_SPANFILTER) |