ovs-switchui: Fix typo.
[sliver-openvswitch.git] / lib / daemon.h
index a54aa52..d0c324c 100644 (file)
 #ifndef DAEMON_H
 #define DAEMON_H 1
 
+#include <limits.h>
 #include <stdbool.h>
 #include <sys/types.h>
 
-#define DAEMON_LONG_OPTIONS                         \
-        {"detach",      no_argument, 0, 'D'},       \
-        {"force",       no_argument, 0, 'f'},       \
-        {"pidfile",     optional_argument, 0, 'P'}
+enum {
+    OPT_DETACH = UCHAR_MAX + 2048,
+    OPT_NO_CHDIR,
+    OPT_OVERWRITE_PIDFILE,
+    OPT_PIDFILE,
+};
+
+#define DAEMON_LONG_OPTIONS                                          \
+        {"detach",            no_argument, 0, OPT_DETACH},           \
+        {"no-chdir",          no_argument, 0, OPT_NO_CHDIR},         \
+        {"pidfile",           optional_argument, 0, OPT_PIDFILE},    \
+        {"overwrite-pidfile", no_argument, 0, OPT_OVERWRITE_PIDFILE}
 
 #define DAEMON_OPTION_HANDLERS                  \
-        case 'D':                               \
+        case OPT_DETACH:                        \
             set_detach();                       \
             break;                              \
                                                 \
-        case 'P':                               \
+        case OPT_NO_CHDIR:                      \
+            set_no_chdir();                     \
+            break;                              \
+                                                \
+        case OPT_PIDFILE:                       \
             set_pidfile(optarg);                \
             break;                              \
                                                 \
-        case 'f':                               \
+        case OPT_OVERWRITE_PIDFILE:             \
             ignore_existing_pidfile();          \
             break;
 
 char *make_pidfile_name(const char *name);
 void set_pidfile(const char *name);
 const char *get_pidfile(void);
+void set_no_chdir(void);
 void set_detach(void);
 void daemonize(void);
 void die_if_already_running(void);