Return-Path: Delivered-To: apmail-jakarta-tomcat-dev-archive@jakarta.apache.org Received: (qmail 41977 invoked by uid 500); 16 Aug 2001 05:26:30 -0000 Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: tomcat-dev@jakarta.apache.org Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 41966 invoked by uid 500); 16 Aug 2001 05:26:30 -0000 Delivered-To: apmail-jakarta-tomcat-cvs@apache.org Date: 16 Aug 2001 05:22:41 -0000 Message-ID: <20010816052241.98397.qmail@icarus.apache.org> From: larryi@apache.org To: jakarta-tomcat-cvs@apache.org Subject: cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/config ApacheConfig.java X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N larryi 01/08/15 22:22:41 Modified: src/share/org/apache/tomcat/modules/config ApacheConfig.java Log: Update to avoid writing duplicate NameVirtualHost directives. Also, if the context's host name is an ip address, or a host ip address is specified, then that address is used for the NameVirtualHost and directives. Added generation of NameVirtualHost to generateContextMappings(). Revision Changes Path 1.25 +32 -8 jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ApacheConfig.java Index: ApacheConfig.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ApacheConfig.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- ApacheConfig.java 2001/08/16 00:27:07 1.24 +++ ApacheConfig.java 2001/08/16 05:22:41 1.25 @@ -1,4 +1,4 @@ -/* $Id: ApacheConfig.java,v 1.24 2001/08/16 00:27:07 costin Exp $ +/* $Id: ApacheConfig.java,v 1.25 2001/08/16 05:22:41 larryi Exp $ * ==================================================================== * * The Apache Software License, Version 1.1 @@ -146,7 +146,7 @@ @author Costin Manolache @author Larry Isaacs @author Mel Martinez - @version $Revision: 1.24 $ $Date: 2001/08/16 00:27:07 $ + @version $Revision: 1.25 $ $Date: 2001/08/16 05:22:41 $ */ public class ApacheConfig extends BaseJkConfig { @@ -182,6 +182,8 @@ private String sslSessionIndicator="SSL_SESSION_ID"; private String sslCipherIndicator="SSL_CIPHER"; private String sslCertsIndicator="SSL_CLIENT_CERT"; + + Hashtable NamedVirtualHosts=null; public ApacheConfig() { } @@ -254,7 +256,7 @@ */ protected void initProperties(ContextManager cm) { super.initProperties(cm); - + jkConfig=FileUtil.getConfigFile( jkConfig, configHome, MOD_JK_CONFIG); workersConfig=FileUtil.getConfigFile( workersConfig, configHome, WORKERS_CONFIG); @@ -280,6 +282,8 @@ initProperties(cm); initProtocol(cm); + NamedVirtualHosts = new Hashtable(); + StringBuffer sb=new StringBuffer(); PrintWriter mod_jk = new PrintWriter(new FileWriter(jkConfig)); log("Generating apache mod_jk config = "+jkConfig ); @@ -402,8 +406,10 @@ return; } if( vhost != null ) { - generateNameVirtualHost(mod_jk ); - mod_jk.println(""); + String vhostip = getVirtualHostAddress(vhost, + context.getHostAddress()); + generateNameVirtualHost(mod_jk, vhostip); + mod_jk.println(""); mod_jk.println(" ServerName " + vhost ); Enumeration aliases=context.getHostAliases(); if( aliases.hasMoreElements() ) { @@ -426,13 +432,17 @@ mod_jk.println(indent + "JkMount " + nPath + "/* " + jkProto ); if( vhost != null ) { mod_jk.println(""); + mod_jk.println(); indent=""; } } - private void generateNameVirtualHost( PrintWriter mod_jk ) { - mod_jk.println("NameVirtualHost *"); + private void generateNameVirtualHost( PrintWriter mod_jk, String ip ) { + if( !NamedVirtualHosts.containsKey(ip) ) { + mod_jk.println("NameVirtualHost " + ip + ""); + NamedVirtualHosts.put(ip,ip); + } } // -------------------- Apache serves static mode -------------------- @@ -454,7 +464,10 @@ " ####################" ); mod_jk.println(); if( vhost != null ) { - mod_jk.println(""); + String vhostip = getVirtualHostAddress(vhost, + context.getHostAddress()); + generateNameVirtualHost(mod_jk, vhostip); + mod_jk.println(""); mod_jk.println(" ServerName " + vhost ); Enumeration aliases=context.getHostAliases(); if( aliases.hasMoreElements() ) { @@ -614,4 +627,15 @@ } return docBase; } + + private String getVirtualHostAddress(String vhost, String vhostip) { + if( vhostip == null ) { + if ( vhost != null && vhost.length() > 0 && Character.isDigit(vhost.charAt(0)) ) + vhostip=vhost; + else + vhostip="*"; + } + return vhostip; + } + }