cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core StandardContext.java

2001-04-15 Thread kief

kief01/04/15 02:27:56

  Modified:catalina/src/share/org/apache/catalina/core
StandardContext.java
  Log:
  Removed code to save sessions on restart or shutdown: this should
  be done in the Manager stop method.
  
  Revision  ChangesPath
  1.52  +4 -20 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- StandardContext.java  2001/04/09 06:52:10 1.51
  +++ StandardContext.java  2001/04/15 09:27:56 1.52
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
 1.51 2001/04/09 06:52:10 remm Exp $
  - * $Revision: 1.51 $
  - * $Date: 2001/04/09 06:52:10 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
 1.52 2001/04/15 09:27:56 kief Exp $
  + * $Revision: 1.52 $
  + * $Date: 2001/04/15 09:27:56 $
*
* 
*
  @@ -141,7 +141,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.51 $ $Date: 2001/04/09 06:52:10 $
  + * @version $Revision: 1.52 $ $Date: 2001/04/15 09:27:56 $
*/
   
   public class StandardContext
  @@ -2281,13 +2281,6 @@
   ContextBindings.unbindThread(this, this);
   }
   
  -// Unload sessions to persistent storage, if supported
  -try {
  -getManager().unload();
  -} catch (Throwable t) {
  -log(sm.getString("standardContext.managerUnload"), t);
  -}
  -
   // Shut down filters and application event listeners
   filterStop();
   listenerStop();
  @@ -3313,15 +3306,6 @@
   
   // Mark this application as unavailable while we shut down
   setAvailable(false);
  -
  -// Unload sessions to persistent storage, if supported
  -try {
  -if (debug = 1)
  -log("Saving persisted sessions");
  -getManager().unload();
  -} catch (Throwable t) {
  -log(sm.getString("standardContext.managerUnload"), t);
  -}
   
   // Stop our filters and application listeners
   filterStop();
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session PersistentManagerBase.java PersistentManager.java

2001-04-15 Thread kief

kief01/04/15 02:33:27

  Modified:catalina/src/share/org/apache/catalina/session
PersistentManager.java
  Added:   catalina/src/share/org/apache/catalina/session
PersistentManagerBase.java
  Log:
  Refactored PersistentManager, moving basic persistence functionality,
  as well as Lifecycle and background maintenance threat, into
  PersistentManagerBase. This base class can also be used for
  StandardManager's session reloading feature, once it has been tested
  thoroughly.
  
  These classes will undoubtedly go through some significant revisions,
  especially once we start working on DistributedManager.
  
  Revision  ChangesPath
  1.7   +110 -620  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/PersistentManager.java
  
  Index: PersistentManager.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/PersistentManager.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- PersistentManager.java2001/04/12 20:24:36 1.6
  +++ PersistentManager.java2001/04/15 09:33:27 1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/PersistentManager.java,v
 1.6 2001/04/12 20:24:36 kief Exp $
  - * $Revision: 1.6 $
  - * $Date: 2001/04/12 20:24:36 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/PersistentManager.java,v
 1.7 2001/04/15 09:33:27 kief Exp $
  + * $Revision: 1.7 $
  + * $Date: 2001/04/15 09:33:27 $
*
* 
*
  @@ -106,12 +106,12 @@
* liLimit the number of active sessions kept in memory by
* swapping less active sessions out to disk./li
*
  - * @version $Revision: 1.6 $
  + * @version $Revision: 1.7 $
