-// Copyright 2000-2005 the Contributors, as shown in the revision logs.
-// Licensed under the Apache Public Source License 2.0 ("the License").
-// You may not use this file except in compliance with the License.
-
-package org.ibex.io;
-
-import java.net.*;
-import java.io.*;
-import org.ibex.util.*;
-
-/** a stream backed by a socket */
-public class Connection extends Stream {
- private final Socket s;
- public final String vhost;
- public Connection(Socket s, String vhost) { super(s); this.vhost = vhost; this.s = s; }
- protected Connection(InputStream i, OutputStream o) { super(i, o); vhost = null; s = null; }
- public Socket getSocket() { return s; }
-
- public int getLocalPort() { return s.getLocalPort(); }
- public InetAddress getLocalAddress() { return ((InetSocketAddress)s.getLocalSocketAddress()).getAddress(); }
- public int getRemotePort() { return s.getPort(); }
- public InetAddress getRemoteAddress() { return ((InetSocketAddress)s.getRemoteSocketAddress()).getAddress(); }
- public String getRemoteHostname() { return getRemoteAddress().getHostName(); }
- public String getVirtualHost() { return vhost; }
- public void setTimeout(int ms) { try { s.setSoTimeout(ms); } catch(IOException e) { ioe(e); } }
- public void setTcpNoDelay(boolean delay) { try { s.setTcpNoDelay(delay); } catch(IOException e) { ioe(e); } }
-
- /** never throws an exception */
- public void close() { try{if (s!=null) s.close();}catch(Exception e){/*ignore*/} super.close(); }
-}
-