FileDocCategorySizeDatePackage
TcpConnection.javaAPI DocGlassfish v2 API3993Fri May 04 22:33:16 BST 2007org.apache.tomcat.util.net

TcpConnection

public class TcpConnection extends Object

Fields Summary
static int
MAX_SHUTDOWN_TRIES
Maxium number of times to clear the socket input buffer.
PoolTcpEndpoint
endpoint
Socket
socket
Constructors Summary
public TcpConnection()


      
    
Methods Summary
public PoolTcpEndpointgetEndpoint()

	return endpoint;
    
public java.net.SocketgetSocket()

	return socket;
    
public static intreadLine(java.io.InputStream in, byte[] b, int off, int len)

	if (len <= 0) {
	    return 0;
	}
	int count = 0, c;

	while ((c = in.read()) != -1) {
	    b[off++] = (byte)c;
	    count++;
	    if (c == '\n" || count == len) {
		break;
	    }
	}
	return count > 0 ? count : -1;
    
public voidrecycle()

        endpoint = null;
        socket = null;
    
public voidsetEndpoint(PoolTcpEndpoint endpoint)

	this.endpoint = endpoint;
    
public static voidsetMaxShutdownTries(int mst)

	MAX_SHUTDOWN_TRIES = mst;
    
public voidsetSocket(java.net.Socket socket)

	this.socket=socket;
    
public static voidshutdownInput(java.net.Socket socket)

	try {
	    InputStream is = socket.getInputStream();
	    int available = is.available ();
	    int count=0;
	    
	    // XXX on JDK 1.3 just socket.shutdownInput () which
	    // was added just to deal with such issues.
	    
	    // skip any unread (bogus) bytes
	    while (available > 0 && count++ < MAX_SHUTDOWN_TRIES) {
		is.skip (available);
		available = is.available();
	    }
	}catch(NullPointerException npe) {
	    // do nothing - we are just cleaning up, this is
	    // a workaround for Netscape \n\r in POST - it is supposed
	    // to be ignored
	}