summaryrefslogtreecommitdiffstats
path: root/polyp/main.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-09-01 00:23:51 +0000
committerLennart Poettering <lennart@poettering.net>2004-09-01 00:23:51 +0000
commit34fe8bd893ed9c7531bc4898b934ef9d4cdf3e68 (patch)
tree816a8543d3521eb43fb49c67af33afc44769bd91 /polyp/main.c
parent9618aea5df5bf2c5069575f28a935c2039fc55e0 (diff)
add support for SCHED_FIFO
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@163 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp/main.c')
-rw-r--r--polyp/main.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/polyp/main.c b/polyp/main.c
index de02a110..526bf744 100644
--- a/polyp/main.c
+++ b/polyp/main.c
@@ -46,6 +46,14 @@
static struct pa_mainloop *mainloop;
+static void drop_root(void) {
+ if (getuid() != 0 && geteuid() == 0) {
+ fprintf(stderr, __FILE__": started SUID root, dropping root rights.\n");
+ setuid(getuid());
+ seteuid(getuid());
+ }
+}
+
static void exit_signal_callback(struct pa_mainloop_api*m, struct pa_signal_event *e, int sig, void *userdata) {
m->quit(m, 1);
fprintf(stderr, __FILE__": got signal.\n");
@@ -84,6 +92,18 @@ int main(int argc, char *argv[]) {
goto finish;
}
+ if (cmdline->version) {
+ printf(PACKAGE_NAME" "PACKAGE_VERSION"\n");
+ retval = 0;
+ goto finish;
+ }
+
+ if (cmdline->high_priority)
+ pa_raise_priority();
+
+ if (!cmdline->stay_root)
+ drop_root();
+
if (cmdline->daemonize) {
pid_t child;