summaryrefslogtreecommitdiff
path: root/indra/newview/llwebprofile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llwebprofile.cpp')
-rw-r--r--indra/newview/llwebprofile.cpp49
1 files changed, 31 insertions, 18 deletions
diff --git a/indra/newview/llwebprofile.cpp b/indra/newview/llwebprofile.cpp
index f2d7e4585a..4528ad012d 100644
--- a/indra/newview/llwebprofile.cpp
+++ b/indra/newview/llwebprofile.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llwebprofile.cpp
* @brief Web profile access.
*
* $LicenseInfo:firstyear=2011&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2011, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -38,11 +38,12 @@
// newview
#include "llavataractions.h" // for getProfileURL()
#include "llviewermedia.h" // FIXME: don't use LLViewerMedia internals
+#include "llnotificationsutil.h"
#include "llcorehttputil.h"
// third-party
-#include "json/reader.h" // JSON
+
/*
* Workflow:
@@ -74,8 +75,8 @@ void LLWebProfile::uploadImage(LLPointer<LLImageFormatted> image, const std::str
// static
void LLWebProfile::setAuthCookie(const std::string& cookie)
{
- LL_DEBUGS("Snapshots") << "Setting auth cookie: " << cookie << LL_ENDL;
- sAuthCookie = cookie;
+ LL_DEBUGS("Snapshots") << "Setting auth cookie: " << cookie << LL_ENDL;
+ sAuthCookie = cookie;
}
@@ -134,6 +135,10 @@ void LLWebProfile::uploadImageCoro(LLPointer<LLImageFormatted> image, std::strin
{
LL_WARNS("Snapshots") << "Failed to get image upload config" << LL_ENDL;
LLWebProfile::reportImageUploadStatus(false);
+ if (image->getDataSize() > MAX_WEB_DATASIZE)
+ {
+ LLNotificationsUtil::add("CannotUploadSnapshotWebTooBig");
+ }
return;
}
@@ -148,7 +153,7 @@ void LLWebProfile::uploadImageCoro(LLPointer<LLImageFormatted> image, std::strin
httpHeaders->append(HTTP_OUT_HEADER_COOKIE, getAuthCookie());
httpHeaders->remove(HTTP_OUT_HEADER_CONTENT_TYPE);
httpHeaders->append(HTTP_OUT_HEADER_CONTENT_TYPE, "multipart/form-data; boundary=" + boundary);
-
+
LLCore::BufferArray::ptr_t body = LLWebProfile::buildPostData(data, image, boundary);
result = httpAdapter->postAndSuspend(httpRequest, uploadUrl, body, httpOpts, httpHeaders);
@@ -161,6 +166,10 @@ void LLWebProfile::uploadImageCoro(LLPointer<LLImageFormatted> image, std::strin
{
LL_WARNS("Snapshots") << "Failed to upload image data." << LL_ENDL;
LLWebProfile::reportImageUploadStatus(false);
+ if (image->getDataSize() > MAX_WEB_DATASIZE)
+ {
+ LLNotificationsUtil::add("CannotUploadSnapshotWebTooBig");
+ }
return;
}
@@ -188,6 +197,10 @@ void LLWebProfile::uploadImageCoro(LLPointer<LLImageFormatted> image, std::strin
{
LL_WARNS("Snapshots") << "Failed to upload image." << LL_ENDL;
LLWebProfile::reportImageUploadStatus(false);
+ if (image->getDataSize() > MAX_WEB_DATASIZE)
+ {
+ LLNotificationsUtil::add("CannotUploadSnapshotWebTooBig");
+ }
return;
}
@@ -196,8 +209,6 @@ void LLWebProfile::uploadImageCoro(LLPointer<LLImageFormatted> image, std::strin
LL_INFOS("Snapshots") << "Image uploaded." << LL_ENDL;
//LL_DEBUGS("Snapshots") << "Uploading image succeeded. Response: [" << raw.asString() << "]" << LL_ENDL;
LLWebProfile::reportImageUploadStatus(true);
-
-
}
/*static*/
@@ -239,10 +250,12 @@ LLCore::BufferArray::ptr_t LLWebProfile::buildPostData(const LLSD &data, LLPoint
<< "Content-Disposition: form-data; name=\"file\"; filename=\"snapshot.png\"\r\n"
<< "Content-Type: image/png\r\n\r\n";
+ LLImageDataSharedLock lock(image);
+
// Insert the image data.
//char *datap = (char *)(image->getData());
//bas.write(datap, image->getDataSize());
- U8* image_data = image->getData();
+ const U8* image_data = image->getData();
for (S32 i = 0; i < image->getDataSize(); ++i)
{
bas << image_data[i];
@@ -256,15 +269,15 @@ LLCore::BufferArray::ptr_t LLWebProfile::buildPostData(const LLSD &data, LLPoint
// static
void LLWebProfile::reportImageUploadStatus(bool ok)
{
- if (mStatusCallback)
- {
- mStatusCallback(ok);
- }
+ if (mStatusCallback)
+ {
+ mStatusCallback(ok);
+ }
}
// static
std::string LLWebProfile::getAuthCookie()
{
- // This is needed to test image uploads on Linux viewer built with OpenSSL 1.0.0 (0.9.8 works fine).
- return LLStringUtil::getenv("LL_SNAPSHOT_COOKIE", sAuthCookie);
+ // This is needed to test image uploads on Linux viewer built with OpenSSL 1.0.0 (0.9.8 works fine).
+ return LLStringUtil::getenv("LL_SNAPSHOT_COOKIE", sAuthCookie);
}