summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/ip.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1998-08-25 17:48:43 +0000
committerbrian <brian@FreeBSD.org>1998-08-25 17:48:43 +0000
commite47c43b4fc04ac586c00fa902e1254320b31cb4b (patch)
treee5dec176973c974e87e8b659a8cabdde99bf251e /usr.sbin/ppp/ip.c
parent9279ee9f4d30bff6857515dc6086e5314cfb6878 (diff)
downloadFreeBSD-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/ip.c')
-rw-r--r--usr.sbin/ppp/ip.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.sbin/ppp/ip.c b/usr.sbin/ppp/ip.c
index 9d80c24..e5f1d53 100644
--- a/usr.sbin/ppp/ip.c
+++ b/usr.sbin/ppp/ip.c
@@ -17,7 +17,7 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * $Id: ip.c,v 1.49 1998/07/11 19:05:24 brian Exp $
+ * $Id: ip.c,v 1.50 1998/08/07 18:42:48 brian Exp $
*
* TODO:
* o Return ICMP message for filterd packet
@@ -505,6 +505,16 @@ ip_Enqueue(int pri, char *ptr, int count)
mbuf_Enqueue(&IpOutputQueues[pri], bp);
}
+void
+ip_DeleteQueue()
+{
+ struct mqueue *queue;
+
+ for (queue = IpOutputQueues; queue < IpOutputQueues + PRI_MAX; queue++)
+ while (queue->top)
+ mbuf_Free(mbuf_Dequeue(queue));
+}
+
int
ip_QueueLen()
{
OpenPOWER on IntegriCloud