org.subethamail.smtp.server.io
Class LastActiveInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by org.subethamail.smtp.server.io.LastActiveInputStream
All Implemented Interfaces:
java.io.Closeable

public class LastActiveInputStream
extends java.io.FilterInputStream

This is an input stream filter that updates the last active time of the ConnectionHandler so that someone can't DoS the server after issuing a DATA command. The SMTPServer watchdog thread is responsible for checking the last active time and will shut down any connections where no data has been read for at least 1 minute.

Author:
Jon Stevens

Field Summary
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
LastActiveInputStream(java.io.InputStream in, ConnectionHandler connectionHandler)
           
 
Method Summary
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LastActiveInputStream

public LastActiveInputStream(java.io.InputStream in,
                             ConnectionHandler connectionHandler)
Method Detail

read

public int read()
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

read

public int read(byte[] b)
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException