Details
Description
FTPHTTPClient can't set socket timeout when connecting to remote http proxy. This may cause hangouts for calls to remote http ftp proxies.
Expected: FTPHTTPClient supports creation sockets with Factory methods. We had same approach for regular FTPClient calling .setSocketFactory(...) method and have control over socket creation.
Actual: FTPHTTPClient creates Socket inside public void connect(...) directly, and it is impossible to set timouts since this object will be used immediately. It is even impossible to inherit from FTPHTTPClient to override connect - since proxyHost, proxyPort and tunnelHandshake is private.
so we may change
socket = new Socket(proxyHost, proxyPort);
to
socket = socketFactory.createSocket();
and add support for FTPHTTPClient to handle socket factories for http proxies calls.
Is it possiible?