httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dgau...@hyperreal.org
Subject cvs commit: apache-2.0/src/os/beos beosd.c beosd.h
Date Tue, 07 Sep 1999 22:31:11 GMT
dgaudet     99/09/07 15:31:09

  Modified:    src/os/beos beosd.c beosd.h
  Log:
  beos updates from David Reid <beos@server1.jetnet.co.uk>
  
  Submitted by:	David Reid <beos@server1.jetnet.co.uk>
  
  Revision  Changes    Path
  1.3       +30 -23    apache-2.0/src/os/beos/beosd.c
  
  Index: beosd.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/os/beos/beosd.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- beosd.c	1999/07/26 07:03:09	1.2
  +++ beosd.c	1999/09/07 22:30:59	1.3
  @@ -59,17 +59,23 @@
   #include "http_config.h"
   #include "http_main.h"
   #include "http_log.h"
  -#include "unixd.h"
  +#include "beosd.h"
   
  -unixd_config_rec unixd_config;
  +beosd_config_rec beosd_config;
   
  -void unixd_detach(void)
  +void beosd_detach(void)
   {
  -    int x;
  +/*    int x;  This isn't needed due to the fork() issue */
       pid_t pgrp;
   
       chdir("/");
   
  +/* ZZZ
  + * fork() is evil if we're also doing spawn_thread...so we don't use it.
  + * This means that it won't detach properly, so we'll have to find a way
  + * round this. 
  + */
  +/*
       if ((x = fork()) > 0)
   	exit(0);
       else if (x == -1) {
  @@ -77,6 +83,7 @@
   	fprintf(stderr, "%s: unable to fork new process\n", ap_server_argv0);
   	exit(1);
       }
  +*/
       RAISE_SIGSTOP(DETACH);
   
       if ((pgrp = setsid()) == -1) {
  @@ -119,9 +126,9 @@
   
   	/* Get username if passed as a uid */
   
  -	if (unixd_config.user_name[0] == '#') {
  +	if (beosd_config.user_name[0] == '#') {
   	    struct passwd *ent;
  -	    uid_t uid = atoi(&unixd_config.user_name[1]);
  +	    uid_t uid = atoi(&beosd_config.user_name[1]);
   
   	    if ((ent = getpwuid(uid)) == NULL) {
   		ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
  @@ -134,21 +141,21 @@
   	    name = ent->pw_name;
   	}
   	else
  -	    name = unixd_config.user_name;
  +	    name = beosd_config.user_name;
   
  -	if (setgid(unixd_config.group_id) == -1) {
  +	if (setgid(beosd_config.group_id) == -1) {
   	    ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
   			"setgid: unable to set group id to Group %u",
  -			(unsigned)unixd_config.group_id);
  +			(unsigned)beosd_config.group_id);
   	    return -1;
   	}
   
   	/* Reset `groups' attributes. */
   
  -	if (initgroups(name, unixd_config.group_id) == -1) {
  +	if (initgroups(name, beosd_config.group_id) == -1) {
   	    ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
   			"initgroups: unable to set groups for User %s "
  -			"and Group %u", name, (unsigned)unixd_config.group_id);
  +			"and Group %u", name, (unsigned)beosd_config.group_id);
   	    return -1;
   	}
       }
  @@ -156,7 +163,7 @@
   }
   
   
  -int unixd_setup_child(void)
  +int beosd_setup_child(void)
   {
       if (set_group_privs()) {
   	return -1;
  @@ -164,7 +171,7 @@
   
       /* Only try to switch if we're running as root */
       if (!geteuid() && (
  -	setuid(unixd_config.user_id) == -1)) {
  +	setuid(beosd_config.user_id) == -1)) {
   	ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
   		    "setuid: unable to change uid");
   	return -1;
  @@ -173,17 +180,17 @@
   }
   
   
  -const char *unixd_set_user(cmd_parms *cmd, void *dummy, char *arg)
  +const char *beosd_set_user(cmd_parms *cmd, void *dummy, char *arg)
   {
       const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
       if (err != NULL) {
           return err;
       }
   
  -    unixd_config.user_name = arg;
  -    unixd_config.user_id = ap_uname2id(arg);
  +    beosd_config.user_name = arg;
  +    beosd_config.user_id = ap_uname2id(arg);
   #if !defined (BIG_SECURITY_HOLE) && !defined (OS2)
  -    if (unixd_config.user_id == 0) {
  +    if (beosd_config.user_id == 0) {
   	return "Error:\tApache has not been designed to serve pages while\n"
   		"\trunning as root.  There are known race conditions that\n"
   		"\twill allow any local user to read any file on the system.\n"
  @@ -199,21 +206,21 @@
       return NULL;
   }
   
  -const char *unixd_set_group(cmd_parms *cmd, void *dummy, char *arg)
  +const char *beosd_set_group(cmd_parms *cmd, void *dummy, char *arg)
   {
       const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
       if (err != NULL) {
           return err;
       }
   
  -    unixd_config.group_id = ap_gname2id(arg);
  +    beosd_config.group_id = ap_gname2id(arg);
   
       return NULL;
   }
   
  -void unixd_pre_config(void)
  +void beosd_pre_config(void)
   {
  -    unixd_config.user_name = DEFAULT_USER;
  -    unixd_config.user_id = ap_uname2id(DEFAULT_USER);
  -    unixd_config.group_id = ap_gname2id(DEFAULT_GROUP);
  +    beosd_config.user_name = DEFAULT_USER;
  +    beosd_config.user_id = ap_uname2id(DEFAULT_USER);
  +    beosd_config.group_id = ap_gname2id(DEFAULT_GROUP);
   }
  
  
  
  1.2       +22 -10    apache-2.0/src/os/beos/beosd.h
  
  Index: beosd.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/os/beos/beosd.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- beosd.h	1999/07/12 22:51:13	1.1
  +++ beosd.h	1999/09/07 22:31:02	1.2
  @@ -58,25 +58,37 @@
   #ifndef UNIXD_H
   #define UNIXD_H
   
  -/* common stuff that unix MPMs will want */
  +/* common stuff that beos MPMs will want */
   
   typedef struct {
       char *user_name;
       uid_t user_id;
       gid_t group_id;
  -} unixd_config_rec;
  -extern unixd_config_rec unixd_config;
  +} beosd_config_rec;
  +extern beosd_config_rec beosd_config;
   
  -void unixd_detach(void);
  -int unixd_setup_child(void);
  -void unixd_pre_config(void);
  -const char *unixd_set_user(cmd_parms *cmd, void *dummy, char *arg);
  -const char *unixd_set_group(cmd_parms *cmd, void *dummy, char *arg);
  +void beosd_detach(void);
  +int beosd_setup_child(void);
  +void beosd_pre_config(void);
  +const char *beosd_set_user(cmd_parms *cmd, void *dummy, char *arg);
  +const char *beosd_set_group(cmd_parms *cmd, void *dummy, char *arg);
   
  +#if defined(NSIG)
  +#define NumSIG NSIG
  +#elif defined(_NSIG)
  +#define NumSIG _NSIG
  +#elif defined(__NSIG)
  +#define NumSIG __NSIG
  +#else
  +#define NumSIG 32   /* for 1998's unixes, this is still a good assumption */
  +#endif
  +
  +#define INIT_SIGLIST()  /* nothing */
  +
   #define UNIX_DAEMON_COMMANDS	\
  -{ "User", unixd_set_user, NULL, RSRC_CONF, TAKE1, \
  +{ "User", beosd_set_user, NULL, RSRC_CONF, TAKE1, \
     "Effective user id for this server"}, \
  -{ "Group", unixd_set_group, NULL, RSRC_CONF, TAKE1, \
  +{ "Group", beosd_set_group, NULL, RSRC_CONF, TAKE1, \
     "Effective group id for this server"}, \
   
   #endif
  
  
  

Mime
View raw message