Browse Source

s-s-d: Add DragonFlyBSD support

Closes: #734452

Based-on-patch-by: Hleb Valoshka <375gnu@gmail.com>
Guillem Jover 12 years ago
parent
commit
5eecc35eaf
2 changed files with 15 additions and 0 deletions
  1. 2 0
      debian/changelog
  2. 13 0
      utils/start-stop-daemon.c

+ 2 - 0
debian/changelog

@@ -63,6 +63,8 @@ dpkg (1.17.10) UNRELEASED; urgency=low
   * Add per package dpkg --audit support.
   * Add support for DragonFlyBSD to ostable and triplettable.
     Thanks to Hleb Valoshka <375gnu@gmail.com>.
+  * Add support for DragonFlyBSD to start-stop-daemon. Closes: #734452
+    Based on a patch by Hleb Valoshka <375gnu@gmail.com>.
 
   [ Updated programs translations ]
   * Catalan (Guillem Jover).

+ 13 - 0
utils/start-stop-daemon.c

@@ -39,6 +39,8 @@
 #  define OSFreeBSD
 #elif defined(__NetBSD__)
 #  define OSNetBSD
+#elif defined(__DragonFly__)
+#  define OSDragonFlyBSD
 #else
 #  error Unknown architecture - cannot build start-stop-daemon
 #endif
@@ -123,6 +125,9 @@
 #define PROCESS_NAME_SIZE 16
 #elif defined(OSFreeBSD)
 #define PROCESS_NAME_SIZE 19
+#elif defined(OSDragonFlyBSD)
+/* On DragonFlyBSD MAXCOMLEN expands to 16. */
+#define PROCESS_NAME_SIZE MAXCOMLEN
 #endif
 
 #define MIN_POLL_INTERVAL 20000 /* µs */
@@ -1360,6 +1365,8 @@ pid_is_child(pid_t pid, pid_t ppid)
 	proc_ppid = kp->ki_ppid;
 #elif defined(OSOpenBSD)
 	proc_ppid = kp->p_ppid;
+#elif defined(OSDragonFlyBSD)
+	proc_ppid = kp->kp_ppid;
 #else
 	proc_ppid = kp->kp_proc.p_ppid;
 #endif
@@ -1420,6 +1427,8 @@ pid_is_user(pid_t pid, uid_t uid)
 	proc_uid = kp->ki_ruid;
 #elif defined(OSOpenBSD)
 	proc_uid = kp->p_ruid;
+#elif defined(OSDragonFlyBSD)
+	proc_uid = kp->kp_ruid;
 #else
 	if (kp->kp_proc.p_cred)
 		kvm_read(kd, (u_long)&(kp->kp_proc.p_cred->p_ruid),
@@ -1505,6 +1514,8 @@ pid_is_cmd(pid_t pid, const char *name)
 	process_name = kp->ki_comm;
 #elif defined(OSOpenBSD)
 	process_name = kp->p_comm;
+#elif defined(OSDragonFlyBSD)
+	process_name = kp->kp_comm;
 #else
 	process_name = kp->kp_proc.p_comm;
 #endif
@@ -1682,6 +1693,8 @@ do_procinit(void)
 		pid = kp[i].ki_pid;
 #elif defined(OSOpenBSD)
 		pid = kp[i].p_pid;
+#elif defined(OSDragonFlyBSD)
+		pid = kp[i].kp_pid;
 #else
 		pid = kp[i].kp_proc.p_pid;
 #endif