Mercurial Hosting > luan
annotate src/org/eclipse/jetty/server/Connector.java @ 1054:87275900646e
remove JBuffer.toString()
| author | Franklin Schmidt <fschmidt@gmail.com> | 
|---|---|
| date | Tue, 08 Nov 2016 01:03:02 -0700 | 
| parents | 2b769da7f67d | 
| children | ebb0f1343ef6 | 
| rev | line source | 
|---|---|
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 1 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 2 // ======================================================================== | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 3 // Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 4 // ------------------------------------------------------------------------ | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 5 // All rights reserved. This program and the accompanying materials | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 6 // are made available under the terms of the Eclipse Public License v1.0 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 7 // and Apache License v2.0 which accompanies this distribution. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 8 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 9 // The Eclipse Public License is available at | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 10 // http://www.eclipse.org/legal/epl-v10.html | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 11 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 12 // The Apache License v2.0 is available at | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 13 // http://www.opensource.org/licenses/apache2.0.php | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 14 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 15 // You may elect to redistribute this code under either of these licenses. | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 16 // ======================================================================== | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 17 // | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 18 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 19 package org.eclipse.jetty.server; | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 20 | 
| 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 21 import java.io.IOException; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 22 import java.net.InetAddress; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 23 import java.net.Socket; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 24 import java.net.UnknownHostException; | 
| 909 | 25 import java.nio.channels.ServerSocketChannel; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 26 import java.util.concurrent.ThreadPoolExecutor; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 27 import java.util.concurrent.atomic.AtomicLong; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 28 | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 29 import javax.servlet.ServletRequest; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 30 | 
| 1048 | 31 import org.eclipse.jetty.io.JBuffer; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 32 import org.eclipse.jetty.io.Buffers; | 
| 1046 | 33 import org.eclipse.jetty.io.BufferUtil; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 34 import org.eclipse.jetty.io.EndPoint; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 35 import org.eclipse.jetty.io.EofException; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 36 import org.eclipse.jetty.util.component.AggregateLifeCycle; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 37 import org.eclipse.jetty.util.component.Dumpable; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 38 import org.slf4j.Logger; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 39 import org.slf4j.LoggerFactory; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 40 | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 41 /** | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 42 * Abstract Connector implementation. This abstract implementation of the Connector interface provides: | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 43 * <ul> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 44 * <li>AbstractLifeCycle implementation</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 45 * <li>Implementations for connector getters and setters</li> | 
| 1048 | 46 * <li>JBuffer management</li> | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 47 * <li>Socket configuration</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 48 * <li>Base acceptor thread</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 49 * <li>Optional reverse proxy headers checking</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 50 * </ul> | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 51 */ | 
| 1005 | 52 public abstract class Connector extends AggregateLifeCycle implements Dumpable, Runnable | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 53 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 54 private static final Logger LOG = LoggerFactory.getLogger(Connector.class); | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 55 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 56 private String _name; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 57 | 
| 887 
df84a1741687
make Connector reference to server explicit
 Franklin Schmidt <fschmidt@gmail.com> parents: 
885diff
changeset | 58 public final Server server; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 59 private String _host; | 
| 887 
df84a1741687
make Connector reference to server explicit
 Franklin Schmidt <fschmidt@gmail.com> parents: 
