From 39c787740665ef1a1faf0fa0de93d5576e547ad3 Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Thu, 31 Jul 2014 16:22:47 +0100 Subject: [PATCH] Remove static out_pkt Signed-off-by: David Woodhouse --- library.c | 1 + mainloop.c | 4 ++-- openconnect-internal.h | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/library.c b/library.c index e5c4988e..c31b4858 100644 --- a/library.c +++ b/library.c @@ -237,6 +237,7 @@ void openconnect_vpninfo_free(struct openconnect_info *vpninfo) deflateEnd(&vpninfo->deflate_strm); free(vpninfo->deflate_pkt); + free(vpninfo->tun_pkt); free(vpninfo); } diff --git a/mainloop.c b/mainloop.c index 3102156b..6e7501e5 100644 --- a/mainloop.c +++ b/mainloop.c @@ -47,8 +47,6 @@ int queue_new_packet(struct pkt **q, void *buf, int len) return 0; } -static struct pkt *out_pkt; - /* This is here because it's generic and hence can't live in either of the tun*.c files for specific platforms */ int tun_mainloop(struct openconnect_info *vpninfo, int *timeout) @@ -56,6 +54,7 @@ int tun_mainloop(struct openconnect_info *vpninfo, int *timeout) int work_done = 0; if (read_fd_monitored(vpninfo, tun)) { + struct pkt *out_pkt = vpninfo->tun_pkt; while (1) { int len = vpninfo->ip_info.mtu; @@ -84,6 +83,7 @@ int tun_mainloop(struct openconnect_info *vpninfo, int *timeout) break; } } + vpninfo->tun_pkt = out_pkt; } else if (vpninfo->outgoing_qlen < vpninfo->max_qlen) { monitor_read_fd(vpninfo, tun); } diff --git a/openconnect-internal.h b/openconnect-internal.h index ba0db027..f5c370ce 100644 --- a/openconnect-internal.h +++ b/openconnect-internal.h @@ -307,6 +307,8 @@ struct openconnect_info { struct pkt *current_ssl_pkt; struct pkt *pending_deflated_pkt; + struct pkt *tun_pkt; + z_stream inflate_strm; uint32_t inflate_adler32; z_stream deflate_strm;