DO NOT REPLY [Bug 6263] New: - java.lang.UnsatisfiedLinkError using lotus.domino classes

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6263

java.lang.UnsatisfiedLinkError using lotus.domino classes

   Summary: java.lang.UnsatisfiedLinkError using lotus.domino
classes
   Product: Tomcat 3
   Version: 3.3.x Nightly
  Platform: PC
OS/Version: Linux
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Unknown
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


Hi all.
I developed a class which connects to a Lotus Domino server. The class imports
lotus.domino.* package.
The class works fine if I run it from the command line.
I developed a jsp, too,  which imports my class as a bean. When I try to run the
jsp, I get the following error:
Location: /mailCheck/jsp/check.jsp
Internal Servlet Error:
java.lang.UnsatisfiedLinkError: NCreateSessionWithPasswd
at lotus.domino.local.Session.createSession(Session.java:129)
at lotus.domino.NotesFactory.createSession(NotesFactory.java:57)
at dominoMailCheck.check(dominoMailCheck.java:34)
[...cut...]

I put the jars containing lotus.domino package into $TOMCAT_HOME/lib/apps and
they're correctly loaded into the webapp classpath.
What is wrong? Do native methods require a different way to be loaded into the
classpath?

Thanks for your help!

-Pietro.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6263] - java.lang.UnsatisfiedLinkError using lotus.domino classes

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6263

java.lang.UnsatisfiedLinkError using lotus.domino classes





--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 09:24 ---
Created an attachment (id=1139)
A java source and two jsp pages. With these little app I get UnsatisfiedLinkError

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6264] New: - Unable to javac code made with Jasper due to reference to non-existent method

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6264

Unable to javac code made with Jasper due to reference to non-existent method

   Summary: Unable to javac code made with Jasper due to reference
to non-existent method
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: Sun
OS/Version: Solaris
Status: NEW
  Severity: Blocker
  Priority: Other
 Component: Jasper
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


The java code created by Jasper references the following method:

PageContext.handlePageException(Throwable)

which does not exist in the PageContext class in the distributed jasper runtime 
jar.

Manually editing the resulting java file to reference 
PageContext.handlePageException(Exception) fixes the problem but this is not an 
acceptable workaround.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6265] New: - Using Apache and Tomcat is impossible

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6265

Using Apache and Tomcat is impossible

   Summary: Using Apache and Tomcat is impossible
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: PC
OS/Version: Windows NT/2K
Status: NEW
  Severity: Blocker
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


I've tried for hours to make Tomcat serve dynamic content of my application 
(JSP, servlets...) and Apache serve static content (GIF, CSS...) but it's 
impossible.
If I only use Tomcat (4.0.1 or 4.0.2-b2), my application runs fine (static and 
dynamic content)
When I try to connect Apache (1.3.22 or 1.3.23), I can't get all my application 
runnig ! I can get JSP or servlet but every static content can't be reach and 
Apache doesn't respond anymore.
I tried creating an alias in httpd.con to my static content directory : I can 
get some images but there are still problems.
I've the same problem when I try the JSP examples. With the default server.xml 
and httpd.conf files, it runs well when I use Tomcat alone but when I use 
Apache, it displays the jsp/index.html page without the images and Apache 
doesn't respond (trying to get the images...)
Is there something I must change in sever.xml (not only Engine name ?) in the 
 section ? Must I duplicate the Host and Context 
sections from the  section ?
Can applications be used from Tomcat-Standalone or Tomcat-Apache without 
changing the configuration ?
Thank you for helping me.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6264] - Unable to javac code made with Jasper due to reference to non-existent method

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6264

Unable to javac code made with Jasper due to reference to non-existent method

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID



--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 12:44 ---
PageContext.handlePageException(Exception) is from the Servlet 2.2 spec.
Tomcat 4.0.1 implements the Servlet 2.3 spec where
PageContext.handlePageException(Throwable) is correct.  This error means you
have old servlet 2.2 classes present.  Check your CLASSPATH, jre/lib/ext
directory, and your WEB-INF/lib for an old copy of servlet.jar, or possibly
j2ee.jar.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6267] New: - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6267

RequestDispatcher breaks on URLs with anchors

   Summary: RequestDispatcher breaks on URLs with anchors
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: PC
OS/Version: Windows NT/2K
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


ServletRequest.getRequestDispatcher(URL).forward() forwards to an invalid 
location if the URL supplied includes an anchor name. That is,
request.getRequestDispatcher("/sample.jsp").forward(request, response);
works correctly, but:
request.getRequestDispatcher("/sample.jsp#top").forward(request, response);
breaks with a "resource not available" error from Tomcat 4.0.1 final.

I will attempt to attach a WAR file that contains a servlet and JSP pages that 
reproduce the issue.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6267

RequestDispatcher breaks on URLs with anchors





--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 13:36 ---
Created an attachment (id=1140)
WAR file to demonstrate the behavior reported

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6265] - Using Apache and Tomcat is impossible

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6265

Using Apache and Tomcat is impossible

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID



--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 14:31 ---
Please only file bugs in Bugzilla. For support questions, please use tomcat-
user.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6267

RequestDispatcher breaks on URLs with anchors

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE



--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 14:33 ---


*** This bug has been marked as a duplicate of 6115 ***

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6115] - URL encoding of session id doesn't work correctly with anchors/fragments

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6115

URL encoding of session id doesn't work correctly with anchors/fragments

[EMAIL PROTECTED] changed:

   What|Removed |Added

 CC||[EMAIL PROTECTED]



--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 14:33 ---
*** Bug 6267 has been marked as a duplicate of this bug. ***

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6267

RequestDispatcher breaks on URLs with anchors

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|DUPLICATE   |



--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 14:59 ---
Tried the War file with Tomcat 4.0.2-b2 and it still shows the problem.  I think
the fix for 6115 only applied to encodeURL() which this webapp isn't using.
(Tomcat 3.3 needs fixing too.)

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6267

RequestDispatcher breaks on URLs with anchors

[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||DUPLICATE



--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 15:26 ---
The patch was applied after b2.

*** This bug has been marked as a duplicate of 6115 ***

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6115] - URL encoding of session id doesn't work correctly with anchors/fragments

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6115

URL encoding of session id doesn't work correctly with anchors/fragments





--- Additional Comments From [EMAIL PROTECTED]  2002-02-06 15:26 ---
*** Bug 6267 has been marked as a duplicate of this bug. ***

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6273] New: - page directive without attribute

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6273

page directive without attribute

   Summary: page directive without attribute
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: Other
OS/Version: Other
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Jasper
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


A JSP page containing an empty page directive should not be accepted.
e.g. 

<%@page %>





should result in a translation error.

JFH

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common JkInputStream.java

2002-02-06 Thread costin

