]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Support %<st and %<sh logformat codes for FTP gateway responses.
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 26 Aug 2013 19:09:40 +0000 (13:09 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Mon, 26 Aug 2013 19:09:40 +0000 (13:09 -0600)
For logging purposes, treat all non-data FTP responses (i.e., bytes written on
the client control connection) as "HTTP headers" because they are similar
"matadata".

src/client_side.cc

index 10a0d49ff24c2d133ca6c9c9cb4acafaaf765c80..d60a16490eb62420ead70e5ba1c04cc6440544fc 100644 (file)
@@ -5263,6 +5263,9 @@ FtpWroteReplyData(const Comm::ConnectionPointer &conn, char *bufnotused, size_t
         return;
     }
 
+    assert(context->http);
+    context->http->out.size += size;
+
     switch (context->socketState()) {
     case STREAM_NONE:
         debugs(33, 3, "Keep going");
@@ -5419,6 +5422,12 @@ FtpWroteEarlyReply(const Comm::ConnectionPointer &conn, char *bufnotused, size_t
     }
 
     ConnStateData *const connState = static_cast<ConnStateData*>(data);
+    ClientSocketContext::Pointer context = connState->getCurrentContext();
+    if (context != NULL && context->http) {
+        context->http->out.size += size;
+        context->http->out.headers_sz += size;
+    }
+
     connState->flags.readMore = true;
     connState->readSomeData();
 }
@@ -5440,6 +5449,10 @@ FtpWroteReply(const Comm::ConnectionPointer &conn, char *bufnotused, size_t size
         static_cast<ClientSocketContext*>(data);
     ConnStateData *const connState = context->getConn();
 
+    assert(context->http);
+    context->http->out.size += size;
+    context->http->out.headers_sz += size;
+
     if (connState->ftp.state == ConnStateData::FTP_ERROR) {
         debugs(33, 5, "closing on FTP server error");
         conn->close();