]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Prohibit fruitless modification of httpBuildRequestHeader flags parameter.
authorAlex Rousskov <rousskov@measurement-factory.com>
Tue, 14 Sep 2010 05:40:33 +0000 (23:40 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Tue, 14 Sep 2010 05:40:33 +0000 (23:40 -0600)
HttpStateData::httpBuildRequestHeader is a static method, but it has a
parameter called flags, just like HttpStateData objects have a data member
called flags. Modifying that parameter "worked" but had no effect on the
caller's flags. Wasted a few good hours.

The parameter is "const" now, to prevent fruitless modification.

Also removed http_state_flags parameter from HttpStateData::buildRequestPrefix
which is not a static method and has access to the "real" flags member.

No runtime effect expected.

TODO: Rename HttpStateData::httpBuildRequestHeader to mark its static nature.
Does it belong to HttpStateData at all?

src/http.cc
src/http.h

index 3505ec1ce26f35d0c6125852bf62d56ee7261bad..5923c71c275a76f3533791e97e7ec30e43b34c18 100644 (file)
@@ -1647,7 +1647,7 @@ HttpStateData::httpBuildRequestHeader(HttpRequest * request,
                                       HttpRequest * orig_request,
                                       StoreEntry * entry,
                                       HttpHeader * hdr_out,
-                                      http_state_flags flags)
+                                      const http_state_flags flags)
 {
     /* building buffer for complex strings */
 #define BBUF_SZ (MAX_URL+32)
@@ -2025,8 +2025,7 @@ mb_size_t
 HttpStateData::buildRequestPrefix(HttpRequest * aRequest,
                                   HttpRequest * original_request,
                                   StoreEntry * sentry,
-                                  MemBuf * mb,
-                                  http_state_flags stateFlags)
+                                  MemBuf * mb)
 {
     const int offset = mb->size;
     HttpVersion httpver(1,1);
@@ -2038,7 +2037,7 @@ HttpStateData::buildRequestPrefix(HttpRequest * aRequest,
     {
         HttpHeader hdr(hoRequest);
         Packer p;
-        httpBuildRequestHeader(aRequest, original_request, sentry, &hdr, stateFlags);
+        httpBuildRequestHeader(aRequest, original_request, sentry, &hdr, flags);
 
         if (aRequest->flags.pinned && aRequest->flags.connection_auth)
             aRequest->flags.auth_sent = 1;
@@ -2127,7 +2126,7 @@ HttpStateData::sendRequest()
 
     mb.init();
     request->peer_host=_peer?_peer->host:NULL;
-    buildRequestPrefix(request, orig_request, entry, &mb, flags);
+    buildRequestPrefix(request, orig_request, entry, &mb);
     debugs(11, 6, "httpSendRequest: FD " << fd << ":\n" << mb.buf);
     comm_write_mbuf(fd, &mb, requestSender);
 
index b53092a3ba306d997bba259ef8cd1569146730b0..c0f7d051b2ce459f29efa3c06b1ffaa6fba48e16 100644 (file)
@@ -51,7 +51,7 @@ public:
                                        HttpRequest * orig_request,
                                        StoreEntry * entry,
                                        HttpHeader * hdr_out,
-                                       http_state_flags flags);
+                                       const http_state_flags flags);
 
     virtual int dataDescriptor() const;
     /* should be private */
@@ -125,8 +125,7 @@ private:
     mb_size_t buildRequestPrefix(HttpRequest * request,
                                  HttpRequest * orig_request,
                                  StoreEntry * entry,
-                                 MemBuf * mb,
-                                 http_state_flags flags);
+                                 MemBuf * mb);
     static bool decideIfWeDoRanges (HttpRequest * orig_request);
     bool peerSupportsConnectionPinning() const;