summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ppp/link.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/link.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/link.c')
-rw-r--r--usr.sbin/ppp/link.c12
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)
{
OpenPOWER on IntegriCloud