diff options
Diffstat (limited to 'indra/newview/llwebprofile.cpp')
| -rw-r--r-- | indra/newview/llwebprofile.cpp | 49 | 
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);  } | 
