diff options
author | Graham Christensen <graham@grahamc.com> | 2019-06-25 18:08:58 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-25 18:08:58 -0400 |
commit | 7b8a7cee78468919b98cc4c8694d84165f28ef68 (patch) | |
tree | 5a143ce8f99aa085aec92d787b7b96b25eb1fcce | |
parent | 38c28ef10c54bf4899d467854e893842cffb4de6 (diff) | |
parent | 5121f8d1e6a82e949563111843c1f577a9ecf9b4 (diff) | |
download | nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.tar nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.tar.gz nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.tar.bz2 nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.tar.lz nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.tar.xz nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.tar.zst nixlib-7b8a7cee78468919b98cc4c8694d84165f28ef68.zip |
Merge pull request #63699 from NinjaTrappeur/nin-hostapd-noscan
hostapd: add noscan mode
-rw-r--r-- | nixos/modules/services/networking/hostapd.nix | 14 | ||||
-rw-r--r-- | pkgs/os-specific/linux/hostapd/default.nix | 10 |
2 files changed, 20 insertions, 4 deletions
diff --git a/nixos/modules/services/networking/hostapd.nix b/nixos/modules/services/networking/hostapd.nix index 7add48308f80..54a5bed2563f 100644 --- a/nixos/modules/services/networking/hostapd.nix +++ b/nixos/modules/services/networking/hostapd.nix @@ -30,10 +30,11 @@ let ctrl_interface=/run/hostapd ctrl_interface_group=${cfg.group} - ${if cfg.wpa then '' + ${optionalString cfg.wpa '' wpa=2 wpa_passphrase=${cfg.wpaPassphrase} - '' else ""} + ''} + ${optionalString cfg.noScan "noscan=1"} ${cfg.extraConfig} '' ; @@ -69,6 +70,14 @@ in ''; }; + noScan = mkOption { + default = false; + description = '' + Do not scan for overlapping BSSs in HT40+/- mode. + Caution: turning this on will violate regulatory requirements! + ''; + }; + driver = mkOption { default = "nl80211"; example = "hostapd"; @@ -162,6 +171,7 @@ in after = [ "sys-subsystem-net-devices-${escapedInterface}.device" ]; bindsTo = [ "sys-subsystem-net-devices-${escapedInterface}.device" ]; requiredBy = [ "network-link-${cfg.interface}.service" ]; + wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${pkgs.hostapd}/bin/hostapd ${configFile}"; diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix index 73174779c8c6..1ec98cb9c517 100644 --- a/pkgs/os-specific/linux/hostapd/default.nix +++ b/pkgs/os-specific/linux/hostapd/default.nix @@ -1,7 +1,11 @@ { stdenv, fetchurl, pkgconfig, libnl, openssl, sqlite ? null }: with stdenv.lib; -stdenv.mkDerivation rec { +let noScanPatch = fetchurl { + url="https://git.telliq.com/gtu/openwrt/raw/master/package/network/services/hostapd/patches/300-noscan.patch"; + sha256 = "04wg4yjc19wmwk6gia067z99gzzk9jacnwxh5wyia7k5wg71yj5k"; + }; +in stdenv.mkDerivation rec { name = "hostapd-${version}"; version = "2.8"; @@ -13,6 +17,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ libnl openssl sqlite ]; + patches = [ noScanPatch ]; + outputs = [ "out" "man" ]; extraConfig = '' @@ -66,7 +72,7 @@ stdenv.mkDerivation rec { repositories.git = git://w1.fi/hostap.git; description = "A user space daemon for access point and authentication servers"; license = licenses.gpl2; - maintainers = with maintainers; [ phreedom ]; + maintainers = with maintainers; [ phreedom ninjatrappeur ]; platforms = platforms.linux; }; } |