httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From c...@hyperreal.org
Subject cvs commit: apache-1.3/src/modules/standard mod_vhost_alias.c
Date Tue, 22 Jun 1999 15:33:21 GMT
coar        99/06/22 08:33:20

  Modified:    src      Configuration.tmpl
               src/main http_core.c
               src/modules/standard mod_vhost_alias.c
  Log:
  	Jim beat me to the server_rec and ap_mmn fixes, so what's left
  	here is just some cleanup from the new module addition; be
  	consistent and stylish.  Oh, and fix the location in the
  	Configuration.tmpl file.
  
  Revision  Changes    Path
  1.117     +1 -1      apache-1.3/src/Configuration.tmpl
  
  Index: Configuration.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/Configuration.tmpl,v
  retrieving revision 1.116
  retrieving revision 1.117
  diff -u -r1.116 -r1.117
  --- Configuration.tmpl	1999/06/22 00:51:27	1.116
  +++ Configuration.tmpl	1999/06/22 15:33:10	1.117
  @@ -219,7 +219,7 @@
   ## based on the host header or local IP address of the request.
   ## See "../htdocs/manual/vhosts/mass.html".
   
  -# AddModule modules/extra/mod_vhost_alias.o
  +# AddModule modules/standard/mod_vhost_alias.o
   
   ##
   ## Config manipulation modules
  
  
  
  1.266     +10 -7     apache-1.3/src/main/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/main/http_core.c,v
  retrieving revision 1.265
  retrieving revision 1.266
  diff -u -r1.265 -r1.266
  --- http_core.c	1999/06/22 00:51:30	1.265
  +++ http_core.c	1999/06/22 15:33:14	1.266
  @@ -696,11 +696,14 @@
   	    struct in_addr *iaddr;
   	    struct hostent *hptr;
               int old_stat;
  -	    old_stat = ap_update_child_status(conn->child_num, SERVER_BUSY_DNS, r);
  +	    old_stat = ap_update_child_status(conn->child_num,
  +					      SERVER_BUSY_DNS, r);
   	    iaddr = &(conn->local_addr.sin_addr);
  -	    hptr = gethostbyaddr((char *)iaddr, sizeof(struct in_addr), AF_INET);
  +	    hptr = gethostbyaddr((char *)iaddr, sizeof(struct in_addr),
  +				 AF_INET);
   	    if (hptr != NULL) {
  -	        conn->local_host = ap_pstrdup(conn->pool, (void *)hptr->h_name);
  +	        conn->local_host = ap_pstrdup(conn->pool,
  +					      (void *)hptr->h_name);
   		ap_str_tolower(conn->local_host);
   	    }
   	    else {
  @@ -724,7 +727,7 @@
       port = r->server->port ? r->server->port : ap_default_port(r);
   
       if (d->use_canonical_name == USE_CANONICAL_NAME_OFF
  -     || d->use_canonical_name == USE_CANONICAL_NAME_DNS) {
  +	|| d->use_canonical_name == USE_CANONICAL_NAME_DNS) {
           return r->hostname ? ntohs(r->connection->local_addr.sin_port)
   			   : port;
       }
  @@ -2144,13 +2147,13 @@
   	return err;
       }
   
  -    if (!strcasecmp(arg, "on")) {
  +    if (strcasecmp(arg, "on") == 0) {
           d->use_canonical_name = USE_CANONICAL_NAME_ON;
       }
  -    else if (!strcasecmp(arg, "off")) {
  +    else if (strcasecmp(arg, "off") == 0) {
           d->use_canonical_name = USE_CANONICAL_NAME_OFF;
       }
  -    else if (!strcasecmp(arg, "dns")) {
  +    else if (strcasecmp(arg, "dns") == 0) {
           d->use_canonical_name = USE_CANONICAL_NAME_DNS;
       }
       else {
  
  
  
  1.2       +116 -75   apache-1.3/src/modules/standard/mod_vhost_alias.c
  
  Index: mod_vhost_alias.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_vhost_alias.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- mod_vhost_alias.c	1999/06/22 00:51:38	1.1
  +++ mod_vhost_alias.c	1999/06/22 15:33:17	1.2
  @@ -82,26 +82,30 @@
   module MODULE_VAR_EXPORT vhost_alias_module;
   
   
  -/* basic configuration things */
  +/*
  + * basic configuration things
  + * we abbreviate "mod_vhost_alias" to "mva" for shorter names
  + */
   
   typedef enum {
       VHOST_ALIAS_UNSET, VHOST_ALIAS_NONE, VHOST_ALIAS_NAME, VHOST_ALIAS_IP
  -} vhost_alias_mode;
  +} mva_mode_e;
   
  -typedef struct vhost_alias_server_conf {
  +/*
  + * Per-server module config record.
  + */
  +typedef struct mva_sconf_t {
       char *doc_root;
       char *cgi_root;
  -    vhost_alias_mode doc_root_mode;
  -    vhost_alias_mode cgi_root_mode;
  -} vhost_alias_server_conf;
  -
  +    mva_mode_e doc_root_mode;
  +    mva_mode_e cgi_root_mode;
  +} mva_sconf_t;
   
  -static void *vhost_alias_create_config(pool *p, server_rec *s)
  +static void *mva_create_server_config(pool *p, server_rec *s)
   {
  -    vhost_alias_server_conf *conf =
  -	(vhost_alias_server_conf *)
  -	ap_pcalloc(p, sizeof(vhost_alias_server_conf));
  +    mva_sconf_t *conf;
   
  +    conf = (mva_sconf_t *) ap_pcalloc(p, sizeof(mva_sconf_t));
       conf->doc_root = NULL;
       conf->cgi_root = NULL;
       conf->doc_root_mode = VHOST_ALIAS_UNSET;
  @@ -109,13 +113,13 @@
       return conf;
   }
   
  -static void *vhost_alias_merge_config(pool *p, void *parentv, void *childv)
  +static void *mva_merge_server_config(pool *p, void *parentv, void *childv)
   {
  -    vhost_alias_server_conf *parent = (vhost_alias_server_conf *)parentv;
  -    vhost_alias_server_conf *child = (vhost_alias_server_conf *)childv;
  -    vhost_alias_server_conf *conf =
  -	(vhost_alias_server_conf *) ap_pcalloc(p, sizeof(*conf));
  +    mva_sconf_t *parent = (mva_sconf_t *) parentv;
  +    mva_sconf_t *child = (mva_sconf_t *) childv;
  +    mva_sconf_t *conf;
   
  +    conf = (mva_sconf_t *) ap_pcalloc(p, sizeof(*conf));
       if (child->doc_root_mode == VHOST_ALIAS_UNSET) {
   	conf->doc_root_mode = parent->doc_root_mode;
   	conf->doc_root = parent->doc_root;
  @@ -138,48 +142,51 @@
   
   /*
    * These are just here to tell us what vhost_alias_set should do.
  + * We don't put anything into them; we just use the cell addresses.
    */
  -static int
  -    vhost_alias_set_doc_root_ip,
  +static int vhost_alias_set_doc_root_ip,
       vhost_alias_set_cgi_root_ip,
       vhost_alias_set_doc_root_name,
       vhost_alias_set_cgi_root_name;
   
   static const char *vhost_alias_set(cmd_parms *cmd, void *dummy, char *map)
   {
  -    vhost_alias_server_conf *conf =
  -	(vhost_alias_server_conf *)
  -	ap_get_module_config(cmd->server->module_config, &vhost_alias_module);
  -    vhost_alias_mode mode, *pmode;
  +    mva_sconf_t *conf;
  +    mva_mode_e mode, *pmode;
       char **pmap;
       char *p;
     
  +    conf = (mva_sconf_t *) ap_get_module_config(cmd->server->module_config,
  +						&vhost_alias_module);
       /* there ought to be a better way of doing this */
       if (&vhost_alias_set_doc_root_ip == cmd->info) {
   	mode = VHOST_ALIAS_IP;
   	pmap = &conf->doc_root;
   	pmode = &conf->doc_root_mode;
  -    } else
  -    if (&vhost_alias_set_cgi_root_ip == cmd->info) {
  +    }
  +    else if (&vhost_alias_set_cgi_root_ip == cmd->info) {
   	mode = VHOST_ALIAS_IP;
   	pmap = &conf->cgi_root;
   	pmode = &conf->cgi_root_mode;
  -    } else
  -    if (&vhost_alias_set_doc_root_name == cmd->info) {
  +    }
  +    else if (&vhost_alias_set_doc_root_name == cmd->info) {
   	mode = VHOST_ALIAS_NAME;
   	pmap = &conf->doc_root;
   	pmode = &conf->doc_root_mode;
  -    } else
  -    if (&vhost_alias_set_cgi_root_name == cmd->info) {
  +    }
  +    else if (&vhost_alias_set_cgi_root_name == cmd->info) {
   	mode = VHOST_ALIAS_NAME;
   	pmap = &conf->cgi_root;
   	pmode = &conf->cgi_root_mode;
  -    } else
  +    }
  +    else {
   	return "INTERNAL ERROR: unknown command info";
  +    }
   
       if (*map != '/') {
  -	if (strcasecmp(map, "none"))
  +	if (strcasecmp(map, "none")) {
   	    return "format string must start with '/' or be 'none'";
  +	}
   	*pmap = NULL;
   	*pmode = VHOST_ALIAS_NONE;
   	return NULL;
  @@ -188,46 +195,56 @@
       /* sanity check */
       p = map;
       while (*p != '\0') {
  -	if (*p++ != '%')
  +	if (*p++ != '%') {
   	    continue;
  +	}
   	/* we just found a '%' */
   	if (*p == 'p' || *p == '%') {
   	    ++p;
   	    continue;
   	}
   	/* optional dash */
  -	if (*p == '-')
  +	if (*p == '-') {
   	    ++p;
  +	}
   	/* digit N */
  -	if (ap_isdigit(*p))
  +	if (ap_isdigit(*p)) {
   	    ++p;
  -	else
  +	}
  +	else {
   	    return "syntax error in format string";
  +	}
   	/* optional plus */
  -	if (*p == '+')
  +	if (*p == '+') {
   	    ++p;
  +	}
   	/* do we end here? */
  -	if (*p != '.')
  +	if (*p != '.') {
   	    continue;
  +	}
   	++p;
   	/* optional dash */
  -	if (*p == '-')
  +	if (*p == '-') {
   	    ++p;
  +	}
   	/* digit M */
  -	if (ap_isdigit(*p))
  +	if (ap_isdigit(*p)) {
   	    ++p;
  -	else
  +	}
  +	else {
   	    return "syntax error in format string";
  +	}
   	/* optional plus */
  -	if (*p == '+')
  +	if (*p == '+') {
   	    ++p;
  +	}
       }
       *pmap = map;
       *pmode = mode;
       return NULL;
   }
   
  -static const command_rec vhost_alias_commands[] =
  +static const command_rec mva_commands[] =
   {
       {"VirtualScriptAlias", vhost_alias_set, &vhost_alias_set_cgi_root_name,
        RSRC_CONF, TAKE1, "how to create a ScriptAlias based on the host"},
  @@ -251,10 +268,12 @@
       /* XXX: what if size > HUGE_STRING_LEN? */
       if (*pdest + size > buf + HUGE_STRING_LEN) {
   	**pdest = '\0';
  -	if (r->filename)
  +	if (r->filename) {
   	    r->filename = ap_pstrcat(r->pool, r->filename, buf, NULL);
  -	else
  +	}
  +	else {
   	    r->filename = ap_pstrdup(r->pool, buf);
  +	}
   	*pdest = buf;
       }
   }
  @@ -277,9 +296,11 @@
   
       ndots = 0;
       dots[ndots++] = name-1; /* slightly naughty */
  -    for (p = name; *p; ++p)
  -	if (*p == '.' && ndots < MAXDOTS)
  +    for (p = name; *p; ++p){
  +	if (*p == '.' && ndots < MAXDOTS) {
   	    dots[ndots++] = p;
  +	}
  +    }
       dots[ndots] = p;
   
       r->filename = NULL;
  @@ -321,9 +342,13 @@
   	if (*map == '+') ++map, Np = 1;
   	if (*map == '.') {
   	    ++map;
  -	    if (*map == '-') ++map, Md = 1;
  +	    if (*map == '-') {
  +		++map, Md = 1;
  +	    }
   	    M = *map++ - '0';
  -	    if (*map == '+') ++map, Mp = 1;
  +	    if (*map == '+') {
  +		++map, Mp = 1;
  +	    }
   	}
   	/* note that N and M are one-based indices, not zero-based */
   	start = dots[0]+1; /* ptr to the first character */
  @@ -332,13 +357,17 @@
   	    if (N > ndots) {
   		start = "_";
   		end = start+1;
  -	    } else if (!Nd) {
  +	    }
  +	    else if (!Nd) {
   		start = dots[N-1]+1;
  -		if (!Np)
  +		if (!Np) {
   		    end = dots[N];
  -	    } else {
  -		if (!Np)
  +		}
  +	    }
  +	    else {
  +		if (!Np) {
   		    start = dots[ndots-N]+1;
  +		}
   		end = dots[ndots-N+1];
   	    }
   	}
  @@ -346,39 +375,47 @@
   	    if (M > end - start) {
   		start = "_";
   		end = start+1;
  -	    } else if (!Md) {
  +	    }
  +	    else if (!Md) {
   		start = start+M-1;
  -		if (!Mp)
  +		if (!Mp) {
   		    end = start+1;
  -	    } else {
  -		if (!Mp)
  +		}
  +	    }
  +	    else {
  +		if (!Mp) {
   		    start = end-M;
  +		}
   		end = end-M+1;
   	    }
   	}
   	vhost_alias_checkspace(r, buf, &dest, end - start);
  -	for (p = start; p < end; ++p)
  +	for (p = start; p < end; ++p) {
   	    *dest++ = ap_tolower(*p);
  +	}
       }
       *dest = '\0';
       /* no double slashes */
  -    if (last == '/') 
  +    if (last == '/') {
   	++uri;
  -    if (r->filename)
  +    }
  +    if (r->filename) {
   	r->filename = ap_pstrcat(r->pool, r->filename, buf, uri, NULL);
  -    else
  +    }
  +    else {
   	r->filename = ap_pstrcat(r->pool, buf, uri, NULL);
  +    }
   }
   
  -static int vhost_alias_translate(request_rec *r)
  +static int mva_translate(request_rec *r)
   {
  -    vhost_alias_server_conf *conf =
  -	(vhost_alias_server_conf *)
  -	ap_get_module_config(r->server->module_config, &vhost_alias_module);
  +    mva_sconf_t *conf;
       const char *name, *map, *uri;
  -    vhost_alias_mode mode;
  +    mva_mode_e mode;
       int cgi;
     
  +    conf = (mva_sconf_t *) ap_get_module_config(r->server->module_config,
  +					      &vhost_alias_module);
       if (!strncmp(r->uri, "/cgi-bin/", 9)) {
   	mode = conf->cgi_root_mode;
   	map = conf->cgi_root;
  @@ -388,21 +425,26 @@
   	 * call if the mode is wrong
   	 */
   	cgi = 1;
  -    } else if (r->uri[0] == '/') {
  +    }
  +    else if (r->uri[0] == '/') {
   	mode = conf->doc_root_mode;
   	map = conf->doc_root;
   	uri = r->uri;
   	cgi = 0;
  -    } else
  +    }
  +    else {
   	return DECLINED;
  +    }
     
  -    if (mode == VHOST_ALIAS_NAME)
  +    if (mode == VHOST_ALIAS_NAME) {
   	name = ap_get_server_name(r);
  -    else
  -    if (mode == VHOST_ALIAS_IP)
  +    }
  +    else if (mode == VHOST_ALIAS_IP) {
   	name = r->connection->local_ip;
  -    else
  +    }
  +    else {
   	return DECLINED;
  +    }
   
       vhost_alias_interpolate(r, name, map, uri);
   
  @@ -422,11 +464,11 @@
       NULL,			/* initializer */
       NULL,			/* dir config creater */
       NULL,			/* dir merger --- default is to override */
  -    vhost_alias_create_config,	/* server config */
  -    vhost_alias_merge_config,	/* merge server configs */
  -    vhost_alias_commands,	/* command table */
  +    mva_create_server_config,	/* server config */
  +    mva_merge_server_config,	/* merge server configs */
  +    mva_commands,		/* command table */
       NULL,			/* handlers */
  -    vhost_alias_translate,	/* filename translation */
  +    mva_translate,		/* filename translation */
       NULL,			/* check_user_id */
       NULL,			/* check auth */
       NULL,			/* check access */
  @@ -438,4 +480,3 @@
       NULL,			/* child_exit */
       NULL			/* post read-request */
   };
  -
  
  
  

Mime
View raw message