diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-03-06 14:00:36 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-03-06 14:00:36 -0300 |
| commit | caf4303b84403b3b674593f742460fa690edd4a2 (patch) | |
| tree | 08e56db9086a91957aaa2c3024086ef7845a4ccb /mullvad-daemon/src | |
| parent | 3e0d994cd56c6862869d0771c01c6f24b89bd880 (diff) | |
| parent | 2a8658f0b17ac99b230261d0f98f998e547557cf (diff) | |
| download | mullvadvpn-caf4303b84403b3b674593f742460fa690edd4a2.tar.xz mullvadvpn-caf4303b84403b3b674593f742460fa690edd4a2.zip | |
Merge branch 'warn-when-user-isnt-root'
Diffstat (limited to 'mullvad-daemon/src')
| -rw-r--r-- | mullvad-daemon/src/main.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mullvad-daemon/src/main.rs b/mullvad-daemon/src/main.rs index d6cc7755fc..821206636d 100644 --- a/mullvad-daemon/src/main.rs +++ b/mullvad-daemon/src/main.rs @@ -14,6 +14,8 @@ extern crate clap; #[macro_use] extern crate error_chain; extern crate futures; +#[cfg(unix)] +extern crate libc; #[macro_use] extern crate log; @@ -766,6 +768,10 @@ fn run() -> Result<()> { .chain_err(|| "Unable to initialize logger")?; log_version(); + if !running_as_admin() { + warn!("Running daemon as a non-administrator user, clients might refuse to connect"); + } + let resource_dir = config.resource_dir.unwrap_or_else(|| get_resource_dir()); let daemon = Daemon::new(config.tunnel_log_file, resource_dir, config.require_auth) .chain_err(|| "Unable to initialize daemon")?; @@ -805,3 +811,15 @@ fn get_resource_dir() -> PathBuf { } } } + +#[cfg(unix)] +fn running_as_admin() -> bool { + let uid = unsafe { libc::getuid() }; + uid == 0 +} + +#[cfg(windows)] +fn running_as_admin() -> bool { + // TODO: Check if user is administrator correctly on Windows. + true +} |
