Blame SOURCES/cups-pid.patch

1d75c0
diff -up cups-1.5b1/scheduler/main.c.pid cups-1.5b1/scheduler/main.c
1d75c0
--- cups-1.5b1/scheduler/main.c.pid	2011-05-18 22:44:16.000000000 +0200
1d75c0
+++ cups-1.5b1/scheduler/main.c	2011-05-23 18:01:20.000000000 +0200
1d75c0
@@ -311,6 +311,8 @@ main(int  argc,				/* I - Number of comm
1d75c0
     * Setup signal handlers for the parent...
1d75c0
     */
1d75c0
 
1d75c0
+    pid_t pid;
1d75c0
+
1d75c0
 #ifdef HAVE_SIGSET /* Use System V signals over POSIX to avoid bugs */
1d75c0
     sigset(SIGUSR1, parent_handler);
1d75c0
     sigset(SIGCHLD, parent_handler);
1d75c0
@@ -334,7 +336,7 @@ main(int  argc,				/* I - Number of comm
1d75c0
     signal(SIGHUP, SIG_IGN);
1d75c0
 #endif /* HAVE_SIGSET */
1d75c0
 
1d75c0
-    if (fork() > 0)
1d75c0
+    if ((pid = fork()) > 0)
1d75c0
     {
1d75c0
      /*
1d75c0
       * OK, wait for the child to startup and send us SIGUSR1 or to crash
1d75c0
@@ -346,7 +348,15 @@ main(int  argc,				/* I - Number of comm
1d75c0
         sleep(1);
1d75c0
 
1d75c0
       if (parent_signal == SIGUSR1)
1d75c0
+      {
1d75c0
+        FILE *f = fopen ("/var/run/cupsd.pid", "w");
1d75c0
+        if (f)
1d75c0
+        {
1d75c0
+          fprintf (f, "%d\n", pid);
1d75c0
+          fclose (f);
1d75c0
+        }
1d75c0
         return (0);
1d75c0
+      }
1d75c0
 
1d75c0
       if (wait(&i) < 0)
1d75c0
       {