summaryrefslogtreecommitdiff
path: root/indra/llinventory/llparcel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llinventory/llparcel.cpp')
-rwxr-xr-x[-rw-r--r--]indra/llinventory/llparcel.cpp242
1 files changed, 40 insertions, 202 deletions
diff --git a/indra/llinventory/llparcel.cpp b/indra/llinventory/llparcel.cpp
index 488bd45d8f..b24e14c72b 100644..100755
--- a/indra/llinventory/llparcel.cpp
+++ b/indra/llinventory/llparcel.cpp
@@ -72,6 +72,7 @@ static const std::string PARCEL_CATEGORY_STRING[LLParcel::C_COUNT] =
"shopping",
"stage",
"other",
+ "rental"
};
static const std::string PARCEL_CATEGORY_UI_STRING[LLParcel::C_COUNT + 1] =
{
@@ -89,6 +90,7 @@ static const std::string PARCEL_CATEGORY_UI_STRING[LLParcel::C_COUNT + 1] =
"Shopping",
"Stage",
"Other",
+ "Rental",
"Any", // valid string for parcel searches
};
@@ -134,7 +136,7 @@ LLParcel::LLParcel(const LLUUID &owner_id,
// virtual
LLParcel::~LLParcel()
{
- // user list cleaned up by LLDynamicArray destructor.
+ // user list cleaned up by std::vector destructor.
}
void LLParcel::init(const LLUUID &owner_id,
@@ -188,13 +190,9 @@ void LLParcel::init(const LLUUID &owner_id,
mMediaID.setNull();
mMediaAutoScale = 0;
mMediaLoop = TRUE;
- mObscureMedia = 1;
- mObscureMusic = 1;
mMediaWidth = 0;
mMediaHeight = 0;
setMediaCurrentURL(LLStringUtil::null);
- mMediaURLFilterEnable = FALSE;
- mMediaURLFilterList = LLSD::emptyArray();
mMediaAllowNavigate = TRUE;
mMediaURLTimeout = 0.0f;
mMediaPreventCameraZoom = FALSE;
@@ -207,7 +205,7 @@ void LLParcel::init(const LLUUID &owner_id,
mAABBMin.setVec(SOME_BIG_NUMBER, SOME_BIG_NUMBER, SOME_BIG_NUMBER);
mAABBMax.setVec(SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER, SOME_BIG_NEG_NUMBER);
- mLocalID = 0;
+ mLocalID = INVALID_PARCEL_ID;
//mSimWidePrimCorrection = 0;
setMaxPrimCapacity((S32)(sim_object_limit * area / (F32)(REGION_WIDTH_METERS * REGION_WIDTH_METERS)));
@@ -226,6 +224,11 @@ void LLParcel::init(const LLUUID &owner_id,
setPreviousOwnerID(LLUUID::null);
setPreviouslyGroupOwned(FALSE);
+
+ setSeeAVs(TRUE);
+ setAllowGroupAVSounds(TRUE);
+ setAllowAnyAVSounds(TRUE);
+ setHaveNewParcelLimitData(FALSE);
}
void LLParcel::overrideOwner(const LLUUID& owner_id, BOOL is_group_owned)
@@ -331,38 +334,6 @@ void LLParcel::setMediaURLResetTimer(F32 time)
mMediaResetTimer.setTimerExpirySec(time);
}
-void LLParcel::setMediaURLFilterList(LLSD list)
-{
- // sanity check LLSD
- // must be array of strings
- if (!list.isArray())
- {
- return;
- }
-
- for (S32 i = 0; i < list.size(); i++)
- {
- if (!list[i].isString())
- return;
- }
-
- // can't be too big
- const S32 MAX_SIZE = 50;
- if (list.size() > MAX_SIZE)
- {
- LLSD new_list = LLSD::emptyArray();
-
- for (S32 i = 0; i < llmin(list.size(), MAX_SIZE); i++)
- {
- new_list.append(list[i]);
- }
-
- list = new_list;
- }
-
- mMediaURLFilterList = list;
-}
-
// virtual
void LLParcel::setLocalID(S32 local_id)
{
@@ -443,117 +414,6 @@ BOOL LLParcel::allowTerraformBy(const LLUUID &agent_id) const
}
-bool LLParcel::isAgentBlockedFromParcel(LLParcel* parcelp,
- const LLUUID& agent_id,
- const uuid_vec_t& group_ids,
- const BOOL is_agent_identified,
- const BOOL is_agent_transacted,
- const BOOL is_agent_ageverified)
-{
- S32 current_group_access = parcelp->blockAccess(agent_id, LLUUID::null, is_agent_identified, is_agent_transacted, is_agent_ageverified);
- S32 count;
- bool is_allowed = (current_group_access == BA_ALLOWED) ? true: false;
- LLUUID group_id;
-
- count = group_ids.size();
- for (int i = 0; i < count && !is_allowed; i++)
- {
- group_id = group_ids[i];
- current_group_access = parcelp->blockAccess(agent_id, group_id, is_agent_identified, is_agent_transacted, is_agent_ageverified);
-
- if (current_group_access == BA_ALLOWED) is_allowed = true;
- }
-
- return !is_allowed;
-}
-
-BOOL LLParcel::isAgentBanned(const LLUUID& agent_id) const
-{
- // Test ban list
- if (mBanList.find(agent_id) != mBanList.end())
- {
- return TRUE;
- }
-
- return FALSE;
-}
-
-S32 LLParcel::blockAccess(const LLUUID& agent_id, const LLUUID& group_id,
- const BOOL is_agent_identified,
- const BOOL is_agent_transacted,
- const BOOL is_agent_ageverified) const
-{
- // Test ban list
- if (isAgentBanned(agent_id))
- {
- return BA_BANNED;
- }
-
- // Always allow owner on (unless he banned himself, useful for
- // testing). We will also allow estate owners/managers in if they
- // are not explicitly banned.
- if (agent_id == mOwnerID)
- {
- return BA_ALLOWED;
- }
-
- // Special case when using pass list where group access is being restricted but not
- // using access list. In this case group members are allowed only if they buy a pass.
- // We return BA_NOT_IN_LIST if not in list
- BOOL passWithGroup = getParcelFlag(PF_USE_PASS_LIST) && !getParcelFlag(PF_USE_ACCESS_LIST)
- && getParcelFlag(PF_USE_ACCESS_GROUP) && !mGroupID.isNull() && group_id == mGroupID;
-
-
- // Test group list
- if (getParcelFlag(PF_USE_ACCESS_GROUP)
- && !mGroupID.isNull()
- && group_id == mGroupID
- && !passWithGroup)
- {
- return BA_ALLOWED;
- }
-
- // Test access list
- if (getParcelFlag(PF_USE_ACCESS_LIST) || passWithGroup )
- {
- if (mAccessList.find(agent_id) != mAccessList.end())
- {
- return BA_ALLOWED;
- }
-
- return BA_NOT_ON_LIST;
- }
-
- // If we're not doing any other limitations, all users
- // can enter, unless
- if ( !getParcelFlag(PF_USE_ACCESS_GROUP)
- && !getParcelFlag(PF_USE_ACCESS_LIST))
- {
- //If the land is group owned, and you are in the group, bypass these checks
- if(getIsGroupOwned() && group_id == mGroupID)
- {
- return BA_ALLOWED;
- }
-
- // Test for "payment" access levels
- // Anonymous - No Payment Info on File
- if(getParcelFlag(PF_DENY_ANONYMOUS) && !is_agent_identified && !is_agent_transacted)
- {
- return BA_NO_ACCESS_LEVEL;
- }
- // AgeUnverified - Not Age Verified
- if(getParcelFlag(PF_DENY_AGEUNVERIFIED) && !is_agent_ageverified)
- {
- return BA_NOT_AGE_VERIFIED;
- }
-
- return BA_ALLOWED;
- }
-
- return BA_NOT_IN_GROUP;
-
-}
-
void LLParcel::setArea(S32 area, S32 sim_object_limit)
{
@@ -610,41 +470,13 @@ BOOL LLParcel::importAccessEntry(std::istream& input_stream, LLAccessEntry* entr
}
else
{
- llwarns << "Unknown keyword in parcel access entry section: <"
- << keyword << ">" << llendl;
+ LL_WARNS() << "Unknown keyword in parcel access entry section: <"
+ << keyword << ">" << LL_ENDL;
}
}
return input_stream.good();
}
-BOOL LLParcel::importMediaURLFilter(std::istream& input_stream, std::string& url)
-{
- skip_to_end_of_next_keyword("{", input_stream);
-
- while(input_stream.good())
- {
- skip_comments_and_emptyspace(input_stream);
- std::string line, keyword, value;
- get_line(line, input_stream, MAX_STRING);
- get_keyword_and_value(keyword, value, line);
-
- if ("}" == keyword)
- {
- break;
- }
- else if ("url" == keyword)
- {
- url = value;
- }
- else
- {
- llwarns << "Unknown keyword in parcel media url filter section: <"
- << keyword << ">" << llendl;
- }
- }
- return input_stream.good();
-}
-
// Assumes we are in a block "ParcelData"
void LLParcel::packMessage(LLMessageSystem* msg)
{
@@ -685,14 +517,12 @@ void LLParcel::packMessage(LLSD& msg)
msg["auto_scale"] = getMediaAutoScale();
msg["media_loop"] = getMediaLoop();
msg["media_current_url"] = getMediaCurrentURL();
- msg["obscure_media"] = getObscureMedia();
- msg["obscure_music"] = getObscureMusic();
+ msg["obscure_media"] = false; // OBSOLETE - no longer used
+ msg["obscure_music"] = false; // OBSOLETE - no longer used
msg["media_id"] = getMediaID();
msg["media_allow_navigate"] = getMediaAllowNavigate();
msg["media_prevent_camera_zoom"] = getMediaPreventCameraZoom();
msg["media_url_timeout"] = getMediaURLTimeout();
- msg["media_url_filter_enable"] = getMediaURLFilterEnable();
- msg["media_url_filter_list"] = getMediaURLFilterList();
msg["group_id"] = getGroupID();
msg["pass_price"] = mPassPrice;
msg["pass_hours"] = mPassHours;
@@ -702,7 +532,9 @@ void LLParcel::packMessage(LLSD& msg)
msg["user_location"] = ll_sd_from_vector3(mUserLocation);
msg["user_look_at"] = ll_sd_from_vector3(mUserLookAt);
msg["landing_type"] = (U8)mLandingType;
-
+ msg["see_avs"] = (LLSD::Boolean) getSeeAVs();
+ msg["group_av_sounds"] = (LLSD::Boolean) getAllowGroupAVSounds();
+ msg["any_av_sounds"] = (LLSD::Boolean) getAllowAnyAVSounds();
}
@@ -721,6 +553,24 @@ void LLParcel::unpackMessage(LLMessageSystem* msg)
msg->getStringFast( _PREHASH_ParcelData,_PREHASH_MediaURL, buffer );
setMediaURL(buffer);
+ BOOL see_avs = TRUE; // All default to true for legacy server behavior
+ BOOL any_av_sounds = TRUE;
+ BOOL group_av_sounds = TRUE;
+ bool have_new_parcel_limit_data = (msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_SeeAVs) > 0); // New version of server should send all 3 of these values
+ have_new_parcel_limit_data &= (msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_AnyAVSounds) > 0);
+ have_new_parcel_limit_data &= (msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_GroupAVSounds) > 0);
+ if (have_new_parcel_limit_data)
+ {
+ msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_SeeAVs, see_avs);
+ msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_AnyAVSounds, any_av_sounds);
+ msg->getBOOLFast(_PREHASH_ParcelData, _PREHASH_GroupAVSounds, group_av_sounds);
+ }
+ setSeeAVs((bool) see_avs);
+ setAllowAnyAVSounds((bool) any_av_sounds);
+ setAllowGroupAVSounds((bool) group_av_sounds);
+
+ setHaveNewParcelLimitData(have_new_parcel_limit_data);
+
// non-optimized version
msg->getU8 ( "ParcelData", "MediaAutoScale", mMediaAutoScale );
@@ -750,16 +600,13 @@ void LLParcel::unpackMessage(LLMessageSystem* msg)
msg->getS32("MediaData", "MediaWidth", mMediaWidth);
msg->getS32("MediaData", "MediaHeight", mMediaHeight);
msg->getU8 ( "MediaData", "MediaLoop", mMediaLoop );
- msg->getU8 ( "MediaData", "ObscureMedia", mObscureMedia );
- msg->getU8 ( "MediaData", "ObscureMusic", mObscureMusic );
+ // the ObscureMedia and ObscureMusic flags previously set here are no longer used
}
else
{
setMediaType(std::string("video/vnd.secondlife.qt.legacy"));
setMediaDesc(std::string("No Description available without Server Upgrade"));
mMediaLoop = true;
- mObscureMedia = true;
- mObscureMusic = true;
}
if(msg->getNumberOfBlocks("MediaLinkSharing") > 0)
@@ -767,7 +614,6 @@ void LLParcel::unpackMessage(LLMessageSystem* msg)
msg->getString("MediaLinkSharing", "MediaCurrentURL", buffer);
setMediaCurrentURL(buffer);
msg->getU8 ( "MediaLinkSharing", "MediaAllowNavigate", mMediaAllowNavigate );
- msg->getU8 ( "MediaLinkSharing", "MediaURLFilterEnable", mMediaURLFilterEnable );
msg->getU8 ( "MediaLinkSharing", "MediaPreventCameraZoom", mMediaPreventCameraZoom );
msg->getF32( "MediaLinkSharing", "MediaURLTimeout", mMediaURLTimeout);
}
@@ -947,8 +793,6 @@ BOOL LLParcel::addToAccessList(const LLUUID& agent_id, S32 time)
}
}
- removeFromBanList(agent_id);
-
LLAccessEntry new_entry;
new_entry.mID = agent_id;
new_entry.mTime = time;
@@ -992,8 +836,6 @@ BOOL LLParcel::addToBanList(const LLUUID& agent_id, S32 time)
}
}
- removeFromAccessList(agent_id);
-
LLAccessEntry new_entry;
new_entry.mID = agent_id;
new_entry.mTime = time;
@@ -1125,7 +967,7 @@ void LLParcel::startSale(const LLUUID& buyer_id, BOOL is_buyer_group)
mGroupID.setNull();
}
mSaleTimerExpires.start();
- mSaleTimerExpires.setTimerExpirySec(DEFAULT_USEC_SALE_TIMEOUT / SEC_TO_MICROSEC);
+ mSaleTimerExpires.setTimerExpirySec(U64Microseconds(DEFAULT_USEC_SALE_TIMEOUT));
mStatus = OS_LEASE_PENDING;
mClaimDate = time(NULL);
setAuctionID(0);
@@ -1225,13 +1067,9 @@ void LLParcel::clearParcel()
setMediaDesc(LLStringUtil::null);
setMediaAutoScale(0);
setMediaLoop(TRUE);
- mObscureMedia = 1;
- mObscureMusic = 1;
mMediaWidth = 0;
mMediaHeight = 0;
setMediaCurrentURL(LLStringUtil::null);
- setMediaURLFilterList(LLSD::emptyArray());
- setMediaURLFilterEnable(FALSE);
setMediaAllowNavigate(TRUE);
setMediaPreventCameraZoom(FALSE);
setMediaURLTimeout(0.0f);
@@ -1254,9 +1092,9 @@ void LLParcel::clearParcel()
void LLParcel::dump()
{
- llinfos << "parcel " << mLocalID << " area " << mArea << llendl;
- llinfos << " name <" << mName << ">" << llendl;
- llinfos << " desc <" << mDesc << ">" << llendl;
+ LL_INFOS() << "parcel " << mLocalID << " area " << mArea << LL_ENDL;
+ LL_INFOS() << " name <" << mName << ">" << LL_ENDL;
+ LL_INFOS() << " desc <" << mDesc << ">" << LL_ENDL;
}
const std::string& ownership_status_to_string(LLParcel::EOwnershipStatus status)
@@ -1336,7 +1174,7 @@ LLParcel::ECategory category_string_to_category(const std::string& s)
return (LLParcel::ECategory)i;
}
}
- llwarns << "Parcel category outside of possibilities " << s << llendl;
+ LL_WARNS() << "Parcel category outside of possibilities " << s << LL_ENDL;
return LLParcel::C_NONE;
}