diff options
author | Volth <volth@webmaster.ms> | 2017-07-27 13:17:13 +0000 |
---|---|---|
committer | Robin Gloster <mail@glob.in> | 2017-07-27 18:04:33 +0200 |
commit | 688dc4e4c3fd76cc77c75839082631d88c942794 (patch) | |
tree | 1628016d934ae978211f130afda6c62301763d1c | |
parent | 4456076bc72c8be3e425a0349e4bd768e474130d (diff) | |
download | nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.tar nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.tar.gz nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.tar.bz2 nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.tar.lz nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.tar.xz nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.tar.zst nixlib-688dc4e4c3fd76cc77c75839082631d88c942794.zip |
tinc_pre: avoid infinite loop with EBADFD on network restart
-rw-r--r-- | nixos/modules/services/networking/tinc.nix | 3 | ||||
-rw-r--r-- | pkgs/tools/networking/tinc/pre.nix | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix index 42341b2d4123..31a588318f6a 100644 --- a/nixos/modules/services/networking/tinc.nix +++ b/nixos/modules/services/networking/tinc.nix @@ -169,7 +169,8 @@ in serviceConfig = { Type = "simple"; PIDFile = "/run/tinc.${network}.pid"; - Restart = "on-failure"; + Restart = "always"; + RestartSec = "3"; }; preStart = '' mkdir -p /etc/tinc/${network}/hosts diff --git a/pkgs/tools/networking/tinc/pre.nix b/pkgs/tools/networking/tinc/pre.nix index c09c9a45756d..1d80db689917 100644 --- a/pkgs/tools/networking/tinc/pre.nix +++ b/pkgs/tools/networking/tinc/pre.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, autoreconfHook, texinfo, ncurses, readline, zlib, lzo, openssl }: +{ stdenv, fetchgit, fetchpatch, autoreconfHook, texinfo, ncurses, readline, zlib, lzo, openssl }: stdenv.mkDerivation rec { name = "tinc-${version}"; @@ -19,6 +19,14 @@ stdenv.mkDerivation rec { substituteInPlace configure.ac --replace UNKNOWN ${version} ''; + patches = [ + # Avoid infinite loop with "Error while reading from Linux tun/tap device (tun mode) /dev/net/tun: File descriptor in bad state" on network restart + (fetchpatch { + url = https://github.com/gsliepen/tinc/compare/acefa66...e4544db.patch; + sha256 = "1jz7anqqzk7j96l5ifggc2knp14fmbsjdzfrbncxx0qhb6ihdcvn"; + }) + ]; + postInstall = '' rm $out/bin/tinc-gui ''; |