* @author Kief Morris ([EMAIL PROTECTED])
*/
   
   public final class PersistentManager
  -extends ManagerBase
  +extends PersistentManagerBase
   implements Lifecycle, PropertyChangeListener, Runnable {
   
   
  @@ -119,54 +119,12 @@
   
   
   /**
  - * The interval (in seconds) between checks for expired sessions.
  - */
  -private int checkInterval = 60;
  -
  -
  -/**
* The descriptive information about this implementation.
*/
   private static final String info = "PersistentManager/1.0";
   
   
   /**
  - * The lifecycle event support for this component.
  - */
  -protected LifecycleSupport lifecycle = new LifecycleSupport(this);
  -
  -
  -/**
  - * The maximum number of active Sessions allowed, or -1 for no limit.
  - */
  -private int maxActiveSessions = -1;
  -
  -
  -/**
  - * Has this component been started yet?
  - */
  -private boolean started = false;
  -
  -
  -/**
  - * The background thread.
  - */
  -private Thread thread = null;
  -
  -
  -/**
  - * The background thread completion semaphore.
  - */
  -private boolean threadDone = false;
  -
  -
  -/**
  - * Name to register for the background thread.
  - */
  -private String threadName = "PersistentManager";
  -
  -
  -/**
* Whether to save and reload sessions when the Manager codeunload/code
* and codeload/code methods are called.
*/
  @@ -174,7 +132,7 @@
   
   
   /**
  - * How long a session must be idle before it is backed up.
  + * How long a session must be idle before it should be backed up.
* -1 means sessions won't be backed up.
*/
   private int maxIdleBackup = -1;
  @@ -194,91 +152,11 @@
*/
   private int maxIdleSwap = -1;
   
  -/**
  - * Store object which will manage the Session store.
  - */
  -private Store store = null;
  -
   
   // - Properties
   
   
   /**
  - * Return the check interval (in seconds) for this Manager.
  - */
  -public int getCheckInterval() {
  -
  -return (this.checkInterval);
  -
  -}
  -
  -
  -/**
  - * Set the check interval (in seconds) for this Manager.
  - *
  - * @param checkInterval The new check interval
  - */
  -public void setCheckInterval(int checkInterval) {
  -
  -int oldCheckInterval = this.checkInterval;
  -this.checkInterval = checkInterval;
  -support.firePropertyChange("checkInterval",
  -   new Integer(oldCheckInterval),
  -   new Integer(this.checkInterval));
  -
  -}
  -
  -
  -/**
  - * Set the Container with which this Manager has been associated.  If
  - * it is a Context (the usual case), listen for changes to the session
  - * timeout property.
  - *
  

Re: cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/session SessionIdGenerator.java

2001-04-15 Thread Bojan Smojver

Doug Barnes wrote:

 The answer to these arguments are: use /dev/urandom, not
 /dev/random. It's going to do as good or better than anything
 you're going to seed with /dev/random, and IT WILL NOT BLOCK.
 
 I may be wrong (I'm just starting to poke around in related
 code) but it doesn't look like the time and the session counter
 values you're appending to create the SessionID have any
 subsequent meaning. If you're looking for more entropy, I'd
 ditch the time and use another long's worth of /dev/urandom.

I'm aware of /dev/urandom being non-blocking, but my understanding of
/dev/urandom is that it is not cryptographicaly secure. From the Linux
random manual page (man 4 random):


When read, /dev/urandom device will return as  many  bytes
as are requested.  As a result, if there is not sufficient
entropy in the entropy pool, the returned values are theo
retically  vulnerable  to  a  cryptographic  attack on the
algorithms used by the driver.


Any thoughts on that?

Bojan



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core StandardContext.java LocalStrings.properties

2001-04-15 Thread kief

kief01/04/15 03:45:28

  Modified:catalina/src/share/org/apache/catalina/core
StandardContext.java LocalStrings.properties
  Log:
  Removed code to load sessions on start or restart - this code has
  been moved to the Manager start method.
  
  Revision  ChangesPath
  1.53  +4 -25 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- StandardContext.java  2001/04/15 09:27:56 1.52
  +++ StandardContext.java  2001/04/15 10:45:28 1.53
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
 1.52 2001/04/15 09:27:56 kief Exp $
  - * $Revision: 1.52 $
  - * $Date: 2001/04/15 09:27:56 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
 1.53 2001/04/15 10:45:28 kief Exp $
  + * $Revision: 1.53 $
  + * $Date: 2001/04/15 10:45:28 $
*
* 
*
  @@ -141,7 +141,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.52 $ $Date: 2001/04/15 09:27:56 $
  + * @version $Revision: 1.53 $ $Date: 2001/04/15 10:45:28 $
*/
   
   public class StandardContext
  @@ -2350,15 +2350,6 @@
   }
   }
   
  -// Load sessions from persistent storage, if supported
  -try {
  -if (ok)
  -getManager().load();
  -} catch (Throwable t) {
  -log(sm.getString("standardContext.managerLoad"), t);
  -ok = false;
  -}
  -
   if (isUseNaming()) {
   try {
   ContextBindings.bindThread(this, this);
  @@ -3209,18 +3200,6 @@
   if (debug = 1)
   log("Posting standard context attributes");
   postWelcomeFiles();
  -}
  -
  -// Reload sessions from persistent storage if supported
  -try {
  -if (ok) {
  -if (debug = 1)
  -log("Loading persisted sessions");
  -getManager().load();
  -}
  -} catch (Throwable t) {
  -log(sm.getString("standardContext.managerLoad"), t);
  -ok = false;
   }
   
   // Collect "load on startup" servlets that need to be initialized
  
  
  
  1.30  +368 -186  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/LocalStrings.properties,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- LocalStrings.properties   2001/04/10 01:37:08 1.29
  +++ LocalStrings.properties   2001/04/15 10:45:28 1.30
  @@ -1,186 +1,368 @@
  -applicationContext.attributeEvent=Exception thrown by attributes event listener
  -applicationContext.requestDispatcher.iae=Path {0} does not start with a "/" 
character
  -applicationDispatcher.allocateException=Allocate exception for servlet {0}
  -applicationDispatcher.deallocateException=Deallocate exception for servlet {0}
  -applicationDispatcher.forward.ise=Cannot forward after response has been committed
  -applicationDispatcher.forward.throw=Forwarded resource threw an exception
  -applicationDispatcher.include.throw=Included resource threw an exception
  -applicationDispatcher.isUnavailable=Servlet {0} is currently unavailable
  -applicationDispatcher.serviceException=Servlet.service() for servlet {0} threw 
exception
  -applicationRequest.badParent=Cannot locate parent Request implementation
  -applicationRequest.badRequest=Request is not a javax.servlet.ServletRequestWrapper
  -applicationResponse.badParent=Cannot locate parent Response implementation
  -applicationResponse.badResponse=Response is not a 
javax.servlet.ServletResponseWrapper
  -containerBase.addDefaultMapper=Exception configuring default mapper of class {0}
  -containerBase.alreadyStarted=Container {0} has already been started
  -containerBase.notConfigured=No basic Valve has been configured
  -containerBase.notStarted=Container {0} has not been started
  -filterChain.filter=Filter execution threw an exception
  -filterChain.servlet=Servlet execution threw an exception
  -httpContextMapper.container=This container is not a StandardContext
  -httpEngineMapper.container=This container is not a StandardEngine
  -httpHostMapper.container=This container is not a StandardHost
  

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session StandardManager.java

2001-04-15 Thread kief

kief01/04/15 03:48:55

  Modified:catalina/src/share/org/apache/catalina/session
StandardManager.java
  Log:
  Moved session loading/unloading to the start/stop methods from
  StandardContext. Also commented out the requirement that the
  session serialization file path be absolute.
  
  Revision  ChangesPath
  1.8   +20 -6 
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java
  
  Index: StandardManager.java
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StandardManager.java  2001/04/12 18:18:57 1.7
  +++ StandardManager.java  2001/04/15 10:48:55 1.8
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
 1.7 2001/04/12 18:18:57 kief Exp $
  - * $Revision: 1.7 $
  - * $Date: 2001/04/12 18:18:57 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardManager.java,v
 1.8 2001/04/15 10:48:55 kief Exp $
  + * $Revision: 1.8 $
  + * $Date: 2001/04/15 10:48:55 $
*
* 
*
  @@ -105,7 +105,7 @@
* codestop()/code methods of this class at the correct times.
*
* @author Craig R. McClanahan
  - * @version $Revision: 1.7 $ $Date: 2001/04/12 18:18:57 $
  + * @version $Revision: 1.8 $ $Date: 2001/04/15 10:48:55 $
*/
   
   public class StandardManager
  @@ -583,6 +583,13 @@
   if (debug = 1)
   log("Force random number initialization completed");
   
  +// Load unloaded sessions, if any
  +try {
  +load();
  +} catch (Throwable t) {
  +log(sm.getString("standardManager.managerLoad"), t);
  +}
  +
   // Start the background reaper thread
   threadStart();
   
  @@ -613,6 +620,13 @@
   // Stop the background reaper thread
   threadStop();
   
  +// Write out sessions
  +try {
  +unload();
  +} catch (IOException e) {
  +log(sm.getString("standardManager.managerUnload"), e);
  +}
  +
   // Expire all active sessions
   Session sessions[] = findSessions();
   for (int i = 0; i  sessions.length; i++) {
  @@ -679,8 +693,8 @@
   file = new File(tempdir, pathname);
   }
   }
  -if (!file.isAbsolute())
  -return (null);
  +//if (!file.isAbsolute())
  +//return (null);
   return (file);
   
   }
  
  
  



cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session LocalStrings.properties

2001-04-15 Thread kief

kief01/04/15 03:50:04

  Modified:catalina/src/share/org/apache/catalina/session
LocalStrings.properties
  Log:
  Moved error messages for loading/unloading sessions from core (StandardContext)
  to here (StandardManager).
  
  Revision  ChangesPath
  1.6   +2 -0  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/LocalStrings.properties,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LocalStrings.properties   2001/04/10 13:01:55 1.5
  +++ LocalStrings.properties   2001/04/15 10:50:04 1.6
  @@ -17,6 +17,8 @@
   standardManager.notStarted=Manager has not yet been started
   standardManager.sessionTimeout=Invalid session timeout setting {0}
   standardManager.unloading=Saving persisted sessions to {0}
  +standardManager.managerLoad=Exception loading sessions from persistent storage
  +standardManager.managerUnload=Exception unloading sessions to persistent storage
   standardSession.attributeEvent=Session attribute event listener threw exception
   standardSession.invalidate.ise=invalidate: Session already invalidated
   standardSession.isNew.ise=isNew: Session already invalidated
  
  
  



RE: cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/session SessionIdGenerator.java

2001-04-15 Thread Doug Barnes


 I'm aware of /dev/urandom being non-blocking, but my understanding of
 /dev/urandom is that it is not cryptographicaly secure. 
