1414import java .nio .channels .SelectionKey ;
1515import java .nio .channels .SocketChannel ;
1616import java .util .Collections ;
17- import java .util .Enumeration ;
1817import java .util .HashSet ;
1918import java .util .LinkedHashMap ;
2019import java .util .Map ;
2120import java .util .Set ;
2221import java .util .concurrent .ConcurrentHashMap ;
2322import java .util .concurrent .ConcurrentMap ;
2423import java .util .concurrent .Executor ;
25- import java .util .logging .Level ;
2624import org .eclipse .jetty .io .ByteBufferPool ;
2725import org .eclipse .jetty .io .Connection ;
2826import org .eclipse .jetty .io .EndPoint ;
@@ -193,16 +191,6 @@ protected SelectorManager newSelectorManager() {
193191
194192 public void handle (String target , Request jettyRequest , HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException {
195193 String serverAddress = jettyRequest .getHttpURI ().getAuthority ();
196- Enumeration <String > headerNames = request .getHeaderNames ();
197- if (headerNames != null ) {
198- StringBuilder sb = new StringBuilder ();
199- String header ;
200-
201- while (headerNames .hasMoreElements ()) {
202- header = headerNames .nextElement ();
203- sb .append (header ).append (": " ).append (request .getHeader (header )).append (System .lineSeparator ());
204- }
205- }
206194
207195 if (request .getHeader ("Upgrade" ) != null && request .getHeader ("Upgrade" ).equalsIgnoreCase ("websocket" )) {
208196 this .handleConnect (jettyRequest , request , response , serverAddress );
@@ -231,9 +219,10 @@ protected void handleConnect(Request baseRequest, final HttpServletRequest reque
231219 LOG .info ("Connecting to {}:{}" , host , port );
232220
233221 this .getExecutor ().execute (() -> {
222+ SocketChannel channel = null ;
234223 try {
235224 // Connect to target using blocking I/O for the handshake
236- SocketChannel channel = SocketChannel .open ();
225+ channel = SocketChannel .open ();
237226 channel .socket ().setTcpNoDelay (true );
238227 channel .socket ().setSoTimeout ((int ) getConnectTimeout ());
239228 channel .connect (new InetSocketAddress (host , port ));
@@ -249,6 +238,7 @@ protected void handleConnect(Request baseRequest, final HttpServletRequest reque
249238
250239 WebsocketHandler .this .selector .accept (channel , connectContext );
251240 } catch (Exception e ) {
241+ WebsocketHandler .this .close (channel );
252242 LOG .warn ("WebSocket connect/handshake failed" , e );
253243 WebsocketHandler .this .onConnectFailure (request , response , asyncContext , e );
254244 }
0 commit comments