rpms/upstart/devel upstart-telinit-u.patch,NONE,1.1
Casey Dahlin (sadmac)
fedora-extras-commits at redhat.com
Wed Apr 9 14:48:07 UTC 2008
Author: sadmac
Update of /cvs/pkgs/rpms/upstart/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18706
Added Files:
upstart-telinit-u.patch
Log Message:
Missing patchfile for telinit u support added
upstart-telinit-u.patch:
--- NEW FILE upstart-telinit-u.patch ---
diff -urN upstart-0.3.9-old/compat/sysv/telinit.c upstart-0.3.9/compat/sysv/telinit.c
--- upstart-0.3.9-old/compat/sysv/telinit.c 2008-04-09 00:52:06.000000000 -0400
+++ upstart-0.3.9/compat/sysv/telinit.c 2008-04-09 01:02:39.000000000 -0400
@@ -113,6 +113,11 @@
NULL, UPSTART_INIT_DAEMON,
UPSTART_EVENT_EMIT, "runlevel", args, NULL));
break;
+ case 'u':
+ NIH_MUST (message = upstart_message_new (
+ NULL, UPSTART_INIT_DAEMON,
+ UPSTART_RESTART, NULL));
+ break;
default:
/* Ignore other arguments */
exit (0);
diff -urN upstart-0.3.9-old/init/control.c upstart-0.3.9/init/control.c
--- upstart-0.3.9-old/init/control.c 2008-04-09 00:52:06.000000000 -0400
+++ upstart-0.3.9/init/control.c 2008-04-09 01:01:41.000000000 -0400
@@ -29,6 +29,7 @@
#include <errno.h>
#include <unistd.h>
+#include <signal.h>
#include <fnmatch.h>
#include <nih/macros.h>
@@ -52,6 +53,8 @@
static void control_error_handler (void *data, NihIo *io);
static int control_version_query (void *data, pid_t pid,
UpstartMessageType type);
+static int control_restart (void *data, pid_t pid,
+ UpstartMessageType type);
static int control_log_priority (void *data, pid_t pid,
UpstartMessageType type,
NihLogLevel priority);
@@ -102,6 +105,8 @@
static UpstartMessage message_handlers[] = {
{ -1, UPSTART_VERSION_QUERY,
(UpstartMessageHandler)control_version_query },
+ { -1, UPSTART_RESTART,
+ (UpstartMessageHandler)control_restart },
{ -1, UPSTART_PUSH_TTY,
(UpstartMessageHandler)control_push_tty },
{ -1, UPSTART_POP_TTY,
@@ -319,6 +324,32 @@
}
/**
+ * control_restart:
+ * @data: data pointer,
+ * @pid: origin process id,
+ * @type: message type received.
+ *
+ * This function is called when another process on the system asks us to
+ * re-execute
+ *
+ * Returns: zero on success, negative value on raised error.
+ **/
+static int
+control_restart (void *data,
+ pid_t pid,
+ UpstartMessageType type)
+{
+ nih_assert (pid > 0);
+ nih_assert (type == UPSTART_RESTART);
+
+ nih_info (_("Control request to restart daemon"));
+
+ kill(getpid(), SIGTERM);
+
+ return 0;
+}
+
+/**
* control_push_tty:
* @data: data pointer,
* @pid: origin process id,
diff -urN upstart-0.3.9-old/upstart/message.c upstart-0.3.9/upstart/message.c
--- upstart-0.3.9-old/upstart/message.c 2008-04-09 00:52:06.000000000 -0400
+++ upstart-0.3.9/upstart/message.c 2008-04-09 00:55:03.000000000 -0400
@@ -259,6 +259,8 @@
switch (type) {
case UPSTART_NO_OP:
break;
+ case UPSTART_RESTART:
+ break;
case UPSTART_VERSION_QUERY:
break;
case UPSTART_POP_TTY:
@@ -564,6 +566,9 @@
case UPSTART_VERSION_QUERY:
ret = handler (data, cred.pid, type);
break;
+ case UPSTART_RESTART:
+ ret = handler (data, cred.pid, type);
+ break;
case UPSTART_POP_TTY:
ret = handler (data, cred.pid, type);
break;
diff -urN upstart-0.3.9-old/upstart/message.h upstart-0.3.9/upstart/message.h
--- upstart-0.3.9-old/upstart/message.h 2008-04-09 00:52:06.000000000 -0400
+++ upstart-0.3.9/upstart/message.h 2008-04-09 00:55:58.000000000 -0400
@@ -67,6 +67,7 @@
UPSTART_NO_OP = 0x0000,
UPSTART_VERSION_QUERY = 0x0001,
UPSTART_LOG_PRIORITY = 0x0002,
+ UPSTART_RESTART = 0x0005,
UPSTART_VERSION = 0x0010,
UPSTART_PUSH_TTY = 0x0011,
UPSTART_POP_TTY = 0x0012,
More information about the fedora-extras-commits
mailing list