diff options
Diffstat (limited to 'indra/llmessage')
-rw-r--r-- | indra/llmessage/llcachename.cpp | 40 | ||||
-rw-r--r-- | indra/llmessage/llcachename.h | 6 | ||||
-rw-r--r-- | indra/llmessage/llcurl.cpp | 24 |
3 files changed, 66 insertions, 4 deletions
diff --git a/indra/llmessage/llcachename.cpp b/indra/llmessage/llcachename.cpp index 4a66a31c35..a8f53a38c3 100644 --- a/indra/llmessage/llcachename.cpp +++ b/indra/llmessage/llcachename.cpp @@ -38,6 +38,8 @@ #include "message.h" #include "llmemtype.h" +#include <boost/regex.hpp> + // llsd serialization constants static const std::string AGENTS("agents"); static const std::string GROUPS("groups"); @@ -551,6 +553,44 @@ std::string LLCacheName::buildUsername(const std::string& full_name) return full_name; } +//static +std::string LLCacheName::buildLegacyName(const std::string& complete_name) +{ + // regexp doesn't play nice with unicode, chop off the display name + S32 open_paren = complete_name.rfind(" ("); + + if (open_paren == std::string::npos) + { + return complete_name; + } + + std::string username = complete_name.substr(open_paren); + boost::regex complete_name_regex("( \\()([a-z0-9]+)(.[a-z]+)*(\\))");
+ boost::match_results<std::string::const_iterator> name_results;
+ if (!boost::regex_match(username, name_results, complete_name_regex)) return complete_name;
+
+ std::string legacy_name = name_results[2]; + // capitalize the first letter + std::string cap_letter = legacy_name.substr(0, 1); + LLStringUtil::toUpper(cap_letter); + legacy_name = cap_letter + legacy_name.substr(1);
+
+ if (name_results[3].matched)
+ {
+ std::string last_name = name_results[3]; + std::string cap_letter = last_name.substr(1, 1); + LLStringUtil::toUpper(cap_letter); + last_name = cap_letter + last_name.substr(2);
+ legacy_name = legacy_name + " " + last_name;
+ }
+ else
+ {
+ legacy_name = legacy_name + " Resident";
+ }
+
+ return legacy_name; +} + // This is a little bit kludgy. LLCacheNameCallback is a slot instead of a function pointer. // The reason it is a slot is so that the legacy get() function below can bind an old callback // and pass it as a slot. The reason it isn't a boost::function is so that trackable behavior diff --git a/indra/llmessage/llcachename.h b/indra/llmessage/llcachename.h index b469803060..b108e37157 100644 --- a/indra/llmessage/llcachename.h +++ b/indra/llmessage/llcachename.h @@ -90,6 +90,12 @@ public: // "Random Linden" -> "random.linden" static std::string buildUsername(const std::string& name); + // Converts a complete display name to a legacy name + // if possible, otherwise returns the input + // "Alias (random.linden)" -> "Random Linden" + // "Something random" -> "Something random" + static std::string buildLegacyName(const std::string& name); + // If available, this method copies the group name into the string // provided. The caller must allocate at least // DB_GROUP_NAME_BUF_SIZE characters. If not available, this diff --git a/indra/llmessage/llcurl.cpp b/indra/llmessage/llcurl.cpp index 66f1ffd41b..6473b23e80 100644 --- a/indra/llmessage/llcurl.cpp +++ b/indra/llmessage/llcurl.cpp @@ -89,15 +89,29 @@ void check_curl_code(CURLcode code) { if (code != CURLE_OK) { - llerrs << "curl error detected: " << curl_easy_strerror(code) << llendl; + // linux appears to throw a curl error once per session for a bad initialization + // at a pretty random time (when enabling cookies). Making curl errors non-asserts + // for non-windows platforms for now. - Nyx + #if LL_WINDOWS + llerrs << "curl error detected: " << curl_easy_strerror(code) << llendl; + #else + llinfos << "curl error detected: " << curl_easy_strerror(code) << llendl; + #endif } } -void check_curl_multi_code(CURLMcode code) +void check_curl_multi_code(CURLMcode code) { if (code != CURLM_OK) { - llerrs << "curl multi error detected: " << curl_multi_strerror(code) << llendl; + // linux appears to throw a curl error once per session for a bad initialization + // at a pretty random time (when enabling cookies). Making curl errors non-asserts + // for non-windows platforms for now. - Nyx + #if LL_WINDOWS + llerrs << "curl multi error detected: " << curl_multi_strerror(code) << llendl; + #else + llinfos << "curl multi error detected: " << curl_multi_strerror(code) << llendl; + #endif } } @@ -1160,7 +1174,9 @@ void LLCurl::initClass() // Do not change this "unless you are familiar with and mean to control // internal operations of libcurl" // - http://curl.haxx.se/libcurl/c/curl_global_init.html - curl_global_init(CURL_GLOBAL_ALL); + CURLcode code = curl_global_init(CURL_GLOBAL_ALL); + + check_curl_code(code); Easy::sHandleMutex = new LLMutex(NULL); |