dbus-daemon-1 --system seems to crash
Kay Sievers
kay.sievers at vrfy.org
Fri Aug 6 19:09:07 PDT 2004
On Fri, Aug 06, 2004 at 02:06:33PM -0400, Havoc Pennington wrote:
> Hi,
>
> Suggest an enum instead of magic int:
>
> typedef enum
> {
> FORK_FOLLOWS_CONFIG_FILE,
> FORK_ALWAYS,
> FORK_NEVER
> } ForceForkSetting;
>
> Something like that.
Something like that attached :)
Kay
-------------- next part --------------
Index: bus/bus.c
===================================================================
RCS file: /cvs/dbus/dbus/bus/bus.c,v
retrieving revision 1.53
diff -u -r1.53 bus.c
--- bus/bus.c 30 Jul 2004 05:59:33 -0000 1.53
+++ bus/bus.c 7 Aug 2004 01:57:22 -0000
@@ -540,7 +540,7 @@
BusContext*
bus_context_new (const DBusString *config_file,
- dbus_bool_t force_fork,
+ ForceForkSetting force_fork,
int print_addr_fd,
int print_pid_fd,
DBusError *error)
@@ -659,7 +659,7 @@
}
/* Now become a daemon if appropriate */
- if (force_fork || context->fork)
+ if ((force_fork != FORK_NEVER && context->fork) || force_fork == FORK_ALWAYS)
{
DBusString u;
Index: bus/bus.h
===================================================================
RCS file: /cvs/dbus/dbus/bus/bus.h,v
retrieving revision 1.24
diff -u -r1.24 bus.h
--- bus/bus.h 30 Jul 2004 05:59:33 -0000 1.24
+++ bus/bus.h 7 Aug 2004 01:57:22 -0000
@@ -61,8 +61,15 @@
int reply_timeout; /**< How long to wait before timing out a reply */
} BusLimits;
+typedef enum
+{
+ FORK_FOLLOW_CONFIG_FILE,
+ FORK_ALWAYS,
+ FORK_NEVER
+} ForceForkSetting;
+
BusContext* bus_context_new (const DBusString *config_file,
- dbus_bool_t force_fork,
+ ForceForkSetting force_fork,
int print_addr_fd,
int print_pid_fd,
DBusError *error);
Index: bus/main.c
===================================================================
RCS file: /cvs/dbus/dbus/bus/main.c,v
retrieving revision 1.24
diff -u -r1.24 main.c
--- bus/main.c 30 Jul 2004 05:59:34 -0000 1.24
+++ bus/main.c 7 Aug 2004 01:57:23 -0000
@@ -62,7 +62,7 @@
static void
usage (void)
{
- fprintf (stderr, "dbus-daemon-1 [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork]\n");
+ fprintf (stderr, "dbus-daemon-1 [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork]\n");
exit (1);
}
@@ -200,8 +200,8 @@
int i;
dbus_bool_t print_address;
dbus_bool_t print_pid;
- dbus_bool_t force_fork;
-
+ int force_fork;
+
if (!_dbus_string_init (&config_file))
return 1;
@@ -210,25 +210,27 @@
if (!_dbus_string_init (&pid_fd))
return 1;
-
+
print_address = FALSE;
print_pid = FALSE;
- force_fork = FALSE;
-
+ force_fork = FORK_FOLLOW_CONFIG_FILE;
+
prev_arg = NULL;
i = 1;
while (i < argc)
{
const char *arg = argv[i];
-
+
if (strcmp (arg, "--help") == 0 ||
strcmp (arg, "-h") == 0 ||
strcmp (arg, "-?") == 0)
usage ();
else if (strcmp (arg, "--version") == 0)
version ();
+ else if (strcmp (arg, "--nofork") == 0)
+ force_fork = FORK_NEVER;
else if (strcmp (arg, "--fork") == 0)
- force_fork = TRUE;
+ force_fork = FORK_ALWAYS;
else if (strcmp (arg, "--system") == 0)
{
check_two_config_files (&config_file, "system");
More information about the dbus
mailing list