summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon')
-rw-r--r--indra/llcommon/llsdutil.cpp5
-rw-r--r--indra/llcommon/llsdutil.h4
-rw-r--r--indra/llcommon/lluuid.cpp2
-rw-r--r--indra/llcommon/roles_constants.h10
4 files changed, 17 insertions, 4 deletions
diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp
index 137539cc04..f62c8093d6 100644
--- a/indra/llcommon/llsdutil.cpp
+++ b/indra/llcommon/llsdutil.cpp
@@ -184,8 +184,9 @@ char* ll_pretty_print_sd(const LLSD& sd)
}
//compares the structure of an LLSD to a template LLSD and stores the
-//"valid" values in a 3rd LLSD. Default values are stored in the template
-//
+//"valid" values in a 3rd LLSD. Default values pulled from the template
+//if the tested LLSD does not contain the key/value pair.
+//Excess values in the test LLSD are ignored in the resultant_llsd.
//If the llsd to test has a specific key to a map and the values
//are not of the same type, false is returned or if the LLSDs are not
//of the same value. Ordering of arrays matters
diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h
index 7098fa8252..818566fc03 100644
--- a/indra/llcommon/llsdutil.h
+++ b/indra/llcommon/llsdutil.h
@@ -92,9 +92,11 @@ char* ll_pretty_print_sd(const LLSD& sd);
//compares the structure of an LLSD to a template LLSD and stores the
//"valid" values in a 3rd LLSD. Default values
-//are pulled from the template. Ordering of arrays matters
+//are pulled from the template. Extra keys/values in the test
+//are ignored in the resultant LLSD. Ordering of arrays matters
//Returns false if the test is of same type but values differ in type
//Otherwise, returns true
+
BOOL compare_llsd_with_template(
const LLSD& llsd_to_test,
const LLSD& template_llsd,
diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp
index 51e27e0708..1098d1bd3c 100644
--- a/indra/llcommon/lluuid.cpp
+++ b/indra/llcommon/lluuid.cpp
@@ -184,7 +184,7 @@ void LLUUID::toCompressedString(std::string& out) const
char bytes[UUID_BYTES+1];
memcpy(bytes, mData, UUID_BYTES); /* Flawfinder: ignore */
bytes[UUID_BYTES] = '\0';
- out = bytes;
+ out.assign(bytes, UUID_BYTES);
}
// *TODO: deprecate
diff --git a/indra/llcommon/roles_constants.h b/indra/llcommon/roles_constants.h
index 23ebcf34d6..7773b43f4a 100644
--- a/indra/llcommon/roles_constants.h
+++ b/indra/llcommon/roles_constants.h
@@ -143,11 +143,18 @@ const U64 GP_NOTICES_RECEIVE = 0x1LL << 43; // Receive Notices and View Notice
const U64 GP_PROPOSAL_START = 0x1LL << 44; // Start Proposal
const U64 GP_PROPOSAL_VOTE = 0x1LL << 45; // Vote on Proposal
+// Group chat moderation related
+const U64 GP_SESSION_JOIN = 0x1LL << 16; //can join session
+const U64 GP_SESSION_VOICE = 0x1LL << 27; //can hear/talk
+const U64 GP_SESSION_MODERATOR = 0x1LL << 37; //can mute people's session
+
const U64 GP_DEFAULT_MEMBER = GP_ACCOUNTING_ACCOUNTABLE
| GP_LAND_ALLOW_SET_HOME
| GP_NOTICES_RECEIVE
| GP_PROPOSAL_START
| GP_PROPOSAL_VOTE
+ | GP_SESSION_JOIN
+ | GP_SESSION_VOICE
;
const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE
@@ -188,5 +195,8 @@ const U64 GP_DEFAULT_OFFICER = GP_ACCOUNTING_ACCOUNTABLE
| GP_PROPOSAL_VOTE
| GP_ROLE_ASSIGN_MEMBER_LIMITED
| GP_ROLE_PROPERTIES
+ | GP_SESSION_MODERATOR
+ | GP_SESSION_JOIN
+ | GP_SESSION_VOICE
;
#endif