Hi gurus:
For below code in client_side.cc, I want to know what's the
pinning.serverConnection mean? and what it is used for?
I want to rewrite the on_unsupported_protocol to support tcp connection
(non-http protocol, called httpdns not readable, no http header) and relay it
the server.
Except here, I need assign the server's address and port, where shold I moidify
? the receive part logic ?
could anyone give me some advisement, thanks.
bool ConnStateData::initiateTunneledRequest(HttpRequest::Pointer const &cause,
Http::MethodType const method, const char *reason, const SBuf &payload) {
// fake a CONNECT request to force connState to tunnel SBuf connectHost;
unsigned short connectPort = 0;
if (pinning.serverConnection != nullptr) { static char
ip[MAX_IPSTRLEN];
connectHost.assign(pinning.serverConnection->remote.toStr(ip, sizeof(ip)));
connectPort = pinning.serverConnection->remote.port(); } else if (cause
&& cause->method == Http::METHOD_CONNECT) { // We are inside a (not
fully established) CONNECT request connectHost = cause->url.host();
connectPort = cause->url.port(); } else { debugs(33, 2, "Not
able to compute URL, abort request tunneling for " << reason); return
false; }
debugs(33, 2, "Request tunneling for " << reason); ClientHttpRequest
*http = buildFakeRequest(method, connectHost, connectPort, payload);
HttpRequest::Pointer request = http->request; request->flags.forceTunnel =
true; http->calloutContext = new ClientRequestContext(http);
http->doCallouts(); clientProcessRequestFinished(this, request); return
true; }_______________________________________________
squid-dev mailing list
[email protected]
http://lists.squid-cache.org/listinfo/squid-dev