...
 Any thoughts on that?

[perhaps more thoughts than anyone here cares to hear, but what 
the heck]

You only have so much entropy that's available on a given machine at a
given time. From the same manpage, you can see that if you have access 
to more entropy than /dev/random knows about normally, you can write it 
back to /dev/random (they give an example) but at the end of the day, 
you need to decide -- is it more important that the SessionIDs be safe 
from an opponent with vast computational and/or intercept capabilities, 
or is it more important to not block. My guess is that in the vast 
majority of cases it's more important to not block.

/dev/urandom is going to do as good of a job of stretching the 
available entropy as any other computationally reasonable approach
that you could implement. My summary of the criticism of 
/dev/urandom is that it might not be a hot idea to use it to 
generate a long-lived private/public key pair, but I can't see how
you can do any better if you need a long, reliable stream of
randomness (e.g. a whole bunch of hard-to-predict SessionIDs.)

Here's this from the source code of linux/drivers/char/random.c:

 * When random bytes are desired, they are obtained by taking the SHA
 * hash of the contents of the "entropy pool".  The SHA hash avoids
 * exposing the internal state of the entropy pool.  It is believed to
 * be computationally infeasible to derive any useful information
 * about the input of SHA from its output.  Even if it is possible to
 * analyze SHA in some clever way, as long as the amount of data
 * returned from the generator is less than the inherent entropy in
 * the pool, the output data is totally unpredictable.  For this
 * reason, the routine decreases its internal estimate of how many
 * bits of "true randomness" are contained in the entropy pool as it
 * outputs random numbers.
 * 
 * If this estimate goes to zero, the routine can still generate
 * random numbers; however, an attacker may (at least in theory) be
 * able to infer the future output of the generator from prior
 * outputs.  This requires successful cryptanalysis of SHA, which is
 * not believed to be feasible, but there is a remote possibility.
 * Nonetheless, these numbers should be useful for the vast majority
 * of purposes.

