summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Fedoryshchenko <denys.f@collabora.com>2026-06-23 17:34:44 +0300
committerDenys Fedoryshchenko <denys.f@collabora.com>2026-06-23 17:36:34 +0300
commitaf89a0a59765abb4a74b680aa7fe8c1b75488221 (patch)
tree5d7b702f9f4f007d58964002c9dff41e55df8f82
parent3004db8bb2f3f867d521f2378a2c1df72412be24 (diff)
downloadaccel-ppp-af89a0a59765abb4a74b680aa7fe8c1b75488221.tar.gz
accel-ppp-af89a0a59765abb4a74b680aa7fe8c1b75488221.zip
sstp: drain PPP write queue before deferring
-rw-r--r--accel-pppd/ctrl/sstp/sstp.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/accel-pppd/ctrl/sstp/sstp.c b/accel-pppd/ctrl/sstp/sstp.c
index 154afcf8..6c2b9ca9 100644
--- a/accel-pppd/ctrl/sstp/sstp.c
+++ b/accel-pppd/ctrl/sstp/sstp.c
@@ -1240,7 +1240,7 @@ static int ppp_write(struct triton_md_handler_t *h)
ssize_t n;
int i;
- if (!list_empty(&conn->ppp_queue)) {
+ while (!list_empty(&conn->ppp_queue)) {
i = n = 0;
list_for_each_entry(buf, &conn->ppp_queue, entry) {
if (i < PPP_BUF_IOVEC && n < PPP_BUF_SIZE) {
@@ -1272,9 +1272,6 @@ static int ppp_write(struct triton_md_handler_t *h)
list_del(&buf->entry);
free_buf(buf);
} while (n > 0);
-
- if (!list_empty(&conn->ppp_queue))
- goto defer;
}
triton_md_disable_handler(h, MD_MODE_WRITE);
return 0;