diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index a3aaebb2a..ae04a8105 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -182,7 +182,7 @@ private: std::vector mAgentIDs; // Need the headers to look up Expires: and Retry-After: - AIHTTPReceivedHeaders mHeaders; + virtual bool needsHeaders(void) const { return true; } public: virtual AIHTTPTimeoutPolicy const& getHTTPTimeoutPolicy(void) const { return avatarNameResponder_timeout; } @@ -190,16 +190,11 @@ public: LLAvatarNameResponder(const std::vector& agent_ids) : mAgentIDs(agent_ids) { } - - /*virtual*/ void completedHeaders(U32 status, std::string const& reason, AIHTTPReceivedHeaders const& headers) - { - mHeaders = headers; - } /*virtual*/ void result(const LLSD& content) { // Pull expiration out of headers if available - F64 expires = LLAvatarNameCache::nameExpirationFromHeaders(mHeaders); + F64 expires = LLAvatarNameCache::nameExpirationFromHeaders(mReceivedHeaders); F64 now = LLFrameTimer::getTotalSeconds(); LLSD agents = content["agents"]; diff --git a/indra/llmessage/llhttpclient.h b/indra/llmessage/llhttpclient.h index 862d161ce..fa37e8b62 100644 --- a/indra/llmessage/llhttpclient.h +++ b/indra/llmessage/llhttpclient.h @@ -133,6 +133,7 @@ public: protected: // AIBufferedCurlEasyRequestEvents + // These three events are only actually called for classes that implement a needsHeaders() that returns true. // Called when the "HTTP/1.x " header is received. /*virtual*/ void received_HTTP_header(void) @@ -167,6 +168,7 @@ public: protected: // Derived classes can override this to get the HTML headers that were received, when the message is completed. + // Only actually called for classes that implement a needsHeaders() that returns true. virtual void completedHeaders(U32 status, std::string const& reason, AIHTTPReceivedHeaders const& headers) { // The default does nothing. diff --git a/indra/newview/llxmlrpcresponder.h b/indra/newview/llxmlrpcresponder.h index e42066f1c..df01692ae 100644 --- a/indra/newview/llxmlrpcresponder.h +++ b/indra/newview/llxmlrpcresponder.h @@ -105,6 +105,7 @@ public: XMLRPC_REQUEST response(void) const { return mResponse; } LLXMLRPCValue responseValue(void) const; + /*virtual*/ bool needsHeaders(void) const { return true; } /*virtual*/ void received_HTTP_header(void) { mReceivedHTTPHeader = true; LLHTTPClient::ResponderBase::received_HTTP_header(); } /*virtual*/ void completed_headers(U32 status, std::string const& reason, AITransferInfo* info); /*virtual*/ void completedRaw(U32 status, std::string const& reason, LLChannelDescriptors const& channels, buffer_ptr_t const& buffer);