costin  02/02/06 09:11:30

  Added:   jk/java/org/apache/jk/common JkInputStream.java
  Log:
  Common implementation of the input stream, will be shared by all
  containers.
  
  This code is derived from tomcat3.3's implementation, which is newer ( it
  happen after j-t-c was forked, in the 3.3 impl. of Ajp13Interceptor ). It
  supports buffering and few other optimizations.
  We also support the 'chunked encoding' and available.
  
  Revision  ChangesPath
  1.1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JkInputStream.java
  
  Index: JkInputStream.java
  ===
  /*
   * 
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   "This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/)."
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *Foundation" must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *nor may "Apache" appear in their names without prior written
   *permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * .
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */
  package org.apache.jk.common;
  
  import java.io.*;
  
  import java.util.List;
  import java.util.Iterator;
  
  import javax.servlet.ServletInputStream;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.Cookie;
  
  import org.apache.tomcat.util.buf.MessageBytes;
  import org.apache.tomcat.util.http.Cookies;
  import org.apache.tomcat.util.http.ServerCookie;
  import org.apache.tomcat.util.http.BaseRequest;
  import org.apache.tomcat.util.http.MimeHeaders;
  
  import org.apache.jk.core.*;
  import org.apache.jk.common.*;
  import org.apache.jk.util.*;
  
  
  /** Generic input stream impl on top of ajp
   */
  public class JkInputStream extends InputStream {
  
  public JkInputStream() {
  }
  
  public int available() throws IOException {
  return blen-pos;
  }
  
  public void close() throws IOException {
  this.closed=true;
  }
  
  public void mark(int readLimit) {
  }
  
  public boolean markSupported() {
  return false;
  }
  
  public void reset() throws IOException {
  throw new IOException("reset() not supported");
  }
  
  public int read() throws IOException {
  if( contentLength == -1 ) {
  return doRead1();
}
if( available <= 0 ) {
  if( dL>0 ) d("doRead() nothing available" );
  return -1;
  }
available--;
  
  return doRead1();
  }
  
  public in

DO NOT REPLY [Bug 6279] New: - Resubmit to j_security_check mistakenly fetches a page of that name

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6279

Resubmit to j_security_check mistakenly fetches a page of that name

   Summary: Resubmit to j_security_check mistakenly fetches a page
of that name
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: All
OS/Version: All
Status: NEW
  Severity: Normal
  Priority: Other
 Component: HTTP/1.1 Connector
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


This ought to be easy to reproduce...if you go to a page secured by form-based 
authentication in a webapp under catalina, you are displayed the login form. 
Log in, you see the page you asked for. Now click 'back' in the browser. You 
get the login form again. Resubmit the form.

You will end up at a tomcat 404 error page, explaining that the 
resource /some/path/to/j_security_check does not exist.

Its not that unusual a thing for users to do, it seems; three out of four 
testers spotted it in our site without being told to look for it.

The problem appears to be in 
org.apache.catalina.authenticator.FormAuthenticator.java . This /does/ get 
invoked if the request is for j_security_check, by this code in 
AuthenticatorBase:

 if (requestURI.startsWith(contextPath) &&
requestURI.endsWith(Constants.FORM_ACTION)) {
if (!authenticate(hrequest, hresponse, config)) {
 ...etc

However as soon as the code enters FormAuthenticator.authenticate it checks for 
a non-null principal, and if it finds one, it returns immediately. Because 
there is no check here that the uri requested matches j_security_check, the 
user is taken directly to j_security_check, instead of reauthenticating or 
sending the user to the URL saved in the session.

The spec is silent on this situation. I would guess that if someone resubmits 
they want to re-authenticate, potentially as someone else. The code could be 
fixed at the test in AuthenticatorBase, but this may have side effects if 
j_security_check is requested when using other forms of authenticator. It seems 
best to patch FormAuthenticator.java, like so (changes marked 'BE'):

public boolean authenticate(HttpRequest request,
HttpResponse response,
LoginConfig config)
throws IOException {

// References to objects we will need later
HttpServletRequest hreq =
  (HttpServletRequest) request.getRequest();
HttpServletResponse hres =
  (HttpServletResponse) response.getResponse();
Session session = null;

// BE: moved three declarations and their comments to top

// Acquire references to objects we will need to evaluate
String contextPath = hreq.getContextPath();
String requestURI = hreq.getRequestURI();

// Is this the action request from the login page?
boolean loginAction =
requestURI.startsWith(contextPath) &&
requestURI.endsWith(Constants.FORM_ACTION);

// Have we already authenticated someone?
Principal principal = hreq.getUserPrincipal();

// BE: added check for loginAction
if (principal != null && !loginAction) {
if (debug >= 1)
log("Already authenticated '" +
principal.getName() + "'");
String ssoId = (String) request.getNote(Constants.REQ_SSOID_NOTE);
if (ssoId != null)
associate(ssoId, getSession(request, true));
return (true);
}

// Have we authenticated this user before but have caching disabled?
// BE: added check for loginAction - would have had same problem
if (!cache && !loginAction) {
session = getSession(request, true);
if (debug >= 1)
log("Checking for reauthenticate in session " + session);
String username =
(String) session.getNote(Constants.SESS_USERNAME_NOTE);
String password =
(String) session.getNote(Constants.SESS_PASSWORD_NOTE);
if ((username != null) && (password != null)) {
if (debug >= 1)
log("Reauthenticating username '" + username + "'");
principal =
context.getRealm().authenticate(username, password);
if (principal != null) {
session.setNote(Constants.FORM_PRINCIPAL_NOTE, principal);
register(request, response, principal,
 Constants.FORM_METHOD,
 username, password);
return (true);
   

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core JkHandler.java Handler.java

2002-02-06 Thread costin

costin  02/02/06 09:25:07

  Added:   jk/java/org/apache/jk/core JkHandler.java
  Removed: jk/java/org/apache/jk/core Handler.java
  Log:
  Renamed Handler to JkHandler - the name is hugely overloaded, and likely to
  create conflicts.
  
  I think the architecture of jk2 is close to beeing finalized, the current
  model should be powerfull enough for most of our needs. I copied
  a lot from axis, which provides an extremely powerfull and flexible
  model for message processing ( which is what jk2 is doing as well ).
  
  JkHandler is the 'core' of the whole model - it supports the classic
  'hook' pattern used in most apache products. Given that our
  preferences are split, JkHandler supports both catalina-like
  'recursive' hooks invocation ( using next ) and apache ( or 3.3 ) style
  'iterative' invocation.
  
  I've also renamed endpoint to MsgContext. The signature is different
  from Axis's handler, in that we pass both the 'source' message and the
  MsgContext. The reason is that Jk should be able to handle 'internal'
  messages during the processing of the main message. The thread local
  current MC is hacky.
  
  Revision  ChangesPath
  1.1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/JkHandler.java
  
  Index: JkHandler.java
  ===
  /*
   * 
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   "This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/)."
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *Foundation" must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *nor may "Apache" appear in their names without prior written
   *permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * .
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */
  package org.apache.jk.core;
  
  import java.io.*;
  import java.util.*;
  import java.security.*;
  
  /**
   *
   * @author Costin Manolache
   */
  public abstract class JkHandler {
  public static final int OK=0;
  public static final int LAST=1;
  public static final int ERROR=2;
  
  protected WorkerEnv wEnv;
  protected JkHandler next;
  protected String name;
  protected int id;
  
  public void setWorkerEnv( WorkerEnv we ) {
  this.wEnv=we;
  }
  
  /** Set the name of the handler. Will allways be called by
   *  worker env after creating the worker.
   */
  public void setName(String s ) {
  name=s;
  }
  
  public String getName() {
  return name;
  }
  
  /** Set the id of the

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core MsgContext.java Endpoint.java

2002-02-06 Thread costin

costin  02/02/06 09:27:03

  Added:   jk/java/org/apache/jk/core MsgContext.java
  Removed: jk/java/org/apache/jk/core Endpoint.java
  Log:
  Renamed Endpoint to MsgContext. Added few common attributes ( that are used
  all the times ). The MsgContext is a store for info exchanged between
  handlers ( like notes in apache, etc )
  
  Revision  ChangesPath
  1.1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/MsgContext.java
  
  Index: MsgContext.java
  ===
  /*
   * 
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   "This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/)."
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *Foundation" must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *nor may "Apache" appear in their names without prior written
   *permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * .
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */
  package org.apache.jk.core;
  
  import java.io.IOException;
  import java.io.UnsupportedEncodingException;
  import java.io.InputStream;
  import java.io.OutputStream;
  import java.net.Socket;
  import java.util.Enumeration;
  import java.security.*;
  
  import org.apache.tomcat.util.http.MimeHeaders;
  import org.apache.tomcat.util.http.BaseRequest;
  import org.apache.tomcat.util.buf.MessageBytes;
  import org.apache.tomcat.util.http.HttpMessages;
  import org.apache.tomcat.util.buf.HexUtils;
  
  
  /**
   *
   * @author Henri Gomez [[EMAIL PROTECTED]]
   * @author Dan Milstein [[EMAIL PROTECTED]]
   * @author Keith Wannamaker [[EMAIL PROTECTED]]
   * @author Kevin Seguin
   * @author Costin Manolache
   */
  public class MsgContext {
  private Object notes[]=new Object[32];
  private Channel ch;
  private BaseRequest req;
  private WorkerEnv wEnv;
  
  public final Object getNote( int id ) {
  return notes[id];
  }
  
  public final void setNote( int id, Object o ) {
  notes[id]=o;
  }
  
  
  // Common attributes ( XXX should be notes for flexibility ? )
  
  public final WorkerEnv getWorkerEnv() {
  return wEnv;
  }
  
  public final void setWorkerEnv( WorkerEnv we ) {
  this.wEnv=we;
  }
  
  public final Channel getChannel() {
  return ch;
  }
  
  public final void setChannel(Channel ch) {
  this.ch=ch;
  }
  
  public final void setRequest( BaseRequest req ) {
  this.req=req;
  }
  
  public final  BaseRequest getR

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core Webapp.java Worker.java

2002-02-06 Thread costin

costin  02/02/06 09:28:42

  Removed: jk/java/org/apache/jk/core Webapp.java Worker.java
  Log:
  Removed webapp - jk should deal only with the communication.
  
  The config generator will be refactored and included in a separate package.
  
  Removed Worker - it's just a handler, no need for a special class ( and
  different interface ! )

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core Channel.java

2002-02-06 Thread costin

costin  02/02/06 09:32:19

  Modified:jk/java/org/apache/jk/core Channel.java
  Log:
  Channel is just a handler ( the first in the chain ).
  
  Note that at this moment the invoke command hardcodes the 'next' handler,
  but that can be overriden ( it's just a default ).
  
  The handler named 'dispatch' will be called ( if exists ), or 'request'.
  A third handler 'container' is the default next for 'request'.
  Again, similar ( but simpler ) with axis ( the idea of chains and
  message paths )
  
  XXX should we call it Transport ?
  
  Revision  ChangesPath
  1.4   +19 -19
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Channel.java
  
  Index: Channel.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Channel.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Channel.java  26 Jan 2002 07:21:02 -  1.3
  +++ Channel.java  6 Feb 2002 17:32:19 -   1.4
  @@ -81,28 +81,15 @@
* @author Kevin Seguin
* @author Costin Manolache
*/
  -public abstract class Channel {
  -protected WorkerEnv we;
  -protected Worker worker;
  +public abstract class Channel extends JkHandler {
   
  -public void setWorkerEnv( WorkerEnv we ) {
  -this.we=we;
  -}
  -
  -public void setWorker(Worker worker) {
  -this.worker=worker;
  -}
  -
  -public void init() throws IOException {
  -}
  -
   /** This method is used to receive messages. It shouldn't
*  be exposed, as most processing is driven by sending
*   messages and dispatching on incoming messages. The
*   only current use is the aberant post packet after
*   the first request, which doesn't fit anything.
*/
  -public abstract int receive( Msg msg, Endpoint ep )
  +public abstract int receive( Msg msg, MsgContext ep )
   throws IOException;
   
   /**
  @@ -111,10 +98,23 @@
* @param msg A packet with accumulated data to send to the server --
* this method will write out the length in the header.  
*/
  -public abstract int send( Msg msg, Endpoint ep )
  +public abstract int send( Msg msg, MsgContext ep )
   throws IOException;
   
  -
  -
  -
  +public int invoke( Msg msg, MsgContext mc ) throws IOException {
  +if( next==null ) {
  +if( nextName!=null ) 
  +setNext( wEnv.getHandler( nextName ) );
  +if( next==null )
  +next=wEnv.getHandler( "dispatch" );
  +if( next==null )
  +next=wEnv.getHandler( "request" );
  +log("Setting default next " + next.getClass().getName());
  +}
  +
  +if(logL >0 )
  +log("Calling next " + next.getName() + " " +
  +next.getClass().getName());
  +return next.invoke(msg, mc );
  +}
   }
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core Msg.java

2002-02-06 Thread costin

costin  02/02/06 09:33:50

  Modified:jk/java/org/apache/jk/core Msg.java
  Log:
  2 more methods - peekByte used to dispatch and "Tag", the message type.
  
  Msg must be abstracted, it's still too Ajp13 specific.
  Jk should work with any kind of messages - including soap or IIOP.
  
  Revision  ChangesPath
  1.4   +21 -0 jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Msg.java
  
  Index: Msg.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Msg.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Msg.java  26 Jan 2002 07:22:23 -  1.3
  +++ Msg.java  6 Feb 2002 17:33:50 -   1.4
  @@ -76,6 +76,9 @@
* A single packet for communication between the web server and the
* container.
*
  + * In a more generic sense, it's the event that drives the processing chain.
  + * XXX Use Event, make Msg a particular case.
  + *
* @author Henri Gomez [[EMAIL PROTECTED]]
* @author Dan Milstein [[EMAIL PROTECTED]]
* @author Keith Wannamaker [[EMAIL PROTECTED]]
  @@ -84,6 +87,8 @@
*/
   public abstract class Msg {
   
  +
  +
   /**
* Prepare this packet for accumulating a message from the container to
* the web server.  Set the write position to just after the header
  @@ -135,6 +140,8 @@
   
   public abstract byte getByte();
   
  +public abstract byte peekByte();
  +
   public abstract void getBytes(MessageBytes mb);
   
   /**
  @@ -163,5 +170,19 @@
   public abstract int getLen();
   
   public abstract void dump(String msg);
  +
  +
  +
  +int tag;
   
  +/** Message type - the tag is used to fast dispatch
  + *  by message type
  + */
  +public void setTag( int i ) {
  +tag=i;
  +}
  +
  +public int getTag() {
  +return tag;
  +}
   }
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core WorkerEnv.java

2002-02-06 Thread costin

costin  02/02/06 09:36:07

  Modified:jk/java/org/apache/jk/core WorkerEnv.java
  Log:
  Moved the process() logic in the HandlerDispatch, it doesn't have to be hardcoded.
  Added a 'home' property.
  Added 'notes' for the workerenv ( for generic properties stored by handlers )
  Removed the channel, consolidate Handler as the main 'plugin' mechanism.
  
  Revision  ChangesPath
  1.4   +35 -76
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java
  
  Index: WorkerEnv.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WorkerEnv.java26 Jan 2002 07:22:23 -  1.3
  +++ WorkerEnv.java6 Feb 2002 17:36:07 -   1.4
  @@ -79,26 +79,19 @@
   
   Hashtable properties;
   
  -Webapp webapps[]=new Webapp[20];
  +Object webapps[]=new Object[20];
   int webappCnt=0;
   
   public static final int ENDPOINT_NOTE=0;
   public static final int REQUEST_NOTE=1;
   int noteId[]=new int[4];
   String noteName[][]=new String[4][];
  +private Object notes[]=new Object[32];
   
  -static final int MAX_HANDLERS=32;
  -static final int RESERVED=16;  // reserved names, backward compat
  -
  -// Note that we don't make distinction between in and out
  -// messages ( i.e. one id is used only in one direction )
  -Handler handlers[]=new Handler[MAX_HANDLERS];
  -String handlerNames[]=new String[MAX_HANDLERS];
  -int currentId=RESERVED;
  -
  -Hashtable workers=new Hashtable();
  -Hashtable channels=new Hashtable();
  -
  +Hashtable handlersMap=new Hashtable();
  +// base dir for the jk webapp
  +String home;
  +
   public WorkerEnv() {
   for( int i=0; i= webapps.length ) {
  -Webapp newWebapps[]=new Webapp[ webapps.length + 20 ];
  +Object newWebapps[]=new Object[ webapps.length + 20 ];
   System.arraycopy( webapps, 0, newWebapps, 0, webapps.length);
   webapps=newWebapps;
   }
  @@ -116,94 +109,60 @@
   return webappCnt++;
   }
   
  -public Webapp getWebapp( int i ) {
  +public void setJkHome( String s ) {
  +home=s;
  +}
  +
  +public String getJkHome() {
  +return home;
  +}
  +
  +public Object getWebapp( int i ) {
   return webapps[i];
   }
   
   public int getWebappCount() {
   return webappCnt;
   }
  +
  +public final Object getNote(int i ) {
  +return notes[i];
  +}
   
  -public void addHandler( Handler h ) {
  -h.setWorkerEnv( this );
  -h.init();
  +public final void setNote(int i, Object o ) {
  +notes[i]=o;
   }
   
   public int getNoteId( int type, String name ) {
  +for( int i=0; i handlers.length ||
  -handlers[type]==null ) {
  - d( "Invalid handler " + type );
  - return 500;
  - }
  -
  -if( dL > 0 )
  -d( "Received " + type + " " + handlerNames[type]);
  -
  - Handler handler=handlers[type];
  -
  -return handler.callback( type, ch, ep, hBuf );
  -}
  -
  -public void addWorker( String name, Worker w ) {
  +public void addHandler( String name, JkHandler w ) {
   w.setWorkerEnv( this );
  -workers.put( name, w );
  -}
  -
  -public Worker getWorker( String name ) {
  -return (Worker)workers.get(name);
  +w.setName( name );
  +handlersMap.put( name, w );
   }
   
  -public void addChannel( String name, Channel c ) {
  -c.setWorkerEnv( this );
  -channels.put( name, c );
  +public JkHandler getHandler( String name ) {
  +return (JkHandler)handlersMap.get(name);
   }
   
   public void start() throws IOException {
  -Enumeration en=workers.keys();
  +Enumeration en=handlersMap.keys();
   while( en.hasMoreElements() ) {
   String n=(String)en.nextElement();
  -Worker w=(Worker)workers.get(n);
  +JkHandler w=(JkHandler)handlersMap.get(n);
   w.init();
   }
  -
  -en=channels.keys();
  -while( en.hasMoreElements() ) {
  -String n=(String)en.nextElement();
  -Channel ch=(Channel)channels.get(n);
  -ch.init();
  -}
   }
   
  -
  -private static final int dL=10;
  +private static final int dL=0;
   private static void d(String s ) {
   System.err.println( "WorkerEnv: " + s );
   }
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core Chain.java

2002-02-06 Thread costin

costin  02/02/06 09:37:16

  Added:   jk/java/org/apache/jk/core Chain.java
  Log:
  Initial ( incomplete ) version of the Chain - that allows iterative
  calling of handlers.
  
  XXX would it be better to move it in commons - it's after all just a simple
  handler ?
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Chain.java
  
  Index: Chain.java
  ===
  /*
   * 
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   "This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/)."
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *Foundation" must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *nor may "Apache" appear in their names without prior written
   *permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * .
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */
  package org.apache.jk.core;
  
  import java.io.*;
  import java.util.*;
  import java.security.*;
  
  /**
   *
   * @author Costin Manolache
   */
  public class Chain extends JkHandler {
  Vector handlersV=new Vector();
  JkHandler handler[]=null;
  
  public void init() {
  // init all
  }
  
  public void destroy() {
  }
  
  public void setHandlers(String hlist ) {
  // 
  }
  
  public void addHandler( JkHandler h ) {
  handlersV.addElement(h);
  }
  
  public int invoke(Msg msg, MsgContext mc )  throws IOException
  {
  return OK;
  }
  
  }
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common HandlerDispatch.java

2002-02-06 Thread costin

costin  02/02/06 09:41:29

  Added:   jk/java/org/apache/jk/common HandlerDispatch.java
  Log:
  Dispatch handler - based on the message type will call the right
  handler.
  
  This is specific to ajp13 ( or any other transport that stores the message type
  as the first byte of the message :-).
  Each protocol is supposed to have a set of protocol-specific handlers,
  some may be generic.
  
  What we'll eventually do is create an HandlerAjp13 to consolidate ajp13
  specific processing. Other protocols could do the same.
  Then whatever info containes the 'target' will be stored as the message
  tag, and the rest of the info will be decoded in message/request/etc.
  
  Note that the tag is an int - we want to reduce the use of Strings,
  and do table dispatching, so protocol handlers should use a message handle
  
  Revision  ChangesPath
  1.1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerDispatch.java
  
  Index: HandlerDispatch.java
  ===
  /*
   * 
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *any, must include the following acknowlegement:
   *   "This product includes software developed by the
   *Apache Software Foundation (http://www.apache.org/)."
   *Alternately, this acknowlegement may appear in the software itself,
   *if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *Foundation" must not be used to endorse or promote products derived
   *from this software without prior written permission. For written
   *permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *nor may "Apache" appear in their names without prior written
   *permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * 
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * .
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */
  
  package org.apache.jk.common;
  
  import java.io.*;
  import java.net.*;
  import java.util.*;
  import java.security.*;
  import java.security.cert.*;
  
  import org.apache.jk.core.*;
  
  import org.apache.tomcat.util.http.*;
  import org.apache.tomcat.util.buf.*;
  
  
  /**
   * Dispatch based on the message type. ( XXX make it more generic,
   * now it's specific to ajp13 ).
   * 
   * @author Costin Manolache
   */
  public class HandlerDispatch extends JkHandler
  {
  
  public HandlerDispatch() 
  {
  }
  
  public void init() {
  }
  
  JkHandler handlers[]=new JkHandler[MAX_HANDLERS];
  String handlerNames[]=new String[MAX_HANDLERS];
  
  static final int MAX_HANDLERS=32;
  static final int RESERVED=16;  // reserved names, backward compat
  int currentId=RESERVED;
  
  public int registerMessageType( int id, String name, JkHandler h,
  String sig[] )
  {
  if( logL > 0 )
  log( "Register message " + id + " " + h.getName() +
   " " + h.g

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common ChannelJni.java ChannelSocket.java ChannelUn.java

2002-02-06 Thread costin

costin  02/02/06 09:43:08

  Modified:jk/java/org/apache/jk/common ChannelJni.java
ChannelSocket.java ChannelUn.java
  Log:
  Update for the api changes.
  
  Added isSameAddress from Ajp12Interceptor - will be used with the secret for
  the shutdown handler.
  
  Few changes in jni - less code in static methods ( we'll eventually remove all,
  but for now it's easier on the C side )
  
  Revision  ChangesPath
  1.4   +63 -47
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelJni.java
  
  Index: ChannelJni.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelJni.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ChannelJni.java   26 Jan 2002 07:24:37 -  1.3
  +++ ChannelJni.java   6 Feb 2002 17:43:08 -   1.4
  @@ -73,7 +73,7 @@
   import org.apache.jk.apr.*;
   
   
  -/** Pass messages using unix domain sockets.
  +/** Pass messages using jni 
*
* @author Costin Manolache
*/
  @@ -88,20 +88,20 @@
   
   public void init() throws IOException {
   // static field init, temp
  -wEnv=we;
  +wEnvStatic=wEnv;
   }
   
  -public int receive( Msg msg, Endpoint ep )
  +public int receive( Msg msg, MsgContext ep )
   throws IOException
   {
   Msg sentResponse=(Msg)ep.getNote( receivedNote );
   // same buffer is used, no need to copy
   if( msg==sentResponse ) {
  -d("Returned previously received message ");
  +if( dL > 0 ) d("Returned previously received message ");
   return 0;
   }
   
  -d("XXX Copy previously received message ");
  +if( dL > 0 ) d("XXX Copy previously received message ");
   // send will alter the msg and insert the response.
   // copy...
   // XXX TODO
  @@ -113,14 +113,14 @@
*  We could use 2 packets, or sendAndReceive().
*
*/
  -public int send( Msg msg, Endpoint ep )
  +public int send( Msg msg, MsgContext ep )
   throws IOException
   {
   byte buf[]=msg.getBuffer();
   EpData epData=(EpData)ep.getNote( epDataNote );
   
   // send and get the response
  -d( "Sending packet ");
  +if( dL > 0 ) d( "Sending packet ");
   msg.end();
   // msg.dump("Outgoing: ");
   
  @@ -128,43 +128,78 @@
  epData.jkServiceP, buf, msg.getLen() );
   ep.setNote( receivedNote, msg );
   
  -d( "Sending packet - done ");
  +if( dL > 0 ) d( "Sending packet - done ");
   return 0;
   }
   
  -/*   */
  -
  -static WorkerEnv wEnv=null;
   static int epDataNote=-1;
  -static ChannelJni chJni=new ChannelJni();
   
  -static class EpData {
  -public long jkEnvP;
  -public long jkEndpointP;
  -public long jkServiceP;
  -}
  -
  -public static Endpoint createEndpointStatic(long env, long epP) {
  -Endpoint ep=new Endpoint();
  +public MsgContext createEndpoint(long env, long epP) {
  +MsgContext ep=new MsgContext();
   if( epDataNote==-1) 
   epDataNote=wEnv.getNoteId(WorkerEnv.ENDPOINT_NOTE, "epData");
   
  -d("createEndpointStatic() " + env + " " + epP);
  +if( dL > 0 ) d("createEndpointStatic() " + env + " " + epP);
  +
   EpData epData=new EpData();
   epData.jkEnvP=env;
   epData.jkEndpointP=epP;
   ep.setNote( epDataNote, epData );
  +ep.setWorkerEnv( wEnv );
  +
  +ep.setChannel( this );
   return ep;
   }
   
  +public int receive( long env, long rP, MsgContext ep,
  +MsgAjp msg)
  +{
  +try {
  +// first, we need to get an endpoint. It should be
  +// per/thread - and probably stored by the C side.
  +if( dL > 0 ) d("Received request " + rP);
  +// The endpoint will store the message pt.
  +
  +msg.processHeader();
  +if( dL > 5 ) msg.dump("Incoming msg ");
  +
  +EpData epData=(EpData)ep.getNote( epDataNote );
  +
  +epData.jkServiceP=rP;
  +
  +int status= this.invoke(  msg, ep );
  +
  +if(dL > 0 ) d("after processCallbacks " + status);
  +
  +return status;
  +} catch( Exception ex ) {
  +ex.printStackTrace();
  +}
  +return 0;
  +}
  +
  +/*   */
  +
  +static WorkerEnv wEnvStatic=null;
  +static ChannelJni chJni=new ChannelJni();
  +
  +static class EpData {
  +public long jkEnvP;
  +  

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common HandlerRequest.java

2002-02-06 Thread costin

costin  02/02/06 09:48:22

  Modified:jk/java/org/apache/jk/common HandlerRequest.java
  Log:
  Few big changes here:
  
  - added support for 'secret' - as a normal request attributes. If
  the handler is configured to require a secret, it'll block any request
  without one. If not - older mod_jk's will work. ( I'll commit the change
  on the C code for both mod_jk and mod_jk2 )
  
  - added support for 'ajp13.id' - similar with what ajp12interceptor is
  doing in 3.3. This will save the connection info ( including secret )
  for easy reading by caller. ( not completed )
  
  - add useSecret option - it'll automatically generate a secret, no
  config needed ( and no need to ask the user to change the pass
  regularily - we'll do it on each server restart ). Mod_jk will just
  read the file.
  
  - added support for the shutdown message ( not completed )
  
  The request handler will call 'container' as the next handler,
  unless overriden. It'll also check if a dispathcer is
  present and register the messages it supports ( right now it's
  the only handler, so dispatcher is optional )
  
  Revision  ChangesPath
  1.4   +188 -64   
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java
  
  Index: HandlerRequest.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HandlerRequest.java   26 Jan 2002 14:14:35 -  1.3
  +++ HandlerRequest.java   6 Feb 2002 17:48:22 -   1.4
  @@ -60,8 +60,8 @@
   package org.apache.jk.common;
   
   import java.io.*;
  -import java.net.Socket;
  -import java.util.Enumeration;
  +import java.net.*;
  +import java.util.*;
   import java.security.*;
   import java.security.cert.*;
   
  @@ -91,13 +91,15 @@
* @author Keith Wannamaker [[EMAIL PROTECTED]]
* @author Costin Manolache
*/
  -public class HandlerRequest extends Handler
  +public class HandlerRequest extends JkHandler
   {
   // XXX Will move to a registry system.
   
   // Prefix codes for message types from server to container
   public static final byte JK_AJP13_FORWARD_REQUEST   = 2;
   
  +public static final byte JK_AJP13_SHUTDOWN   = 7;
  +
   // Prefix codes for message types from container to server
   public static final byte JK_AJP13_SEND_BODY_CHUNK   = 3;
   public static final byte JK_AJP13_SEND_HEADERS  = 4;
  @@ -128,6 +130,7 @@
   public static final byte SC_A_SSL_CIPHER= 8;
   public static final byte SC_A_SSL_SESSION   = 9;
   public static final byte SC_A_SSL_KEYSIZE   = 11;
  +public static final byte SC_A_SECRET= 12;
   
   // Used for attributes which are not in the list above
   public static final byte SC_A_REQ_ATTRIBUTE = 10; 
  @@ -200,55 +203,179 @@
   {
   }
   
  +HandlerDispatch dispatch;
  +
   public void init() {
  - // register incoming message handlers
  - we.registerMessageType( JK_AJP13_FORWARD_REQUEST,
  -"JK_AJP13_FORWARD_REQUEST",
  -this, null); // 2
  -
  - // register outgoing messages handler
  - we.registerMessageType( JK_AJP13_SEND_BODY_CHUNK, // 3
  -"JK_AJP13_SEND_BODY_CHUNK",
  -this,null );
  - we.registerMessageType( JK_AJP13_SEND_HEADERS,  // 4
  -"JK_AJP13_SEND_HEADERS",
  -this,null );
  - we.registerMessageType( JK_AJP13_END_RESPONSE, // 5
  -"JK_AJP13_END_RESPONSE",
  -this,null );
  - we.registerMessageType( JK_AJP13_GET_BODY_CHUNK, // 6
  -"JK_AJP13_GET_BODY_CHUNK",
  -this, null );
  +dispatch=(HandlerDispatch)wEnv.getHandler( "dispatch" );
  +if( dispatch != null ) {
  +// register incoming message handlers
  +dispatch.registerMessageType( JK_AJP13_FORWARD_REQUEST,
  +  "JK_AJP13_FORWARD_REQUEST",
  +  this, null); // 2
  +
  +dispatch.registerMessageType( JK_AJP13_FORWARD_REQUEST,
  +  "JK_AJP13_SHUTDOWN",
  +  this, null); // 7
  +
  +// register outgoing messages handler
  +dispatch.registerMessageType( JK_AJP13_SEND_BODY_CHUNK, // 3
  +  "JK_AJP13_SEND_BODY_CHUNK",
  +  this,null );
  +}
  +
  +bodyNote=wEnv.getNoteId( WorkerEnv.ENDPOINT_NOTE, "jkInputStream" );
  +tmpBufNote=wEnv.getNoteId( WorkerEnv.ENDP

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common MsgAjp.java WorkerDummy.java

2002-02-06 Thread costin

costin  02/02/06 09:48:52

  Modified:jk/java/org/apache/jk/common MsgAjp.java WorkerDummy.java
  Log:
  Update for the api changes.
  
  Revision  ChangesPath
  1.5   +6 -1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/MsgAjp.java
  
  Index: MsgAjp.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/MsgAjp.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MsgAjp.java   26 Jan 2002 07:25:53 -  1.4
  +++ MsgAjp.java   6 Feb 2002 17:48:52 -   1.5
  @@ -257,6 +257,11 @@
   return res;
   }
   
  +public byte peekByte() {
  +byte res = buf[pos];
  +return res;
  +}
  +
   public void getBytes(MessageBytes mb) {
   int length = getInt();
   if( (length == 0x) || (length == -1) ) {
  @@ -370,7 +375,7 @@
   }
   
   
  -private static final int dL=10;
  +private static final int dL=0;
   private static void d(String s ) {
   System.err.println( "MsgAjp: " + s );
   }
  
  
  
  1.4   +9 -13 
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/WorkerDummy.java
  
  Index: WorkerDummy.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/WorkerDummy.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WorkerDummy.java  26 Jan 2002 07:25:53 -  1.3
  +++ WorkerDummy.java  6 Feb 2002 17:48:52 -   1.4
  @@ -73,7 +73,7 @@
   /** A dummy worker, will just send back a dummy response.
*  Used for testing and tunning.
*/
  -public class WorkerDummy extends Worker
  +public class WorkerDummy extends JkHandler
   {
   public WorkerDummy()
   {
  @@ -88,18 +88,13 @@
*  ready to accept new requests.
*/
   public void init() throws IOException {
  -headersMsgNote=we.getNoteId( WorkerEnv.ENDPOINT_NOTE, "headerMsg" );
  +headersMsgNote=wEnv.getNoteId( WorkerEnv.ENDPOINT_NOTE, "headerMsg" );
   }

  -/** Clean up and stop the worker
  - */
  -public void destroy() throws IOException {
  -}
  -
   MessageBytes body=new MessageBytes();
   private int headersMsgNote;
   
  -public void service( BaseRequest req, Channel ch, Endpoint ep )
  +public int invoke( Msg in, MsgContext ep ) // BaseRequest req, Channel ch, 
Endpoint ep )
   throws IOException
   {
   MsgAjp msg=(MsgAjp)ep.getNote( headersMsgNote );
  @@ -115,25 +110,26 @@
   
   msg.appendInt(0);
   
  -ch.send( msg, ep );
  +ep.getChannel().send( msg, ep );
   // msg.dump("out:" );
   
   msg.reset();
   msg.appendByte( HandlerRequest.JK_AJP13_SEND_BODY_CHUNK);
  -msg.appendInt( 10 );
  +msg.appendInt( body.getLength() );
   msg.appendBytes( body );
   
   
  -ch.send(msg, ep);
  +ep.getChannel().send(msg, ep);
   
   msg.reset();
   msg.appendByte( HandlerRequest.JK_AJP13_END_RESPONSE );
   msg.appendInt( 1 );
   
  -ch.send(msg, ep );
  +ep.getChannel().send(msg, ep );
  +return OK;
   }
   
  -private static final int dL=10;
  +private static final int dL=0;
   private static void d(String s ) {
   System.err.println( "WorkerDummy: " + s );
   }
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/config - New directory

2002-02-06 Thread costin

costin  02/02/06 09:49:07

  jakarta-tomcat-connectors/jk/java/org/apache/jk/config - New directory

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/util C2B.java

2002-02-06 Thread costin

costin  02/02/06 09:49:42

  Modified:jk/java/org/apache/jk/util C2B.java
  Log:
  remove debug statements.
  
  Revision  ChangesPath
  1.2   +3 -3  jakarta-tomcat-connectors/jk/java/org/apache/jk/util/C2B.java
  
  Index: C2B.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/util/C2B.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- C2B.java  26 Jan 2002 07:16:46 -  1.1
  +++ C2B.java  6 Feb 2002 17:49:42 -   1.2
  @@ -146,17 +146,17 @@
   
   if( type==MessageBytes.T_STR ) {
   convert( mb.getString() );
  -System.out.println("XXX Converting " + mb.getString() );
  +// System.out.println("XXX Converting " + mb.getString() );
   } else if( type==MessageBytes.T_CHARS ) {
   CharChunk charC=mb.getCharChunk();
   convert( charC.getBuffer(),
   charC.getOffset(), charC.getLength());
  -System.out.println("XXX Converting " + mb.getCharChunk() );
  +//System.out.println("XXX Converting " + mb.getCharChunk() );
   } else {
   System.out.println("XXX unknowon type " + type );
   }
   flushBuffer();
  -System.out.println("C2B: XXX " + bb.getBuffer() + bb.getLength()); 
  +//System.out.println("C2B: XXX " + bb.getBuffer() + bb.getLength()); 
   setByteChunk(orig);
   }
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33 JkRequest33.java JkResponse33.java JkServlet33.java Worker33.java

2002-02-06 Thread costin

costin  02/02/06 09:51:44

  Modified:jk/java/org/apache/jk/server/tomcat33 JkRequest33.java
JkResponse33.java JkServlet33.java Worker33.java
  Log:
  Update for the API changes.
  
  Add the missing input stream support.
  
  Now the 33 adapter should be fully functional ( or close enough - I'll
  start running watchdogs ). Config is still missing from both adapters,
  it's the only thing remaining before we're ready to release jk2 ( the java
  side ).
  
  Revision  ChangesPath
  1.3   +32 -30
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkRequest33.java
  
  Index: JkRequest33.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkRequest33.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkRequest33.java  26 Jan 2002 17:25:20 -  1.2
  +++ JkRequest33.java  6 Feb 2002 17:51:44 -   1.3
  @@ -63,7 +63,6 @@
   import java.net.*;
   import java.util.*;
   
  -import org.apache.jk.*;
   import org.apache.jk.core.*;
   import org.apache.jk.common.*;
   import org.apache.tomcat.modules.server.PoolTcpConnector;
  @@ -78,8 +77,9 @@
   class JkRequest33 extends Request 
   {
   BaseRequest ajpReq;
  -Channel ch;
  -Endpoint ep;
  +MsgContext ep;
  +
  +JkInputStream jkIS;
   
   public JkRequest33(BaseRequest ajpReq) 
   {
  @@ -91,7 +91,7 @@
remoteAddrMB = ajpReq.remoteAddr();
remoteHostMB = ajpReq.remoteHost();
serverNameMB = ajpReq.serverName();
  -
  +
// XXX sync cookies 
scookies = new Cookies( headers );
urlDecoder=new UDecoder();
  @@ -106,9 +106,11 @@
this.ajpReq=ajpReq;
   }
   
  -public void setEndpoint( Channel ch, Endpoint ep ) {
  -this.ch=ch;
  +public void setEndpoint( MsgContext ep ) {
   this.ep=ep;
  +int bodyNote= ep.getWorkerEnv().getNoteId( WorkerEnv.ENDPOINT_NOTE,
  +   "jkInputStream");
  +jkIS=(JkInputStream)ep.getNote( bodyNote );
   }
   
   //  Wrappers for changed method names
  @@ -155,17 +157,6 @@
return ajpReq.getSecure();
   }
   
  -public int getContentLength() {
  -int i=ajpReq.getContentLength();
  - if( i >= 0 ) return i;
  - i= super.getContentLength();
  - return i;
  -}
  -
  -public void setContentLength( int i ) {
  - super.setContentLength(i); // XXX sync
  -}
  -
   //  Attributes 
   
   public void setAttribute(String name, Object value) {
  @@ -191,6 +182,7 @@
   public void recycle() {
super.recycle();
ajpReq.recycle();
  +jkIS.recycle();
   }
   
   public String dumpRequest() {
  @@ -199,26 +191,36 @@
   
   //  
   
  -// XXX This should go away if we introduce an InputBuffer.
  -// We almost have it as result of encoding fixes, but for now
  -// just keep this here, doesn't hurt too much.
   public int doRead() throws IOException 
   {
  - if( available <= 0 )
  - return -1;
  -//   available--;
  -//   return ajp13.reqHandler.doRead(ajp13);
  -return -1;
  +// we need to manager the request's available
  +// this should go away, we support this in JkInputStream,
  +// which is similar with OutputBuffer - it should
  +// take away the body processing
  +if( contentLength == -1 ) {
  +return jkIS.read();
  + }
  + if( available <= 0 ) {
  +return -1;
  +}
  + available--;
  +
  +return jkIS.read();
   }
   
   public int doRead(byte[] b, int off, int len) throws IOException 
   {
  - if( available <= 0 )
  +int rd=-1;
  +if( contentLength == -1 ) {
  + rd=jkIS.read(b,off,len);
  + return rd;
  + }
  + if( available <= 0 ) {
return -1;
  -//   int rd=ajp13.reqHandler.doRead( ajp13, b,off, len );
  -//   available -= rd;
  -//   return rd;
  -return -1;
  +}
  + rd=jkIS.read( b,off, len );
  + available -= rd;
  + return rd;
   }
   
   }
  
  
  
  1.3   +3 -3  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkResponse33.java
  
  Index: JkResponse33.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat33/JkResponse33.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkResponse33.java 26 Jan 2002 17:25:20 -  1.2
  +++ JkResponse33.java 6 Feb 2002 17:51:44 -   1.3
  @@ -80,7 +80,7 @@
   {
   boolean finished=false;
   Channel ch

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40 JkConfig40.java JkConnector.java JkRequest40.java JkResponse40.java Worker40.java

2002-02-06 Thread costin

costin  02/02/06 09:52:28

  Modified:jk/java/org/apache/jk/server/tomcat40 JkConfig40.java
JkConnector.java JkRequest40.java JkResponse40.java
Worker40.java
  Log:
  Updates for the 4.x adapter. It should work fine ( except config, that wasn't
  ported )
  
  Revision  ChangesPath
  1.2   +1 -1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkConfig40.java
  
  Index: JkConfig40.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkConfig40.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JkConfig40.java   12 Jan 2002 04:14:53 -  1.1
  +++ JkConfig40.java   6 Feb 2002 17:52:27 -   1.2
  @@ -303,7 +303,7 @@
return false;
   }
   
  -private static final int dL=10;
  +private static final int dL=0;
   private static void d(String s ) {
   System.err.println( "JkConfig40: " + s );
   }
  
  
  
  1.5   +2 -2  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkConnector.java
  
  Index: JkConnector.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkConnector.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JkConnector.java  26 Jan 2002 17:29:13 -  1.4
  +++ JkConnector.java  6 Feb 2002 17:52:27 -   1.5
  @@ -202,11 +202,11 @@
   ((ContainerBase)ct).addLifecycleListener(config);
   config.loadExisting( ct );
   
  -jkMain.setDefaultWorker( worker );
  +jkMain.getWorkerEnv().addHandler("container", worker );
   
   String catalinaHome=System.getProperty("catalina.home");
   File f=new File( catalinaHome );
  -File jkHomeF=new File( f, "webapps/jk" );
  +File jkHomeF=new File( f, "webapps/jk/WEB-INF" );
   
   d("Setting jkHome " + jkHomeF );
   jkMain.setJkHome( jkHomeF.getAbsolutePath() );
  
  
  
  1.3   +3 -48 
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkRequest40.java
  
  Index: JkRequest40.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkRequest40.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkRequest40.java  26 Jan 2002 17:25:21 -  1.2
  +++ JkRequest40.java  6 Feb 2002 17:52:27 -   1.3
  @@ -78,6 +78,7 @@
   import org.apache.tomcat.util.http.MimeHeaders;
   
   import org.apache.jk.core.*;
  +import org.apache.jk.server.*;
   import org.apache.jk.common.*;
   import org.apache.jk.util.*;
   
  @@ -89,7 +90,7 @@
   
   private static int id = 1;
   Channel ch;
  -Endpoint ep;
  +MsgContext ep;
   
   public JkRequest40() {
   super();
  @@ -102,7 +103,7 @@
   response=res;
   }
   
  -public void setEndpoint( Channel ch, Endpoint ep ) {
  +public void setEndpoint( Channel ch, MsgContext ep ) {
   this.ch=ch;
   this.ep=ep;
   }
  @@ -258,50 +259,4 @@
   return getName();
   }
   
  -}
  -
  -class JkInputStream extends InputStream {
  -
  -JkInputStream() {
  -}
  -
  -public int available() throws IOException {
  -return 0;
  -}
  -
  -public void close() throws IOException {
  -}
  -
  -public void mark(int readLimit) {
  -}
  -
  -public boolean markSupported() {
  -return false;
  -}
  -
  -public void reset() throws IOException {
  -throw new IOException("reset() not supported");
  -}
  -
  -byte singleRead[]=new byte[1];
  -
  -public int read() throws IOException {
  -int rc=read( singleRead, 0, 1 );
  -if( rc== 1 )
  -return singleRead[0];
  -return -1;
  -}
  -
  -public int read(byte[] b, int off, int len) throws IOException {
  -return -1;// ajp13.doRead(b, off, len);
  -}
  -
  -public long skip(long n) throws IOException {
  -if (n > Integer.MAX_VALUE) {
  -throw new IOException("can't skip than many:  " + n);
  -}
  -// XXX if n is big, split this in multiple reads
  -byte[] b = new byte[(int)n];
  -return read(b, 0, b.length);
  -}
   }
  
  
  
  1.3   +2 -2  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkResponse40.java
  
  Index: JkResponse40.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/tomcat40/JkResponse40.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JkResponse40.java 2

DO NOT REPLY [Bug 6281] New: - JDBCRealm+Form Login+URL re-writing session=broken

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6281

JDBCRealm+Form Login+URL re-writing session=broken

   Summary: JDBCRealm+Form Login+URL re-writing session=broken
   Product: Tomcat 4
   Version: 4.0.2 Beta 2
  Platform: All
OS/Version: Other
Status: NEW
  Severity: Major
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


I am witnessing a bug where if you use cookie-less form-based login
with JDBC realms, Tomcat 4.0.1 and 4.0.2b2 will force you to triple-login
to actually login. (You have type your username & password into
the form based page three times)

 

 

I am apparently not the only one who has seen this:
 http://mikal.org/interests/java/tomcat/archive/view?mesg=52926

 

The reason I believe it has to do with JDBC realms is that I tried
cookieless login using the tomcat example /tomcat/webapps/examples/jsp/security
, which worked fine with the memory or file-based realms.
I then modified the 'examples' context in server.xml to use my jdbc realm,
and while I could manage to login in, it took three efforts to actually get in.

 

I have only tried the Win32 Platform.

 -Cameron Elliott
[EMAIL PROTECTED]

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkMain.java

2002-02-06 Thread costin

costin  02/02/06 10:22:45

  Modified:jk/java/org/apache/jk/server JkMain.java
  Log:
  Update for the simplified model ( handler-centric )
  
  Read conf/jk2.properties and use if for configuration. It is very
  similar ( or identical ) with workers.properties - we want the C code
  to read it easily ( same code will be used ), that simplifies a lot in
  the model and eliminates duplication of config ( right now you need
  to change both server.xml and workers.properties ).
  
  If we want to use one of the alternate config mechanisms, we'll
  generate jk2.properties to get the same effect.
  
  Revision  ChangesPath
  1.8   +139 -71   
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java
  
  Index: JkMain.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JkMain.java   26 Jan 2002 17:23:19 -  1.7
  +++ JkMain.java   6 Feb 2002 18:22:45 -   1.8
  @@ -81,14 +81,15 @@
   String propFile;
   Properties props=new Properties();
   
  -Worker defaultWorker;
  -String jkHome;
  -
   public JkMain()
   {
   }
  -
  -public void setPropFile( String p  ) {
  +//  Setting 
  +
  +/** Load a .properties file into and set the values
  + *  into jk2 configuration.
  + */
  +public void setPropertiesFile( String p  ) {
   propFile=p;
   try {
   props.load( new FileInputStream(propFile) );
  @@ -97,91 +98,106 @@
   }
   }
   
  +/** Set a name/value as a jk2 property
  + */
   public void setProperty( String n, String v ) {
   props.put( n, v );
   }
  -
  +
   /**
* Set the channelClassName that will used to connect to
* httpd.
*/
   public void setChannelClassName(String name) {
  -props.put( "channel.default.className",name);
  +props.put( "handler.channel.className",name);
   }
   
   /**
  - * Set the channelClassName that will used to connect to
  - * httpd.
  + * Set the workerClassName that will handle the request.
  + * ( sort of 'pivot' in axis :-)
*/
   public void setWorkerClassName(String name) {
  -props.put( "worker.default.className",name);
  -}
  -
  -public void setDefaultWorker( Worker w ) {
  -defaultWorker=w;
  +props.put( "handler.container.className",name);
   }
   
  +/** Set the base dir of jk2. ( including WEB-INF if in a webapp ).
  + *  We'll try to guess it from classpath if none is set ( for
  + *  example on command line ), but if in a servlet environment
  + *  you need to use Context.getRealPath or a system property or
  + *  set it expliciltey.
  + */
   public void setJkHome( String s ) {
  -jkHome=s;
  +wEnv.setJkHome(s);
   }
   
  -private Object newInstance( String type, String name, String def )
  -throws IOException
  +
  +//  Initialization 
  +
  +public void init() throws IOException
   {
  -try {
  -String classN=props.getProperty( type + "." + name + ".className",
  - def );
  -Class channelclass = Class.forName(classN);
  -return channelclass.newInstance();
  -} catch (Exception ex) {
  -ex.printStackTrace();
  -throw new IOException("Cannot create channel class");
  +String home=wEnv.getJkHome();
  +if( home==null ) {
  +// XXX use IntrospectionUtil to find myself
  +}
  +if( home != null ) {
  +File hF=new File(home);
  +File conf=new File( home, "conf" );
  +File propsF=new File( conf, "jk2.properties" );
  +
  +if( propsF.exists() ) {
  +setPropertiesFile( propsF.getAbsolutePath());
  +} else {
  +if( dL > 0 ) d( "No properties file found " + propsF );
  +}
   }
   }
   
  +
   public void start() throws IOException
   {
  -String workers=props.getProperty( "worker.list", "default" );
  +if( props.get( "handler.request.className" )==null )
  +props.put( "handler.request.className",
  +   "org.apache.jk.common.HandlerRequest" );
  +
  +if( props.get( "handler.channel.className" )==null )
  +props.put( "handler.channel.className",
  +   "org.apache.jk.common.ChannelSocket" );
  +
  +// We must have at least 3 handlers:
  +// channel is the 'transport'
  +// request is the request processor or 'global' chain
 

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkServlet.java JniMain.java

2002-02-06 Thread costin

costin  02/02/06 10:23:25

  Modified:jk/java/org/apache/jk/server JkServlet.java JniMain.java
  Log:
  Update for the API and JkMain changes.
  
  Revision  ChangesPath
  1.6   +33 -23
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkServlet.java
  
  Index: JkServlet.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkServlet.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JkServlet.java26 Jan 2002 17:25:20 -  1.5
  +++ JkServlet.java6 Feb 2002 18:23:25 -   1.6
  @@ -90,21 +90,6 @@
   public JkServlet()
   {
   }
  -
  -protected void servletConfig2properties(JkMain jk, ServletConfig conf )
  -{
  -if( conf==null ) {
  -d("No servlet config ");
  -return;
  -}
  -Enumeration paramNE=conf.getInitParameterNames();
  -while( paramNE.hasMoreElements() ){
  -String s=(String)paramNE.nextElement();
  -String v=conf.getInitParameter(s);
  -
  -jk.setProperty( s, v );
  -}
  -}
   
   public void init(ServletConfig conf) throws ServletException {
   try {
  @@ -121,7 +106,8 @@
  way to access tomcat40 internals without implementing the interface,
  and that will brake 3.3 ( and probably other things ).
   
  -   It does seem to work for 4.0, and in future we can add a tomcat40 
valve/whatever
  +   It does seem to work for 4.0, and in future we can add a tomcat40
  +   valve/whatever
  that will provide an Attribute for 'trusted' apps with pointer to
  the internals.
   */
  @@ -133,7 +119,13 @@
   private void try33() {
   // 33 ?
   try {
  -JkServlet t33=(JkServlet)newInstance( 
"org.apache.jk.server.tomcat33.JkServlet33" );
  +Object o=newInstance( "org.apache.tomcat.core.Context" );
  +if( o==null ) {
  +d("3.3 not detected or untrusted app");
  +return;
  +}
  +JkServlet t33=
  + (JkServlet)newInstance( "org.apache.jk.server.tomcat33.JkServlet33" );
   if( t33 == null ) {
   d("3.3 not detected or untrusted app");
   return;
  @@ -171,18 +163,19 @@
   }
   }
   
  -protected JkMain jkMain;
  +protected JkMain jkMain=new JkMain();
   
  -protected void initJkMain(ServletConfig cfg, Worker defaultWorker) {
  -jkMain=new JkMain();
  +protected void initJkMain(ServletConfig cfg, JkHandler defaultWorker) {
   servletConfig2properties( jkMain, cfg );
  -jkMain.setDefaultWorker( defaultWorker );
  +
  +jkMain.getWorkerEnv().addHandler("container", defaultWorker );
   
   String jkHome=cfg.getServletContext().getRealPath("/");
   d("Setting jkHome " + jkHome );
  -jkMain.setJkHome( jkHome );
  +jkMain.setJkHome( jkHome + "/WEB-INF" );
   
   try {
  +jkMain.init();
   jkMain.start();
   } catch( Exception ex ) {
   ex.printStackTrace();
  @@ -203,7 +196,24 @@
   }
   
   
  -private static final int dL=0;
  +/** Set jk main properties using the servlet config file
  + */
  +private void servletConfig2properties(JkMain jk, ServletConfig conf )
  +{
  +if( conf==null ) {
  +d("No servlet config ");
  +return;
  +}
  +Enumeration paramNE=conf.getInitParameterNames();
  +while( paramNE.hasMoreElements() ){
  +String s=(String)paramNE.nextElement();
  +String v=conf.getInitParameter(s);
  +
  +jk.setProperty( s, v );
  +}
  +}
  +
  +private static final int dL=10;
   private static void d(String s ) {
   System.err.println( "JkServlet: " + s );
   }
  
  
  
  1.2   +4 -4  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JniMain.java
  
  Index: JniMain.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JniMain.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JniMain.java  26 Jan 2002 17:21:41 -  1.1
  +++ JniMain.java  6 Feb 2002 18:23:25 -   1.2
  @@ -123,12 +123,12 @@
   
   wEnv=new WorkerEnv();
   ChannelJni cjni=new ChannelJni();
  -wEnv.addChannel( "jni", cjni );
  -Worker defaultWorker=new WorkerDummy();
  +wEnv.addHandler( "jni", cjni );
  +JkHandler defaultWorker=new WorkerDummy();
   
   HandlerRequest hReq=new HandlerRequest();
  -wEnv.addHandler( hReq );
  -hReq.set

cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/ajp Ajp13.java RequestHandler.java

2002-02-06 Thread costin

costin  02/02/06 10:26:50

  Modified:jk/java/org/apache/ajp Ajp13.java RequestHandler.java
  Log:
  Added support for the ajp13 secret. It shouldn't affect anything in the
  normal use-case - it just recognizes the new request attributes if it's
  sent by apache.
  
  In addition, any attributes with a single string value ( like most
  attributes are ) that is not known will be ignored, for better
  backward compatibility.
  
  Note that we don't do anything about the secret except recognizing it.
  
  A config option in the connector will use it.
  
  Revision  ChangesPath
  1.23  +9 -0  jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java
  
  Index: Ajp13.java
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- Ajp13.java19 Jan 2002 03:23:17 -  1.22
  +++ Ajp13.java6 Feb 2002 18:26:50 -   1.23
  @@ -142,6 +142,7 @@
   // If no password is set, use only Ajp13 messaging
   boolean backwardCompat=true;
   boolean logged=false;
  +String secret=null;
   
   public Ajp13() {
super();
  @@ -207,6 +208,14 @@
   logged=b;
   }
   
  +public void setSecret( String s ) {
  +secret=s;
  +}
  +
  +public String getSecret() {
  +return secret;
  +}
  +
   //  Handlers registry 
   
   static final int MAX_HANDLERS=32;
  
  
  
  1.11  +16 -1 
jakarta-tomcat-connectors/jk/java/org/apache/ajp/RequestHandler.java
  
  Index: RequestHandler.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/RequestHandler.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- RequestHandler.java   31 Jan 2002 17:18:51 -  1.10
  +++ RequestHandler.java   6 Feb 2002 18:26:50 -   1.11
  @@ -124,6 +124,7 @@
   public static final byte SC_A_SSL_CIPHER= 8;
   public static final byte SC_A_SSL_SESSION   = 9;
   public static final byte SC_A_SSL_KEYSIZE   = 11;
  +public static final byte SC_A_SECRET= 12;
   
   // Used for attributes which are not in the list above
   public static final byte SC_A_REQ_ATTRIBUTE = 10; 
  @@ -375,6 +376,17 @@
 msg.getString());
   break;

  + case SC_A_SECRET   :
  +// If a request has a secret attribute, set it on
  +// channel - it'll be visible to the caller ( Interceptor,
  +// Connector ) and it can check it against its settings before
  +// trusting us.
  +String secret=msg.getString();
  +if(secret!=null) {
  +ch.setSecret( secret );
  +}
  +break;
  + 
case SC_A_SSL_SESSION  :
isSSL = true;
req.setAttribute("javax.servlet.request.ssl_session",
  @@ -391,7 +403,10 @@
 Integer.toString(msg.getInt()));
return 200;
default:
  - return 500; // Error
  +// Ignore. Assume a single-string value - we shouldn't
  +// allow anything else.
  +msg.getString();
  +break;
}
   }
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




standardContext.namingInitFailed

2002-02-06 Thread Jack Lauman

I'm getting the following error in my log files after each webapp is
loaded:

StandardContext[/soap]: Cannot find message associated with key
standardContext.namingInitFailed

I assume this has something to do with JNDI... how can I fix it?

Jack

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/conf jk2.properties

2002-02-06 Thread costin

costin  02/02/06 11:04:28

  Added:   jk/conf  jk2.properties
  Log:
  Config file for jk2.
  
  Right now everything is commented - the defaults will be used.
  Uncomment/edit if you want to change anything.
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-connectors/jk/conf/jk2.properties
  
  Index: jk2.properties
  ===
  # Workers.properties like file for the java side.
  # It should be easy to read from C as well, to avoid duplication
  # There are many ways to configure jk2 - including 'native' interceptor
  # conf in server.xml, servlet and web.xml, properties file. For the first,
  # version we'll use the file. If/when xml is used ( any form ), we'll
  # generate this file automatically.
  
  
  # Pattern ( similar with server.xml, but for properties ) : 
  #
  # handler.NAME.className=[class name to be loaded]
  # handler.NAME.property=value : a setter will be called, with int,boolean
  # conversions if needed.  
  
  
  # Handlers that will be loaded by jk2:
  # Default:
  # handler.list=channel,request,container
  
  # Transport handler. 
  # Default:
  #handler.channel.className=org.apache.jk.common.ChannelSocket
  #handler.channel.debug=0
  #handler.channel.port=8009
  
  # Other options:
  #handler.channel.className=org.apache.jk.common.ChannelUn
  #handler.channel.file=${jk.home}/jk2.socket
  
  #handler.channel.className=org.apache.jk.common.ChannelJni
  
  # Optional - right now request handles all messages
  # handler.dispatch.className=org.apache.jk.common.HandlerDispatch
  # handler.dispatch.debug=0
  
  
  # The only request handler we have right now, for ajp13 requests.
  # Default:
  #handler.request.className=org.apache.jk.common.HandlerRequest
  #handler.request.debug=0
  
  
  #handler.container.className=org.apache.jk.common.WorkerDummy
  
  # This will be added automatically by the server adapter. Only dummy
  # needs to be added for testing purpose
  # handler.container.className=org.apache.jk.server.tomcat33.Worker33
  # handler.container.className=org.apache.jk.server.tomcat40.Worker40
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/conf jk2.manifest

2002-02-06 Thread costin

costin  02/02/06 11:06:16

  Modified:jk/conf  jk2.manifest
  Log:
  Added classes to classpath, for faster build in standalone
  
  Revision  ChangesPath
  1.2   +1 -1  jakarta-tomcat-connectors/jk/conf/jk2.manifest
  
  Index: jk2.manifest
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/conf/jk2.manifest,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk2.manifest  26 Jan 2002 16:02:32 -  1.1
  +++ jk2.manifest  6 Feb 2002 19:06:16 -   1.2
  @@ -1,2 +1,2 @@
   Main-Class: org.apache.jk.server.JkMain
  -Class-Path: tomcat-util.jar workers.jar
  +Class-Path: tomcat-util.jar workers.jar ../classes/
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h jk_service.h jk_util.c jk_util.h

2002-02-06 Thread costin

costin  02/02/06 11:11:23

  Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h
jk_service.h jk_util.c jk_util.h
  Log:
  Implementation of the 'secret' attribute in the request, used to
  pass a key used to authenticate the sender.
  
  This shouldn't affect in any way the current code - as long as the
  secret attribute is not set on the worker, the code will behave
  exactly as before and work with any tomcat from 3.2 to 4.1.
  
  If the attribute is set, the attribute will be sent - the
  receiving side should know how to deal with it, that means
  it should use a recent version of jk.
  
  On the java side, the new versions of jk will allow setting the
  key - that will require any web server to send the password
  in order to allow forwarding the request. The check will happen
  once per tcp connection.
  
  Revision  ChangesPath
  1.23  +13 -3 jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c
  
  Index: jk_ajp_common.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- jk_ajp_common.c   17 Dec 2001 15:29:38 -  1.22
  +++ jk_ajp_common.c   6 Feb 2002 19:11:23 -   1.23
  @@ -59,7 +59,7 @@
* Description: common stuff for bi-directional protocols ajp13/ajp14. *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
* Author:  Henri Gomez <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.22 $   *
  + * Version: $Revision: 1.23 $   *
***/
   
   
  @@ -272,7 +272,7 @@
   static int ajp_marshal_into_msgb(jk_msg_buf_t*msg,
jk_ws_service_t *s,
jk_logger_t *l,
  -  ajp_endpoint_t  *ae)
  + ajp_endpoint_t  *ae)
   {
   unsigned char method;
   unsigned i;
  @@ -320,6 +320,15 @@
   }
   }
   
  +if (s->secret) {
  +if (jk_b_append_byte(msg, SC_A_SECRET) ||
  +jk_b_append_string(msg, s->secret)) {
  +jk_log(l, JK_LOG_ERROR,
  +   "Error ajp_marshal_into_msgb - Error appending secret\n");
  +return JK_FALSE;
  +}
  +}
  +
   if (s->remote_user) {
   if (jk_b_append_byte(msg, SC_A_REMOTE_USER) ||
   jk_b_append_string(msg, s->remote_user)) {
  @@ -384,7 +393,6 @@
   }
   }
   
  -
   if (s->num_attributes > 0) {
   for (i = 0 ; i < s->num_attributes ; i++) {
   if (jk_b_append_byte(msg, SC_A_REQ_ATTRIBUTE)   ||
  @@ -1087,6 +1095,7 @@
p->reuse = JK_FALSE;
*is_recoverable_error = JK_TRUE;
   
  +s->secret = p->worker->secret;
/* 
 * We get here initial request (in reqmsg)
 */
  @@ -1240,6 +1249,7 @@
   }
   }
   }
  +p->secret = jk_get_worker_secret(props, p->name );
   } else {
   jk_log(l, JK_LOG_ERROR, "In jk_worker_t::init, NULL parameters\n");
   }
  
  
  
  1.14  +8 -4  jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.h
  
  Index: jk_ajp_common.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.h,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- jk_ajp_common.h   4 Dec 2001 19:44:23 -   1.13
  +++ jk_ajp_common.h   6 Feb 2002 19:11:23 -   1.14
  @@ -59,7 +59,7 @@
* Description: common stuff for bi-directional protocol ajp13/ajp14.  *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
* Author:  Henri Gomez <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.13 $   *
  + * Version: $Revision: 1.14 $   *
***/
   
   #ifndef JK_AJP_COMMON_H
  @@ -88,6 +88,7 @@
   #define SC_A_SSL_SESSION(unsigned char)9
   #define SC_A_REQ_ATTRIBUTE  (unsigned char)10
   #define SC_A_SSL_KEY_SIZE   (unsigned char)11/* only in if 
JkOptions +ForwardKeySize */
  +#define SC_A_SECRET (unsigned char)12
   #define SC_A_ARE_DONE   (unsigned char)0xFF
   
   /*
  @@ -253,9 +254,12 @@
   unsigned ep_cache_sz;
   ajp_endpoint_t **ep_cache;
   
  - int proto; /* PROTOCOL USED AJP13/AJP14 */
  -
  - jk_login_ser

cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_ajp14_worker.c

2002-02-06 Thread costin

costin  02/02/06 11:13:10

  Modified:jk/native2/common jk_ajp14_worker.c
  Log:
  Added the same secret option.
  
  Revision  ChangesPath
  1.15  +16 -52jakarta-tomcat-connectors/jk/native2/common/jk_ajp14_worker.c
  
  Index: jk_ajp14_worker.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_ajp14_worker.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- jk_ajp14_worker.c 26 Jan 2002 07:03:42 -  1.14
  +++ jk_ajp14_worker.c 6 Feb 2002 19:13:10 -   1.15
  @@ -101,35 +101,18 @@
   jk_worker_t *p = _this;
   jk_worker_t *aw;
   char * secret_key;
  -int proto=AJP14_PROTO;
   char *channelType;
   
   aw = _this;
  -secret_key = jk_map_getStrProp( env, props,
  -"worker", aw->name, "secretkey", NULL );
  -
  +_this->secret = jk_map_getStrProp( env, props,
  +   "worker", aw->name, "secretkey", NULL );
  +_this->secret= _this->pool->pstrdup(env, _this->pool, _this->secret);
  +
   channelType = jk_map_getStrProp( env, props,
"worker", aw->name, "channel", "socket" );
   
  -if ((!secret_key) || (!strlen(secret_key))) {
  -proto=AJP13_PROTO;
  -aw->proto= AJP13_PROTO;
  -}
  -
  -if (proto == AJP13_PROTO) {
  - port = AJP13_DEF_PORT;
  - host = AJP13_DEF_HOST;
  -} else if (proto == AJP14_PROTO) {
  - port = AJP14_DEF_PORT;
  - host = AJP14_DEF_HOST;
  -} else {
  - env->l->jkLog(env, env->l, JK_LOG_ERROR,
  - "ajp14.validate() unknown protocol %d\n",proto);
  - return JK_FALSE;
  -} 
   if( _this->channel == NULL ) {
/* Create a default channel */
  -
_this->channel=env->getInstance(env, _this->pool,"channel",
   channelType );
   
  @@ -141,7 +124,6 @@
   }
   
   err=_this->channel->init( env, _this->channel, props, p->name, _this);
  -
   if( err != JK_TRUE ) {
env->l->jkLog(env, env->l, JK_LOG_ERROR,
 "ajp14.validate(): channel init failed\n");
  @@ -149,8 +131,8 @@
   }
   
   env->l->jkLog(env, env->l, JK_LOG_INFO,
  -  "ajp14.validate() %s protocol=%s\n", _this->name,
  -  ((_this->secret==NULL) ? "ajp13" : "ajp14"));
  +  "ajp14.validate() %s %s\n", _this->name,
  +  _this->channel->name);
   
   return JK_TRUE;
   }
  @@ -213,6 +195,11 @@
   return err;
   }
   
  +/** There is no point of trying multiple times - each channel may
  +have built-in recovery mechanisms
  +*/
  +#define JK_RETRIES 2
  +
   /** First message in a stream-based connection. If the first send
   fails, try to reconnect.
   */
  @@ -231,7 +218,7 @@
* XXX JK_RETRIES could be replaced by the number of workers in
* a load-balancing configuration 
*/
  -for(attempt = 0 ; attempt < worker->connect_retry_attempts ;attempt++) {
  +for(attempt = 0 ; attempt < JK_RETRIES ;attempt++) {
   jk_channel_t *channel= worker->channel;
   
   /* e->request->dump(env, e->request, "Before sending "); */
  @@ -387,7 +374,7 @@
   /* 
* We get here initial request (in reqmsg)
*/
  -err=jk_serialize_request13(env, e->request, s);
  +err=jk_serialize_request13(env, e->request, s, e);
   if (err!=JK_TRUE) {
s->is_recoverable_error = JK_FALSE;
env->l->jkLog(env, env->l, JK_LOG_ERROR,
  @@ -497,7 +484,6 @@
   e->cPool=endpointPool->create(env, endpointPool, HUGE_POOL_SIZE );
   
   e->worker = _this;
  -e->proto = _this->proto;
   e->channelData = NULL;
   
   *eP = e;
  @@ -531,23 +517,8 @@
   {
   jk_endpoint_t *e;
   int  rc;
  -char *secret_key;
  -int proto=AJP14_PROTO;
   int cache_sz;
   
  -secret_key = jk_map_getStrProp( env, props,
  -"worker", _this->name, "secretkey", NULL );
  -
  -if( secret_key==NULL ) {
  -proto=AJP13_PROTO;
  -_this->proto= AJP13_PROTO;
  -_this->secret=NULL;
  -} else {
  -/* Set Secret Key (used at logon time) */
  -_this->secret = _this->pool->pstrdup(env, _this->pool, secret_key);
  -}
  -
  -
   /* start the connection cache */
   cache_sz=jk_map_getIntProp(env, props,
  "worker", _this->name, "cachesize",
  @@ -567,10 +538,6 @@
   _this->endpointCache=NULL;
   }
   
  -/* Set WebServerName (used at logon time) */
  -if( we->server_name == NULL )
  -we->server_name = _this->pool->pstrdup(env, we->pool,we->server_name);
  -
   if (_this->secret == NULL) {
   /* No extra initialization for A

cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_objCache.c

2002-02-06 Thread costin

costin  02/02/06 11:14:50

  Modified:jk/native2/common jk_objCache.c
  Log:
  - a more efficient and natural alghoritm - instead of searching in the
  array for an object, we use a normal stack.
  
  - allow the cache to grow, if -1 is set as size
  
  Revision  ChangesPath
  1.4   +42 -34jakarta-tomcat-connectors/jk/native2/common/jk_objCache.c
  
  Index: jk_objCache.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_objCache.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_objCache.c 16 Dec 2001 23:29:55 -  1.3
  +++ jk_objCache.c 6 Feb 2002 19:14:50 -   1.4
  @@ -69,25 +69,34 @@
   {
   int rc;
   
  -/* if( _this->debug > 0 )  */
  -/* _this->l->jkLog(_this->l, JK_LOG_DEBUG, "Cache put\n"); */
  -
  -if(_this->ep_cache_sz <= 0 )
  +if(_this->size <= 0 )
   return JK_FALSE;
   
   
   JK_ENTER_CS(&_this->cs, rc);
  -if(rc) {
  -int i;
  -
  -for(i = 0 ; i < _this->ep_cache_sz ; i++) {
  -if(!_this->ep_cache[i]) {
  -_this->ep_cache[i] = obj;
  -break;
  -}
  +if(rc==JK_TRUE) {
  +
  +rc=JK_FALSE;
  +
  +if( _this->count >= _this->size && _this->maxSize== -1 ) {
  +/* Realloc */
  +void **oldData=_this->data;
  +_this->data =
  +(void **)_this->pool->calloc(env, _this->pool,
  + 2 * sizeof(void *) * _this->size);
  +memcpy( _this->data, oldData, _this->size );
  +_this->size *= 2;
  +/* XXX Can we destroy the old data ? Probably not.
  +   It may be better to have a list - but it's unlikely
  +   we'll have too many reallocations */
   }
  +
  +if( _this->count < _this->size ) {
  +_this->data[_this->count++]=obj;
  +}
  +
   JK_LEAVE_CS(&_this->cs, rc);
  -if(i < _this->ep_cache_sz) {
  +if(rc) {
   /*   l->jkLog(l, JK_LOG_DEBUG, "Return endpoint to pool\n"); */
   return JK_TRUE;
   }
  @@ -101,11 +110,19 @@
   jk_objCache_init(jk_env_t *env, jk_objCache_t *_this, int cacheSize ) {
   int i;
   
  -_this->ep_cache =
  +if( cacheSize <= 0 ) {
  +_this->size= 64;
  +} else {
  +_this->size= cacheSize ;
  +}
  +_this->count=0;
  +_this->maxSize=cacheSize;
  +
  +_this->data =
   (void **)_this->pool->calloc(env, _this->pool,
  - sizeof(void *) * cacheSize);
  + sizeof(void *) * _this->size);
   
  -if( _this->ep_cache==NULL )
  +if( _this->data==NULL )
   return JK_FALSE;
   
   JK_INIT_CS(&(_this->cs), i);
  @@ -115,11 +132,6 @@
   return JK_FALSE;
   }
   
  -for(i = 0 ; i < cacheSize ; i++) {
  -_this->ep_cache[i] = NULL;
  -}
  -
  -_this->ep_cache_sz=cacheSize;
   return JK_TRUE;
   }
   
  @@ -129,7 +141,7 @@
   
   JK_DELETE_CS(&(_this->cs), i);
   
  -_this->ep_cache_sz=0;
  +_this->count=0;
   /* Nothing to free, we use pools */
   
   return JK_TRUE;
  @@ -142,21 +154,13 @@
   int rc;
   void *ae=NULL;
   
  -if (_this->ep_cache_sz <= 0 )
  -return NULL;
  -
  -
   JK_ENTER_CS(&_this->cs, rc);
   if (rc) {
  -int i;
  -
  -for (i = 0 ; i < _this->ep_cache_sz ; i++) {
  -if (_this->ep_cache[i]) {
  -ae = _this->ep_cache[i];
  -_this->ep_cache[i] = NULL;
  -break;
  -}
  +if( _this->count > 0 ) {
  +_this->count--;
  +ae=_this->data[ _this->count ];
   }
  +
   JK_LEAVE_CS(&_this->cs, rc);
   
   return ae;
  @@ -168,6 +172,10 @@
   jk_objCache_t *_this=pool->calloc( env, pool, sizeof( jk_objCache_t ));
   
   _this->pool=pool;
  +
  +_this->count=0;
  +_this->size=0;
  +_this->maxSize=-1;
   
   _this->get=jk_objCache_get;
   _this->put=jk_objCache_put;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_vm_default.c

2002-02-06 Thread costin

costin  02/02/06 11:15:25

  Modified:jk/native2/common jk_vm_default.c
  Log:
  Update the defaults for the current naming conventions.
  
  Revision  ChangesPath
  1.3   +7 -11 jakarta-tomcat-connectors/jk/native2/common/jk_vm_default.c
  
  Index: jk_vm_default.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_vm_default.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- jk_vm_default.c   26 Jan 2002 07:10:30 -  1.2
  +++ jk_vm_default.c   6 Feb 2002 19:15:25 -   1.3
  @@ -121,9 +121,9 @@
   
   /** Where to try to find jk jars ( if user doesn't specify it explicitely ) */
   static const char *defaultJK_PATH[]={
  -"$(tomcat.home)$(fs)modules$(fs)jk$(fs)WEB-INF$(fs)lib$(fs)jk2.jar",
  +"$(tomcat.home)$(fs)modules$(fs)jk$(fs)WEB-INF$(fs)lib$(fs)tomcat-jk2.jar",
"$(tomcat.home)$(fs)modules$(fs)jk$(fs)WEB-INF$(fs)lib$(fs)tomcat-utils.jar",
  -"$(tomcat.home)$(fs)webapps(fs)jk$(fs)WEB-INF$(fs)lib$(fs)ajp.jar",
  +"$(tomcat.home)$(fs)webapps(fs)jk$(fs)WEB-INF$(fs)lib$(fs)tomcat-jk2.jar",
"$(tomcat.home)$(fs)webapps(fs)jk$(fs)WEB-INF$(fs)lib$(fs)tomcat-utils.jar",
   NULL
   };
  @@ -409,20 +409,16 @@
   
   if(vm_args.classpath) {
   unsigned len = strlen(vm_args.classpath) + 
  -   strlen(p->tomcat_classpath) + 
  -   3;
  +strlen(p->tomcat_classpath) +  3;
   char *tmp = p->pool->alloc(env, p->pool, len);
  -if(tmp) {
  -sprintf(tmp, "%s%c%s", 
  -p->tomcat_classpath, 
  -PATH_SEPERATOR,
  -vm_args.classpath);
  -p->tomcat_classpath = tmp;
  -} else {
  +if(tmp==NULL) { 
   env->l->jkLog(env, env->l, JK_LOG_EMERG, 
 "Fail-> allocation error for classpath\n"); 
   return JK_FALSE;
   }
  +sprintf(tmp, "%s%c%s", p->tomcat_classpath, 
  +PATH_SEPERATOR, vm_args.classpath);
  +p->tomcat_classpath = tmp;
   }
   
   vm_args.classpath = p->tomcat_classpath;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_workerEnv.c

2002-02-06 Thread costin

costin  02/02/06 11:16:25

  Modified:jk/native2/common jk_workerEnv.c
  Log:
  Small fix - not all declared workers will be available.
  
  Revision  ChangesPath
  1.15  +12 -8 jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c
  
  Index: jk_workerEnv.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- jk_workerEnv.c26 Jan 2002 07:11:00 -  1.14
  +++ jk_workerEnv.c6 Feb 2002 19:16:25 -   1.15
  @@ -59,7 +59,7 @@
* Description: Workers controller *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
* Author:  Henri Gomez <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.14 $   *
  + * Version: $Revision: 1.15 $   *
***/
   
   #include "jk_workerEnv.h" 
  @@ -69,7 +69,8 @@
   
   #define DEFAULT_WORKER  ("ajp13")
   
  -int JK_METHOD jk_workerEnv_factory( jk_env_t *env, jk_pool_t *pool, void **result,
  +int JK_METHOD jk_workerEnv_factory( jk_env_t *env, jk_pool_t *pool,
  +void **result,
   const char *type, const char *name);
   
   static void jk_workerEnv_close(jk_env_t *env, jk_workerEnv_t *_this);
  @@ -191,20 +192,21 @@
   int i;
   int err;
   char *tmp;
  +int declared_workers=0;
   
   /* _this->init_data=init_data; */
   
   tmp = jk_map_getString(env, init_data, "worker.list",
  DEFAULT_WORKER );
   worker_list=jk_map_split( env, init_data, init_data->pool,
  -  tmp, NULL, &_this->num_of_workers );
  +  tmp, NULL, & declared_workers );
   
  -if(worker_list==NULL || _this->num_of_workers<= 0 ) {
  +if(worker_list==NULL || declared_workers <= 0 ) {
   /* assert() - we pass default worker, we should get something back */
   return JK_FALSE;
   }
   
  -for(i = 0 ; i < _this->num_of_workers ; i++) {
  +for(i = 0 ; i < declared_workers ; i++) {
   jk_worker_t *w = NULL;
   jk_worker_t *oldw = NULL;
   const char *name=(const char*)worker_list[i];
  @@ -226,7 +228,7 @@
   
   env->l->jkLog(env, env->l, JK_LOG_INFO,
 "workerEnv.init() %d workers, default %s\n",
  -  _this->num_of_workers, worker_list[0]); 
  +  declared_workers, worker_list[0]); 
   return JK_TRUE;
   }
   
  @@ -531,7 +533,7 @@
   
   w=(jk_worker_t *)env->getInstance(env, workerPool, "worker",
 type );
  -
  +
   if( w == NULL ) {
   env->l->jkLog(env, env->l, JK_LOG_ERROR,
   "workerEnv.createWorker(): factory can't create worker %s:%s\n",
  @@ -539,6 +541,7 @@
   return NULL;
   }
   
  +w->type=type;
   w->name=(char *)name;
   w->pool=workerPool;
   w->workerEnv=_this;
  @@ -588,7 +591,8 @@
   return w;
   }
   
  -int JK_METHOD jk_workerEnv_factory( jk_env_t *env, jk_pool_t *pool, void **result,
  +int JK_METHOD jk_workerEnv_factory( jk_env_t *env, jk_pool_t *pool,
  +void **result,
   const char *type, const char *name)
   {
   jk_workerEnv_t *_this;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_worker_status.c

2002-02-06 Thread costin

costin  02/02/06 11:16:56

  Modified:jk/native2/common jk_worker_status.c
  Log:
  Small update, remove debug statement.
  
  Revision  ChangesPath
  1.4   +24 -13jakarta-tomcat-connectors/jk/native2/common/jk_worker_status.c
  
  Index: jk_worker_status.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_status.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_worker_status.c26 Jan 2002 06:58:50 -  1.3
  +++ jk_worker_status.c6 Feb 2002 19:16:56 -   1.4
  @@ -99,7 +99,7 @@
   va_end(vargs);
   
   buf->s->write( env, buf->s, buf->buf, strlen(buf->buf) );
  -fprintf(stderr, "Writing %d %s \n", ret, buf->buf);
  +/*fprintf(stderr, "Writing %d %s \n", ret, buf->buf); */
   }
   
   static void jk_worker_status_displayWorkers( jk_env_t *env, jk_buff_t *buf,
  @@ -107,25 +107,39 @@
   {
   jk_map_t *map=wenv->worker_map;
   int i;
  +int count=map->size( env, map );
   
  -jk_printf(env, buf, "Workers\n" );
  +jk_printf(env, buf, "Active workers\n" );
   jk_printf(env, buf, "\n");
   
  -jk_printf(env, buf, "NameRetries"
  -  "ErrRecovery");
  +jk_printf(env, buf, "NameType"
  +  "ChannelRoute"
  +  "Error stateRecovery"
  +  "Endpoint cache");
   
  -for( i=0; i< map->size( env, map ) ; i++ ) {
  +for( i=0; i< count ; i++ ) {
   char *name=map->nameAt( env, map, i );
   jk_worker_t *worker=(jk_worker_t *)map->valueAt( env, map,i );
   
  -jk_printf(env, buf, "", name );
  -jk_printf(env, buf, "%s", name );
  -jk_printf(env, buf, "%d",
  -  worker->connect_retry_attempts );
  +jk_printf(env, buf, "%s", name );
  +jk_printf(env, buf, "%s", worker->type );
  +if( worker->channel != NULL ) {
  +jk_printf(env, buf, "%s",worker->channel->name );
  +} else {
  +jk_printf(env, buf, " " );
  +}
  +if( worker->route != NULL ) {
  +jk_printf(env, buf, "%s",worker->route );
  +} else {
  +jk_printf(env, buf, " " );
  +}
   jk_printf(env, buf, "%d",
 worker->in_error_state );
  -jk_printf(env, buf, "%d",
  +jk_printf(env, buf, "%d",
 worker->in_recovering );
  +jk_printf(env, buf, "%d",
  +  ( worker->endpointCache == NULL ? 0 :
  +worker->endpointCache->count ));
   
   /* Endpoint cache ? */
   
  @@ -145,9 +159,6 @@
   jk_printf(env, buf, "Worker Env Info\n");
   
   jk_printf(env, buf, "\n");
  -jk_printf(env, buf, "num_workers"
  -  "%d\n",
  -  wenv->num_of_workers);
   /* Could be modified dynamically */
   jk_printf(env, buf, "LogLevel"
 "%d\n",
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_env.h

2002-02-06 Thread costin

costin  02/02/06 11:18:21

  Modified:jk/native2/include jk_env.h
  Log:
  Initial work on the exception mechanism, that would allow more meaningfull
  error messages out of jk. We can live without it, so it's low priority.
  
  Revision  ChangesPath
  1.5   +46 -4 jakarta-tomcat-connectors/jk/native2/include/jk_env.h
  
  Index: jk_env.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_env.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_env.h  16 Dec 2001 23:17:23 -  1.4
  +++ jk_env.h  6 Feb 2002 19:18:21 -   1.5
  @@ -114,17 +114,59 @@
*/
   jk_env_t* JK_METHOD jk_env_getEnv( char *id, struct jk_pool *pool );
   
  +#define JK_LINE __FILE__,__LINE__
   
  +struct jk_exception {
  +char *file;
  +int line;
  +
  +char *type;
  +char *msg;
  +
  +struct jk_exception *next;
  +};
  +
  +typedef struct jk_exception jk_exception_t;
  +
  +
   /**
*  The env will be used in a similar way with the JniEnv, to provide 
*  access to various low level services ( pool, logging, system properties )
*  in a consistent way. In time we should have all methods follow 
  - *  the same pattern, with env as a first parameter, then the object ( this ) and 
  - *  the other methods parameters.  
  + *  the same pattern, with env as a first parameter, then the object ( this )
  + *  and the other methods parameters.  
*/
   struct jk_env {
   struct jk_logger *l;
  -struct jk_pool   *globalPool; 
  +struct jk_pool   *globalPool;
  +
  +/** Pool used for local allocations. It'll be reset when the
  +env is released ( the equivalent of 'detach' ). Can be
  +used for temp. allocation of small objects.
  +*/
  +struct jk_pool *localPool;
  +
  +/* Exceptions
  + */
  +void (JK_METHOD *jkThrow)( jk_env_t *env,
  +   const char *file, int line,
  +   const char *type,
  +   const char *fmt, ... );
  +
  +/** re-throw the exception and record the current pos.
  + *  in the stack trace
  + */
  +void (JK_METHOD *jkReThrow)( jk_env_t *env,
  + const char *file, int line );
  +
  +/* Last exception that occured
  + */
  +struct jk_exception *(JK_METHOD *jkException)( jk_env_t *env );
  +
  +/** Clear the exception state
  + */
  +void (JK_METHOD *jkClearException)( jk_env_t *env );
  +
   
   /** Global properties ( similar with System properties in java)
*/
  @@ -171,7 +213,7 @@
   
   /* private */
   struct jk_map *_registry;
  -
  +struct jk_exception *lastException;
   };
   
   void JK_METHOD jk_registry_init(jk_env_t *env);
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_objCache.h jk_worker.h jk_workerEnv.h

2002-02-06 Thread costin

costin  02/02/06 11:19:16

  Modified:jk/native2/include jk_objCache.h jk_worker.h jk_workerEnv.h
  Log:
  Fixes/updates.
  
  Removed num_of_workers from workerEnv, it was redundant.
  
  Revision  ChangesPath
  1.5   +16 -3 jakarta-tomcat-connectors/jk/native2/include/jk_objCache.h
  
  Index: jk_objCache.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_objCache.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_objCache.h 16 Dec 2001 23:17:23 -  1.4
  +++ jk_objCache.h 6 Feb 2002 19:19:16 -   1.5
  @@ -105,10 +105,23 @@
   
   int (*destroy)(struct jk_env *env, jk_objCache_t *_this);
   
  -/* private, move to impl ( if any other impl is available) */
  -int ep_cache_sz;
  +/** Cache max size. -1 for unbound ( i.e. growing ). */
  +int maxSize;
  +
  +/* Current size of the table */
  +int size;
  +
  +/** Number of elements in the cache.
  + *  Postition where next element will be inserted.
  + */
  +int count;
  +
  +/* Sync.
  + */
   JK_CRIT_SEC cs;
  -void **ep_cache;
  +
  +/** Objects in the cache */
  +void **data;
   struct jk_pool *pool;
   };
   
  
  
  
  1.11  +17 -30jakarta-tomcat-connectors/jk/native2/include/jk_worker.h
  
  Index: jk_worker.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_worker.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- jk_worker.h   26 Jan 2002 06:41:51 -  1.10
  +++ jk_worker.h   6 Feb 2002 19:19:16 -   1.11
  @@ -58,7 +58,7 @@
   /***
* Description: Workers controller header file *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   * 
  - * Version: $Revision: 1.10 $   *
  + * Version: $Revision: 1.11 $   *
***/
   
   #ifndef JK_WORKER_H
  @@ -127,13 +127,21 @@
   
   struct jk_workerEnv *workerEnv;
   char *name;
  +char *type;
  +
  +/** The id of the tomcat instance we connect to. We may have multiple
  +workers connecting to a single tomcat. If no route is defined,
  +the worker name will be the route name. The route can be the
  +name of another worker. 
  + */
  +char *route;
   
   /** Pool for worker specific informations.
   In future we may start/stop/reload workers at runtime, but that's
   far away
   */
   struct jk_pool *pool;
  -
  +
   /* 
* A 'this' pointer which is used by the subclasses of this class to
* point to data/functions which are specific to a given protocol 
  @@ -141,39 +149,19 @@
*/
   void *worker_private;
   
  -/* XXX Add name and all other common properties !!! 
  - */
  -
  -/** Communication channle used by the worker 
  +/** Communication channel used by the worker 
*/
   struct jk_channel *channel;
   
  -/* XXX Stuff from ajp, some is generic, some not - need to
  -   sort out after */
  -struct sockaddr_in worker_inet_addr; /* Contains host and port */
  -int connect_retry_attempts;
  -
   /** Reuse the endpoint and it's connection
*/
   struct jk_objCache *endpointCache;
   
  -/** Request pool cache. XXX We may use reqCache.
  +/** Request pool cache. XXX We may use a pool of requests.
*/
   struct jk_objCache *rPoolCache;
   
  -/* 
  - * Open connections cache...
  - *
  - * 1. Critical section object to protect the cache.
  - * 2. Cache size. 
  - * 3. An array of "open" endpoints.
  - */
  -/* JK_CRIT_SEC cs; */
  -/* int ep_cache_sz; */
  -/* struct jk_endpoint **ep_cache; */
  -
  -int proto;
  -/* Password for ajp14+ connections. If null we default to ajp13.*/
  +/* Private key used to connect to the remote side2.*/
   char * secret;
   
   /* Each worker can be part of a load-balancer scheme.
  @@ -185,16 +173,15 @@
   int in_error_state;
   int in_recovering;
   time_t  error_time;
  +/** Last exception recorded on this worker, the reason for
  + *  which this worker is in error state and can't perform.
  + */
  +struct jk_exception *lastError;
   
   /** If num_of_workers > 0 this is an load balancing worker
*/
   jk_worker_t **lb_workers;
   int num_of_workers;
  -
  -/*
  - * For all of the below (except destroy), the first argument is
  - * essentially a 'this' pointer.  

DO NOT REPLY [Bug 5925] - Apache server hangs up and consumes 100% CPU resource when upload file to server

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5925

Apache server hangs up and consumes 100% CPU resource when upload file to server

[EMAIL PROTECTED] changed:

   What|Removed |Added

 CC||[EMAIL PROTECTED]

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_env.c jk_worker_jni.c

2002-02-06 Thread costin

costin  02/02/06 11:20:42

  Modified:jk/native2/common jk_env.c jk_worker_jni.c
  Log:
  Updates/fixes.
  
  Revision  ChangesPath
  1.9   +19 -8 jakarta-tomcat-connectors/jk/native2/common/jk_env.c
  
  Index: jk_env.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_env.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- jk_env.c  31 Dec 2001 22:25:03 -  1.8
  +++ jk_env.c  6 Feb 2002 19:20:41 -   1.9
  @@ -56,9 +56,9 @@
* = */

   #include "jk_env.h"
  +#include "jk_objCache.h"
   
  -/* Singleton for now */
  -jk_env_t *jk_env_singleton;
  +jk_env_t *jk_env_globalEnv;
   
   /* Private methods 
   */
  @@ -69,16 +69,26 @@
   */
   
   jk_env_t* JK_METHOD jk_env_getEnv( char *id, jk_pool_t *pool ) {
  -  if( jk_env_singleton == NULL ) {
  -  jk_env_singleton=(jk_env_t *)pool->calloc( NULL, pool, sizeof( jk_env_t ));
  -  jk_env_singleton->globalPool = pool;
  -  jk_env_initEnv( (jk_env_t *)jk_env_singleton, id );
  +  if( jk_env_globalEnv == NULL ) {
  +  jk_env_globalEnv=(jk_env_t *)pool->calloc( NULL, pool, sizeof( jk_env_t ));
  +  jk_env_globalEnv->globalPool = pool;
  +  jk_env_initEnv( (jk_env_t *)jk_env_globalEnv, id );
 }
  -  return jk_env_singleton;
  +  return jk_env_globalEnv;
   }
   
   /*  Implementation  */
   
  +static jk_env_t * JK_METHOD jk_env_get( jk_env_t *env )
  +{
  +return NULL;
  +}
  +
  +static int JK_METHOD jk_env_put( jk_env_t *parent, jk_env_t *chld )
  +{
  +
  +return JK_TRUE;
  +}
   
   static jk_env_objectFactory_t JK_METHOD jk_env_getFactory(jk_env_t *env, 
 const char *type,
  @@ -107,7 +117,8 @@
 return result;
   }
   
  -static void *jk_env_getInstance( jk_env_t *_this, jk_pool_t *pool, const char 
*type, const char *name )
  +static void *jk_env_getInstance( jk_env_t *_this, jk_pool_t *pool,
  + const char *type, const char *name )
   {
   jk_env_objectFactory_t fac;
   void *result;
  
  
  
  1.2   +2 -1  jakarta-tomcat-connectors/jk/native2/common/jk_worker_jni.c
  
  Index: jk_worker_jni.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_jni.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- jk_worker_jni.c   26 Jan 2002 06:48:17 -  1.1
  +++ jk_worker_jni.c   6 Feb 2002 19:20:41 -   1.2
  @@ -198,7 +198,8 @@
   
   if( jniWorker->jk_java_bridge_class == NULL ) {
   env->l->jkLog(env, env->l, JK_LOG_EMERG,
  -  "Can't find class %s\n", str_config);
  +  "Can't find class %s in %s\n", str_config,
  +  jniWorker->vm->tomcat_classpath );
   /* [V] the detach here may segfault on 1.1 JVM... */
   jniWorker->vm->detach(env,  jniWorker->vm);
   return JK_FALSE;
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk.c

2002-02-06 Thread costin

costin  02/02/06 11:20:59

  Modified:jk/native2/server/apache2 mod_jk.c
  Log:
  Updates.
  
  Revision  ChangesPath
  1.19  +11 -12jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c
  
  Index: mod_jk.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- mod_jk.c  26 Jan 2002 07:13:47 -  1.18
  +++ mod_jk.c  6 Feb 2002 19:20:59 -   1.19
  @@ -59,7 +59,7 @@
* Description: Apache 2 plugin for Jakarta/Tomcat *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
* Henri Gomez <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.18 $   *
  + * Version: $Revision: 1.19 $   *
***/
   
   /*
  @@ -158,9 +158,9 @@
   uriEnv->webapp=workerEnv->createWebapp( workerEnv->globalEnv, workerEnv,
   NULL, cmd->path, NULL );
   
  -fprintf(stderr, "New webapp %p %p\n",uriEnv, uriEnv->webapp);
  +/* fprintf(stderr, "New webapp %p %p\n",uriEnv, uriEnv->webapp); */
   } else {
  -fprintf(stderr, "Existing webapp %p\n",uriEnv->webapp);
  +/* fprintf(stderr, "Existing webapp %p\n",uriEnv->webapp); */
   }
   
   if( strcmp( name, "worker") == 0 ) {
  @@ -173,8 +173,8 @@
ap_pstrdup(cmd->pool, val));
   }
   
  -fprintf(stderr, "XXX Set worker %p %s %s dir=%s args=%s\n",
  -uriEnv, uriEnv->webapp->workerName, cmd->path,
  +fprintf(stderr, "JkWebapp  %s %s dir=%s args=%s\n",
  +uriEnv->webapp->workerName, cmd->path,
   cmd->directive->directive,
   cmd->directive->args);
   
  @@ -205,7 +205,7 @@
ap_pstrdup(cmd->pool, val));
   }
   
  -fprintf(stderr, "XXX SetServlet %p %p %s %s dir=%s args=%s\n",
  +fprintf(stderr, "JkServlet %p %p %s %s dir=%s args=%s\n",
   uriEnv, uriEnv->webapp, name, val,
   cmd->directive->directive,
   cmd->directive->args);
  @@ -293,7 +293,7 @@
   /* Generic JkSet foo bar */
   m->add(env, m, ap_pstrdup( cmd->pool, name),
  ap_pstrdup( cmd->pool, value));
  -fprintf( stderr, "set2.init_data: %s %s\n", name, value );
  +/* fprintf( stderr, "set2.init_data: %s %s\n", name, value ); */
   } else if( strcmp(type, "env")==0) {
   workerEnv->envvars_in_use = JK_TRUE;
   workerEnv->envvars->put(env, workerEnv->envvars,
  @@ -447,10 +447,10 @@
   
   
   /* XXX */
  -fprintf(stderr, "XXX Merged dir config %p %p %s %s %p %p\n",
  -base, new,
  -base->uri, add->uri,
  -base->webapp, add->webapp);
  +/* fprintf(stderr, "XXX Merged dir config %p %p %s %s %p %p\n", */
  +/* base, new, */
  +/* base->uri, add->uri, */
  +/* base->webapp, add->webapp); */
   
   if( add->webapp == NULL ) {
   add->webapp=base->webapp;
  @@ -501,7 +501,6 @@
   
   /* Local initialization */
   workerEnv->_private = s;
  -fprintf( stderr, "Create worker env %p\n", workerEnv );
   }
   
   /** Create default jk_config. XXX This is mostly server-independent,
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread Bill Barker

Actually, Larry is right.  However, what is being asked for is rather silly.
Personally, I'd go for INVALID since section 8.1 (of the 2.3 spec) only
talks about paths, not URIs.
- Original Message -
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, February 06, 2002 6:59 AM
Subject: DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with
anchors


> DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
> RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
> .
> ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
> INSERTED IN THE BUG DATABASE.
>
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6267
>
> RequestDispatcher breaks on URLs with anchors
>
> [EMAIL PROTECTED] changed:
>
>What|Removed |Added
> --
--
>  Status|RESOLVED|REOPENED
>  Resolution|DUPLICATE   |
>
>
>
> --- Additional Comments From [EMAIL PROTECTED]  2002-02-06
14:59 ---
> Tried the War file with Tomcat 4.0.2-b2 and it still shows the problem.  I
think
> the fix for 6115 only applied to encodeURL() which this webapp isn't
using.
> (Tomcat 3.3 needs fixing too.)
>
> --
> To unsubscribe, e-mail:

> For additional commands, e-mail:

>


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkMain.java

2002-02-06 Thread costin

costin  02/02/06 12:24:09

  Modified:jk/java/org/apache/jk/server JkMain.java
  Log:
  Added the start time and a message to tune the initialization of jk
  
  Revision  ChangesPath
  1.9   +8 -0  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java
  
  Index: JkMain.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JkMain.java   6 Feb 2002 18:22:45 -   1.8
  +++ JkMain.java   6 Feb 2002 20:24:09 -   1.9
  @@ -190,6 +190,8 @@
   }
   
   wEnv.start();
  +long initTime=System.currentTimeMillis() - start_time;
  +d("Jk running... init time=" + initTime + ms);
   }
   
   //  Usefull methods 
  @@ -217,7 +219,13 @@
   IntrospectionUtils.setProperty( target, name, val );
   }
   
  +public long getStartTime() {
  +return start_time;
  +}
  +
   //  Main 
  +
  +static long start_time=System.currentTimeMillis();
   
   public static void main(String args[]) {
   try {
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkMain.java

2002-02-06 Thread costin

costin  02/02/06 12:24:45

  Modified:jk/java/org/apache/jk/server JkMain.java
  Log:
  Forgot to save.
  
  Revision  ChangesPath
  1.10  +1 -1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java
  
  Index: JkMain.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- JkMain.java   6 Feb 2002 20:24:09 -   1.9
  +++ JkMain.java   6 Feb 2002 20:24:45 -   1.10
  @@ -191,7 +191,7 @@
   
   wEnv.start();
   long initTime=System.currentTimeMillis() - start_time;
  -d("Jk running... init time=" + initTime + ms);
  +d("Jk running... init time=" + initTime + " ms");
   }
   
   //  Usefull methods 
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkMain.java

2002-02-06 Thread costin

costin  02/02/06 12:33:54

  Modified:jk/java/org/apache/jk/common ChannelSocket.java
   jk/java/org/apache/jk/server JkMain.java
  Log:
  Set the default port, improve the arg parsing for JkMain ( used for debugging
   and tunning mostly, but since a lot of time is spent on that it should be nice )
  
  Revision  ChangesPath
  1.5   +1 -1  
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java
  
  Index: ChannelSocket.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ChannelSocket.java6 Feb 2002 17:43:08 -   1.4
  +++ ChannelSocket.java6 Feb 2002 20:33:54 -   1.5
  @@ -96,7 +96,7 @@
*/
   public class ChannelSocket extends Channel {
   
  -int port;
  +int port=8009;
   InetAddress inet;
   int serverTimeout;
   boolean tcpNoDelay;
  
  
  
  1.11  +12 -6 
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java
  
  Index: JkMain.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkMain.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JkMain.java   6 Feb 2002 20:24:45 -   1.10
  +++ JkMain.java   6 Feb 2002 20:33:54 -   1.11
  @@ -130,6 +130,10 @@
   wEnv.setJkHome(s);
   }
   
  +public void setDebug( int i ) {
  +dL=i;
  +d("set debug " + i );
  +}
   
   //  Initialization 
   
  @@ -173,9 +177,10 @@
   String workers=props.getProperty( "handler.list",
 "channel,request,container" );
   Vector workerNamesV= split( workers, ",");
  -
  +if( dL > 0 ) d("workers: " + workers + " " + workerNamesV.size() );
   for( int i=0; i 0 ) d("Configuring " + name );
   JkHandler w=wEnv.getHandler( name );
   if( w==null )
   w=(JkHandler)newInstance( "handler", name, null );
  @@ -232,8 +237,9 @@
   if( args.length == 1 &&
   ( "-?".equals(args[0]) || "-h".equals( args[0])) ) {
   System.out.println("Usage: ");
  -System.out.println("  JkMain [workers.properties]");
  +System.out.println("  JkMain [args]");
   System.out.println();
  +System.out.println("  Each bean setter corresponds to an arg ( like 
-debug 10 )");
   System.out.println("  System properties:");
   System.out.println("jk2.homeBase dir of jk2");
   return;
  @@ -241,11 +247,11 @@
   
   JkMain jkMain=new JkMain();
   
  +IntrospectionUtils.processArgs( jkMain, args, new String[] {},
  +null, new Hashtable());
  +
   jkMain.guessHome();
   
  -if( args.length > 0  ) 
  -jkMain.setPropertiesFile(args[0]);
  -
   jkMain.init();
   jkMain.start();
   } catch( Exception ex ) {
  @@ -312,7 +318,7 @@
   }
   }
   
  -private static final int dL=0;
  +private static int dL=0;
   private static void d(String s ) {
   System.err.println( "JkMain: " + s );
   }
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6286] New: - Spaces should be allowed in Servlet Context paths

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6286

Spaces should be allowed in Servlet Context paths

   Summary: Spaces should be allowed in Servlet Context paths
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: All
OS/Version: All
Status: NEW
  Severity: Major
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


Tomcat 4.0.1 does not allow spaces in Servlet Context paths, but it should.

For example, if I have a context named "Spaces 2" and I try to access this
context using a properly escapted URL like "http://localhost:8080/Spaces%202";
Tomcat will give me a resource not found error. 

Spaces should also be allowed in directory names under the Servlet Context.

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans MBeanFactory.java

2002-02-06 Thread amyroh

amyroh  02/02/06 14:03:54

  Modified:catalina/src/share/org/apache/catalina/mbeans
MBeanFactory.java
  Log:
  Hard code to look for object names in Registry instead of full mbean names.
  
  Revision  ChangesPath
  1.5   +85 -35
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java
  
  Index: MBeanFactory.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MBeanFactory.java 29 Jan 2002 23:10:49 -  1.4
  +++ MBeanFactory.java 6 Feb 2002 22:03:54 -   1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v
 1.4 2002/01/29 23:10:49 amyroh Exp $
  - * $Revision: 1.4 $
  - * $Date: 2002/01/29 23:10:49 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanFactory.java,v
 1.5 2002/02/06 22:03:54 amyroh Exp $
  + * $Revision: 1.5 $
  + * $Date: 2002/02/06 22:03:54 $
*
* 
*
  @@ -102,7 +102,7 @@
* org.apache.catalina.core.StandardServer component.
*
* @author Amy Roh
  - * @version $Revision: 1.4 $ $Date: 2002/01/29 23:10:49 $
  + * @version $Revision: 1.5 $ $Date: 2002/02/06 22:03:54 $
*/
   
   public class MBeanFactory extends BaseModelMBean {
  @@ -145,6 +145,25 @@
   
   // - Operations
   
  +/**
  + * Return the managed bean definition for the specified bean type
  + *
  + * @param type MBean type
  + */
  +public String findObjectName(String type) {
  +
  +if (type.equals("org.apache.catalina.core.StandardContext")) {
  +return "StandardContext";
  +} else if (type.equals("org.apache.catalina.core.StandardDefaultContext")) {
  +return "DefaultContext";
  +} else if (type.equals("org.apache.catalina.core.StandardEngine")) {
  +return "StandardEngine";
  +} else if (type.equals("org.apache.catalina.core.StandardHost")) {
  +return "StandardHost";
  +} else return null;
  +
  +}
  +
   
   /**
* Create a new AccessLoggerValve.
  @@ -156,13 +175,15 @@
   public String createAccessLoggerValve(String parent)
   throws Exception {
   
  -ManagedBean managed = registry.findManagedBean(parent);
  +ObjectName pname = new ObjectName(parent);
  +String type = pname.getKeyProperty("type");
  +String tname = findObjectName(type);
  +ManagedBean managed = registry.findManagedBean(tname);
   String domain = null;
   if (managed != null)
   domain = managed.getDomain();
   if (domain == null)
   domain = mserver.getDefaultDomain();
  -ObjectName pname = new ObjectName(parent);
   Object obj = mserver.getAttribute(pname, "managedResource");
   Container container = null;
   if (obj instanceof Container) {
  @@ -189,7 +210,8 @@
   public String createDefaultContext(String parent)
   throws Exception {
   
  -ManagedBean managed = registry.findManagedBean(parent);
  +String tname = "StandardHost";
  +ManagedBean managed = registry.findManagedBean(tname);
   String domain = null;
   if (managed != null)
   domain = managed.getDomain();
  @@ -222,13 +244,15 @@
   public String createFileLogger(String parent)
   throws Exception {
   
  -ManagedBean managed = registry.findManagedBean(parent);
  +ObjectName pname = new ObjectName(parent);
  +String type = pname.getKeyProperty("type");
  +String tname = findObjectName(type);
  +ManagedBean managed = registry.findManagedBean(tname);
   String domain = null;
   if (managed != null)
   domain = managed.getDomain();
   if (domain == null)
   domain = mserver.getDefaultDomain();
  -ObjectName pname = new ObjectName(parent);
   Object obj = mserver.getAttribute(pname, "managedResource");
   Container container = null;
   if (obj instanceof Container) {
  @@ -257,7 +281,8 @@
   public String createHttp10Connector(String parent, String address, int port)
   throws Exception {
   
  -ManagedBean managed = registry.findManagedBean(parent);
  +String tname = "StandardService";
  +ManagedBean managed = registry.findManagedBean(tname);
   String domain = null;
   if (managed != null)
   domain = managed.getDomain();
  @@ -295,7 +320,8 @@
   public String createHttp11Connector(String parent, String addre

Is there a Design Doc

2002-02-06 Thread Rajesh T

Hi,

Is there any design doc/rose model for tomcat. In case there is one can I have 
a link to that doc. Sorry I am new to Tomacat.

regards
Rajesh T

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




[PATCH] Fixes problem with Warp connector and HTTP POST via SSL.

2002-02-06 Thread Glen Nakamura

Aloha,

The following patch fixes a problem with SSL client ceritificates and
HTTP POST data when using the Warp connector.  When Tomcat retrieves
the SSL certificate, the getX509Certificates() method is called and
this.packet is reset...  Now, when the read() method is called to retrieve
the POST data, the packet type is invalid and an exception is thrown
preventing the parameters from showing up in the request.  The quick fix
was to make the packet variable in getX509Certificates() local, but
maybe there should be another WarpPacket class variable that could be
reused instead of constructing a new WarpPacket on every invocation?
I'll leave that decision to people who are more familiar with the code.

- Glen Nakamura


--- webapp-module-1.0.1-tc401/java/WarpRequest.java Wed Oct 31 13:21:33 2001
+++ ../webapp-module-1.0.1-tc401/java/WarpRequest.java  Fri Feb  1 14:46:53 2002
@@ -201,8 +201,9 @@
 public String getX509Certificates()
 throws IOException {
 if (closed) throw new IOException("Stream closed");
-this.packet.reset();
-this.packet.setType(Constants.TYPE_ASK_SSL_CLIENT);
+WarpPacket packet = new WarpPacket();
+packet.reset();
+packet.setType(Constants.TYPE_ASK_SSL_CLIENT);
 this.request.getConnection().send(packet);
 packet.reset();
 
@@ -211,7 +212,7 @@
 if (packet.getType()==Constants.TYPE_REP_SSL_NO) return(null);
 if (packet.getType()!=Constants.TYPE_REP_SSL_CERT)
throw new IOException("Invalid WARP packet type for CC");
-return(this.packet.readString());
+return(packet.readString());
 }
 
 /** Read the data from the SSL environment. */
@@ -219,8 +220,9 @@
 throws IOException {
   
 if (closed) throw new IOException("Stream closed");
-this.packet.reset();
-this.packet.setType(Constants.TYPE_ASK_SSL);
+WarpPacket packet = new WarpPacket();
+packet.reset();
+packet.setType(Constants.TYPE_ASK_SSL);
 this.request.getConnection().send(packet);
 packet.reset();
 
@@ -230,9 +232,9 @@
 if (packet.getType()!=Constants.TYPE_REP_SSL)
throw new IOException("Invalid WARP packet type for SSL data");
 WarpSSLData ssldata  = new WarpSSLData();
-ssldata.ciph = this.packet.readString();
-ssldata.sess = this.packet.readString();
-ssldata.size = this.packet.readInteger();
+ssldata.ciph = packet.readString();
+ssldata.sess = packet.readString();
+ssldata.size = packet.readInteger();
 return(ssldata);
 }
 

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




problem with manager web app

2002-02-06 Thread Mark Gordon


I have a simple set up where I am using tomcat 4.0.1 and apache with 
mod_webapp.

I have a couple of webapps and I am trying to use the manage web app to 
start/stop install/remove them.

Everything works great if I am just using tomcat  (for both http and 
servlet/jsp)

When I use mod_webapp (apache & tomcat) I can do everything but install 
the webapp.   I can start/stop/remove.  Install looks like it works and 
when I list the web apps it is installed. but when I try to access the 
webapp I get the following error in my log file:

Thanks,

mark

2002-01-31 18:14:59 WarpEngine[Apache]: Mapping request
2002-01-31 18:14:59 [org.apache.catalina.connector.warp.WarpRequestHandler]
java.lang.NullPointerException
 at 
org.apache.catalina.connector.warp.WarpEngine.map(WarpEngine.java)
 at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java)
 at 
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java)
 at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java)
 at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java)
 at 
org.apache.catalina.connector.warp.WarpRequestHandler.handle(WarpRequestHandler.java)
 at 
org.apache.catalina.connector.warp.WarpConnection.run(WarpConnection.java)
 at java.lang.Thread.run(Thread.java:484)



Host section of my server.xml

   
   

 

 
 

 

 

 

 

 


 

   



httpd.conf webapp secion


 ServerName mark
 DocumentRoot /home/mcgordon/pws/webroot
 WebAppConnection conn warp localhost:8008
#WebAppDeploy   struts-example  conn/struts-example
 WebAppDeployGallery conn/Gallery
 WebAppDeployregistrationconn/registration
 WebAppDeploymanager conn/manager







--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: Is there a Design Doc

2002-02-06 Thread Janek Bogucki

 --- Rajesh T <[EMAIL PROTECTED]> wrote: > Hi,
> 
>   Is there any design doc/rose model for tomcat. In case there is one can I have 
>a link to that
> doc. Sorry I am new to Tomacat.
> 
> regards
> Rajesh T
> 

There are some *old* documents and diagrams here

   http://cvs.apache.org/viewcvs/jakarta-tomcat-4.0/catalina/docs/dev/

-Janek

__
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4 Ajp13Connector.java Ajp13Processor.java

2002-02-06 Thread costin

costin  02/02/06 16:44:40

  Modified:jk/java/org/apache/ajp/tomcat4 Ajp13Connector.java
Ajp13Processor.java
  Log:
  Added the 'secret' attribute to Ajp13Connector. If not set, nothing changes
  in the request processing.
  
  If set - tomcat will require a password on incoming connections ( i.e. a secret
  to be set in the ajp worker ).
  
  This is of course a new/experimental feature, not documented, etc - use
  on your own risk ( I'm still testing it )
  
  ( I'll check in the 3.3 version later, I hope it'll make it in 3.3.1 )
  
  Revision  ChangesPath
  1.12  +13 -4 
jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java
  
  Index: Ajp13Connector.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- Ajp13Connector.java   10 Jan 2002 02:53:40 -  1.11
  +++ Ajp13Connector.java   7 Feb 2002 00:44:40 -   1.12
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java,v
 1.11 2002/01/10 02:53:40 seguin Exp $
  - * $Revision: 1.11 $
  - * $Date: 2002/01/10 02:53:40 $
  + * $Header: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java,v
 1.12 2002/02/07 00:44:40 costin Exp $
  + * $Revision: 1.12 $
  + * $Date: 2002/02/07 00:44:40 $
*
* 
*
  @@ -93,7 +93,7 @@
* Implementation of an Ajp13 connector.
*
* @author Kevin Seguin
  - * @version $Revision: 1.11 $ $Date: 2002/01/10 02:53:40 $
  + * @version $Revision: 1.12 $ $Date: 2002/02/07 00:44:40 $
*/
   
   
  @@ -271,6 +271,7 @@
*/
   private Service service = null;
   
  +private String secret = null;
   
   // - Properties
   
  @@ -296,6 +297,14 @@
   
   }
   
  +public void setSecret( String s ) {
  +secret=s;
  +}
  +
  +public String getSecret() {
  +return secret;
  +}
  +
   
   /**
* Return the accept count for this Connector.
  
  
  
  1.7   +23 -4 
jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Processor.java
  
  Index: Ajp13Processor.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Processor.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Ajp13Processor.java   10 Jan 2002 03:03:59 -  1.6
  +++ Ajp13Processor.java   7 Feb 2002 00:44:40 -   1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Processor.java,v
 1.6 2002/01/10 03:03:59 seguin Exp $
  - * $Revision: 1.6 $
  - * $Date: 2002/01/10 03:03:59 $
  + * $Header: 
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4/Ajp13Processor.java,v
 1.7 2002/02/07 00:44:40 costin Exp $
  + * $Revision: 1.7 $
  + * $Date: 2002/02/07 00:44:40 $
*
* 
*
  @@ -102,7 +102,7 @@
   
   /**
* @author Kevin Seguin
  - * @version $Revision: 1.6 $ $Date: 2002/01/10 03:03:59 $
  + * @version $Revision: 1.7 $ $Date: 2002/02/07 00:44:40 $
*/
   
   final class Ajp13Processor
  @@ -360,6 +360,10 @@
   }
   
   boolean moreRequests = true;
  +String expectedSecret=connector.getSecret();
  +
  +boolean needAuth= ( expectedSecret != null );
  +
   while (moreRequests && !stopped.value()) {
   
   int status = 0;
  @@ -369,6 +373,21 @@
   logger.log("process: ajp13.receiveNextRequest", e);
   }
   
  +if( needAuth ) {
  +String connSecret=ajp13.getSecret();
  +if( connSecret == null ) {
  +logger.log( "Connection without password, " +
  +"tomcat is configured to require one" );
  +break;
  +}
  +if( ! connSecret.equals(expectedSecret) ) {
  +logger.log( "Connection with wrong password" );
  +break;
  +}
  +
  +needAuth=false;
  +}
  +
   if (stopped.value()) {
   if (debug > 0) {
   logger.log("process:  received request, but we're stopped");
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




RE: cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4 Ajp13Connector.java Ajp13Processor.java

2002-02-06 Thread Larry Isaacs

Any idea how soon?
 
Larry
 
-Original Message- 
From: [EMAIL PROTECTED]   [mailto:[EMAIL PROTECTED]] 
Sent: Wed 2/6/2002 7:44 PM 
To: [EMAIL PROTECTED] 
  
Cc: 
Subject: cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4 
Ajp13Connector.java Ajp13Processor.java

costin  02/02/06 16:44:40 
  Modified:jk/java/org/apache/ajp/tomcat4 Ajp13Connector.java 
Ajp13Processor.java 
  Log: 
  Added the 'secret' attribute to Ajp13Connector. If not set, nothing changes 
  in the request processing. 
  
  If set - tomcat will require a password on incoming connections ( i.e. a secret 
  to be set in the ajp worker ). 
  
  This is of course a new/experimental feature, not documented, etc - use 
  on your own risk ( I'm still testing it ) 
  
  ( I'll check in the 3.3 version later, I hope it'll make it in 3.3.1 ) 
  



msg21451/bin0.bin
Description: application/ms-tnef

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 


Re: DO NOT REPLY [Bug 6267] - RequestDispatcher breaks on URLs with anchors

2002-02-06 Thread Remy Maucherat

> Actually, Larry is right.  However, what is being asked for is rather
silly.
> Personally, I'd go for INVALID since section 8.1 (of the 2.3 spec) only
> talks about paths, not URIs.

Yes, I missed a key word in the comments ;-)
You're supposed to use a path relative to the servlet context, so I agree
with the resolution you suggest.

Remy


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin ConnectorForm.java

2002-02-06 Thread manveen

manveen 02/02/06 18:20:37

  Modified:webapps/admin/WEB-INF/classes/org/apache/webapp/admin
ConnectorForm.java
  Log:
  Range for accept Count changed to 0,128.
  
  Revision  ChangesPath
  1.4   +5 -5  
jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java
  
  Index: ConnectorForm.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ConnectorForm.java5 Feb 2002 03:23:46 -   1.3
  +++ ConnectorForm.java7 Feb 2002 02:20:37 -   1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java,v
 1.3 2002/02/05 03:23:46 manveen Exp $
  - * $Revision: 1.3 $
  - * $Date: 2002/02/05 03:23:46 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ConnectorForm.java,v
 1.4 2002/02/07 02:20:37 manveen Exp $
  + * $Revision: 1.4 $
  + * $Date: 2002/02/07 02:20:37 $
*
* 
*
  @@ -74,7 +74,7 @@
* Form bean for the connector page.
*
* @author Manveen Kaur
  - * @version $Revision: 1.3 $ $Date: 2002/02/05 03:23:46 $
  + * @version $Revision: 1.4 $ $Date: 2002/02/07 02:20:37 $
*/
   
   public final class ConnectorForm extends ActionForm {
  @@ -544,7 +544,7 @@
   if (submit != null) {
   
   /* general */
  -numberCheck("acceptCountText", acceptCountText, true, 1, 128);
  +numberCheck("acceptCountText", acceptCountText, true, 0, 128);
   numberCheck("connTimeOutText", connTimeOutText, true, 0, 6);
   numberCheck("bufferSizeText", bufferSizeText, true, 1, 8192);
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin ApplicationResources_en.properties ApplicationResources_es.properties

2002-02-06 Thread manveen

manveen 02/02/06 18:22:58

  Modified:webapps/admin/WEB-INF/classes/org/apache/webapp/admin
ApplicationResources_en.properties
ApplicationResources_es.properties
  Log:
  Updated error message for accept count for connector screen.
  Added properties for Realm screens.
  
  Revision  ChangesPath
  1.20  +13 -1 
jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_en.properties
  
  Index: ApplicationResources_en.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_en.properties,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- ApplicationResources_en.properties4 Feb 2002 17:59:19 -   1.19
  +++ ApplicationResources_en.properties7 Feb 2002 02:22:58 -   1.20
  @@ -33,7 +33,7 @@
   error.engineName.required=Engine name is required
   error.acceptCountText.required=Accept count required
   error.acceptCountText.format=Accept count not a valid integer!
  -error.acceptCountText.range=Accept count seems out of range. Valid range is 
1-218. 
  +error.acceptCountText.range=Accept count seems out of range. Valid range is 
0-128. 
   error.connTimeOutText.required=Connection time out required
   error.connTimeOutText.format=Connection time out not a valid integer!
   error.connTimeOutText.range=Connection time out seems out of range. Valid range 
is 0-6. 
  @@ -167,3 +167,15 @@
   actions.delete=Delete
   error.defaultHost.required=Default Hostname required
   error.serviceName.required=Service el nombre required
  +actions.thisrealm.delete=Delete this User Realm
  +realm.driver=Database Driver
  +realm.passwd=Database Password
  +realm.url=Database URL
  +realm.userName=Database User Name
  +realm.digest=Digest Algorithm
  +realm.passwordCol=Password Column
  +realm.roleNameCol=Role Name Column
  +realm.userRoleTable=User Role Table
  +realm.userTable=User Table
  +realm.resource=Resource Name
  +error.resource.required=Resource Name is required
  
  
  
  1.21  +15 -3 
jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties
  
  Index: ApplicationResources_es.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- ApplicationResources_es.properties4 Feb 2002 17:59:19 -   1.20
  +++ ApplicationResources_es.properties7 Feb 2002 02:22:58 -   1.21
  @@ -33,7 +33,7 @@
   error.engineName.required=Se requiere el nombre del motor 
   error.acceptCountText.required=Valide la cuenta requerida
   error.acceptCountText.format=Valide la cuenta no un numero entero valido!
  -error.acceptCountText.range=Valide la cuenta se parece fuera de rango. El rango 
válido es 1-218. 
  +error.acceptCountText.range=Valide la cuenta se parece fuera de rango. El rango 
valido es 0-128. 
   error.connTimeOutText.required=Tiempo de conexion fuera de requerido
   error.connTimeOutText.format=Tiempo de conexion fuera no de un numero entero 
valido! 
   error.connTimeOutText.range=El tiempo de conexion hacia fuera se parece fuera 
de rango. El rango válido es 0-6. 
  @@ -165,5 +165,17 @@
   error.get.attributes=Error que extrae caracteristicas de la informacion.
   error.set.attributes=Error que fija caracteristicas de la informacion.
   actions.delete=Delete
  -error.defaultHost.required=Default Hostname required
  -error.serviceName.required=Service name required
  +error.defaultHost.required=Default Hostname requerido
  +error.serviceName.required=Service name requerido
  +actions.thisrealm.delete=Suprima Este User Realm
  +realm.driver=Database Driver
  +realm.passwd=Database Password
  +realm.url=Database URL
  +realm.userName=Database User Name
  +realm.digest=Digest Algorithm
  +realm.passwordCol=Password Column
  +realm.roleNameCol=Role Name Column
  +realm.userRoleTable=Vector Del Papel Del Utilizador
  +realm.userTable=Vector De Utilizador
  +realm.resource=Nombre Del Recurso
  +error.resource.required=Se requiere el nombre del recurso
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat/src/native/mod_jk/iis jk_isapi_plugin.c

2002-02-06 Thread larryi

larryi  02/02/06 19:55:37

  Modified:src/native/mod_jk/iis jk_isapi_plugin.c
  Log:
  Update to use the official JK version string
  
  Revision  ChangesPath
  1.13  +2 -2  jakarta-tomcat/src/native/mod_jk/iis/jk_isapi_plugin.c
  
  Index: jk_isapi_plugin.c
  ===
  RCS file: /home/cvs/jakarta-tomcat/src/native/mod_jk/iis/jk_isapi_plugin.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- jk_isapi_plugin.c 13 Jan 2002 01:50:39 -  1.12
  +++ jk_isapi_plugin.c 7 Feb 2002 03:55:37 -   1.13
  @@ -57,7 +57,7 @@
* Description: ISAPI plugin for IIS/PWS   *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
* Author:  Ignacio J. Ortega <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.12 $   *
  + * Version: $Revision: 1.13 $   *
***/
   
   // This define is needed to include wincrypt,h, needed to get client certificates
  @@ -76,7 +76,7 @@
   #include "jk_ajp12_worker.h"
   #include "jk_uri_worker_map.h"
   
  -#define VERSION_STRING "Jakarta/ISAPI/1.0b1"
  +#define VERSION_STRING "Jakarta/ISAPI/" JK_VERSTRING
   
   /*
* We use special two headers to pass values from the filter to the 
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat/src/tests/webpages/WEB-INF test-tomcat.xml

2002-02-06 Thread larryi

larryi  02/02/06 20:01:07

  Modified:src/tests/webpages/WEB-INF test-tomcat.xml
  Log:
  Fix tests to pass with forwardAll both "true" and "false" with Apache, IIS
  and Netscape (4.1).
  
  Added a test to ensure "+" is converted to space in query string.
  
  Revision  ChangesPath
  1.51  +39 -32jakarta-tomcat/src/tests/webpages/WEB-INF/test-tomcat.xml
  
  Index: test-tomcat.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat/src/tests/webpages/WEB-INF/test-tomcat.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- test-tomcat.xml   13 Jan 2002 03:01:26 -  1.50
  +++ test-tomcat.xml   7 Feb 2002 04:01:07 -   1.51
  @@ -16,7 +16,7 @@
   early tests.
   -->
   
  -   
  +   



  @@ -186,6 +186,12 @@
 
 
 
  +  
  +  Test '+' in query string is decoded.
  +  
  +  
  +  
  +  
 
   
 
  @@ -1253,12 +1259,6 @@
 
 
 
  -  
  -  
  -  
  -  
  -  
  
   
  
  @@ -1272,6 +1272,13 @@
  returnCode="${http.protocol} 40" 
 />
   
  +  
  +  
  +  
  +  
  +  
  +
 
  
   
  -   
  +   
  
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
   
 
  + returnCode="${http.protocol} 40" />
  
   
  
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm - New directory

2002-02-06 Thread manveen

manveen 02/02/06 20:51:05

  jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm - New 
directory

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Filters and HttpServletResponse.close();

2002-02-06 Thread Glen Nakamura

Aloha,

When does the HttpServletResponse object get closed if the servlet doGet()
method doesn't call HttpServletResponse.close() explicitly?
For example, suppose a servlet filter creates a HttpServletResponseWrapper
to wrap the initial HttpServletResponse and passes on this new response
object down the doFilter() chain.  The servlet doGet() method eventually
gets called, but doesn't explicitly call close() of the wrapped
response object.  After tomcat returns from the container's invoke() method,
it calls finishResponse() which is supposed to flush and close the response
object, but isn't this the original response object?  What about the
wrapped response object created by the filter?  It appears it never gets
closed and is not flushed properly.  I think this explains why I'm not
getting any output from my filter when doGet() doesn't explicitly call
HttpServletResponse.close().  Did I miss something?

- Glen Nakamura


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/server Ajp13.java

2002-02-06 Thread costin

costin  02/02/06 21:05:54

  Modified:src/share/org/apache/tomcat/modules/server Ajp13.java
  Log:
  Added the password decoding for ajp13.
  
  Revision  ChangesPath
  1.32  +21 -2 
jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java
  
  Index: Ajp13.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- Ajp13.java10 Oct 2001 01:52:44 -  1.31
  +++ Ajp13.java7 Feb 2002 05:05:54 -   1.32
  @@ -146,6 +146,7 @@
   public static final byte SC_A_SSL_CERT  = 7;
   public static final byte SC_A_SSL_CIPHER= 8;
   public static final byte SC_A_SSL_SESSION   = 9;
  +public static final byte SC_A_SECRET   = 12;
   
   // Used for attributes which are not in the list above
   public static final byte SC_A_REQ_ATTRIBUTE = 10; 
  @@ -218,7 +219,8 @@
   int pos;   // Current read position within that buffer
   
   boolean end_of_stream; // true if we've received an empty packet
  -
  +String secret=null;
  +
   // True to ignore HTTP server auth 
   private boolean tomcatAuthentication=true;
   
  @@ -254,6 +256,10 @@
pos = 0;
   }
   
  +public String getSecret() {
  +return secret;
  +}
  +
   /**
* Read a new packet from the web server and decode it.  If it's a
* forwarded request, store its properties in the passed-in Request
  @@ -292,6 +298,10 @@
return decodeRequest(req, hBuf);

case JK_AJP13_SHUTDOWN:
  +if( hBuf.getLen() > 3 ) {
  +// we have a secret 
  +secret=hBuf.getString();
  +}
return -2;
}
return 200; // XXX This is actually an error condition 
  @@ -410,6 +420,12 @@
   }
   break;
   
  +case SC_A_SECRET   :
  +String s=msg.getString();
  +if( s!=null )
  +secret=s;
  +break;
  +
case SC_A_SSL_CIPHER   :
isSSL = true;
req.setAttribute("javax.servlet.request.cipher_suite",
  @@ -428,7 +444,10 @@
   break;
   
default:
  - return 500; // Error
  +// Ignore. Assume a single-string value - we shouldn't
  +// allow anything else.
  +msg.getString();
  +break;
   }
   }
   
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/server Ajp13Interceptor.java

2002-02-06 Thread costin

costin  02/02/06 21:07:36

  Modified:src/share/org/apache/tomcat/modules/server
Ajp13Interceptor.java
  Log:
  Added the logic to check for the password on ajp13 connections.
  
  Also cut&paste the logic to generate the 'ajp13.id' if useSecret is set
  ( with a random generated password and the connection info ). If a
  secret is set, shutdown via ajp13 is enabled automatically.
  
  All normal code is running as before if no secret is set.
  
  Revision  ChangesPath
  1.18  +110 -6
jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13Interceptor.java
  
  Index: Ajp13Interceptor.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13Interceptor.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Ajp13Interceptor.java 4 Oct 2001 20:27:47 -   1.17
  +++ Ajp13Interceptor.java 7 Feb 2002 05:07:36 -   1.18
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13Interceptor.java,v
 1.17 2001/10/04 20:27:47 costin Exp $
  - * $Revision: 1.17 $
  - * $Date: 2001/10/04 20:27:47 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13Interceptor.java,v
 1.18 2002/02/07 05:07:36 costin Exp $
  + * $Revision: 1.18 $
  + * $Date: 2002/02/07 05:07:36 $
*
* 
*
  @@ -70,6 +70,7 @@
   import org.apache.tomcat.util.net.*;
   import org.apache.tomcat.util.*;
   import org.apache.tomcat.util.log.*;
  +import org.apache.tomcat.util.io.FileUtil;
   
   /* Frozen, bug fixes only: all active development goes in
jakarta-tomcat-connectors/jk/org/apache/ajp/Ajp14*
  @@ -85,6 +86,8 @@
   private boolean decoded=true;
   
   private int decodedNote;
  +private String secret;
  +private File ajpidFile;
   
   public Ajp13Interceptor()
   {
  @@ -109,6 +112,36 @@
shutDownEnable=b;
   }
   
  +/** Enable the use of a secret. The secret will be
  + *  randomly generated. mod_jk must read the secret to
  + *  communicate with tomcat. 
  + *
  + *  Note that we don't use the secret only for shutdown, but
  + *  for normal request processing. A 'bad' request may forge
  + *  auth, etc.
  + */
  +public void setUseSecret(boolean b ) {
  + secret=Double.toString(Math.random());
  +}
  +
  +/** Set the 'secret'. If this is set, all sensitive operations
  + *   will be disabled unless the request includes a password.
  + *
  + *  This requires a recent version of mod_jk and the
  + *worker.NAME.secret property in workers.properties.
  + */
  +public void setSecret( String s ) {
  +secret=s;
  +shutDownEnable=true;
  +}
  +
  +/** Specify ajpid file used when shutting down tomcat
  + */
  +public void setAjpidFile( String path ) {
  +ajpidFile=( path==null?null:new File(path));
  +}
  +
  +
   public void setDecodedUri( boolean b ) {
decoded=b;
   }
  @@ -125,6 +158,50 @@
  "req.decoded" );
   }
   
  +public void engineState(ContextManager cm, int state )
  + throws TomcatException
  +{
  +
  +if( state==ContextManager.STATE_START ) {
  +// the engine is now started, create the ajp12.id
  +// file that will allow us to stop the server and
  +// know that the server is started ok.
  +Ajp13Interceptor tcpCon=this;
  +int portInt=tcpCon.getPort();
  +InetAddress address=tcpCon.getAddress();
  +File sf=FileUtil.getConfigFile(ajpidFile, new File(cm.getHome()),
  +   "conf/ajp13.id");
  +Properties props=new Properties();
  +
  +if( ajpidFile != null || debug > 0)
  +log( "Using stop file: "+sf);
  +try {
  +//  PrintWriter stopF=new PrintWriter
  +// (new FileWriter(sf));
  +FileOutputStream stopF=new FileOutputStream( sf );
  +props.put( "port", Integer.toString( portInt ));
  +// stopF.println( portInt );
  +if( address==null ) {
  +// stopF.println( "" );
  +} else {
  +//stopF.println( address.getHostAddress() );
  +props.put( "address", address.getHostAddress() );
  +}
  +if( secret !=null ) {
  +//stopF.println( secret );
  +props.put( "secret", secret );
  +} else {
  +// stopF.println();
  +}
  +//

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/startup StopTomcat.java

2002-02-06 Thread costin

costin  02/02/06 21:09:36

  Modified:src/share/org/apache/tomcat/startup StopTomcat.java
  Log:
  Added logic to send the shutdown command using ajp13. That means ajp12
  is no longer needed if the password is enabled on ajp13.
  
  The ajp13.id is cleaner ( i.e. a properties file ) - it can be
  read from mod_jk as well ( but that's for a future version ), to
  eliminate duplicated config.
  
  Revision  ChangesPath
  1.14  +93 -19
jakarta-tomcat/src/share/org/apache/tomcat/startup/StopTomcat.java
  
  Index: StopTomcat.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/startup/StopTomcat.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- StopTomcat.java   16 Oct 2001 21:03:37 -  1.13
  +++ StopTomcat.java   7 Feb 2002 05:09:36 -   1.14
  @@ -86,6 +86,7 @@
   String secretFile=null;
   String args[];
   boolean help=false;
  +boolean isAjp13=false;
   
   public StopTomcat() 
   {
  @@ -154,6 +155,10 @@
   help = true;
   }
   
  +public void setAjp13( boolean b ) {
  +isAjp13=b;
  +}
  +
   public void setArgs( String args[] ) {
this.args=args;
   }
  @@ -187,24 +192,52 @@
// read TOMCAT_HOME/conf/ajp12.id unless command line params
// specify a port/host/secret
try {
  - if( secretFile==null )
  - secretFile=tchome + "/conf/ajp12.id";
  - BufferedReader rd=new BufferedReader
  - ( new FileReader(secretFile));
  - String line=rd.readLine();
  - 
  - if( port < 0 ) {
  - try {
  - port=Integer.parseInt( line );
  - } catch(NumberFormatException ex ) {
  - ex.printStackTrace();
  - }
  - }
  - 
  - line=rd.readLine();
  - if( host==null ) host=line;
  - line=rd.readLine();
  - if( secret==null ) secret=line;
  + if( secretFile==null ) {
  + secretFile=tchome + "/conf/ajp13.id";
  +File f=new File( secretFile );
  +// if ajp13.id exists, use it
  +if( f.exists() ) {
  +isAjp13=true;
  +} else {
  +secretFile=tchome + "/conf/ajp12.id";
  +}
  +}
  +
  + if( isAjp13 ) {
  +Properties props=new Properties();
  +props.load( new FileInputStream( secretFile ));
  +
  +String line=props.getProperty( "port" );
  +if( port < 0 ) {
  +try {
  +port=Integer.parseInt( line );
  +} catch(NumberFormatException ex ) {
  +ex.printStackTrace();
  +}
  +}
  +
  +line=props.getProperty( "address" );
  +if( host==null ) host=line;
  +line=props.getProperty( "secret" );
  +if( secret==null ) secret=line;
  +} else {
  +BufferedReader rd=new BufferedReader
  +( new FileReader(secretFile));
  +String line=rd.readLine();
  +
  +if( port < 0 ) {
  +try {
  +port=Integer.parseInt( line );
  +} catch(NumberFormatException ex ) {
  +ex.printStackTrace();
  +}
  +}
  +
  +line=rd.readLine();
  +if( host==null ) host=line;
  +line=rd.readLine();
  +if( secret==null ) secret=line;
  +}
} catch( IOException ex ) {
//ex.printStackTrace();
System.out.println("Can't read " + secretFile);
  @@ -258,7 +291,10 @@
address = InetAddress.getLocalHost();
Socket socket = new Socket(address, portInt);
OutputStream os=socket.getOutputStream();
  - sendAjp12Stop( os, secret );
  +if( isAjp13 ) 
  +sendAjp13Stop( os, secret );
  +else
  +sendAjp12Stop( os, secret );
   
   // Setting soLinger to 0 will help make sure the connection is
   // closed on NetWare.  If the other side closes the connection
  @@ -299,6 +335,32 @@
   }
   }
   
  +/** Small AJP13 client util
  + */
  +public void sendAjp13Stop( OutputStream os, String secret )
  + throws IOException
  +{
  + byte stopMessage[]=new byte[5];
  + stopMessage[0]=(byte)0x12;
  + stopMessage[1]=(byte)0x34;
  +int len=secret.length() + 4; // 1==shutdown cmd, 2==string len, 1=\0
  +stopMessage[2]= (byte) ( len/

RE: cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/ajp/tomcat4 Ajp13Connector.java Ajp13Processor.java

2002-02-06 Thread costinm

On Wed, 6 Feb 2002, Larry Isaacs wrote:

> Any idea how soon?

Done.

I hope it doesn't delay any plans, the code shouldn't affect any
previous behavior.

Costin



--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




Re: Filters and HttpServletResponse.close();

2002-02-06 Thread Craig R. McClanahan



On Wed, 6 Feb 2002, Glen Nakamura wrote:

> Date: Wed, 6 Feb 2002 18:59:13 -1000
> From: Glen Nakamura <[EMAIL PROTECTED]>
> Reply-To: Tomcat Developers List <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: Filters and HttpServletResponse.close();
>
> Aloha,
>
> When does the HttpServletResponse object get closed if the servlet doGet()
> method doesn't call HttpServletResponse.close() explicitly?
> For example, suppose a servlet filter creates a HttpServletResponseWrapper
> to wrap the initial HttpServletResponse and passes on this new response
> object down the doFilter() chain.  The servlet doGet() method eventually
> gets called, but doesn't explicitly call close() of the wrapped
> response object.  After tomcat returns from the container's invoke() method,
> it calls finishResponse() which is supposed to flush and close the response
> object, but isn't this the original response object?  What about the
> wrapped response object created by the filter?  It appears it never gets
> closed and is not flushed properly.  I think this explains why I'm not
> getting any output from my filter when doGet() doesn't explicitly call
> HttpServletResponse.close().  Did I miss something?
>

As you noted, Tomcat calls finishResponse() after the servlet returns.
However, this is called only on the *original* response that Tomcat
provided to the servlet -- not to any wrappers that your application has
created.

It is your application's responsibility to ensure that anything it has
buffered in a response wrapper is flushed to the "real" response prior to
your filter returning from its doFilter() method.

> - Glen Nakamura
>

Craig McClanahan


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm SetUpUserDBRealmAction.java UserDBRealmAction.java UserDBRealmForm.java

2002-02-06 Thread manveen

manveen 02/02/06 21:06:53

  Modified:webapps/admin/WEB-INF struts-config.xml
   webapps/admin/WEB-INF/classes/org/apache/webapp/admin
ApplicationResources_en.properties
ApplicationResources_es.properties
TomcatTreeBuilder.java
  Added:   webapps/admin userDBRealm.jsp
   webapps/admin/WEB-INF/classes/org/apache/webapp/admin/realm
SetUpUserDBRealmAction.java UserDBRealmAction.java
UserDBRealmForm.java
  Log:
  Realms visible from the tree, (added to TomcatTreeBuilder).
  Added UserDatabase Realm screen and functionality.
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-4.0/webapps/admin/userDBRealm.jsp
  
  Index: userDBRealm.jsp
  ===
  
  <%@ page language="java" %>
  <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
  <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
  <%@ taglib uri="/WEB-INF/controls.tld" prefix="controls" %>
  
  
  
  <%@ include file="header.jsp" %>
  
  
  
  
  
  
  
  
  

  
 
  
  
   

  

 
  

    
   - 
  
 


   

  

  <%@ include file="buttons.jsp" %>

  

   
 
 
  
  
  
  
  

  :
  

  
  
  
  
  :
  
 
   
   
  
  
  
  
  
  :
  
  
  
  
  


  

  
  <%@ include file="buttons.jsp" %>


   
  
  
  
  
  
  1.23  +40 -0 jakarta-tomcat-4.0/webapps/admin/WEB-INF/struts-config.xml
  
  Index: struts-config.xml
  ===
  RCS file: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/struts-config.xml,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- struts-config.xml 4 Feb 2002 17:59:19 -   1.22
  +++ struts-config.xml 7 Feb 2002 05:06:52 -   1.23
  @@ -63,6 +63,14 @@
   
   
  +
  +
  +
  +   
  +
  +
 
   
   
  @@ -142,6 +150,14 @@
   path="/user.jsp"
   redirect="false"/>
   
  +
  +
  +
  +
 
   
   
  @@ -239,6 +255,16 @@
 path="/logger.jsp"
 redirect="true"/>
   
  +
  +
  +
  +  
  +
   
   
   
  +
  +
  +
  
  +
  +
  +
   
   
   
  
  
  
  1.21  +2 -2  
jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_en.properties
  
  Index: ApplicationResources_en.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_en.properties,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- ApplicationResources_en.properties7 Feb 2002 02:22:58 -   1.20
  +++ ApplicationResources_en.properties7 Feb 2002 05:06:53 -   1.21
  @@ -166,7 +166,7 @@
   error.set.attributes=Error setting information properties.
   actions.delete=Delete
   error.defaultHost.required=Default Hostname required
  -error.serviceName.required=Service el nombre required
  +error.serviceName.required=Service Name required
   actions.thisrealm.delete=Delete this User Realm
   realm.driver=Database Driver
   realm.passwd=Database Password
  @@ -178,4 +178,4 @@
   realm.userRoleTable=User Role Table
   realm.userTable=User Table
   realm.resource=Resource Name
  -error.resource.required=Resource Name is required
  +error.resource.required=Resource Name is required.
  
  
  
  1.22  +1 -1  
jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties
  
  Index: ApplicationResources_es.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ApplicationResources_es.properties7 Feb 2002 02:22:58 -   1.21
  +++ ApplicationResources_es.properties7 Feb 2002 05:06:53 -   1.22
  @@ -178,4 +178,4 @@
   realm.userRoleTable=Vector Del Papel Del Utilizador
   realm.userTable=Vector De Utilizado

cvs commit: jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf ByteChunk.java CharChunk.java

2002-02-06 Thread keith

keith   02/02/06 21:37:35

  Modified:util/java/org/apache/tomcat/util/buf ByteChunk.java
CharChunk.java
  Log:
  indexOf should return an index relative to the internal
  starting point of the string rather than the beginning
  of the array.  Ported over from main j-t repository.
  
  Revision  ChangesPath
  1.6   +2 -1  
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/ByteChunk.java
  
  Index: ByteChunk.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/ByteChunk.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ByteChunk.java31 Dec 2001 18:20:04 -  1.5
  +++ ByteChunk.java7 Feb 2002 05:37:35 -   1.6
  @@ -626,7 +626,8 @@
* @param s the string
*/
   public int indexOf(char c, int starting) {
  - return indexOf( buff, start+starting, end, c);
  + int ret = indexOf( buff, start+starting, end, c);
  + return (ret >= start) ? ret - start : -1;
   }
   
   public static int  indexOf( byte bytes[], int off, int end, char qq )
  
  
  
  1.3   +2 -1  
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/CharChunk.java
  
  Index: CharChunk.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/CharChunk.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CharChunk.java29 May 2001 06:22:53 -  1.2
  +++ CharChunk.java7 Feb 2002 05:37:35 -   1.3
  @@ -597,7 +597,8 @@
* @param s the string
*/
   public int indexOf(char c, int starting) {
  - return indexOf( buff, start+starting, end, c );
  + int ret = indexOf( buff, start+starting, end, c );
  + return (ret >= start) ? ret - start : -1;
   }
   
   public static int indexOf( char chars[], int off, int cend, char qq )
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




servlet-path, path-info and Filters

2002-02-06 Thread Russ Trotter

Does anyone here know what the official correct handling of
ServletRequest.getServletPath() and ServletRequest.getPathInfo() should be?
More specifically, if I specify a filter with an url-pattern of "/files/*"
and I make a request to "/context/files/foo.jpg", what should
getServletPath() and getPathInfo() return?

I've observed some differing behavior between Tomcat 4.0.1 and Jetty in this
regard and the spec doesn't explicitly clear up the issue between the two.

Thanks,
russ


--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




DO NOT REPLY [Bug 6299] New: - SSI problem with multiple include statements in one file

2002-02-06 Thread bugzilla

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6299

SSI problem with multiple include statements in one file

   Summary: SSI problem with multiple include statements in one file
   Product: Tomcat 4
   Version: 4.0.1 Final
  Platform: PC
OS/Version: Windows NT/2K
Status: NEW
  Severity: Normal
  Priority: Other
 Component: Catalina
AssignedTo: [EMAIL PROTECTED]
ReportedBy: [EMAIL PROTECTED]


Hi,

I have successfully mapped the ssi servlet to the *.xml file extension. For 
example, the following thing does not work properly:

File Default.xml







File Top.xml





File Bottom.xml
===




In my case only the first include statement is resolved. The other is just 
ignored.

No error message is printed in the logs.

Hope, that it is my fault ;-)

Regards

Holger

--
To unsubscribe, e-mail:   
For additional commands, e-mail: