]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - scheduler/server.c
Fix source file header text duplication text duplication.
[thirdparty/cups.git] / scheduler / server.c
index ce5536da2a35f26fd8214a52b5da298003b17255..04b26d64d2d1fd0180c85a74df0da53eb4a8d987 100644 (file)
@@ -1,21 +1,14 @@
 /*
- * "$Id: server.c 6649 2007-07-11 21:46:42Z mike $"
+ * Server start/stop routines for the CUPS scheduler.
  *
- *   Server start/stop routines for the Common UNIX Printing System (CUPS).
+ * Copyright 2007-2012 by Apple Inc.
+ * Copyright 1997-2006 by Easy Software Products, all rights reserved.
  *
- *   Copyright 2007 by Apple Inc.
- *   Copyright 1997-2006 by Easy Software Products, all rights reserved.
- *
- *   These coded instructions, statements, and computer programs are the
- *   property of Apple Inc. and are protected by Federal copyright
- *   law.  Distribution and use rights are outlined in the file "LICENSE.txt"
- *   which should have been included with this file.  If this file is
- *   file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * Contents:
- *
- *   cupsdStartServer() - Start the server.
- *   cupsdStopServer()  - Stop the server.
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file.  If this file is
+ * missing or damaged, see the license at "http://www.cups.org/".
  */
 
 /*
@@ -34,7 +27,7 @@
  * Local globals...
  */
 
-static int     started = 0;
+static int             started = 0;    /* Did we start the server already? */
 
 
 /*
@@ -44,40 +37,17 @@ static int  started = 0;
 void
 cupsdStartServer(void)
 {
-#ifdef HAVE_LIBSSL
-  int                  i;              /* Looping var */
-  struct timeval       curtime;        /* Current time in microseconds */
-  unsigned char                data[1024];     /* Seed data */
-#endif /* HAVE_LIBSSL */
-
-
-#ifdef HAVE_LIBSSL
  /*
-  * Initialize the encryption libraries...
+  * Start color management (as needed)...
   */
 
-  SSL_library_init();
-  SSL_load_error_strings();
+  cupsdStartColor();
 
  /*
-  * Using the current time is a dubious random seed, but on some systems
-  * it is the best we can do (on others, this seed isn't even used...)
+  * Create the default security profile...
   */
 
-  gettimeofday(&curtime, NULL);
-  srand(curtime.tv_sec + curtime.tv_usec);
-
-  for (i = 0; i < sizeof(data); i ++)
-    data[i] = rand(); /* Yes, this is a poor source of random data... */
-
-  RAND_seed(&data, sizeof(data));
-#elif defined(HAVE_GNUTLS)
- /*
-  * Initialize the encryption libraries...
-  */
-
-  gnutls_global_init();
-#endif /* HAVE_LIBSSL */
+  DefaultProfile = cupsdCreateProfile(0, 1);
 
  /*
   * Startup all the networking stuff...
@@ -85,7 +55,6 @@ cupsdStartServer(void)
 
   cupsdStartListening();
   cupsdStartBrowsing();
-  cupsdStartPolling();
 
  /*
   * Create a pipe for CGI processes...
@@ -105,10 +74,11 @@ cupsdStartServer(void)
   * Mark that the server has started and printers and jobs may be changed...
   */
 
-  LastEvent     = CUPSD_EVENT_PRINTER_CHANGED | CUPSD_EVENT_JOB_STATE_CHANGED |
-                  CUPSD_EVENT_SERVER_STARTED;
+  LastEvent = CUPSD_EVENT_PRINTER_CHANGED | CUPSD_EVENT_JOB_STATE_CHANGED |
+              CUPSD_EVENT_SERVER_STARTED;
+  started   = 1;
 
-  started = 1;
+  cupsdSetBusyState();
 }
 
 
@@ -123,15 +93,19 @@ cupsdStopServer(void)
     return;
 
  /*
-  * Close all network clients and stop all jobs...
+  * Stop color management (as needed)...
+  */
+
+  cupsdStopColor();
+
+ /*
+  * Close all network clients...
   */
 
   cupsdCloseAllClients();
   cupsdStopListening();
-  cupsdStopPolling();
   cupsdStopBrowsing();
   cupsdStopAllNotifiers();
-  cupsdSaveRemoteCache();
   cupsdDeleteAllCerts();
 
   if (Clients)
@@ -161,39 +135,41 @@ cupsdStopServer(void)
 
   if (AccessFile != NULL)
   {
-    cupsFileClose(AccessFile);
+    if (AccessFile != LogStderr)
+      cupsFileClose(AccessFile);
 
     AccessFile = NULL;
   }
 
   if (ErrorFile != NULL)
   {
-    cupsFileClose(ErrorFile);
+    if (ErrorFile != LogStderr)
+      cupsFileClose(ErrorFile);
 
     ErrorFile = NULL;
   }
 
   if (PageFile != NULL)
   {
-    cupsFileClose(PageFile);
+    if (PageFile != LogStderr)
+      cupsFileClose(PageFile);
 
     PageFile = NULL;
   }
 
-#ifdef HAVE_NOTIFY_POST
  /*
-  * Send one last notification as the server shuts down.
+  * Delete the default security profile...
   */
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG,
-                  "notify_post(\"com.apple.printerListChange\") last");
-  notify_post("com.apple.printerListChange");
-#endif /* HAVE_NOTIFY_POST */
+  cupsdDestroyProfile(DefaultProfile);
+  DefaultProfile = NULL;
 
-  started = 0;
-}
+ /*
+  * Write out any dirty files...
+  */
 
+  if (DirtyFiles)
+    cupsdCleanDirty();
 
-/*
- * End of "$Id: server.c 6649 2007-07-11 21:46:42Z mike $".
- */
+  started = 0;
+}