httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Laurie <...@gonzo.ben.algroup.co.uk>
Subject cvs commit: apache/src http_core.c http_main.c http_main.h http_request.c httpd.h mod_cgi.c mod_status.c scoreboard.h (fwd)
Date Wed, 22 May 1996 18:05:43 GMT
Is this perhaps a little hasty? I'm not sure that this change has had much
chance for review. Besides, it (probably) clashes with my rprintf changes which
I'm also keen to commit ... would someone please check them out, or should I
commit them and see what breaks?

Cheers,

Ben.

Jim Jagielski wrote:
> From heap.ben.algroup.co.uk!arachnet-fw.algroup.co.uk!taz.hyperreal.com!hyperreal.com!owner-apache-cvs
Wed May 22 18:00:01 1996
> Date: Wed, 22 May 1996 10:35:47 -0700
> From: Jim Jagielski <jim@hyperreal.com>
> Message-Id: <199605221735.KAA13422@taz.hyperreal.com>
> To: apache-cvs@hyperreal.com
> Subject: cvs commit: apache/src http_core.c http_main.c http_main.h http_request.c httpd.h
mod_cgi.c mod_status.c scoreboard.h
> Sender: owner-apache-cvs@hyperreal.com
> Precedence: bulk
> 
> jim         96/05/22 10:35:47
> 
>   Modified:    src       http_core.c http_main.c http_main.h http_request.c
>                         httpd.h  mod_cgi.c mod_status.c scoreboard.h
>   Log:
>   DNS/Logging/Keepalive status modes
>   
>   Revision  Changes    Path
>   1.12      +9 -0      apache/src/http_core.c
>   
>   Index: http_core.c
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/http_core.c,v
>   retrieving revision 1.11
>   retrieving revision 1.12
>   diff -C3 -r1.11 -r1.12
>   *** http_core.c	1996/04/11 02:56:17	1.11
>   --- http_core.c	1996/05/22 17:35:36	1.12
>   ***************
>   *** 63,68 ****
>   --- 63,69 ----
>     #include "http_log.h"
>     #include "rfc1413.h"
>     #include "util_md5.h"
>   + #include "scoreboard.h"
>     
>     /* Server core module... This module provides support for really basic
>      * server operations, including options and commands which control the
>   ***************
>   *** 272,277 ****
>   --- 273,283 ----
>     
>         if (conn->remote_host == NULL && dir_conf->hostname_lookups)
>         {
>   + #ifdef STATUS
>   + 	int old_stat = update_child_status(conn->child_num,
>   + 						SERVER_BUSY_DNS,
>   + 						(request_rec*)NULL);
>   + #endif /* STATUS */
>     	iaddr = &(conn->remote_addr.sin_addr);
>     	hptr = gethostbyaddr((char *)iaddr, sizeof(struct in_addr), AF_INET);
>     	if (hptr != NULL)
>   ***************
>   *** 296,301 ****
>   --- 302,310 ----
>     	}
>     /* if failed, set it to the NULL string to indicate error */
>     	if (conn->remote_host == NULL) conn->remote_host = "";
>   + #ifdef STATUS
>   + 	(void)update_child_status(conn->child_num,old_stat,(request_rec*)NULL);
>   + #endif /* STATUS */
>         }
>     
>     /*
>   
>   
>   
>   1.28      +42 -18    apache/src/http_main.c
>   
>   Index: http_main.c
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/http_main.c,v
>   retrieving revision 1.27
>   retrieving revision 1.28
>   diff -C3 -r1.27 -r1.28
>   *** http_main.c	1996/05/15 12:57:44	1.27
>   --- http_main.c	1996/05/22 17:35:36	1.28
>   ***************
>   *** 657,667 ****
>     #endif
>     }
>     
>   ! void update_child_status (int child_num, int status, request_rec *r)
>     {
>         short_score new_score_rec;
>         memcpy(&new_score_rec,&scoreboard_image[child_num],sizeof new_score_rec);
>         new_score_rec.pid = getpid();
>         new_score_rec.status = status;
>     
>     #if defined(STATUS)
>   --- 657,673 ----
>     #endif
>     }
>     
>   ! int update_child_status (int child_num, int status, request_rec *r)
>     {
>         short_score new_score_rec;
>   +     int old_status;
>   + 
>   +     if (child_num < 0)
>   + 	return -1;
>   +     
>         memcpy(&new_score_rec,&scoreboard_image[child_num],sizeof new_score_rec);
>         new_score_rec.pid = getpid();
>   +     old_status = new_score_rec.status;
>         new_score_rec.status = status;
>     
>     #if defined(STATUS)
>   ***************
>   *** 695,700 ****
>   --- 701,716 ----
>         lseek (scoreboard_fd, (long)child_num * sizeof(short_score), 0);
>         force_write (scoreboard_fd, (char*)&new_score_rec, sizeof(short_score));
>     #endif
>   + 
>   +     return old_status;
>   + }
>   + 
>   + int get_child_status (int child_num)
>   + {
>   +     if (child_num<0 || child_num>=HARD_SERVER_MAX)
>   +     	return -1;
>   +     else
>   + 	return scoreboard_image[child_num].status;
>     }
>     
>     int count_busy_servers ()
>   ***************
>   *** 704,710 ****
>     
>         for (i = 0; i < HARD_SERVER_MAX; ++i)
>           if (scoreboard_image[i].status == SERVER_BUSY_READ ||
>   !               scoreboard_image[i].status == SERVER_BUSY_WRITE)
>               ++res;
>         return res;
>     }
>   --- 720,729 ----
>     
>         for (i = 0; i < HARD_SERVER_MAX; ++i)
>           if (scoreboard_image[i].status == SERVER_BUSY_READ ||
>   !               scoreboard_image[i].status == SERVER_BUSY_WRITE ||
>   !               scoreboard_image[i].status == SERVER_BUSY_KEEPALIVE ||
>   !               scoreboard_image[i].status == SERVER_BUSY_LOG ||
>   !               scoreboard_image[i].status == SERVER_BUSY_DNS)
>               ++res;
>         return res;
>     }
>   ***************
>   *** 1058,1064 ****
>     
>     conn_rec *new_connection (pool *p, server_rec *server, BUFF *inout,
>     			  const struct sockaddr_in *remaddr,
>   ! 			  const struct sockaddr_in *saddr)
>     {
>         conn_rec *conn = (conn_rec *)pcalloc (p, sizeof(conn_rec));
>         
>   --- 1077,1084 ----
>     
>     conn_rec *new_connection (pool *p, server_rec *server, BUFF *inout,
>     			  const struct sockaddr_in *remaddr,
>   ! 			  const struct sockaddr_in *saddr,
>   ! 			  int child_num)
>     {
>         conn_rec *conn = (conn_rec *)pcalloc (p, sizeof(conn_rec));
>         
>   ***************
>   *** 1067,1072 ****
>   --- 1087,1093 ----
>          */
>         
>         conn = (conn_rec *)pcalloc(p, sizeof(conn_rec));
>   +     conn->child_num = child_num;
>         
>         conn->pool = p;
>         conn->local_addr = *saddr;
>   ***************
>   *** 1077,1082 ****
>   --- 1098,1104 ----
>         conn->remote_addr = *remaddr;
>         conn->remote_ip = pstrdup (conn->pool,
>     			       inet_ntoa(conn->remote_addr.sin_addr));
>   + 
>         return conn;
>     }
>     
>   ***************
>   *** 1102,1108 ****
>         child_num = child_num_arg;
>         requests_this_child = 0;
>         reopen_scoreboard (pconf);
>   !     update_child_status (child_num, SERVER_READY, (request_rec*)NULL);
>     
>         /* Only try to switch if we're running as root */
>         if(!geteuid() && setuid(user_id) == -1) {
>   --- 1124,1130 ----
>         child_num = child_num_arg;
>         requests_this_child = 0;
>         reopen_scoreboard (pconf);
>   !     (void)update_child_status (child_num, SERVER_READY, (request_rec*)NULL);
>     
>         /* Only try to switch if we're running as root */
>         if(!geteuid() && setuid(user_id) == -1) {
>   ***************
>   *** 1140,1146 ****
>     	}
>     
>     	clen=sizeof(sa_client);
>   ! 	update_child_status (child_num, SERVER_READY, (request_rec*)NULL);
>     	
>     	accept_mutex_on();  /* Lock around "accept", if necessary */
>     
>   --- 1162,1168 ----
>     	}
>     
>     	clen=sizeof(sa_client);
>   ! 	(void)update_child_status (child_num, SERVER_READY, (request_rec*)NULL);
>     	
>     	accept_mutex_on();  /* Lock around "accept", if necessary */
>     
>   ***************
>   *** 1177,1183 ****
>     	    continue;
>     	}
>     	
>   ! 	update_child_status (child_num, SERVER_BUSY_READ, (request_rec*)NULL);
>     	conn_io = bcreate(ptrans, B_RDWR);
>     	dupped_csd = csd;
>     #if defined(NEED_DUPPED_CSD)
>   --- 1199,1205 ----
>     	    continue;
>     	}
>     	
>   ! 	(void)update_child_status (child_num, SERVER_BUSY_READ, (request_rec*)NULL);
>     	conn_io = bcreate(ptrans, B_RDWR);
>     	dupped_csd = csd;
>     #if defined(NEED_DUPPED_CSD)
>   ***************
>   *** 1190,1199 ****
>     
>     	current_conn = new_connection (ptrans, server_conf, conn_io,
>     				       (struct sockaddr_in *)&sa_client,
>   ! 				       (struct sockaddr_in *)&sa_server);
>     	
>     	r = read_request (current_conn);
>   ! 	update_child_status (child_num, SERVER_BUSY_WRITE, r);
>     	if (r) process_request (r); /* else premature EOF --- ignore */
>     
>     #if defined(STATUS)
>   --- 1212,1222 ----
>     
>     	current_conn = new_connection (ptrans, server_conf, conn_io,
>     				       (struct sockaddr_in *)&sa_client,
>   ! 				       (struct sockaddr_in *)&sa_server,
>   ! 				       child_num);
>     	
>     	r = read_request (current_conn);
>   ! 	(void)update_child_status (child_num, SERVER_BUSY_WRITE, r);
>     	if (r) process_request (r); /* else premature EOF --- ignore */
>     
>     #if defined(STATUS)
>   ***************
>   *** 1202,1210 ****
>     	while (r && current_conn->keepalive) {
>     	  bflush(conn_io);
>     	  destroy_pool(r->pool);
>   ! 	  update_child_status (child_num, SERVER_BUSY_READ, (request_rec*)NULL);
>     	  r = read_request (current_conn);
>   ! 	  update_child_status (child_num, SERVER_BUSY_WRITE, r);
>     	  if (r) process_request (r);
>     
>     #if defined(STATUS)
>   --- 1225,1233 ----
>     	while (r && current_conn->keepalive) {
>     	  bflush(conn_io);
>     	  destroy_pool(r->pool);
>   ! 	  (void)update_child_status (child_num, SERVER_BUSY_KEEPALIVE, (request_rec*)NULL);
>     	  r = read_request (current_conn);
>   ! 	  (void)update_child_status (child_num, SERVER_BUSY_WRITE, r);
>     	  if (r) process_request (r);
>     
>     #if defined(STATUS)
>   ***************
>   *** 1381,1398 ****
>     	    /* Child died... note that it's gone in the scoreboard. */
>     	    sync_scoreboard_image();
>     	    child_slot = find_child_by_pid (pid);
>   ! 	    if (child_slot >= 0) update_child_status (child_slot, SERVER_DEAD,
>   ! 	     (request_rec*)NULL);
>             }
>     
>     	sync_scoreboard_image();
>     	if ((count_idle_servers() < daemons_min_free)
>   ! 	    && (child_slot = find_free_child_num()) >= 0
>   ! 	    && child_slot <= daemons_limit)
>   ! 	    {
>   ! 	    update_child_status(child_slot,SERVER_STARTING,(request_rec*)NULL);
>     	    make_child(server_conf, child_slot);
>   ! 	    }
>         }
>     
>     } /* standalone_main */
>   --- 1404,1422 ----
>     	    /* Child died... note that it's gone in the scoreboard. */
>     	    sync_scoreboard_image();
>     	    child_slot = find_child_by_pid (pid);
>   ! 	    if (child_slot >= 0)
>   ! 		(void)update_child_status (child_slot, SERVER_DEAD,
>   ! 		 (request_rec*)NULL);
>             }
>     
>     	sync_scoreboard_image();
>     	if ((count_idle_servers() < daemons_min_free)
>   ! 	 && (child_slot = find_free_child_num()) >= 0
>   ! 	 && child_slot <= daemons_limit) {
>   ! 	    (void)update_child_status(child_slot,SERVER_STARTING,
>   ! 	     (request_rec*)NULL);
>     	    make_child(server_conf, child_slot);
>   ! 	}
>         }
>     
>     } /* standalone_main */
>   ***************
>   *** 1491,1497 ****
>     	bpushfd(cio, fileno(stdin), fileno(stdout));
>     	conn = new_connection (ptrans, server_conf, cio,
>     			       (struct sockaddr_in *)&sa_client,
>   ! 			       (struct sockaddr_in *)&sa_server);
>     	r = read_request (conn);
>     	if (r) process_request (r); /* else premature EOF (ignore) */
>     
>   --- 1515,1521 ----
>     	bpushfd(cio, fileno(stdin), fileno(stdout));
>     	conn = new_connection (ptrans, server_conf, cio,
>     			       (struct sockaddr_in *)&sa_client,
>   ! 			       (struct sockaddr_in *)&sa_server,-1);
>     	r = read_request (conn);
>     	if (r) process_request (r); /* else premature EOF (ignore) */
>     
>   
>   
>   
>   1.3       +6 -0      apache/src/http_main.h
>   
>   Index: http_main.h
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/http_main.h,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -C3 -r1.2 -r1.3
>   *** http_main.h	1996/02/22 11:46:48	1.2
>   --- http_main.h	1996/05/22 17:35:37	1.3
>   ***************
>   *** 91,93 ****
>   --- 91,99 ----
>     void soft_timeout (char *, request_rec *);
>     void kill_timeout (request_rec *);     
>     void reset_timeout (request_rec *);
>   + 
>   + void sync_scoreboard_image ();
>   + int update_child_status (int child_num, int status, request_rec *r);
>   + int get_child_status (int child_num);
>   + int count_busy_servers ();
>   + int count_idle_servers ();
>   
>   
>   
>   1.7       +9 -0      apache/src/http_request.c
>   
>   Index: http_request.c
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/http_request.c,v
>   retrieving revision 1.6
>   retrieving revision 1.7
>   diff -C3 -r1.6 -r1.7
>   *** http_request.c	1996/04/09 23:06:03	1.6
>   --- http_request.c	1996/05/22 17:35:37	1.7
>   ***************
>   *** 70,75 ****
>   --- 70,76 ----
>     #include "http_protocol.h"
>     #include "http_log.h"
>     #include "http_main.h"
>   + #include "scoreboard.h"
>     
>     /*****************************************************************
>      *
>   ***************
>   *** 737,744 ****
>   --- 738,753 ----
>     
>     void process_request (request_rec *r)
>     {
>   +     int old_stat;
>         process_request_internal (r);
>   + #ifdef STATUS
>   +     old_stat = update_child_status (r->connection->child_num, SERVER_BUSY_LOG,
>   +      r);
>   + #endif /* STATUS */
>         log_transaction (r);
>   + #ifdef STATUS
>   +     (void)update_child_status (r->connection->child_num, old_stat, r);
>   + #endif /* STATUS */
>     }
>     
>     table *rename_original_env (pool *p, table *t)
>   
>   
>   
>   1.20      +2 -1      apache/src/httpd.h
>   
>   Index: httpd.h
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/httpd.h,v
>   retrieving revision 1.19
>   retrieving revision 1.20
>   diff -C3 -r1.19 -r1.20
>   *** httpd.h	1996/05/15 12:57:45	1.19
>   --- httpd.h	1996/05/22 17:35:38	1.20
>   ***************
>   *** 394,400 ****
>       server_rec *server;
>       
>       /* Information about the connection itself */
>   !   
>       BUFF *client;			/* Connetion to the guy */
>       int aborted;			/* Are we still talking? */
>       
>   --- 394,401 ----
>       server_rec *server;
>       
>       /* Information about the connection itself */
>   ! 
>   !   int child_num;                /* The number of the child handling conn_rec */
>       BUFF *client;			/* Connetion to the guy */
>       int aborted;			/* Are we still talking? */
>       
>   
>   
>   
>   1.8       +2 -2      apache/src/mod_cgi.c
>   
>   Index: mod_cgi.c
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/mod_cgi.c,v
>   retrieving revision 1.7
>   retrieving revision 1.8
>   diff -C3 -r1.7 -r1.8
>   *** mod_cgi.c	1996/04/25 05:18:26	1.7
>   --- mod_cgi.c	1996/05/22 17:35:38	1.8
>   ***************
>   *** 275,282 ****
>         
>     #else
>          if (!spawn_child (r->connection->pool, cgi_child, (void *)&cld,
>   ! 		      nph ? just_wait : kill_after_timeout,
>   ! 		      &script_out, nph ? NULL : &script_in)) {
>             log_reason ("couldn't spawn child process", r->filename, r);
>             return SERVER_ERROR;
>         }
>   --- 275,282 ----
>         
>     #else
>          if (!spawn_child (r->connection->pool, cgi_child, (void *)&cld,
>   ! 		       nph ? just_wait : kill_after_timeout, 
>   ! 		       &script_out, nph ? NULL : &script_in)) {
>             log_reason ("couldn't spawn child process", r->filename, r);
>             return SERVER_ERROR;
>         }
>   
>   
>   
>   1.17      +34 -5     apache/src/mod_status.c
>   
>   Index: mod_status.c
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/mod_status.c,v
>   retrieving revision 1.16
>   retrieving revision 1.17
>   diff -C3 -r1.16 -r1.17
>   *** mod_status.c	1996/05/13 20:22:01	1.16
>   --- mod_status.c	1996/05/22 17:35:39	1.17
>   ***************
>   *** 75,80 ****
>   --- 75,82 ----
>      * 09.4.96  Added message for non-STATUS compiled version
>      * 18.4.96  Added per child and per slot counters [Jim Jagielski]
>      * 01.5.96  Table format, cleanup, even more spiffy data [Chuck Murcko/Jim J.]
>   +  * 21.5.96  Additional Status codes (DNS and LOGGING only enabled if
>   +              extended STATUS is enabled) [George Burgyan/Jim J.]
>      */
>     
>     #include "httpd.h"
>   ***************
>   *** 191,197 ****
>         int no_table_report=0;
>         server_rec *server = r->server;
>         short_score score_record;
>   !     char status[]="???????";
>         char buffer[200];
>         char stat_buffer[HARD_SERVER_MAX];
>         clock_t tu,ts,tcu,tcs;
>   --- 193,199 ----
>         int no_table_report=0;
>         server_rec *server = r->server;
>         short_score score_record;
>   !     char status[]="??????????";
>         char buffer[200];
>         char stat_buffer[HARD_SERVER_MAX];
>         clock_t tu,ts,tcu,tcs;
>   ***************
>   *** 203,208 ****
>   --- 205,213 ----
>         status[SERVER_STARTING]='S';
>         status[SERVER_BUSY_READ]='R';
>         status[SERVER_BUSY_WRITE]='W';
>   +     status[SERVER_BUSY_KEEPALIVE]='K';
>   +     status[SERVER_BUSY_LOG]='L';
>   +     status[SERVER_BUSY_DNS]='D';
>     
>         if (r->method_number != M_GET) return NOT_IMPLEMENTED;
>         r->content_type = "text/html";
>   ***************
>   *** 255,261 ****
>             if (res == SERVER_READY)
>     	    ready++;
>             else if (res == SERVER_BUSY_READ || res==SERVER_BUSY_WRITE || 
>   ! 		 res == SERVER_STARTING)
>     	    busy++;
>     #if defined(STATUS)
>             lres = score_record.access_count;
>   --- 260,267 ----
>             if (res == SERVER_READY)
>     	    ready++;
>             else if (res == SERVER_BUSY_READ || res==SERVER_BUSY_WRITE || 
>   ! 		 res == SERVER_STARTING || res==SERVER_BUSY_KEEPALIVE ||
>   ! 		 res == SERVER_BUSY_LOG || res==SERVER_BUSY_DNS)
>     	    busy++;
>     #if defined(STATUS)
>             lres = score_record.access_count;
>   ***************
>   *** 387,397 ****
>         else 
>         {
>     	rputs("</PRE>\n",r);
>   ! 	rputs("Key: \n",r);
>     	rputs("\"<code>_</code>\" Waiting for Connection, \n",r);
>   ! 	rputs("\"<code>S</code>\" Starting up, \n",r);
>     	rputs("\"<code>R</code>\" Reading Request, \n",r);
>   ! 	rputs("\"<code>W</code>\" Sending Reply<p>\n",r);
>             sprintf(buffer,"\n%d requests currently being processed, %d idle servers\n",busy,ready);
>     	rputs(buffer,r);
>         }
>   --- 393,406 ----
>         else 
>         {
>     	rputs("</PRE>\n",r);
>   ! 	rputs("Key:<br> \n",r);
>     	rputs("\"<code>_</code>\" Waiting for Connection, \n",r);
>   ! 	rputs("\"<code>S</code>\" Starting up,<br> \n",r);
>     	rputs("\"<code>R</code>\" Reading Request, \n",r);
>   ! 	rputs("\"<code>W</code>\" Sending Reply,<br> \n",r);
>   ! 	rputs("\"<code>K</code>\" Keepalive (read), \n",r);
>   ! 	rputs("\"<code>D</code>\" DNS Lookup, \n",r);
>   ! 	rputs("\"<code>L</code>\" Logging<p>\n",r);
>             sprintf(buffer,"\n%d requests currently being processed, %d idle servers\n",busy,ready);
>     	rputs(buffer,r);
>         }
>   ***************
>   *** 438,443 ****
>   --- 447,461 ----
>     		        case SERVER_BUSY_WRITE:
>     		            rputs("<b>Write</b>",r);
>     		            break;
>   + 		        case SERVER_BUSY_KEEPALIVE:
>   + 		            rputs("<b>Keepalive</b>",r);
>   + 		            break;
>   + 		        case SERVER_BUSY_LOG:
>   + 		            rputs("<b>Logging</b>",r);
>   + 		            break;
>   + 		        case SERVER_BUSY_DNS:
>   + 		            rputs("<b>DNS lookup</b>",r);
>   + 		            break;
>     		        case SERVER_DEAD:
>     		            rputs("Dead",r);
>     		            break;
>   ***************
>   *** 479,484 ****
>   --- 497,511 ----
>     		        case SERVER_BUSY_WRITE:
>     		            rputs("<td><b>W</b>",r);
>     		            break;
>   + 		        case SERVER_BUSY_KEEPALIVE:
>   + 		            rputs("<td><b>K</b>",r);
>   + 		            break;
>   + 		        case SERVER_BUSY_LOG:
>   + 		            rputs("<td><b>L</b>",r);
>   + 		            break;
>   + 		        case SERVER_BUSY_DNS:
>   + 		            rputs("<td><b>D</b>",r);
>   + 		            break;
>     		        case SERVER_DEAD:
>     		            rputs("<td>.",r);
>     		            break;
>   ***************
>   *** 524,529 ****
>   --- 551,558 ----
>         rputs("you need to recompile Apache adding the <code>-DSTATUS</code>
\n",r);
>         rputs("directive on the <code>CFLAGS</code> line in the \n",r);
>         rputs("<code>Configuration</code> file.\n",r);
>   +     rputs("<code>DNS</code> and <code>LOGGING</code> status
\n",r);
>   +     rputs("also requires the <code>-DSTATUS</code> directive. \n",r);
>     
>     #endif /* STATUS */
>     
>   
>   
>   
>   1.10      +4 -0      apache/src/scoreboard.h
>   
>   Index: scoreboard.h
>   ===================================================================
>   RCS file: /export/home/cvs/apache/src/scoreboard.h,v
>   retrieving revision 1.9
>   retrieving revision 1.10
>   diff -C3 -r1.9 -r1.10
>   *** scoreboard.h	1996/05/07 18:29:35	1.9
>   --- scoreboard.h	1996/05/22 17:35:39	1.10
>   ***************
>   *** 63,73 ****
>   --- 63,77 ----
>      * Status values:
>      */
>     
>   + #define SERVER_UNKNOWN (-1)	/* should never be in this state */
>     #define SERVER_DEAD 0
>     #define SERVER_READY 1          /* Waiting for connection (or accept() lock) */
>     #define SERVER_STARTING 3       /* Server Starting up */
>     #define SERVER_BUSY_READ 2      /* Reading a client request */
>     #define SERVER_BUSY_WRITE 4     /* Processing a client request */
>   + #define SERVER_BUSY_KEEPALIVE 5 /* Waiting for more requests via keepalive */
>   + #define SERVER_BUSY_LOG 6       /* Logging the request */
>   + #define SERVER_BUSY_DNS 7       /* Looking up a hostname */
>     
>     typedef struct {
>         pid_t pid;
>   
>   
>   

-- 
Ben Laurie                  Phone: +44 (181) 994 6435
Freelance Consultant and    Fax:   +44 (181) 994 6472
Technical Director          Email: ben@algroup.co.uk
A.L. Digital Ltd,           URL: http://www.algroup.co.uk
London, England.

Mime
View raw message