]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix termination when windows suspends/sleeps
authorSelva Nair <selva.nair@gmail.com>
Wed, 4 Nov 2015 18:59:38 +0000 (13:59 -0500)
committerGert Doering <gert@greenie.muc.de>
Fri, 6 Nov 2015 21:02:01 +0000 (22:02 +0100)
When TUN/TAP I/O operation is aborted, restart with a SIGHUP instead of
terminate. The abort error from TAP is often triggered by system suspend
which is fully recoverable on resume. Catastrophic events will get caught
later during the restart.  This solves the abnormal termination during
suspend/resume.

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1446663578-14471-1-git-send-email-selva.nair@gmail.com>
URL: http://article.gmane.org/gmane.network.openvpn.devel/10438
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit ea66a2b5cdb21422139c421b4d3733e1c1c3937e)

src/openvpn/forward.c

index 217fbb38a2375ea49144293d6932aff81a7e3336..d55fa3b204ede2368aa4c26d77abe62c14e4df9d 100644 (file)
@@ -956,8 +956,9 @@ read_incoming_tun (struct context *c)
   /* Was TUN/TAP I/O operation aborted? */
   if (tuntap_abort(c->c2.buf.len))
   {
-     register_signal(c, SIGTERM, "tun-abort");
-     msg(M_FATAL, "TUN/TAP I/O operation aborted, exiting");
+     register_signal(c, SIGHUP, "tun-abort");
+     c->persist.restart_sleep_seconds = 10;
+     msg(M_INFO, "TUN/TAP I/O operation aborted, restarting");
      perf_pop();
      return;
   }