diff options
author | Josh Bell <josh@lindenlab.com> | 2008-05-13 23:04:17 +0000 |
---|---|---|
committer | Josh Bell <josh@lindenlab.com> | 2008-05-13 23:04:17 +0000 |
commit | 41e1ed5b4153019b07d97f54751db53fa248d8d4 (patch) | |
tree | f9fa644ca50c2673bd68b21ab3d3f3122e1d5221 | |
parent | 52333fc8307b13fa83683d239305765aa48dc35b (diff) |
svn merge -r 87164:87466 svn+ssh://svn.lindenlab.com/svn/linden/branches/Branch_1-21-Server --> release
Land store (already deployed to agni as 1.21 patches)
* Increased the available purchase area in the land store.
* Modified select pool query to take a simulator status. Now generating a new uuid for each insert into the fulfill lock table.
* Checking to make sure put-simstate returns a uuid region_id.
Other stuff (going out soon or already out)
* svn merge -r87339 svn/linden/branches/havok4/havok4-6 (Block creation of mega prims.)
* Fix for the mega prim fix to also block 0 scale prims.
* svn merge -r 84565:86084 svn+ssh://svn.lindenlab.com/svn/linden/branches/single-ref-attach-again --> Branch_1-21-Server (Slipstream QAR-518 single ref attachments)
* Switched off indra.known_address in favor of indra_aux.known_address
* DEV-15151 check_group_land.py kills the database
* DEV-14662 - Change the current model of PREPARE/EXECUTE to directly execute the SQL (QAR-580)
* DEV-15167 Random failure with set-classified-stats
The secret word is: dataserver-is-deprecated
-rw-r--r-- | indra/llmessage/llcurl.cpp | 1 | ||||
-rw-r--r-- | indra/llmessage/llhttpclient.cpp | 63 | ||||
-rw-r--r-- | indra/llmessage/llhttpclient.h | 30 | ||||
-rw-r--r-- | indra/llmessage/llurlrequest.cpp | 7 | ||||
-rw-r--r-- | indra/llmessage/llurlrequest.h | 1 |
5 files changed, 78 insertions, 24 deletions
diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index 72fb49dd06..e282f49438 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -885,6 +885,7 @@ void LLCurlEasyRequest::sendRequest(const std::string& url) { llassert_always(!mRequestSent); mRequestSent = true; + lldebugs << url << llendl; if (mEasy) { mEasy->setHeaders(); diff --git a/indra/llmessage/llhttpclient.cpp b/indra/llmessage/llhttpclient.cpp index 3b892aec50..859f3c1536 100644 --- a/indra/llmessage/llhttpclient.cpp +++ b/indra/llmessage/llhttpclient.cpp @@ -199,14 +199,15 @@ namespace LLPumpIO* theClientPump = NULL; } -static void request(const std::string& url, - LLURLRequest::ERequestAction method, - Injector* body_injector, - LLCurl::ResponderPtr responder, - const LLSD& headers = LLSD(), - const F32 timeout = HTTP_REQUEST_EXPIRY_SECS, - S32 offset = 0, - S32 bytes = 0) +static void request( + const std::string& url, + LLURLRequest::ERequestAction method, + Injector* body_injector, + LLCurl::ResponderPtr responder, + const F32 timeout = HTTP_REQUEST_EXPIRY_SECS, + const LLSD& headers = LLSD(), + S32 offset = 0, + S32 bytes = 0) { if (!LLHTTPClient::hasPump()) { @@ -237,7 +238,7 @@ static void request(const std::string& url, req->useProxy(FALSE); } header << iter->first << ": " << iter->second.asString() ; - llinfos << "header = " << header.str() << llendl; + lldebugs << "header = " << header.str() << llendl; req->addHeader(header.str().c_str()); } } @@ -275,7 +276,16 @@ void LLHTTPClient::getByteRange(const std::string& url, const LLSD& headers, const F32 timeout) { - request(url, LLURLRequest::HTTP_GET, NULL, responder, LLSD(), timeout, offset, bytes); + // *FIX: Why is the headers argument ignored? Phoenix 2008-04-28 + request( + url, + LLURLRequest::HTTP_GET, + NULL, + responder, + timeout, + LLSD(), // WTF? Shouldn't this be used? + offset, + bytes); } void LLHTTPClient::head(const std::string& url, ResponderPtr responder, const F32 timeout) @@ -285,11 +295,11 @@ void LLHTTPClient::head(const std::string& url, ResponderPtr responder, const F3 void LLHTTPClient::get(const std::string& url, ResponderPtr responder, const LLSD& headers, const F32 timeout) { - request(url, LLURLRequest::HTTP_GET, NULL, responder, headers, timeout); + request(url, LLURLRequest::HTTP_GET, NULL, responder, timeout, headers); } void LLHTTPClient::getHeaderOnly(const std::string& url, ResponderPtr responder, const LLSD& headers, const F32 timeout) { - request(url, LLURLRequest::HTTP_HEAD, NULL, responder, headers, timeout); + request(url, LLURLRequest::HTTP_HEAD, NULL, responder, timeout, headers); } void LLHTTPClient::getHeaderOnly(const std::string& url, ResponderPtr responder, const F32 timeout) { @@ -406,12 +416,6 @@ void LLHTTPClient::post(const std::string& url, const U8* data, S32 size, Respon request(url, LLURLRequest::HTTP_POST, new RawInjector(data, size), responder, timeout); } -void LLHTTPClient::del(const std::string& url, ResponderPtr responder, const F32 timeout) -{ - request(url, LLURLRequest::HTTP_DELETE, NULL, responder, timeout); -} - -#if 1 void LLHTTPClient::postFile(const std::string& url, const std::string& filename, ResponderPtr responder, const F32 timeout) { request(url, LLURLRequest::HTTP_POST, new FileInjector(filename), responder, timeout); @@ -422,7 +426,28 @@ void LLHTTPClient::postFile(const std::string& url, const LLUUID& uuid, { request(url, LLURLRequest::HTTP_POST, new VFileInjector(uuid, asset_type), responder, timeout); } -#endif + +// static +void LLHTTPClient::del( + const std::string& url, + ResponderPtr responder, + const F32 timeout) +{ + request(url, LLURLRequest::HTTP_DELETE, NULL, responder, timeout); +} + +// static +void LLHTTPClient::move( + const std::string& url, + const std::string& destination, + ResponderPtr responder, + const F32 timeout) +{ + LLSD headers; + headers["Destination"] = destination; + request(url, LLURLRequest::HTTP_MOVE, NULL, responder, timeout, headers); +} + void LLHTTPClient::setPump(LLPumpIO& pump) { diff --git a/indra/llmessage/llhttpclient.h b/indra/llmessage/llhttpclient.h index 6bc838bfd1..57895aeec9 100644 --- a/indra/llmessage/llhttpclient.h +++ b/indra/llmessage/llhttpclient.h @@ -60,7 +60,8 @@ public: typedef LLCurl::Responder Responder; typedef LLCurl::ResponderPtr ResponderPtr; - // non-blocking + /** @name non-blocking API */ + //@{ static void head(const std::string& url, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); static void getByteRange(const std::string& url, S32 offset, S32 bytes, ResponderPtr, const LLSD& headers=LLSD(), const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); static void get(const std::string& url, ResponderPtr, const LLSD& headers = LLSD(), const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); @@ -70,13 +71,34 @@ public: static void getHeaderOnly(const std::string& url, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); static void getHeaderOnly(const std::string& url, ResponderPtr, const LLSD& headers, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); - ///< non-blocking static void post(const std::string& url, const LLSD& body, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); static void post(const std::string& url, const U8* data, S32 size, ResponderPtr responder, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); static void postFile(const std::string& url, const std::string& filename, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); static void postFile(const std::string& url, const LLUUID& uuid, LLAssetType::EType asset_type, ResponderPtr responder, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); + static void del( + const std::string& url, + ResponderPtr responder, + const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); + ///< sends a DELETE method, but we can't call it delete in c++ + + /** + * @brief Send a MOVE webdav method + * + * @param url The complete serialized (and escaped) url to get. + * @param destination The complete serialized destination url. + * @param responder The responder that will handle the result. + * @param timeout The number of seconds to give the server to respond. + */ + static void move( + const std::string& url, + const std::string& destination, + ResponderPtr responder, + const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); + + //@} + /** * @brief Blocking HTTP get that returns an LLSD map of status and body. * @@ -85,9 +107,7 @@ public: */ static LLSD blockingGet(const std::string& url); - static void del(const std::string& url, ResponderPtr, const F32 timeout=HTTP_REQUEST_EXPIRY_SECS); - ///< sends a DELETE method, but we can't call it delete in c++ - + static void setPump(LLPumpIO& pump); ///< must be called before any of the above calls are made diff --git a/indra/llmessage/llurlrequest.cpp b/indra/llmessage/llurlrequest.cpp index 475bd7a839..87e1d4e50f 100644 --- a/indra/llmessage/llurlrequest.cpp +++ b/indra/llmessage/llurlrequest.cpp @@ -385,6 +385,13 @@ bool LLURLRequest::configure() rv = true; break; + case HTTP_MOVE: + // Set the handle for an http post + mDetail->mCurlRequest->setoptString(CURLOPT_CUSTOMREQUEST, "MOVE"); + // *NOTE: should we check for the Destination header? + rv = true; + break; + default: llwarns << "Unhandled URLRequest action: " << mAction << llendl; break; diff --git a/indra/llmessage/llurlrequest.h b/indra/llmessage/llurlrequest.h index 288bf463f5..579706f83b 100644 --- a/indra/llmessage/llurlrequest.h +++ b/indra/llmessage/llurlrequest.h @@ -76,6 +76,7 @@ public: HTTP_PUT, HTTP_POST, HTTP_DELETE, + HTTP_MOVE, // Caller will need to set 'Destination' header REQUEST_ACTION_COUNT }; |