summaryrefslogtreecommitdiff
path: root/indra/llmessage/llhttpclient.cpp
diff options
context:
space:
mode:
authorJosh Bell <josh@lindenlab.com>2007-03-14 23:03:50 +0000
committerJosh Bell <josh@lindenlab.com>2007-03-14 23:03:50 +0000
commit00dbacb215da8d6b6739b4bcefebee552de89a9c (patch)
treee1256e1fa3b195a1128bb152a876729c7f9a163d /indra/llmessage/llhttpclient.cpp
parentcf405184285c25723249d5a023b28d9498cf0c3f (diff)
svn merge svn+ssh://svn.lindenlab.com/svn/linden/release@59161 svn+ssh://svn.lindenlab.com/svn/linden/branches/release-candidate@59163 --> release
Diffstat (limited to 'indra/llmessage/llhttpclient.cpp')
-rw-r--r--indra/llmessage/llhttpclient.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/indra/llmessage/llhttpclient.cpp b/indra/llmessage/llhttpclient.cpp
index d83308d082..f93a12b274 100644
--- a/indra/llmessage/llhttpclient.cpp
+++ b/indra/llmessage/llhttpclient.cpp
@@ -131,6 +131,27 @@ namespace
const LLSD mSD;
};
+
+ class RawInjector : public Injector
+ {
+ public:
+ RawInjector(const U8* data, S32 size) : mData(data), mSize(size) {}
+ virtual ~RawInjector() {}
+
+ const char* contentType() { return "application/octet-stream"; }
+
+ virtual EStatus process_impl(const LLChannelDescriptors& channels,
+ buffer_ptr_t& buffer, bool& eos, LLSD& context, LLPumpIO* pump)
+ {
+ LLBufferStream ostream(channels, buffer.get());
+ ostream.write((const char *)mData, mSize); // hopefully chars are always U8s
+ eos = true;
+ return STATUS_DONE;
+ }
+
+ const U8* mData;
+ S32 mSize;
+ };
class FileInjector : public Injector
{
@@ -301,6 +322,11 @@ void LLHTTPClient::post(const std::string& url, const LLSD& body, ResponderPtr r
request(url, LLURLRequest::HTTP_POST, new LLSDInjector(body), responder);
}
+void LLHTTPClient::post(const std::string& url, const U8* data, S32 size, ResponderPtr responder)
+{
+ request(url, LLURLRequest::HTTP_POST, new RawInjector(data, size), responder);
+}
+
void LLHTTPClient::del(const std::string& url, ResponderPtr responder)
{
request(url, LLURLRequest::HTTP_DELETE, NULL, responder);