Let's think about how someone might attack a weakness in a SessionID
generator. Assume that the victim computer's version of Linux has a
bug that causes /dev/urandom to be seeded with all zeroes every time
it boots, and that it never adds any entropy. If the opponent guessed
or knew that this was the case, then the opponent could connect to
the webserver, get a SessionID, and would then be able to make very 
good guesses about what other SessionIDs were currently in use. (By
starting from all zeroes, and applying the algorithm until the 
obtained SessionID was reached.)

Assuming that some sort of "entropy" is being added, the next thing
the attacker could do is to come up with a way to either 
predict what is being added as "entropy", or at least guess at it
with substantially more effectiveness than random chance. 

One early version of this many years ago was when Ian Goldberg
and Dave Wagner discovered that an early version of Netscape's
web server was seeding their random number generator with nothing
more than the time and the PID, both of which were sufficiently
easy to guess at that it was quite easy to predict what session
keys would be generated. 

However, unless the attacker has successfully cryptanalyzed SHA
(which would have far greater consequences than the ability to 
predict SessionIDs in Tomact :-) the attacker is going to have 
to successfully model ALL entropy ever added in. After the first
eighty or so bits of "real entropy," it's going to be easier to
just guess random SessionIDs (with some cleverness about 
predicting the time and the session counter, which are both
predictable and inter-related)

Note that the chance of guessing _a_ session (as opposed to a 
particular session) goes up steadily with the total number of
valid sessions. (Let's say, for the sake of example, that you
have a 1/2^80 chance of guessing a particular session; if you
have 2048 valid sessions, it improves to a 1/2^69 chance.) For
this reason, if you're really paranoid, you'll want to increase
the part of the SessionID from /dev/urandom to 128 bits and 
ditch the use of the time (unless it has semantic value down 
the food chain that I'm missing.) This way, as long as you have
more than 128 bits of "real entropy", it's going to be "easier"
for the attacker to make the on average num_sessions/2^127 
guesses needed to find a valid SessionID.

Hope this is helpful!

Cheers,

Doug





RE: mod_webapp, mod_jk etc.

2001-04-15 Thread GOMEZ Henri

mod_jk should be compiled statically in Apache but nobody
asked for that feature previously since mod_jk as still
not the maturity of other well known modules like mod_index.

A feature which may be added to mod_jk, but I'd like to see
before autoconf stuff added :)


-
Henri Gomez ___[_]
EMAIL : [EMAIL PROTECTED](. .) 
PGP KEY : 697ECEDD...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 



