Return-Path: Mailing-List: contact tomcat-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list tomcat-dev@jakarta.apache.org Received: (qmail 2382 invoked from network); 6 Nov 1999 13:13:56 -0000 Received: from sekator.interdata.com.pl (root@212.244.121.10) by apache.org with SMTP; 6 Nov 1999 13:13:56 -0000 Received: from celeron.mimo.core.pl (mimo@pmone247.lodz.pdi.net [195.116.162.247]) by sekator.interdata.com.pl (8.8.7/8.8.7) with ESMTP id OAA21223 for ; Sat, 6 Nov 1999 14:13:39 +0100 Received: from interdata.com.pl (IDENT:mimo@localhost [127.0.0.1]) by celeron.mimo.core.pl (8.9.3/8.8.7) with ESMTP id NAA08805 for ; Sat, 6 Nov 1999 13:56:52 +0100 Sender: mimo@celeron.mimo.core.pl Message-ID: <38242593.6610A2FC@interdata.com.pl> Date: Sat, 06 Nov 1999 13:56:51 +0100 From: Michal Mosiewicz X-Mailer: Mozilla 4.6 [en] (X11; I; Linux 2.2.5-15 i686) X-Accept-Language: pl, en MIME-Version: 1.0 To: tomcat-dev@jakarta.apache.org Subject: Connector code Content-Type: multipart/mixed; boundary="------------C0DB45A55D9FC71CEB62071C" --------------C0DB45A55D9FC71CEB62071C Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 7bit Few things I have noticed: 1. It matters where module record is placed. It takes it's identifier from __FILE__, so if there are multiple modules they cannot share the same "module_c.c" name. This name is used with commands like AddModule, so it is better if it is follows module name. 2. It seems to me that it's a bug in Apache, http_config.c:ap_set_config_vectors. This function only returns mconfig, in case where is no such, it could probably return sconfig. This the reason that add_host() dumps core becouse it is passed a null config. Anyhow - something like this would help static const char *add_host(cmd_parms *cmd, void *module_c, char *name, char *arg1, char *arg2) { /* XXX !!! Error checking - return real message since it's a config problem*/ Connector *rpm=(Connector *)module_c; + if( rpm == NULL ) { + rpm = (Connector *) ap_get_module_config(cmd->server->module_config, &CONNECTOR_MODULE); + } I also attach the patch I had to apply to get ajp23 working (patch is made against jakarta-tomcat/src/share/ module). I'm not sure if it is really correct, but it at least works for me. Basically the only problem was that BuffTool was unable to deal with null strings, and BufferedOutputStream threw some NPEs on me. -- Mike --------------C0DB45A55D9FC71CEB62071C Content-Type: text/plain; charset=iso-8859-2; name="share.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="share.diff" ? Default.vfPackage ? javax/Default.vfPackage ? org/Default.vfPackage ? org/apache/Default.vfPackage ? org/apache/jasper/Default.vfPackage ? org/apache/jasper/resources/taglib.dtd ? org/apache/jasper/runtime/HandleErrorPageException.java ? org/apache/tomcat/Default.vfPackage ? org/apache/tomcat/apache/Default.vfPackage ? org/apache/tomcat/core/RequestImpl.java ? org/apache/tomcat/core/ResponseImpl.java ? org/apache/tomcat/core/Default.vfPackage ? org/apache/tomcat/deployment/Default.vfPackage ? org/apache/tomcat/example/Default.vfPackage ? org/apache/tomcat/net/Default.vfPackage ? org/apache/tomcat/protocol/Default.vfPackage ? org/apache/tomcat/security/Default.vfPackage ? org/apache/tomcat/server/Default.vfPackage ? org/apache/tomcat/service/Ajp12ConnectionHandler.java ? org/apache/tomcat/service/Default.vfPackage ? org/apache/tomcat/service/connector/Default.vfPackage ? org/apache/tomcat/service/http/HttpRequest.java ? org/apache/tomcat/service/http/Default.vfPackage ? org/apache/tomcat/shell/Default.vfPackage ? org/apache/tomcat/shell/deployment/Default.vfPackage ? org/apache/tomcat/util/Default.vfPackage Index: org/apache/tomcat/core/BufferedServletOutputStream.java =================================================================== RCS file: /home/cvspublic/jakarta-tomcat/src/share/org/apache/tomcat/core/BufferedServletOutputStream.java,v retrieving revision 1.4 diff -u -r1.4 BufferedServletOutputStream.java --- BufferedServletOutputStream.java 1999/11/01 20:09:19 1.4 +++ BufferedServletOutputStream.java 1999/11/06 12:28:57 @@ -126,8 +126,10 @@ } protected void sendHeaders() throws IOException { - response.writeHeaders(); - resA.endHeaders(); + if( response != null) + response.writeHeaders(); + if( resA != null) + resA.endHeaders(); } public void setResponse( Response response ) { Index: org/apache/tomcat/util/BuffTool.java =================================================================== RCS file: /home/cvspublic/jakarta-tomcat/src/share/org/apache/tomcat/util/BuffTool.java,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 BuffTool.java --- BuffTool.java 1999/10/09 00:20:55 1.1.1.1 +++ BuffTool.java 1999/11/06 12:29:06 @@ -84,11 +84,17 @@ /** @returns new position */ public static int addString( byte buff[], int pos, String v ) { - int len=v.length(); - addInt( buff, pos, len ); - System.arraycopy( v.getBytes(), 0, buff, pos+2, len); - buff[pos+len+2]=0; - return len+pos+3; + if( v != null) { + int len=v.length(); + addInt( buff, pos, len ); + System.arraycopy( v.getBytes(), 0, buff, pos+2, len); + buff[pos+len+2]=0; + return len+pos+3; + } else { + addInt( buff, pos, 0); + buff[pos+2] = 0; + return pos+3; + } } public static int getInt( byte b[], int offset ) { --------------C0DB45A55D9FC71CEB62071C--