From: Alex Rousskov Date: Tue, 27 Aug 2013 21:53:40 +0000 (-0600) Subject: Prevent "found KEY_PRIVATE" WARNINGs by releasing FTP gw store entries. X-Git-Tag: SQUID_3_5_0_1~117^2~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8f874af253c590526108f64f39541bb6096b36b;p=thirdparty%2Fsquid.git Prevent "found KEY_PRIVATE" WARNINGs by releasing FTP gw store entries. --- diff --git a/src/FtpGatewayServer.cc b/src/FtpGatewayServer.cc index 7c3243d317..5df26b2556 100644 --- a/src/FtpGatewayServer.cc +++ b/src/FtpGatewayServer.cc @@ -96,6 +96,9 @@ ServerStateData::ServerStateData(FwdState *const fwdState): AsyncJob("Ftp::Gateway::ServerStateData"), Ftp::ServerStateData(fwdState), forwardingCompleted(false) { + // Nothing we can do at request creation time can mark the response as + // uncachable, unfortunately. This prevents "found KEY_PRIVATE" WARNINGs. + entry->releaseRequest(); } ServerStateData::~ServerStateData() diff --git a/src/client_side.cc b/src/client_side.cc index 9063f80b69..1c3c47c6ea 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -5099,6 +5099,11 @@ FtpParseRequest(ConnStateData *connState, HttpRequestMethod *method_p, Http::Pro } request->http_ver = *http_ver; + + // Our fake Request-URIs are not distinctive enough for caching to work + request->flags.cachable = false; // XXX: reset later by maybeCacheable() + request->flags.noCache = true; + request->header.putStr(HDR_FTP_COMMAND, cmd.termedBuf()); request->header.putStr(HDR_FTP_ARGUMENTS, params.termedBuf() != NULL ? params.termedBuf() : ""); @@ -5758,6 +5763,10 @@ FtpSetReply(ClientSocketContext *context, const int code, const char *msg) clientReplyContext *const repContext = dynamic_cast(node->data.getRaw()); assert(repContext != NULL); - repContext->createStoreEntry(http->request->method, RequestFlags()); + + RequestFlags flags; + flags.cachable = false; // force releaseRequest() in storeCreateEntry() + flags.noCache = true; + repContext->createStoreEntry(http->request->method, flags); http->storeEntry()->replaceHttpReply(reply); }