From 7f997cc3fc11e48c33d398d502b9d288c47f9726 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Thu, 15 Jan 2015 17:03:41 +0100 Subject: [PATCH] only transmit a compressed packet, if it reduces the size --- src/worker-vpn.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/worker-vpn.c b/src/worker-vpn.c index 74ecdb7b..d4a4e503 100644 --- a/src/worker-vpn.c +++ b/src/worker-vpn.c @@ -1240,15 +1240,17 @@ static int tun_mainloop(struct worker_st *ws, struct timespec *tnow) return -1; } - dtls_to_send.data = ws->decomp; - dtls_to_send.size = ret; - dtls_type = AC_PKT_COMPRESSED; + if (ret < l) { + dtls_to_send.data = ws->decomp; + dtls_to_send.size = ret; + dtls_type = AC_PKT_COMPRESSED; - if (ws->cstp_selected_comp) { - if (ws->cstp_selected_comp->id == ws->dtls_selected_comp->id) { - cstp_to_send.data = ws->decomp; - cstp_to_send.size = ret; - cstp_type = AC_PKT_COMPRESSED; + if (ws->cstp_selected_comp) { + if (ws->cstp_selected_comp->id == ws->dtls_selected_comp->id) { + cstp_to_send.data = ws->decomp; + cstp_to_send.size = ret; + cstp_type = AC_PKT_COMPRESSED; + } } } } else if (ws->cstp_selected_comp != NULL && l > MIN_COMPRESSED_SIZE) { @@ -1259,9 +1261,11 @@ static int tun_mainloop(struct worker_st *ws, struct timespec *tnow) return -1; } - cstp_to_send.data = ws->decomp; - cstp_to_send.size = ret; - cstp_type = AC_PKT_COMPRESSED; + if (ret < l) { + cstp_to_send.data = ws->decomp; + cstp_to_send.size = ret; + cstp_type = AC_PKT_COMPRESSED; + } } /* only transmit if allowed */