]> www.infradead.org Git - users/dwmw2/openconnect.git/commitdiff
trigger periodic TNCC even if we have no packets to receive from oNCP, and don't...
authorDaniel Lenski <dlenski@gmail.com>
Wed, 8 Apr 2020 06:25:17 +0000 (23:25 -0700)
committerDaniel Lenski <dlenski@gmail.com>
Tue, 21 Apr 2020 16:41:16 +0000 (09:41 -0700)
Signed-off-by: Daniel Lenski <dlenski@gmail.com>
auth-juniper.c
oncp.c

index bafbae5808125902433cd2853971821113dfe059..7ca1361ab07d4e902420fba521fcfec49e46bd0d 100644 (file)
@@ -498,7 +498,7 @@ static int tncc_preauth(struct openconnect_info *vpninfo)
                goto respfail;
        if (len > 0) {
                int interval = atoi(recvbuf);
-               if (interval != vpninfo->trojan_interval) {
+               if (interval != 0) {
                        vpninfo->trojan_interval = interval;
                        vpn_progress(vpninfo, PRG_DEBUG,
                                     _("Got reauth interval from TNCC: %d seconds\n"),
diff --git a/oncp.c b/oncp.c
index 72b5ed77c0e291dbbfc108d91e7b8e3cb8086b4a..243143daaa0d002b68824f487d7c6fecd68dff61 100644 (file)
--- a/oncp.c
+++ b/oncp.c
@@ -899,6 +899,12 @@ int oncp_mainloop(struct openconnect_info *vpninfo, int *timeout, int readable)
        int ret;
        int work_done = 0;
 
+       /* Periodic TNCC */
+       if (trojan_check_deadline(vpninfo, timeout)) {
+               oncp_send_tncc_command(vpninfo, 0);
+               return 1;
+       }
+
        if (vpninfo->ssl_fd == -1)
                goto do_reconnect;
 
@@ -915,11 +921,6 @@ int oncp_mainloop(struct openconnect_info *vpninfo, int *timeout, int readable)
                   handle that */
                int receive_mtu = MAX(16384, vpninfo->ip_info.mtu);
 
-               if (trojan_check_deadline(vpninfo, timeout)) {
-                       /* Periodic TNCC */
-                       oncp_send_tncc_command(vpninfo, 0);
-               }
-
                len = receive_mtu + vpninfo->pkt_trailer;
                if (!vpninfo->cstp_pkt) {
                        vpninfo->cstp_pkt = malloc(sizeof(struct pkt) + len);