From: Alex Rousskov Date: Tue, 14 Sep 2010 05:40:33 +0000 (-0600) Subject: Prohibit fruitless modification of httpBuildRequestHeader flags parameter. X-Git-Tag: take1~260 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=386c7842cbff563b2ed54878c28d555485001fb5;p=thirdparty%2Fsquid.git Prohibit fruitless modification of httpBuildRequestHeader flags parameter. 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? --- diff --git a/src/http.cc b/src/http.cc index 3505ec1ce2..5923c71c27 100644 --- a/src/http.cc +++ b/src/http.cc @@ -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); diff --git a/src/http.h b/src/http.h index b53092a3ba..c0f7d051b2 100644 --- a/src/http.h +++ b/src/http.h @@ -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;