summaryrefslogtreecommitdiffstats
path: root/sesman
diff options
context:
space:
mode:
authorilsimo <ilsimo>2005-10-06 19:25:29 +0000
committerilsimo <ilsimo>2005-10-06 19:25:29 +0000
commit534b2691cdc8822d92709d16d5be21950c484fe1 (patch)
treef25ee2c4cea73eef828f9fbb94d74b40e80c53c7 /sesman
parenta0507a33816961f08cbfb0d8b97d680e586593ac (diff)
downloadxrdp-proprietary-534b2691cdc8822d92709d16d5be21950c484fe1.tar.gz
xrdp-proprietary-534b2691cdc8822d92709d16d5be21950c484fe1.zip
Adding sig.*
Diffstat (limited to 'sesman')
-rw-r--r--sesman/sig.c82
-rw-r--r--sesman/sig.h38
2 files changed, 120 insertions, 0 deletions
diff --git a/sesman/sig.c b/sesman/sig.c
new file mode 100644
index 00000000..6696735e
--- /dev/null
+++ b/sesman/sig.c
@@ -0,0 +1,82 @@
+/*
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ xrdp: A Remote Desktop Protocol server.
+ Copyright (C) Jay Sorg 2005
+
+ session manager
+ linux only
+
+ sig.c: signal handling code
+
+*/
+
+/**
+ *
+ * @file: signal handling functions
+ *
+ */
+
+#include "sesman.h"
+
+extern int g_sck;
+extern int g_pid;
+extern struct sesman_config g_cfg;
+
+/**
+ *
+ * Shuts down sesman
+ *
+ * @param sig The received signal
+ *
+ */
+void DEFAULT_CC
+sig_sesman_shutdown(int sig)
+{
+ if (g_getpid() != g_pid)
+ {
+ return;
+ }
+ g_printf("shutting down\n\r");
+ g_printf("signal %d pid %d\n\r", sig, g_getpid());
+ g_tcp_close(g_sck);
+}
+
+/**
+ *
+ * Reloads sesman config
+ *
+ * @param sig The received signal
+ *
+ */
+void DEFAULT_CC
+sig_sesman_reload_cfg(int sig)
+{
+ struct sesman_config cfg;
+
+ if (g_getpid() != g_pid)
+ {
+ return;
+ }
+ g_printf("sesman: received SIGHUP\n\r");
+ if (config_read(&cfg) != 0)
+ {
+ g_printf("sesman: error reading config. keeping old cfg.\n\r");
+ return;
+ }
+ g_cfg = cfg;
+ g_printf("sesman: configuration reloaded\n\r");
+}
+
diff --git a/sesman/sig.h b/sesman/sig.h
new file mode 100644
index 00000000..81687437
--- /dev/null
+++ b/sesman/sig.h
@@ -0,0 +1,38 @@
+/*
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ xrdp: A Remote Desktop Protocol server.
+ Copyright (C) Jay Sorg 2005
+
+ session manager
+ linux only
+
+ sig.h: signal handling code declarations
+
+*/
+
+#ifndef SIG_H
+#define SIG_H
+
+/******************************************************************************/
+void DEFAULT_CC
+sig_sesman_shutdown(int sig);
+
+/******************************************************************************/
+void DEFAULT_CC
+sig_sesman_reload_cfg(int sig);
+
+#endif
+