-Original Message-
From: Bojan Smojver [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, April 10, 2001 10:32 AM
To: [EMAIL PROTECTED]
Subject: Re: mod_webapp, mod_jk etc.


Forgot to ask, would you be interested in instructions/simple shell
script for building mod_jk as a statically linked Apache module?

Bojan

Dan Milstein wrote:
 
 I can't speak to mod_webapp, but a mod_jk response:
 
  - I understand the need for the TCP connections to be persistent in
  mod_jk and mod_webapp, but I'm not sure why another 
connection wouldn't
  be attempted after the reuse of the previous connection fails;
 
 This was just added to the 3.3 branch (by Henri) for mod_jk 
-- if the Apache
 plugin detects a dead connection, it opens a new one (so you 
don't have to
 restart Apache when you restart Tomcat).  Needs testing, but 
it's in there.
 
 -Dan
 --
 
 Dan Milstein // [EMAIL PROTECTED]




RE: mod_webapp help!

2001-04-15 Thread GOMEZ Henri

I didn't have much more luck with gcc on my Redhat 6.2 system.
mod_webapp in the distro is just incomplete. It was compiling
on previous release 4.0b1 but no more with recent.

Wait for Pier to fix it

-
Henri Gomez ___[_]
EMAIL : [EMAIL PROTECTED](. .) 
PGP KEY : 697ECEDD...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 



-Original Message-
From: T. Park [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 11, 2001 6:24 PM
To: [EMAIL PROTECTED]
Subject: mod_webapp help!



Hi Folks,

Can anyone advise me how to build it using the sources supplied with
tomcat 4.0 b3?

My end goal is to be able to build it on NT with MSVC 6.0, but 
I've been
trying to get it to
compile on Solaris 2.8 with the 6.1 C compiler.

I know that it was written for gcc - my next step is to try to 
use gcc -
I was hoping to avoid having to employ gcc as it's use will cause me
some 'productization' headaches)

I'm trying to findout what WA_LOG should be - it's referred to in
several places but there is not definition of it in the 
makefiles or the
C code.
Also, some of the code constructs appear to be C++ rather than C - was
this intentional?

e.g.
struct wa_connection {}
where wa_connection is subsequently used as a datatype.

In 'strict' C it would be more proper to write something  like:

typedef struct wa_connection wa_connection_t;
struct wa_connection {...}

and use wa_connection_t as the datatype.

If I feed the former to a 'strict' C compiler - it's not a 
happy camper.

Note: I'm not trying to be picky here - this just came to light when I
tried to use Microsoft C and Solaris C on the sources,
as there were no binaries available for the platforms that I'm using.

I guess my next step is to try with gcc on Solaris and then on windows
- with some porting work ;-)

Again - is there anyone doing the Win NT work at the moment? If not I'm
more than happy to volunteer.

-Thom

--
http://www.borland.com/newsgroups
http://www.borland.com/devsupport/disclaim.html





RE: Bug 1006 not fixed in 3.2.2b3

2001-04-15 Thread GOMEZ Henri

The fix was just for the native HTTP connector and didn't 
cover ajp12/ajp13.

We could certainly add the same type of code in ajp12
but with a more little timeout (30 seconds) 

-
Henri Gomez ___[_]
EMAIL : [EMAIL PROTECTED](. .) 
PGP KEY : 697ECEDD...oOOo..(_)..oOOo...
PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 



-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Friday, April 13, 2001 10:47 PM
To: Marc Saegesser
Cc: [EMAIL PROTECTED]
Subject: RE: Bug 1006 not fixed in 3.2.2b3






I am using ajp12 with 3.2.2b3 and I am still experiencing this 
problem.  It
appears that ajp12 makes a back-end connection per http request









"Marc Saegesser" [EMAIL PROTECTED] on 04/12/2001 07:23:00 PM
  
  
  
  To:  Tom Harding/WPAC/GSAG_Corp@GSAG_Corp   
  
  cc: 
  
  
  
  Subject  RE: Bug 1006 not fixed in 3.2.2b3  
  :   
  






Tom,

It really is fixed.  What happened was the right after I made 
the change to
PoolTcpEndpoint.java it was pointed out to me that the correct 
place to make
the change is in HttpConnectionHandler.java.  The 
PoolTcpEndpoint class gets
used by other protocols (like ajp13) that have persistent 
connections that
shouldn't time out for inactivity.

I just tested Tomcat 3.2.2b3 and the timeout appears to be 
working.  Just
use telnet to connection to Tomcat and after 5 minutes of 
inactivity the
connection is closed.

I'm pretty sure Henri made the same fix to 3.3, but I don't 
have the code in
front of me to verify that.

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, April 12, 2001 2:48 PM
 To: [EMAIL PROTECTED]
 Subject: Bug 1006 not fixed in 3.2.2b3





 Mark,

 In bug 1006 you say that you fixed the non-timeout of sockets
 "Fixed in 3.2.2b2.
 I'm leaving this open so that it can be also be fixed in 3.3
 and later"

 However in the PoolTcpEndpoint.java source from 3.2.2b3, 