885diff
changeset | 60 public final int port; | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 61 | 
| 948 
f5aefdc4a81a
simplify SelectChannelConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
914diff
changeset | 62 protected final int _maxIdleTime = 200000; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 63 protected int _soLingerTime = -1; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 64 | 
| 909 | 65 // from child classes | 
| 66 protected transient ServerSocketChannel _acceptChannel; | |
| 67 | |
| 996 | 68 protected Connector(Server server,int port) { | 
| 887 
df84a1741687
make Connector reference to server explicit
 Franklin Schmidt <fschmidt@gmail.com> parents: 
885diff
changeset | 69 this.server = server; | 
| 
df84a1741687
make Connector reference to server explicit
 Franklin Schmidt <fschmidt@gmail.com> parents: 
885diff
changeset | 70 this.port = port; | 
| 
df84a1741687
make Connector reference to server explicit
 Franklin Schmidt <fschmidt@gmail.com> parents: 
885diff
changeset | 71 server.connectors.add(this); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 72 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 73 | 
| 996 | 74 public final void setHost(String host) | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 75 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 76 _host = host; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 77 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 78 | 
| 996 | 79 public final String getHost() | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 80 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 81 return _host; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 82 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 83 | 
| 996 | 84 public final int getMaxIdleTime() | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 85 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 86 return _maxIdleTime; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 87 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 88 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 89 /* ------------------------------------------------------------ */ | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 90 /** | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 91 * Set the maximum Idle time for a connection, which roughly translates to the {@link Socket#setSoTimeout(int)} call, although with NIO implementations | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 92 * other mechanisms may be used to implement the timeout. The max idle time is applied: | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 93 * <ul> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 94 * <li>When waiting for a new request to be received on a connection</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 95 * <li>When reading the headers and content of a request</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 96 * <li>When writing the headers and content of a response</li> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 97 * </ul> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 98 * Jetty interprets this value as the maximum time between some progress being made on the connection. So if a single byte is read or written, then the | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 99 * timeout (if implemented by jetty) is reset. However, in many instances, the reading/writing is delegated to the JVM, and the semantic is more strictly | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 100 * enforced as the maximum time a single read/write operation can take. Note, that as Jetty supports writes of memory mapped file buffers, then a write may | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 101 * take many 10s of seconds for large content written to a slow device. | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 102 * <p> | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 103 * Previously, Jetty supported separate idle timeouts and IO operation timeouts, however the expense of changing the value of soTimeout was significant, so | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 104 * these timeouts were merged. With the advent of NIO, it may be possible to again differentiate these values (if there is demand). | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 105 * | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 106 * @param maxIdleTime | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 107 * The maxIdleTime to set. | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 108 */ | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 109 | 
| 996 | 110 public final int getSoLingerTime() | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 111 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 112 return _soLingerTime; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 113 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 114 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 115 /* ------------------------------------------------------------ */ | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 116 /** | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 117 * @param soLingerTime | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 118 * The soLingerTime to set or -1 to disable. | 
| 818 
ad292e148964
remove util/statistic
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 119 */ | 
| 996 | 120 public final void setSoLingerTime(int soLingerTime) | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 121 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 122 _soLingerTime = soLingerTime; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 123 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 124 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 125 @Override | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 126 protected void doStart() throws Exception | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 127 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 128 super.doStart(); | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 129 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 130 // Start selector thread | 
| 905 
e7175965e6cf
remove Connector._acceptorThreads
 Franklin Schmidt <fschmidt@gmail.com> parents: 
904diff
changeset | 131 ThreadPoolExecutor _threadPool = server.threadPool; | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 132 _threadPool.execute(this); | 
| 905 
e7175965e6cf
remove Connector._acceptorThreads
 Franklin Schmidt <fschmidt@gmail.com> parents: 
904diff
changeset | 133 if (server.isLowOnThreads()) | 
| 
e7175965e6cf
remove Connector._acceptorThreads
 Franklin Schmidt <fschmidt@gmail.com> parents: 
904diff
changeset | 134 LOG.warn("insufficient threads configured for {}",this); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 135 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 136 LOG.info("Started {}",this); | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 137 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 138 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 139 @Override | 
| 913 | 140 protected synchronized void doStop() throws Exception | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 141 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 142 try | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 143 { | 
| 913 | 144 if (_acceptChannel != null) | 
| 145 _acceptChannel.close(); | |
| 146 _acceptChannel=null; | |
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 147 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 148 catch (IOException e) | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 149 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 150 LOG.warn("",e); | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 151 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 152 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 153 super.doStop(); | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 154 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 155 | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 156 | 
| 914 
54308d65265a
simplify SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
913diff
changeset | 157 protected final void configure(Socket socket) throws IOException | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 158 { | 
| 914 
54308d65265a
simplify SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
913diff
changeset | 159 socket.setTcpNoDelay(true); | 
| 
54308d65265a
simplify SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
913diff
changeset | 160 if (_soLingerTime >= 0) | 
| 
54308d65265a
simplify SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
913diff
changeset | 161 socket.setSoLinger(true,_soLingerTime / 1000); | 
| 
54308d65265a
simplify SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
913diff
changeset | 162 else | 
| 
54308d65265a
simplify SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
913diff
changeset | 163 socket.setSoLinger(false,0); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 164 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 165 | 
| 1001 | 166 public abstract void customize(AbstractHttpConnection con) throws IOException; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 167 | 
| 972 
5ee36654b383
simplify AbstractHttpConnection
 Franklin Schmidt <fschmidt@gmail.com> parents: 
956diff
changeset | 168 public boolean isConfidential() | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 169 { | 
| 889 | 170 return false; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 171 } | 
| 818 
ad292e148964
remove util/statistic
 Franklin Schmidt <fschmidt@gmail.com> parents: 
802diff
changeset | 172 | 
| 906 | 173 protected abstract void accept() throws IOException, InterruptedException; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 174 | 
| 996 | 175 @Override | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 176 public String toString() | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 177 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 178 return String.format("%s@%s:%d", | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 179 getClass().getSimpleName(), | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 180 getHost()==null?"0.0.0.0":getHost(), | 
| 909 | 181 port); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 182 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 183 | 
| 909 | 184 | 
| 996 | 185 @Override | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 186 public void run() | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 187 { | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 188 Thread current = Thread.currentThread(); | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 189 String name = current.getName(); | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 190 current.setName(name + " Acceptor" + " " + Connector.this); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 191 | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 192 try | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 193 { | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 194 while (isRunning() && _acceptChannel != null) | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 195 { | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 196 try | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 197 { | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 198 accept(); | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 199 } | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 200 catch (EofException e) | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 201 { | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 202 LOG.trace("",e); | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 203 } | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 204 catch (IOException e) | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 205 { | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 206 LOG.trace("",e); | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 207 } | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 208 catch (InterruptedException x) | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 209 { | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 210 // Connector has been stopped | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 211 LOG.trace("",x); | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 212 } | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 213 catch (Throwable e) | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 214 { | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 215 LOG.warn("",e); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 216 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 217 } | 
| 954 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 218 } | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 219 finally | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 220 { | 
| 
a021c4c9c244
use just one SelectSet per SelectorManager
 Franklin Schmidt <fschmidt@gmail.com> parents: 
948diff
changeset | 221 current.setName(name); | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 222 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 223 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 224 | 
| 996 | 225 public final String getName() | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 226 { | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 227 if (_name == null) | 
| 909 | 228 _name = (getHost() == null?"0.0.0.0":getHost()) + ":" + port; | 
| 885 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 229 return _name; | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 230 } | 
| 
150092cebf3e
remove AbstractConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
865diff
changeset | 231 | 
| 907 
bc4e299de953
remove AbstractNIOConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
906diff
changeset | 232 | 
| 1007 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 233 | 
| 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 234 // from HttpBuffersImpl | 
| 907 
bc4e299de953
remove AbstractNIOConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
906diff
changeset | 235 | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 236 protected int _requestHeaderSize = 6*1024; | 
| 1007 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 237 protected int _requestBufferSize = 16*1024; | 
| 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 238 private final int _responseHeaderSize = 6*1024; | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 239 private final int _responseBufferSize = 32*1024; | 
| 1007 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 240 | 
| 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 241 public final Buffers getRequestBuffers() | 
| 907 
bc4e299de953
remove AbstractNIOConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
906diff
changeset | 242 { | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 243 return new MyBuffers(_requestHeaderSize,_requestBufferSize); | 
| 1007 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 244 } | 
| 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 245 | 
| 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 246 public final Buffers getResponseBuffers() | 
| 
945568ee77ac
remove HttpBuffersImpl
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1006diff
changeset | 247 { | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 248 return new MyBuffers(_responseHeaderSize,_responseBufferSize); | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 249 } | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 250 | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 251 | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 252 // my own buffers | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 253 | 
| 1048 | 254 protected JBuffer newBuffer(int size) { | 
| 1046 | 255 return BufferUtil.newDirectBuffer(size); | 
| 907 
bc4e299de953
remove AbstractNIOConnector
 Franklin Schmidt <fschmidt@gmail.com> parents: 
906diff
changeset | 256 } | 
| 909 | 257 | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 258 private class MyBuffers implements Buffers { | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 259 private final int headerSize; | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 260 private final int bufferSize; | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 261 | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 262 MyBuffers(int headerSize,int bufferSize) { | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 263 this.headerSize = headerSize; | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 264 this.bufferSize = bufferSize; | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 265 } | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 266 | 
| 1016 
8c13b9224cff
remove returnBuffer()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1011diff
changeset | 267 @Override | 
| 1048 | 268 public JBuffer getHeader() { | 
| 1046 | 269 return BufferUtil.newBuffer(headerSize); | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 270 } | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 271 | 
| 1016 
8c13b9224cff
remove returnBuffer()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1011diff
changeset | 272 @Override | 
| 1048 | 273 public JBuffer getBuffer() { | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 274 return newBuffer(bufferSize); | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 275 } | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 276 | 
| 1016 
8c13b9224cff
remove returnBuffer()
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1011diff
changeset | 277 @Override | 
| 1048 | 278 public JBuffer getBuffer(int size) { | 
| 1011 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 279 return newBuffer(size); | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 280 } | 
| 
4e7208df7741
remove PooledBuffers
 Franklin Schmidt <fschmidt@gmail.com> parents: 
1008diff
changeset | 281 } | 
| 802 
3428c60d7cfc
replace jetty jars with source
 Franklin Schmidt <fschmidt@gmail.com> parents: diff
changeset | 282 } | 
