diff options
author | brian <brian@FreeBSD.org> | 1998-08-25 17:48:43 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 1998-08-25 17:48:43 +0000 |
commit | e47c43b4fc04ac586c00fa902e1254320b31cb4b (patch) | |
tree | e5dec176973c974e87e8b659a8cabdde99bf251e /usr.sbin/ppp/link.c | |
parent | 9279ee9f4d30bff6857515dc6086e5314cfb6878 (diff) | |
download | FreeBSD-src-e47c43b4fc04ac586c00fa902e1254320b31cb4b.zip FreeBSD-src-e47c43b4fc04ac586c00fa902e1254320b31cb4b.tar.gz |
If we've got a full output buffer queue and cannot send
anything for two mintues (see ``set choked'' and ``show
bundle''), nuke the ip, mp and link level buffer queues.
This should fix problems where ``ppp -auto'' seems to stop
responding after failing to connect to the peer a few times.
Diffstat (limited to 'usr.sbin/ppp/link.c')
-rw-r--r-- | usr.sbin/ppp/link.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.sbin/ppp/link.c b/usr.sbin/ppp/link.c index 88a9010..8bff040 100644 --- a/usr.sbin/ppp/link.c +++ b/usr.sbin/ppp/link.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: link.c,v 1.3 1998/06/27 23:48:49 brian Exp $ + * $Id: link.c,v 1.4 1998/08/07 18:42:49 brian Exp $ * */ @@ -67,6 +67,16 @@ link_SequenceQueue(struct link *l) mbuf_Enqueue(l->Queue + PRI_LINK, mbuf_Dequeue(l->Queue + PRI_NORMAL)); } +void +link_DeleteQueue(struct link *l) +{ + struct mqueue *queue; + + for (queue = l->Queue; queue < l->Queue + LINK_QUEUES; queue++) + while (queue->top) + mbuf_Free(mbuf_Dequeue(queue)); +} + int link_QueueLen(struct link *l) { |