From 9dee56c078f6b4a7a69ddfd66c2b98665cde193e Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Tue, 19 Oct 2010 23:25:13 -0600 Subject: [PATCH] Author: Alex Rousskov 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? --- src/http.cc | 9 ++++----- src/http.h | 5 ++--- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/http.cc b/src/http.cc index 2eea123727..6a368b66f7 100644 --- a/src/http.cc +++ b/src/http.cc @@ -1493,7 +1493,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) @@ -1933,8 +1933,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); @@ -1946,7 +1945,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; @@ -2034,7 +2033,7 @@ HttpStateData::sendRequest() } mb.init(); - 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 eeebe1c272..99ecd75e36 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 */ @@ -117,8 +117,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; -- 2.47.2