which starts like
 this..

 *
  * $Header:
 /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/Attic
 /PoolTcpEndpoint.java,v

 1.8.2.5 2001/03/21 17:11:29 marcsaeg Exp $
  * $Revision: 1.8.2.5 $
  * $Date: 2001/03/21 17:11:29 $

 I don't see any setting of socket options per the fix mentioned
 in the bug.
 Also I'm still having the symptoms of the problem.  Is the fix
 really included
 in 3.2.2b3?

 Thanks,
 Tom Harding









RE: Bug 1006 not fixed in 3.2.2b3

2001-04-15 Thread Marc Saegesser

I took a quick look before and thought I saw timeout handling already in the
ajp handler.

 -Original Message-
 From: GOMEZ Henri [mailto:[EMAIL PROTECTED]]
 Sent: Sunday, April 15, 2001 6:38 PM
 To: [EMAIL PROTECTED]
 Cc: [EMAIL PROTECTED]
 Subject: RE: Bug 1006 not fixed in 3.2.2b3


 The fix was just for the native HTTP connector and didn't
 cover ajp12/ajp13.

 We could certainly add the same type of code in ajp12
 but with a more little timeout (30 seconds)

 -
 Henri Gomez ___[_]
 EMAIL : [EMAIL PROTECTED](. .)
 PGP KEY : 697ECEDD...oOOo..(_)..oOOo...
 PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6



 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
 Sent: Friday, April 13, 2001 10:47 PM
 To: Marc Saegesser
 Cc: [EMAIL PROTECTED]
 Subject: RE: Bug 1006 not fixed in 3.2.2b3
 
 
 
 
 
 
 I am using ajp12 with 3.2.2b3 and I am still experiencing this
 problem.  It
 appears that ajp12 makes a back-end connection per http request
 
 
 
 
 
 
 
 
 
 "Marc Saegesser" [EMAIL PROTECTED] on 04/12/2001 07:23:00 PM
 
 
 
   To:  Tom Harding/WPAC/GSAG_Corp@GSAG_Corp
 
   cc:
 
 
 
   Subject  RE: Bug 1006 not fixed in 3.2.2b3
   :
 
 
 
 
 
 
 
 Tom,
 
 It really is fixed.  What happened was the right after I made
 the change to
 PoolTcpEndpoint.java it was pointed out to me that the correct
 place to make
 the change is in HttpConnectionHandler.java.  The
 PoolTcpEndpoint class gets
 used by other protocols (like ajp13) that have persistent
 connections that
 shouldn't time out for inactivity.
 
 I just tested Tomcat 3.2.2b3 and the timeout appears to be
 working.  Just
 use telnet to connection to Tomcat and after 5 minutes of
 inactivity the
 connection is closed.
 
 I'm pretty sure Henri made the same fix to 3.3, but I don't
 have the code in
 front of me to verify that.
 
  -Original Message-
  From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
  Sent: Thursday, April 12, 2001 2:48 PM
  To: [EMAIL PROTECTED]
  Subject: Bug 1006 not fixed in 3.2.2b3
 
 
 
 
 
  Mark,
 
  In bug 1006 you say that you fixed the non-timeout of sockets
  "Fixed in 3.2.2b2.
  I'm leaving this open so that it can be also be fixed in 3.3
  and later"
 
  However in the PoolTcpEndpoint.java source from 3.2.2b3,
 which starts like
  this..
 
  *
   * $Header:
  /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/Attic
  /PoolTcpEndpoint.java,v
 
  1.8.2.5 2001/03/21 17:11:29 marcsaeg Exp $
   * $Revision: 1.8.2.5 $
   * $Date: 2001/03/21 17:11:29 $
 
  I don't see any setting of socket options per the fix mentioned
  in the bug.
  Also I'm still having the symptoms of the problem.  Is the fix
  really included
  in 3.2.2b3?
 
  Thanks,
  Tom Harding