]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
verb 5 logging wrongly reports received bytes
authorDavid Sommerseth <dazo@users.sourceforge.net>
Fri, 19 Feb 2010 16:32:56 +0000 (17:32 +0100)
committerDavid Sommerseth <dazo@users.sourceforge.net>
Thu, 29 Apr 2010 18:22:07 +0000 (20:22 +0200)
With --verb 5, openvpn logs a single letter (rwRW) for each package
received or sent. I recently ran into a problem with the tun device on
Linux where the read from that device returned 0. Unfortunately this was
also logged as "r", which made me assume that openvpn had received
something, while it actually hadn't.

(See https://dev.openwrt.org/ticket/6650 for the bug that made me find out
about this problem with openvpn.)

I'm attaching a patch which prevents openvpn from logging "r" or "R" when
it didn't actually read anything. This is against openvpn 2.1-rc20, but
probably still applies to the most recent version.

This patch was received anonymously via the sf.net bug tracker:
<http://sourceforge.net/tracker/?func=detail&atid=454719&aid=2951003&group_id=48978>

Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
Acked-by: David Sommerseth <dazo@users.sourceforge.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
forward.c

index 752a566b8f52bd62a66f5c19c9a0a3bafbfbd1e2..4edbe59185d5e1acfc90677c64396d6a2934c14c 100644 (file)
--- a/forward.c
+++ b/forward.c
@@ -755,7 +755,7 @@ process_incoming_link (struct context *c)
 
   /* log incoming packet */
 #ifdef LOG_RW
-  if (c->c2.log_rw)
+  if (c->c2.log_rw && c->c2.buf.len > 0)
     fprintf (stderr, "R");
 #endif
   msg (D_LINK_RW, "%s READ [%d] from %s: %s",
@@ -965,7 +965,7 @@ process_incoming_tun (struct context *c)
     c->c2.tun_read_bytes += c->c2.buf.len;
 
 #ifdef LOG_RW
-  if (c->c2.log_rw)
+  if (c->c2.log_rw && c->c2.buf.len > 0)
     fprintf (stderr, "r");
 #endif