code: public void handleConnect(String pathInContext, String pathParams, HttpRequest request, HttpResponse response) throws HttpException, IOException
      {
          URI uri = request.getURI();
  
          try
          {
              if (log.isDebugEnabled())
                  log.debug("CONNECT: " + uri);
              InetAddrPort addrPort = new InetAddrPort(uri.toString());
  
              if (isForbidden(HttpMessage.__SSL_SCHEME, addrPort.getHost(), addrPort.getPort(), false))
              {
                  sendForbid(request, response, uri);
              }
              else
              {
                  HttpConnection http_connection=request.getHttpConnection();
                  http_connection.forceClose();
  
                  // Get the timeout
                  int timeoutMs = 30000;
                  Object maybesocket = http_connection.getConnection();
                  if (maybesocket instanceof Socket)
                  {
                      Socket s = (Socket) maybesocket;
                      timeoutMs = s.getSoTimeout();
                  }
                  
                  
                  // Create the tunnel
                  HttpTunnel tunnel = newHttpTunnel(request,response,addrPort.getInetAddress(), addrPort.getPort(),timeoutMs);
                  
                  
                  if (tunnel!=null)
                  {
                      // TODO - need to setup semi-busy loop for IE.
                      if (_tunnelTimeoutMs > 0)
                      {
                          tunnel.getSocket().setSoTimeout(_tunnelTimeoutMs);
                          if (maybesocket instanceof Socket)
                          {
                              Socket s = (Socket) maybesocket;
                              s.setSoTimeout(_tunnelTimeoutMs);
                          }
                      }
                      tunnel.setTimeoutMs(timeoutMs);
                      
                      customizeConnection(pathInContext, pathParams, request, tunnel.getSocket());
                      request.getHttpConnection().setHttpTunnel(tunnel);
                      response.setStatus(HttpResponse.__200_OK);
                      response.setContentLength(0);
                  }
                  request.setHandled(true);
              }
          }
          catch (Exception e)
          {
              LogSupport.ignore(log, e);
              response.sendError(HttpResponse.__500_Internal_Server_Error);
          }
      }
docs: /* ------------------------------------------------------------