summaryrefslogtreecommitdiffstats
path: root/nixos/modules
diff options
context:
space:
mode:
authorSamuel Dionne-Riel <samuel@dionne-riel.com>2019-06-14 21:29:26 -0400
committerGitHub <noreply@github.com>2019-06-14 21:29:26 -0400
commit8c14a6f641b7f3baa57e55e784a0d8626325446b (patch)
tree2d847b64b8d9f575a37e72bbe3b1cccecee3f515 /nixos/modules
parente0818a15305561ea1ebe36203d914465fd71453d (diff)
parentd9f7bac91fe5e8eca85d9a68e61f009714ee064b (diff)
Merge pull request #63135 from Ma27/captive-browser-regression
nixos/captive-browser: fix module
Diffstat (limited to 'nixos/modules')
-rw-r--r--nixos/modules/programs/captive-browser.nix20
1 files changed, 17 insertions, 3 deletions
diff --git a/nixos/modules/programs/captive-browser.nix b/nixos/modules/programs/captive-browser.nix
index 9765a5fa3df7..55d474e5c9db 100644
--- a/nixos/modules/programs/captive-browser.nix
+++ b/nixos/modules/programs/captive-browser.nix
@@ -15,6 +15,8 @@ in
package = mkOption {
type = types.package;
default = pkgs.captive-browser;
+ defaultText = "pkgs.captive-browser";
+ description = "Which package to use for captive-browser";
};
interface = mkOption {
@@ -35,7 +37,7 @@ in
''http://cache.nixos.org/''
];
description = ''
- the shell (/bin/sh) command executed once the proxy starts.
+ The shell (/bin/sh) command executed once the proxy starts.
When browser exits, the proxy exits. An extra env var PROXY is available.
Here, we use a separate Chrome instance in Incognito mode, so that
@@ -51,7 +53,7 @@ in
dhcp-dns = mkOption {
type = types.str;
description = ''
- the shell (/bin/sh) command executed to obtain the DHCP
+ The shell (/bin/sh) command executed to obtain the DHCP
DNS server address. The first match of an IPv4 regex is used.
IPv4 only, because let's be real, it's a captive portal.
'';
@@ -62,6 +64,16 @@ in
default = "localhost:1666";
description = ''the listen address for the SOCKS5 proxy server'';
};
+
+ bindInterface = mkOption {
+ default = true;
+ type = types.bool;
+ description = ''
+ Binds <package>captive-browser</package> to the network interface declared in
+ <literal>cfg.interface</literal>. This can be used to avoid collisions
+ with private subnets.
+ '';
+ };
};
};
@@ -99,7 +111,9 @@ in
browser = """${cfg.browser}"""
dhcp-dns = """${cfg.dhcp-dns}"""
socks5-addr = """${cfg.socks5-addr}"""
- bind-device = """${cfg.interface}"""
+ ${optionalString cfg.bindInterface ''
+ bind-device = """${cfg.interface}"""
+ ''}
''}
exec ${cfg.package}/bin/captive-browser
'';