]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Add support for buffer-size= to UDP logging (#359) M-staged-PR359
authormahdi1001 <mahdi1001@users.noreply.github.com>
Sun, 10 Feb 2019 08:08:55 +0000 (08:08 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Mon, 11 Feb 2019 18:09:02 +0000 (18:09 +0000)
Allow admin control of buffering for log outputs written to UDP
receivers using the buffer-size= parameter.

buffer-size=0byte disables buffering and sends UDP packets
immediately regardless of line size.

When non-0 values are used lines shorter than the buffer may be
delayed and aggregated into a later UDP packet.

Log lines larger than the buffer size will be sent immediately
and may trigger delivery of previously buffered content to
retain log order (at time of send, not UDP arrival).

To avoid truncation problems known with common recipients
the buffer size remains capped at 1400 bytes.

src/log/ModUdp.cc

index 1bd206bcf880136bd3988dac0637cd7a12ee2e21..4b82ec3ab0563fba77594b6a0cb29239ec714199 100644 (file)
@@ -205,7 +205,8 @@ logfile_mod_udp_open(Logfile * lf, const char *path, size_t bufsz, int fatal_fla
      * applications like netcat have a small default receive buffer and will
      * truncate!
      */
-    bufsz = 1400;
+    if (bufsz > 1400)
+        bufsz = 1400;
     if (bufsz > 0) {
         ll->buf = static_cast<char*>(xmalloc(bufsz));
         ll->bufsz = bufsz;