📄 server.c
字号:
/* * "$Id: server.c,v 1.19 2005/01/03 19:29:59 mike Exp $" * * Server start/stop routines for the Common UNIX Printing System (CUPS). * * Copyright 1997-2005 by Easy Software Products, all rights reserved. * * These coded instructions, statements, and computer programs are the * property of Easy Software Products 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 please contact Easy Software Products * at: * * Attn: CUPS Licensing Information * Easy Software Products * 44141 Airport View Drive, Suite 204 * Hollywood, Maryland 20636 USA * * Voice: (301) 373-9600 * EMail: cups-info@cups.org * WWW: http://www.cups.org * * Contents: * * StartServer() - Start the server. * StopServer() - Stop the server. *//* * Include necessary headers... */#if 0#include <cups/http-private.h>#endif#include "cupsd.h"#include <grp.h>/* * 'StartServer()' - Start the server. */voidStartServer(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... */ SSL_library_init(); SSL_load_error_strings(); /* * 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...) */ 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();#elif defined(HAVE_CDSASSL) ServerCertificatesArray = CDSAGetServerCerts();#endif /* HAVE_LIBSSL */ /* * Startup all the networking stuff... */ StartListening();#if 0 StartBrowsing(); StartPolling();#endif /* * Create a pipe for CGI processes... */ if (cupsdOpenPipe(CGIPipes)) LogMessage(L_ERROR, "StartServer: Unable to create pipes for CGI status!"); else { LogMessage(L_DEBUG2, "StartServer: Adding fd %d to InputSet...", CGIPipes[0]); FD_SET(CGIPipes[0], InputSet); } DEBUG_printf(("Function StartServer()\n")); }/* * 'StopServer()' - Stop the server. */voidStopServer(void){ /* * Close all network clients and stop all jobs... */ CloseAllClients(); StopListening();#if 0 StopPolling(); StopBrowsing();#endif if (Clients != NULL) { free(Clients); Clients = NULL; }#if 0#if defined(HAVE_SSL) && defined(HAVE_CDSASSL) /* * Free all of the certificates... */ if (ServerCertificatesArray) { CFRelease(ServerCertificatesArray); ServerCertificatesArray = NULL; }#endif /* HAVE_SSL && HAVE_CDSASSL */#endif#if 0 /* * Close the pipe for CGI processes... */ if (CGIPipes[0] >= 0) { LogMessage(L_DEBUG2, "StopServer: Removing fd %d from InputSet...", CGIPipes[0]); FD_CLR(CGIPipes[0], InputSet); cupsdClosePipe(CGIPipes); }#endif /* * Close all log files... */ if (AccessFile != NULL) { cupsFileClose(AccessFile); AccessFile = NULL; } if (ErrorFile != NULL) { cupsFileClose(ErrorFile); ErrorFile = NULL; } if (PageFile != NULL) { cupsFileClose(PageFile); PageFile = NULL; } DEBUG_printf(("Function StopServer() \n")); }/* * End of "$Id: server.c,v 1.19 2005/01/03 19:29:59 mike Exp $". */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -