summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-03-06 14:00:36 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-03-06 14:00:36 -0300
commitcaf4303b84403b3b674593f742460fa690edd4a2 (patch)
tree08e56db9086a91957aaa2c3024086ef7845a4ccb /mullvad-daemon/src
parent3e0d994cd56c6862869d0771c01c6f24b89bd880 (diff)
parent2a8658f0b17ac99b230261d0f98f998e547557cf (diff)
downloadmullvadvpn-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.rs18
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
+}