summaryrefslogtreecommitdiff
path: root/src/anytun.cpp
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2009-01-30 18:26:31 +0000
committerChristian Pointner <equinox@anytun.org>2009-01-30 18:26:31 +0000
commite8174227dec7cb107600a227647fa1abedcb5e63 (patch)
tree8194d03d8acbae15970a86f5198d736b62f82663 /src/anytun.cpp
parentsmall makefile cleanup (diff)
droping privileges is now possible without chroot
added groupname command line option
Diffstat (limited to 'src/anytun.cpp')
-rw-r--r--src/anytun.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/anytun.cpp b/src/anytun.cpp
index 19c4587..8f6a0c9 100644
--- a/src/anytun.cpp
+++ b/src/anytun.cpp
@@ -346,6 +346,8 @@ int main(int argc, char* argv[])
}
#ifndef NO_DAEMON
+ PrivInfo privs(gOpt.getUsername(), gOpt.getGroupname());
+
std::ofstream pidFile;
if(gOpt.getPidFile() != "") {
pidFile.open(gOpt.getPidFile().c_str());
@@ -412,10 +414,12 @@ int main(int argc, char* argv[])
}
#endif
#ifndef NO_DAEMON
- if(gOpt.getChroot())
- chrootAndDrop(gOpt.getChrootDir(), gOpt.getUsername());
- if(gOpt.getDaemonize())
- {
+ if(gOpt.getChrootDir() != "")
+ do_chroot(gOpt.getChrootDir());
+
+ privs.drop();
+
+ if(gOpt.getDaemonize()) {
daemonize();
daemonized = true;
}