aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Kurschel <topical@gmx.net>2021-03-15 13:28:52 +0000
committerKristof Provost <kp@FreeBSD.org>2021-03-31 13:09:08 +0000
commit343fee4cd023da0f7ed64e19f3d2351083fe963c (patch)
treeda25e0b6d4c57fd579cfa910e0dcf649b4ffeff8
parenta25c17022e2d6344dcbc6192af276d2798d76d44 (diff)
downloadsrc-343fee4cd023da0f7ed64e19f3d2351083fe963c.tar.gz
src-343fee4cd023da0f7ed64e19f3d2351083fe963c.zip
pfsync: Unconditionally push packets when requesting state updates
When we request a bulk sync we need to ensure we actually send out that request, not just buffer it until we have enough data to send a full packet. PR: 254236 MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D29271 (cherry picked from commit 9f2e5184173f6af70306678b018270df9a9600f2)
-rw-r--r--sys/netpfil/pf/if_pfsync.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c
index cf2ff2ef0926..06bad556e885 100644
--- a/sys/netpfil/pf/if_pfsync.c
+++ b/sys/netpfil/pf/if_pfsync.c
@@ -1960,7 +1960,7 @@ pfsync_request_update(u_int32_t creatorid, u_int64_t id)
nlen += sizeof(struct pfsync_subheader);
if (b->b_len + nlen > sc->sc_ifp->if_mtu) {
- pfsync_sendout(1, 0);
+ pfsync_sendout(0, 0);
nlen = sizeof(struct pfsync_subheader) +
sizeof(struct pfsync_upd_req);
@@ -1968,6 +1968,8 @@ pfsync_request_update(u_int32_t creatorid, u_int64_t id)
TAILQ_INSERT_TAIL(&b->b_upd_req_list, item, ur_entry);
b->b_len += nlen;
+
+ pfsync_push(b);
}
static bool