diff options
Diffstat (limited to 'indra/llcommon')
-rw-r--r-- | indra/llcommon/llavatarname.cpp | 20 | ||||
-rw-r--r-- | indra/llcommon/llavatarname.h | 5 | ||||
-rw-r--r-- | indra/llcommon/llstring.cpp | 11 |
3 files changed, 19 insertions, 17 deletions
diff --git a/indra/llcommon/llavatarname.cpp b/indra/llcommon/llavatarname.cpp index 13b6ad705b..14dc41591b 100644 --- a/indra/llcommon/llavatarname.cpp +++ b/indra/llcommon/llavatarname.cpp @@ -40,13 +40,13 @@ // Store these in pre-built std::strings to avoid memory allocations in // LLSD map lookups -static const std::string SL_ID("sl_id"); static const std::string USERNAME("username"); static const std::string DISPLAY_NAME("display_name"); static const std::string LEGACY_FIRST_NAME("legacy_first_name"); static const std::string LEGACY_LAST_NAME("legacy_last_name"); static const std::string IS_DISPLAY_NAME_DEFAULT("is_display_name_default"); static const std::string DISPLAY_NAME_EXPIRES("display_name_expires"); +static const std::string DISPLAY_NAME_NEXT_UPDATE("display_name_next_update"); LLAvatarName::LLAvatarName() : mUsername(), @@ -55,7 +55,8 @@ LLAvatarName::LLAvatarName() mLegacyLastName(), mIsDisplayNameDefault(false), mIsDummy(false), - mExpires(F64_MAX) + mExpires(F64_MAX), + mNextUpdate(0.0) { } bool LLAvatarName::operator<(const LLAvatarName& rhs) const @@ -75,28 +76,21 @@ LLSD LLAvatarName::asLLSD() const sd[LEGACY_LAST_NAME] = mLegacyLastName; sd[IS_DISPLAY_NAME_DEFAULT] = mIsDisplayNameDefault; sd[DISPLAY_NAME_EXPIRES] = LLDate(mExpires); + sd[DISPLAY_NAME_NEXT_UPDATE] = LLDate(mNextUpdate); return sd; } void LLAvatarName::fromLLSD(const LLSD& sd) { - // *HACK: accept both wire formats for now, as we are transitioning - // People API to use "username" - if (sd.has(USERNAME)) - { - mUsername = sd[USERNAME].asString(); - } - else - { - // *TODO: Remove - mUsername = sd[SL_ID].asString(); - } + mUsername = sd[USERNAME].asString(); mDisplayName = sd[DISPLAY_NAME].asString(); mLegacyFirstName = sd[LEGACY_FIRST_NAME].asString(); mLegacyLastName = sd[LEGACY_LAST_NAME].asString(); mIsDisplayNameDefault = sd[IS_DISPLAY_NAME_DEFAULT].asBoolean(); LLDate expires = sd[DISPLAY_NAME_EXPIRES]; mExpires = expires.secondsSinceEpoch(); + LLDate next_update = sd[DISPLAY_NAME_NEXT_UPDATE]; + mNextUpdate = next_update.secondsSinceEpoch(); } std::string LLAvatarName::getCompleteName() const diff --git a/indra/llcommon/llavatarname.h b/indra/llcommon/llavatarname.h index 8b74e006c3..650a09a125 100644 --- a/indra/llcommon/llavatarname.h +++ b/indra/llcommon/llavatarname.h @@ -91,6 +91,11 @@ public: // last checked. // Unix time-from-epoch seconds for efficiency F64 mExpires; + + // You can only change your name every N hours, so record + // when the next update is allowed + // Unix time-from-epoch seconds + F64 mNextUpdate; }; #endif diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index b5a73ec1d1..637064d75f 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -694,14 +694,17 @@ void LLStringOps::setupDatetimeInfo (bool daylight) nowT = time (NULL); - tmpT = localtime (&nowT); - localT = mktime (tmpT); - tmpT = gmtime (&nowT); gmtT = mktime (tmpT); + tmpT = localtime (&nowT); + localT = mktime (tmpT); + sLocalTimeOffset = (long) (gmtT - localT); - + if (tmpT->tm_isdst) + { + sLocalTimeOffset -= 60 * 60; // 1 hour + } sPacificDaylightTime = daylight; sPacificTimeOffset = (sPacificDaylightTime? 7 : 8 ) * 60 * 60; |