httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dirk-Willem van Gulik <di...@elect6.jrc.it>
Subject Re: inetd mode broken again
Date Sat, 25 Oct 1997 11:01:28 GMT
On Fri, 24 Oct 1997, Dean Gaudet wrote:

> I find the following patch fixes all bugs with inetd mode.  YMMV.

Yep, works for me! Nice piece of work, into which I got stuck
completely earlier ths week.

Dw.
> 
> Index: htdocs/manual/upgrading_to_1_3.html
> ===================================================================
> RCS file: /export/home/cvs/apachen/htdocs/manual/upgrading_to_1_3.html,v
> retrieving revision 1.3
> diff -u -r1.3 upgrading_to_1_3.html
> --- upgrading_to_1_3.html	1997/10/07 23:01:35	1.3
> +++ upgrading_to_1_3.html	1997/10/25 05:58:54
> @@ -102,6 +102,9 @@
>       This makes it more convenient to start Apache via rsh, ssh,
>       or crontabs.
>  
> +  <li><code>ServerType inetd</code> is no longer supported.  It was
> +    buggy, inefficient, and not worth maintaining.
> +
>  </ul>
>  
>  <h3>Misc Changes</h3>
> Index: htdocs/manual/mod/core.html
> ===================================================================
> RCS file: /export/home/cvs/apachen/htdocs/manual/mod/core.html,v
> retrieving revision 1.80
> diff -u -r1.80 core.html
> --- core.html	1997/10/10 09:13:09	1.80
> +++ core.html	1997/10/25 05:58:55
> @@ -1551,7 +1551,8 @@
>  <em>Type</em> is one of
>  <dl>
>  <dt>inetd
> -<dd>The server will be run from the system process inetd; the command to start
> +<dd><b>No longer supported as of Apache 1.3</b>
> +The server will be run from the system process inetd; the command to start
>  the server is added to <code>/etc/inetd.conf</code>
>  <dt>standalone
>  <dd>The server will run as a daemon process; the command to start the server
> Index: src/CHANGES
> ===================================================================
> RCS file: /export/home/cvs/apachen/src/CHANGES,v
> retrieving revision 1.471
> diff -u -r1.471 CHANGES
> --- CHANGES	1997/10/25 01:52:41	1.471
> +++ CHANGES	1997/10/25 05:58:56
> @@ -1,5 +1,8 @@
>  Changes with Apache 1.3b3
>  
> +  *) inetd mode no longer exists as it was full of bugs and not
> +     efficient. [Dean Gaudet]
> +
>    *) PORT: AIX now uses USE_FCNTL_SERIALIZED_ACCEPT. PR#849
>       PORT: i386 AIX does not have memmove. PR#1267
>       PORT: HPUX now defaults to using Spencer regex.  PR#482, 1246
> Index: src/main/http_conf_globals.h
> ===================================================================
> RCS file: /export/home/cvs/apachen/src/main/http_conf_globals.h,v
> retrieving revision 1.19
> diff -u -r1.19 http_conf_globals.h
> --- http_conf_globals.h	1997/10/22 20:29:34	1.19
> +++ http_conf_globals.h	1997/10/25 05:58:56
> @@ -55,7 +55,6 @@
>   * Process config --- what the process ITSELF is doing
>   */
>  
> -extern int standalone;
>  extern uid_t user_id;
>  extern char *user_name;
>  extern gid_t group_id;
> Index: src/main/http_config.c
> ===================================================================
> RCS file: /export/home/cvs/apachen/src/main/http_config.c,v
> retrieving revision 1.83
> diff -u -r1.83 http_config.c
> --- http_config.c	1997/10/22 20:29:35	1.83
> +++ http_config.c	1997/10/25 05:58:57
> @@ -1116,7 +1116,6 @@
>  {
>      /* ServerRoot, server_confname set in httpd.c */
>  
> -    standalone = 1;
>      user_name = DEFAULT_USER;
>      user_id = uname2id(DEFAULT_USER);
>      group_id = gname2id(DEFAULT_GROUP);
> Index: src/main/http_core.c
> ===================================================================
> RCS file: /export/home/cvs/apachen/src/main/http_core.c,v
> retrieving revision 1.132
> diff -u -r1.132 http_core.c
> --- http_core.c	1997/10/22 21:49:45	1.132
> +++ http_core.c	1997/10/25 05:58:58
> @@ -1081,8 +1081,12 @@
>  {
>      if (cmd->server->is_virtual)
>  	return "ServerType directive not allowed in <VirtualHost>";
> -    if (!strcasecmp (arg, "inetd")) standalone = 0;
> -    else if (!strcasecmp (arg, "standalone")) standalone = 1;
> +    if (!strcasecmp (arg, "inetd")) {
> +	return "ServerType 'inetd' no longer supported";
> +    }
> +    else if (!strcasecmp (arg, "standalone")) {
> +	/* yawn */
> +    }
>      else return "ServerType must be either 'inetd' or 'standalone'";
>  
>      return NULL;
> Index: src/main/http_main.c
> ===================================================================
> RCS file: /export/home/cvs/apachen/src/main/http_main.c,v
> retrieving revision 1.237
> diff -u -r1.237 http_main.c
> --- http_main.c	1997/10/22 20:29:40	1.237
> +++ http_main.c	1997/10/25 05:58:59
> @@ -147,7 +147,6 @@
>   * for the most part the only code that acts on 'em.  (Hmmm... mod_main.c?)
>   */
>  
> -int standalone;
>  uid_t user_id;
>  char *user_name;
>  gid_t group_id;
> @@ -728,9 +727,6 @@
>  	bsetflag(timeout_req->connection->client, B_EOUT, 1);
>  	bclose(timeout_req->connection->client);
>  
> -	if (!standalone)
> -	    exit(0);
> -
>  	ap_longjmp(jmpbuffer, 1);
>      }
>      else {			/* abort the connection */
> @@ -3107,8 +3103,6 @@
>  {
>      int remaining_children_to_start;
>  
> -    standalone = 1;
> -
>      is_graceful = 0;
>      ++generation;
>  
> @@ -3392,87 +3386,7 @@
>      server_conf = read_config(pconf, ptrans, server_confname);
>      init_modules(pconf, server_conf);
>  
> -    if (standalone) {
> -	STANDALONE_MAIN(argc, argv);
> -    }
> -    else {
> -	conn_rec *conn;
> -	request_rec *r;
> -	struct sockaddr sa_server, sa_client;
> -	BUFF *cio;
> -	NET_SIZE_T l;
> -
> -	open_logs(server_conf, pconf);
> -	init_modules(pconf, server_conf);
> -	set_group_privs();
> -
> -#ifdef MPE
> -	/* Only try to switch if we're running as MANAGER.SYS */
> -	if (geteuid() == 1 && user_id > 1) {
> -	    GETPRIVMODE();
> -	    if (setuid(user_id) == -1) {
> -		GETUSERMODE();
> -		aplog_error(APLOG_MARK, APLOG_ALERT, server_conf,
> -			    "setuid: unable to change uid");
> -		exit(1);
> -	    }
> -	    GETUSERMODE();
> -	}
> -#else
> -	/* Only try to switch if we're running as root */
> -	if (!geteuid() && setuid(user_id) == -1) {
> -	    aplog_error(APLOG_MARK, APLOG_ALERT, server_conf,
> -			"setuid: unable to change uid");
> -	    exit(1);
> -	}
> -#endif
> -	if (ap_setjmp(jmpbuffer)) {
> -	    exit(0);
> -	}
> -
> -	l = sizeof(sa_client);
> -	if ((getpeername(fileno(stdin), &sa_client, &l)) < 0) {
> -/* get peername will fail if the input isn't a socket */
> -	    perror("getpeername");
> -	    memset(&sa_client, '\0', sizeof(sa_client));
> -	}
> -
> -	l = sizeof(sa_server);
> -	if (getsockname(fileno(stdin), &sa_server, &l) < 0) {
> -	    perror("getsockname");
> -	    fprintf(stderr, "Error getting local address\n");
> -	    exit(1);
> -	}
> -	server_conf->port = ntohs(((struct sockaddr_in *) &sa_server)->sin_port);
> -	cio = bcreate(ptrans, B_RDWR | B_SOCKET);
> -#ifdef MPE
> -/* HP MPE 5.5 inetd only passes the incoming socket as stdin (fd 0), whereas
> -   HPUX inetd passes the incoming socket as stdin (fd 0) and stdout (fd 1).
> -   Go figure.  SR 5003355016 has been submitted to request that the existing
> -   functionality be documented, and then to enhance the functionality to be
> -   like HPUX. */
> -
> -	cio->fd = fileno(stdin);
> -#else
> -	cio->fd = fileno(stdout);
> -#endif
> -	cio->fd_in = fileno(stdin);
> -	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) */
> -
> -	while (r && conn->keepalive && !conn->aborted) {
> -	    destroy_pool(r->pool);
> -	    r = read_request(conn);
> -	    if (r)
> -		process_request(r);
> -	}
> -
> -	bclose(cio);
> -    }
> +    STANDALONE_MAIN(argc, argv);
>      exit(0);
>  }
>  
> @@ -3810,7 +3724,6 @@
>      int max_jobs_per_exe;
>      int max_jobs_after_exit_request;
>  
> -    standalone = 1;
>      sd = -1;
>      nthreads = threads_per_child;
>      max_jobs_after_exit_request = excess_requests_per_child;
> Index: src/modules/standard/mod_info.c
> ===================================================================
> RCS file: /export/home/cvs/apachen/src/modules/standard/mod_info.c,v
> retrieving revision 1.30
> diff -u -r1.30 mod_info.c
> --- mod_info.c	1997/10/22 20:30:23	1.30
> +++ mod_info.c	1997/10/25 05:59:00
> @@ -410,10 +410,6 @@
>                          MODULE_MAGIC_NUMBER);
>              rputs(buf, r);
>              ap_snprintf(buf, sizeof(buf),
> -                        "<strong>Run Mode:</strong> <tt>%s</tt><br>\n",
> -                        (standalone ? "standalone" : "inetd"));
> -            rputs(buf, r);
> -            ap_snprintf(buf, sizeof(buf),
>                          "<strong>User/Group:</strong> "
>                          "<tt>%s(%d)/%d</tt><br>\n",
>                          user_name, (int) user_id, (int) group_id);
> 
> 


Mime
View raw message