]> www.infradead.org Git - users/dwmw2/openconnect.git/commitdiff
we should still try to cleanly close the session if tun device creation fails
authorDaniel Lenski <dlenski@gmail.com>
Sun, 17 May 2020 00:09:24 +0000 (17:09 -0700)
committerDaniel Lenski <dlenski@gmail.com>
Sun, 17 May 2020 01:08:14 +0000 (18:08 -0700)
Signed-off-by: Daniel Lenski <dlenski@gmail.com>
main.c
mainloop.c

diff --git a/main.c b/main.c
index cc3dd91ee3328e38ef7dd0992670acf37f16933e..682afacf05a9a143fd5282f5e6a377ffc6abd83a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -2014,6 +2014,10 @@ int main(int argc, char **argv)
                vpn_progress(vpninfo, PRG_INFO, _("User detached from session (SIGHUP); exiting.\n"));
                ret = 0;
                break;
+       case -EIO:
+               vpn_progress(vpninfo, PRG_INFO, _("Unrecoverable I/O error; exiting.\n"));
+               ret = 0;
+               break;
        default:
                vpn_progress(vpninfo, PRG_ERR, _("Unknown error; exiting.\n"));
                ret = 1;
index 7986474339cad5d8250badcbd5778f7588386b35..f78c0c2a26f0f44dfbd336e276ac89fe21c75ed2 100644 (file)
@@ -132,6 +132,8 @@ static int setup_tun_device(struct openconnect_info *vpninfo)
        ret = openconnect_setup_tun_device(vpninfo, vpninfo->vpnc_script, vpninfo->ifname);
        if (ret) {
                fprintf(stderr, _("Set up tun device failed\n"));
+               if (!vpninfo->quit_reason)
+                       vpninfo->quit_reason = "Set up tun device failed";
                return ret;
        }