diff options
Diffstat (limited to 'server/miav_daemon.cc')
-rw-r--r-- | server/miav_daemon.cc | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/server/miav_daemon.cc b/server/miav_daemon.cc deleted file mode 100644 index 8fc7144..0000000 --- a/server/miav_daemon.cc +++ /dev/null @@ -1,110 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/*************************************************************************** - * miav_daemon.cc - * - * Thu Jun 9 11:14:19 CEST 2005 - * Copyright 2005 Bent Bisballe Nyeng - * deva@aasimon.org - ****************************************************************************/ - -/* - * This file is part of MIaV. - * - * MIaV 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. - * - * MIaV 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 MIaV; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ -#include <config.h> -#include "miav_daemon.h" - -#include "info_console.h" -#include "miav_config.h" - -#include "server.h" -#include "socket.h" - -#include <signal.h> -#include <errno.h> - -MiavDaemon::MiavDaemon() -{} - -MiavDaemon::~MiavDaemon() -{} - -int MiavDaemon::daemon_main() -{ - MiavConfig config(ETC"/miav.conf"); - MIaV::initConfig(&config); - - InfoConsole info; - MIaV::initInfo(&info); - - int port = MIaV::config->readInt("server_port"); - pid_t childpid; // variable to store the child's pid - - signal(SIGCLD, SIG_IGN); // Ved SIGCHILD til IGNORE maa wait/waitpid ikke kaldes - // (ellers kommer der kernel-brok) - - MIaV::info->info("Starting MIaV server v. %s", VERSION); - MIaV::info->info("Listening on port %d", port); - Socket *socket = new Socket(port); - - if(socket->hasError()) { - MIaV::info->error("Listening socket has errors, quitting."); - delete socket; - return 1; - } - - while(1) { - Socket *csocket = new Socket(socket->slisten()); - - if(socket->hasError()) { - MIaV::info->error("Server socket has errors, quitting."); - delete csocket; - break; - } - - if(csocket->hasError()) { - MIaV::info->error("Child socket has errors, quitting."); - delete csocket; - break; - } - - if(!csocket->isConnected()) { - MIaV::info->error("Child socket is not connected, quitting."); - delete csocket; - break; - } - - childpid = fork(); - - switch(childpid) { - case -1: // fork() returns -1 on failure - MIaV::info->log("Fork error: %s", strerror(errno)); - exit(1); - case 0: // fork() returns 0 to the child process - delete socket; // Close listen socket. - newConnection(csocket); - delete csocket; // Close communication socket. - exit(0); - - default: // fork() returns new pid to the parent process - break; - } - } - - delete socket; - return 0; -} - |