Hi all,
just to give you an idea of what I'm doing...
I had an eye opener while pondering Oleg's last remark about
tunnelling. In fact, the connection manager does not only need
to know which target host and which proxy is used, it also has
to know whether the connection is _tunnelled_ through that host
or not. While typically SSL connections will be tunnelled and
plain connections will not, we shouldn't rely on this.
In consequence, I have come to the conclusion that it would be
too complex and cumbersome to put all the data which a connection
manager might require into a single open(...) call. I am going
to define two interfaces:
interface UnmanagedClientConnection { // name temporary
HttpHost getTargetHost();
boolean isSecure();
Socket getSocket();
void open(...);
void update(...); // used to be reopen(...)
}
interface ClientConnection {
// all the stuff a connection manager might require
}
An inital version of the first interface is already checked in.
The methods defined there are candidates for moving to HttpCore,
that's why I chose the longer name for this interface: it might
go away.
In the first interface, there is no notion of proxy vs. target
host anymore. The target host is simply the host to which
requests will be sent. That might be a proxy, or the final server.
If a tunnel is created, the target switches from the proxy host
to the tunnel target host.
The second interface requires some more thinking on my part.
cheers,
Roland
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]