summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordeva <deva>2006-07-20 20:32:42 +0000
committerdeva <deva>2006-07-20 20:32:42 +0000
commit01aa5ee5b68f8a8e09f19753072d2275a95d21b0 (patch)
tree31bc63fa9089e5d3adcf93724d735a4e5f54977d
parenteb01cce3f667e36f201acb4280a68a05556e6782 (diff)
Added getopt
Cleaned out the old daemon code. No need for it anymore.
-rw-r--r--lib/Makefile.am2
-rw-r--r--lib/daemon.cc125
-rw-r--r--lib/daemon.h45
3 files changed, 0 insertions, 172 deletions
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 0707d08..18d37d6 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -4,7 +4,6 @@ lib_LTLIBRARIES = libmiav.la
libmiav_la_SOURCES = \
aa_socket.cc \
- daemon.cc \
file.cc \
frame.cc \
info.cc \
@@ -26,7 +25,6 @@ libmiav_la_SOURCES = \
EXTRA_DIST = \
aa_socket.h \
config.h \
- daemon.h \
dv.h \
file.h \
frame.h \
diff --git a/lib/daemon.cc b/lib/daemon.cc
deleted file mode 100644
index fc052ff..0000000
--- a/lib/daemon.cc
+++ /dev/null
@@ -1,125 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/***************************************************************************
- * daemon.cc
- *
- * Thu Jun 9 10:27:59 CEST 2005
- * Copyright 2005 Bent Bisballe
- * deva@aasimon.org
- ****************************************************************************/
-
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "daemon.h"
-
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <stdio.h>
-
-// For getpwent and getgrent
-#include <sys/types.h>
-#include <grp.h>
-#include <pwd.h>
-
-// For strcmp
-#include <string.h>
-
-Daemon::Daemon()
-{}
-
-Daemon::~Daemon()
-{}
-
-int Daemon::run(const char *user, const char* group)
-{
- // Fetch user id
- int uid = -1;
- struct passwd *p = getpwent();
- while(p) {
- if(strcmp(p->pw_name, user) == 0) uid = p->pw_uid;
- p = getpwent();
- }
- if(uid == -1) {
- fprintf(stderr, "Could not find user \"%s\" in /etc/passwd file.\n", user);
- }
-
- // Fetch group id
- int gid = -1;
- struct group *g = getgrent();
- while(g) {
- if(strcmp(g->gr_name, group) == 0) gid = g->gr_gid;
- g = getgrent();
- }
- if(gid == -1) {
- fprintf(stderr, "Could not find group \"%s\" in /etc/group file.\n", group);
- }
-
-
- /*
- chdir("/");
- umask(0);
-
- f = fork();
- switch(f) {
- case -1: // Fork error
- perror("Fork in daemon.cc");
- return 1;
-
- case 0: // Forked child
- // Switch to given group
- if(setgid(gid) != 0) {
- fprintf(stderr, "Failed to change to group \"%s\" (gid: %d), quitting.\n", group, gid);
- perror("");
- fprintf(stderr, "Running daemon as current group\n");
- }
-
- // Switch to given user
- if(setuid(uid) != 0) {
- fprintf(stderr, "Failed to change to user \"%s\" (uid: %d), quitting.\n", user, uid);
- perror("");
- fprintf(stderr, "Running daemon as current user\n");
- }
-
- // Redirect stdin, stdout and stderr to /dev/null
- fd = open("/dev/null", O_NOCTTY | O_RDWR, 0666);
-
- int f;
- int fd;
-
- dup2(0, fd);
- dup2(1, fd);
- dup2(2, fd);
-
- setsid();
-
- signal (SIGTERM, SIG_IGN);
- signal (SIGINT, SIG_IGN);
- signal (SIGHUP, SIG_IGN);
-
- return daemon_main();
-
- default: // Parent
- // exit(0);
- return 0;
- }
- */
-
- // Glibc to do all of the above
- daemon(0,0);
- return daemon_main();
-}
diff --git a/lib/daemon.h b/lib/daemon.h
deleted file mode 100644
index 1bd663e..0000000
--- a/lib/daemon.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/***************************************************************************
- * daemon.h
- *
- * Thu Jun 9 10:27:59 CEST 2005
- * Copyright 2005 Bent Bisballe
- * deva@aasimon.org
- ****************************************************************************/
-
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef __DAEMON_H__
-#define __DAEMON_H__
-
-#include <sys/types.h>
-
-class Daemon {
-public:
- Daemon();
- virtual ~Daemon();
-
- /**
- * Use NOBODY_GROUP and NOBODY_USER if no privileges are needed to run.
- */
- int run(const char* user, const char* group);
-
-private:
- virtual int daemon_main() = 0;
-};
-
-#endif/*__DAEMON_H__*/