diff options
author | Jacek Antonelli | 2008-08-15 23:44:54 -0500 |
---|---|---|
committer | Jacek Antonelli | 2008-08-15 23:44:54 -0500 |
commit | b2afb8800bb033a04bb3ecdf0363068d56648ef1 (patch) | |
tree | 3568129b5bbddb47cd39d622b4137a8fbff4abaf /linden/indra/newview/llstartup.cpp | |
parent | Second Life viewer sources 1.14.0.1 (diff) | |
download | meta-impy-b2afb8800bb033a04bb3ecdf0363068d56648ef1.zip meta-impy-b2afb8800bb033a04bb3ecdf0363068d56648ef1.tar.gz meta-impy-b2afb8800bb033a04bb3ecdf0363068d56648ef1.tar.bz2 meta-impy-b2afb8800bb033a04bb3ecdf0363068d56648ef1.tar.xz |
Second Life viewer sources 1.15.0.2
Diffstat (limited to '')
-rw-r--r-- | linden/indra/newview/llstartup.cpp | 153 |
1 files changed, 71 insertions, 82 deletions
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 2fe1190..585f769 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -4,6 +4,7 @@ | |||
4 | * | 4 | * |
5 | * Copyright (c) 2004-2007, Linden Research, Inc. | 5 | * Copyright (c) 2004-2007, Linden Research, Inc. |
6 | * | 6 | * |
7 | * Second Life Viewer Source Code | ||
7 | * The source code in this file ("Source Code") is provided by Linden Lab | 8 | * The source code in this file ("Source Code") is provided by Linden Lab |
8 | * to you under the terms of the GNU General Public License, version 2.0 | 9 | * to you under the terms of the GNU General Public License, version 2.0 |
9 | * ("GPL"), unless you have obtained a separate licensing agreement | 10 | * ("GPL"), unless you have obtained a separate licensing agreement |
@@ -54,6 +55,7 @@ | |||
54 | #include "llloginflags.h" | 55 | #include "llloginflags.h" |
55 | #include "llmd5.h" | 56 | #include "llmd5.h" |
56 | #include "llmemorystream.h" | 57 | #include "llmemorystream.h" |
58 | #include "llmessageconfig.h" | ||
57 | #include "llregionhandle.h" | 59 | #include "llregionhandle.h" |
58 | #include "llsd.h" | 60 | #include "llsd.h" |
59 | #include "llsdserialize.h" | 61 | #include "llsdserialize.h" |
@@ -86,7 +88,6 @@ | |||
86 | #include "llfloatergesture.h" | 88 | #include "llfloatergesture.h" |
87 | #include "llfloaterland.h" | 89 | #include "llfloaterland.h" |
88 | #include "llfloatertopobjects.h" | 90 | #include "llfloatertopobjects.h" |
89 | #include "llfloaterrate.h" | ||
90 | #include "llfloatertos.h" | 91 | #include "llfloatertos.h" |
91 | #include "llfloaterworldmap.h" | 92 | #include "llfloaterworldmap.h" |
92 | #include "llframestats.h" | 93 | #include "llframestats.h" |
@@ -127,6 +128,7 @@ | |||
127 | #include "llviewerassetstorage.h" | 128 | #include "llviewerassetstorage.h" |
128 | #include "llviewercamera.h" | 129 | #include "llviewercamera.h" |
129 | #include "llviewerdisplay.h" | 130 | #include "llviewerdisplay.h" |
131 | #include "llviewergenericmessage.h" | ||
130 | #include "llviewergesture.h" | 132 | #include "llviewergesture.h" |
131 | #include "llviewerimagelist.h" | 133 | #include "llviewerimagelist.h" |
132 | #include "llviewermenu.h" | 134 | #include "llviewermenu.h" |
@@ -147,8 +149,8 @@ | |||
147 | #include "viewer.h" | 149 | #include "viewer.h" |
148 | #include "llmediaengine.h" | 150 | #include "llmediaengine.h" |
149 | #include "llfasttimerview.h" | 151 | #include "llfasttimerview.h" |
152 | #include "llfloatermap.h" | ||
150 | #include "llweb.h" | 153 | #include "llweb.h" |
151 | #include "llfloaterhtml.h" | ||
152 | 154 | ||
153 | #if LL_LIBXUL_ENABLED | 155 | #if LL_LIBXUL_ENABLED |
154 | #include "llmozlib.h" | 156 | #include "llmozlib.h" |
@@ -233,7 +235,7 @@ void callback_choose_gender(S32 option, void* userdata); | |||
233 | void init_start_screen(S32 location_id); | 235 | void init_start_screen(S32 location_id); |
234 | void release_start_screen(); | 236 | void release_start_screen(); |
235 | void process_connect_to_userserver(LLMessageSystem* msg, void**); | 237 | void process_connect_to_userserver(LLMessageSystem* msg, void**); |
236 | 238 | void reset_login(); | |
237 | 239 | ||
238 | // | 240 | // |
239 | // exported functionality | 241 | // exported functionality |
@@ -347,13 +349,16 @@ BOOL idle_startup() | |||
347 | { | 349 | { |
348 | gViewerWindow->alertXml("DisplaySetToSafe"); | 350 | gViewerWindow->alertXml("DisplaySetToSafe"); |
349 | } | 351 | } |
350 | else if (gSavedSettings.getS32("LastFeatureVersion") < gFeatureManagerp->getVersion()) | 352 | else if ((gSavedSettings.getS32("LastFeatureVersion") < gFeatureManagerp->getVersion()) && |
353 | (gSavedSettings.getS32("LastFeatureVersion") != 0)) | ||
351 | { | 354 | { |
352 | if (gSavedSettings.getS32("LastFeatureVersion") != 0) | 355 | gViewerWindow->alertXml("DisplaySetToRecommended"); |
353 | { | 356 | } |
354 | gViewerWindow->alertXml("DisplaySetToRecommended"); | 357 | else if (!gViewerWindow->getInitAlert().empty()) |
355 | } | 358 | { |
359 | gViewerWindow->alertXml(gViewerWindow->getInitAlert()); | ||
356 | } | 360 | } |
361 | |||
357 | gSavedSettings.setS32("LastFeatureVersion", gFeatureManagerp->getVersion()); | 362 | gSavedSettings.setS32("LastFeatureVersion", gFeatureManagerp->getVersion()); |
358 | 363 | ||
359 | LLString xml_file = LLUI::locateSkin("xui_version.xml"); | 364 | LLString xml_file = LLUI::locateSkin("xui_version.xml"); |
@@ -414,6 +419,7 @@ BOOL idle_startup() | |||
414 | port = gSavedSettings.getU32("ConnectionPort"); | 419 | port = gSavedSettings.getU32("ConnectionPort"); |
415 | } | 420 | } |
416 | 421 | ||
422 | LLMessageConfig::initClass("viewer", gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "")); | ||
417 | if(!start_messaging_system( | 423 | if(!start_messaging_system( |
418 | message_template_path, | 424 | message_template_path, |
419 | port, | 425 | port, |
@@ -522,12 +528,11 @@ BOOL idle_startup() | |||
522 | // the locale to protect it, as exotic/non-C locales | 528 | // the locale to protect it, as exotic/non-C locales |
523 | // causes our code lots of general critical weirdness | 529 | // causes our code lots of general critical weirdness |
524 | // and crashness. (SL-35450) | 530 | // and crashness. (SL-35450) |
525 | char *saved_locale = setlocale(LC_ALL, NULL); | 531 | std::string saved_locale = setlocale(LC_ALL, NULL); |
526 | #endif // LL_LINUX | 532 | #endif // LL_LINUX |
527 | LLMozLib::getInstance()->init( profileBaseDir, gDirUtilp->getExpandedFilename( LL_PATH_MOZILLA_PROFILE, "" ) ); | 533 | LLMozLib::getInstance()->init( profileBaseDir, gDirUtilp->getExpandedFilename( LL_PATH_MOZILLA_PROFILE, "" ) ); |
528 | #if LL_LINUX | 534 | #if LL_LINUX |
529 | if (saved_locale) | 535 | setlocale(LC_ALL, saved_locale.c_str() ); |
530 | setlocale(LC_ALL, saved_locale); | ||
531 | #endif // LL_LINUX | 536 | #endif // LL_LINUX |
532 | 537 | ||
533 | std::ostringstream codec; | 538 | std::ostringstream codec; |
@@ -768,7 +773,7 @@ BOOL idle_startup() | |||
768 | if (gUserServerChoice == USERSERVER_OTHER) | 773 | if (gUserServerChoice == USERSERVER_OTHER) |
769 | { | 774 | { |
770 | gUserServer.setHostByName( server_label.c_str() ); | 775 | gUserServer.setHostByName( server_label.c_str() ); |
771 | snprintf(gUserServerName, MAX_STRING, "%s", server_label.c_str()); /* Flawfinder: ignore */ | 776 | snprintf(gUserServerName, MAX_STRING, "%s", server_label.c_str()); /* Flawfinder: ignore */ |
772 | } | 777 | } |
773 | } | 778 | } |
774 | 779 | ||
@@ -875,7 +880,7 @@ BOOL idle_startup() | |||
875 | args["[HOST_NAME]"] = host_name; | 880 | args["[HOST_NAME]"] = host_name; |
876 | 881 | ||
877 | gViewerWindow->alertXml("UnableToConnect", args, login_alert_done ); | 882 | gViewerWindow->alertXml("UnableToConnect", args, login_alert_done ); |
878 | gStartupState = STATE_LOGIN_SHOW; | 883 | reset_login(); |
879 | return FALSE; | 884 | return FALSE; |
880 | } | 885 | } |
881 | break; | 886 | break; |
@@ -912,7 +917,7 @@ BOOL idle_startup() | |||
912 | login_alert_status, NULL); | 917 | login_alert_status, NULL); |
913 | 918 | ||
914 | // Back up to login screen | 919 | // Back up to login screen |
915 | gStartupState = STATE_LOGIN_SHOW; | 920 | reset_login(); |
916 | gViewerStats->incStat(LLViewerStats::ST_LOGIN_TIMEOUT_COUNT); | 921 | gViewerStats->incStat(LLViewerStats::ST_LOGIN_TIMEOUT_COUNT); |
917 | } | 922 | } |
918 | ms_sleep(1); | 923 | ms_sleep(1); |
@@ -928,7 +933,7 @@ BOOL idle_startup() | |||
928 | 933 | ||
929 | gViewerWindow->alertXml("PleaseSelectServer", args, login_alert_done ); | 934 | gViewerWindow->alertXml("PleaseSelectServer", args, login_alert_done ); |
930 | 935 | ||
931 | gStartupState = STATE_LOGIN_SHOW; | 936 | reset_login(); |
932 | return FALSE; | 937 | return FALSE; |
933 | } | 938 | } |
934 | 939 | ||
@@ -958,16 +963,7 @@ BOOL idle_startup() | |||
958 | } | 963 | } |
959 | 964 | ||
960 | llinfos << "Verifying message template..." << llendl; | 965 | llinfos << "Verifying message template..." << llendl; |
961 | 966 | LLMessageSystem::sendSecureMessageTemplateChecksum(mt_host); | |
962 | // register with the message system so it knows we're | ||
963 | // expecting this message | ||
964 | LLMessageSystem* msg = gMessageSystem; | ||
965 | msg->setHandlerFuncFast(_PREHASH_TemplateChecksumReply, null_message_callback, NULL); | ||
966 | msg->newMessageFast(_PREHASH_SecuredTemplateChecksumRequest); | ||
967 | msg->nextBlockFast(_PREHASH_TokenBlock); | ||
968 | lldebugs << "random token: " << gTemplateToken << llendl; | ||
969 | msg->addUUIDFast(_PREHASH_Token, gTemplateToken); | ||
970 | msg->sendReliable(mt_host); | ||
971 | 967 | ||
972 | timeout.reset(); | 968 | timeout.reset(); |
973 | gStartupState++; | 969 | gStartupState++; |
@@ -976,40 +972,16 @@ BOOL idle_startup() | |||
976 | 972 | ||
977 | if (STATE_MESSAGE_TEMPLATE_WAIT == gStartupState) | 973 | if (STATE_MESSAGE_TEMPLATE_WAIT == gStartupState) |
978 | { | 974 | { |
979 | U32 remote_template_checksum = 0; | ||
980 | |||
981 | U8 major_version = 0; | ||
982 | U8 minor_version = 0; | ||
983 | U8 patch_version = 0; | ||
984 | U8 server_version = 0; | ||
985 | U32 flags = 0x0; | ||
986 | |||
987 | LLMessageSystem* msg = gMessageSystem; | 975 | LLMessageSystem* msg = gMessageSystem; |
988 | while (msg->checkMessages(gFrameCount)) | 976 | while (msg->checkAllMessages(gFrameCount, gServicePump)) |
989 | { | 977 | { |
990 | if (msg->isMessageFast(_PREHASH_TemplateChecksumReply)) | 978 | if (msg->isTemplateConfirmed()) |
991 | { | 979 | { |
992 | LLUUID token; | ||
993 | msg->getUUID("TokenBlock", "Token", token); | ||
994 | if(token != gTemplateToken) | ||
995 | { | ||
996 | llwarns << "Incorrect token in template checksum reply: " | ||
997 | << token << llendl; | ||
998 | return do_normal_idle; | ||
999 | } | ||
1000 | msg->getU32("DataBlock", "Checksum", remote_template_checksum); | ||
1001 | msg->getU8 ("DataBlock", "MajorVersion", major_version); | ||
1002 | msg->getU8 ("DataBlock", "MinorVersion", minor_version); | ||
1003 | msg->getU8 ("DataBlock", "PatchVersion", patch_version); | ||
1004 | msg->getU8 ("DataBlock", "ServerVersion", server_version); | ||
1005 | msg->getU32("DataBlock", "Flags", flags); | ||
1006 | |||
1007 | BOOL update_available = FALSE; | 980 | BOOL update_available = FALSE; |
1008 | BOOL mandatory = FALSE; | 981 | BOOL mandatory = FALSE; |
1009 | 982 | ||
1010 | if (remote_template_checksum != msg->mMessageFileChecksum) | 983 | if (!LLMessageSystem::doesTemplateMatch()) |
1011 | { | 984 | { |
1012 | llinfos << "Message template out of sync" << llendl; | ||
1013 | // Mandatory update -- message template checksum doesn't match | 985 | // Mandatory update -- message template checksum doesn't match |
1014 | update_available = TRUE; | 986 | update_available = TRUE; |
1015 | mandatory = TRUE; | 987 | mandatory = TRUE; |
@@ -1029,6 +1001,7 @@ BOOL idle_startup() | |||
1029 | quit = TRUE; | 1001 | quit = TRUE; |
1030 | } | 1002 | } |
1031 | } | 1003 | } |
1004 | |||
1032 | // Bail out and clean up circuit | 1005 | // Bail out and clean up circuit |
1033 | if (quit) | 1006 | if (quit) |
1034 | { | 1007 | { |
@@ -1039,7 +1012,6 @@ BOOL idle_startup() | |||
1039 | } | 1012 | } |
1040 | 1013 | ||
1041 | // If we get here, we've got a compatible message template | 1014 | // If we get here, we've got a compatible message template |
1042 | |||
1043 | if (!mandatory) | 1015 | if (!mandatory) |
1044 | { | 1016 | { |
1045 | llinfos << "Message template is current!" << llendl; | 1017 | llinfos << "Message template is current!" << llendl; |
@@ -1076,7 +1048,7 @@ BOOL idle_startup() | |||
1076 | NULL); | 1048 | NULL); |
1077 | 1049 | ||
1078 | // Back up to login screen | 1050 | // Back up to login screen |
1079 | gStartupState = STATE_LOGIN_SHOW; | 1051 | reset_login(); |
1080 | gViewerStats->incStat(LLViewerStats::ST_LOGIN_TIMEOUT_COUNT); | 1052 | gViewerStats->incStat(LLViewerStats::ST_LOGIN_TIMEOUT_COUNT); |
1081 | } | 1053 | } |
1082 | else | 1054 | else |
@@ -1206,7 +1178,7 @@ BOOL idle_startup() | |||
1206 | } | 1178 | } |
1207 | // Process messages to keep from dropping circuit. | 1179 | // Process messages to keep from dropping circuit. |
1208 | LLMessageSystem* msg = gMessageSystem; | 1180 | LLMessageSystem* msg = gMessageSystem; |
1209 | while (msg->checkMessages(gFrameCount)) | 1181 | while (msg->checkAllMessages(gFrameCount, gServicePump)) |
1210 | { | 1182 | { |
1211 | } | 1183 | } |
1212 | msg->processAcks(); | 1184 | msg->processAcks(); |
@@ -1231,7 +1203,7 @@ BOOL idle_startup() | |||
1231 | } | 1203 | } |
1232 | // Process messages to keep from dropping circuit. | 1204 | // Process messages to keep from dropping circuit. |
1233 | LLMessageSystem* msg = gMessageSystem; | 1205 | LLMessageSystem* msg = gMessageSystem; |
1234 | while (msg->checkMessages(gFrameCount)) | 1206 | while (msg->checkAllMessages(gFrameCount, gServicePump)) |
1235 | { | 1207 | { |
1236 | } | 1208 | } |
1237 | msg->processAcks(); | 1209 | msg->processAcks(); |
@@ -1622,7 +1594,7 @@ BOOL idle_startup() | |||
1622 | LLStringBase<char>::format_map_t args; | 1594 | LLStringBase<char>::format_map_t args; |
1623 | args["[ERROR_MESSAGE]"] = emsg.str(); | 1595 | args["[ERROR_MESSAGE]"] = emsg.str(); |
1624 | gViewerWindow->alertXml("ErrorMessage", args, login_alert_done); | 1596 | gViewerWindow->alertXml("ErrorMessage", args, login_alert_done); |
1625 | gStartupState = STATE_LOGIN_SHOW; | 1597 | reset_login(); |
1626 | gAutoLogin = FALSE; | 1598 | gAutoLogin = FALSE; |
1627 | show_connect_box = TRUE; | 1599 | show_connect_box = TRUE; |
1628 | } | 1600 | } |
@@ -1639,7 +1611,7 @@ BOOL idle_startup() | |||
1639 | LLStringBase<char>::format_map_t args; | 1611 | LLStringBase<char>::format_map_t args; |
1640 | args["[ERROR_MESSAGE]"] = emsg.str(); | 1612 | args["[ERROR_MESSAGE]"] = emsg.str(); |
1641 | gViewerWindow->alertXml("ErrorMessage", args, login_alert_done); | 1613 | gViewerWindow->alertXml("ErrorMessage", args, login_alert_done); |
1642 | gStartupState = STATE_LOGIN_SHOW; | 1614 | reset_login(); |
1643 | gAutoLogin = FALSE; | 1615 | gAutoLogin = FALSE; |
1644 | show_connect_box = TRUE; | 1616 | show_connect_box = TRUE; |
1645 | } | 1617 | } |
@@ -1937,7 +1909,7 @@ BOOL idle_startup() | |||
1937 | ++gStartupState; | 1909 | ++gStartupState; |
1938 | } | 1910 | } |
1939 | LLMessageSystem* msg = gMessageSystem; | 1911 | LLMessageSystem* msg = gMessageSystem; |
1940 | while (msg->checkMessages(gFrameCount)) | 1912 | while (msg->checkAllMessages(gFrameCount, gServicePump)) |
1941 | { | 1913 | { |
1942 | } | 1914 | } |
1943 | msg->processAcks(); | 1915 | msg->processAcks(); |
@@ -1956,8 +1928,7 @@ BOOL idle_startup() | |||
1956 | LLMessageSystem* msg = gMessageSystem; | 1928 | LLMessageSystem* msg = gMessageSystem; |
1957 | msg->setHandlerFuncFast( | 1929 | msg->setHandlerFuncFast( |
1958 | _PREHASH_AgentMovementComplete, | 1930 | _PREHASH_AgentMovementComplete, |
1959 | process_agent_movement_complete, | 1931 | process_agent_movement_complete); |
1960 | NULL); | ||
1961 | LLViewerRegion* regionp = gAgent.getRegion(); | 1932 | LLViewerRegion* regionp = gAgent.getRegion(); |
1962 | if(!gRunLocal && regionp) | 1933 | if(!gRunLocal && regionp) |
1963 | { | 1934 | { |
@@ -1994,9 +1965,9 @@ BOOL idle_startup() | |||
1994 | if (STATE_AGENT_WAIT == gStartupState) | 1965 | if (STATE_AGENT_WAIT == gStartupState) |
1995 | { | 1966 | { |
1996 | LLMessageSystem* msg = gMessageSystem; | 1967 | LLMessageSystem* msg = gMessageSystem; |
1997 | while (msg->checkMessages(gFrameCount)) | 1968 | while (msg->checkAllMessages(gFrameCount, gServicePump)) |
1998 | { | 1969 | { |
1999 | if (msg->isMessageFast(_PREHASH_AgentMovementComplete)) | 1970 | if (gAgentMovementCompleted) |
2000 | { | 1971 | { |
2001 | gStartupState++; | 1972 | gStartupState++; |
2002 | // Sometimes we have more than one message in the | 1973 | // Sometimes we have more than one message in the |
@@ -2794,7 +2765,7 @@ void on_userserver_name_resolved( BOOL success, const LLString& host_name, U32 i | |||
2794 | LLStringBase<char>::format_map_t args; | 2765 | LLStringBase<char>::format_map_t args; |
2795 | args["[HOST_NAME]"] = host_name; | 2766 | args["[HOST_NAME]"] = host_name; |
2796 | gViewerWindow->alertXml("SetByHostFail", args, login_alert_done ); | 2767 | gViewerWindow->alertXml("SetByHostFail", args, login_alert_done ); |
2797 | gStartupState = STATE_LOGIN_SHOW; | 2768 | reset_login(); |
2798 | } | 2769 | } |
2799 | } | 2770 | } |
2800 | 2771 | ||
@@ -2896,7 +2867,7 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2896 | { | 2867 | { |
2897 | app_force_quit(); | 2868 | app_force_quit(); |
2898 | // Bump them back to the login screen. | 2869 | // Bump them back to the login screen. |
2899 | //gStartupState = STATE_LOGIN_SHOW; | 2870 | //reset_login(); |
2900 | } | 2871 | } |
2901 | else | 2872 | else |
2902 | { | 2873 | { |
@@ -2904,7 +2875,21 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2904 | } | 2875 | } |
2905 | return; | 2876 | return; |
2906 | } | 2877 | } |
2907 | 2878 | ||
2879 | LLSD query_map = LLSD::emptyMap(); | ||
2880 | // *TODO place os string in a global constant | ||
2881 | #if LL_WINDOWS | ||
2882 | query_map["os"] = "win"; | ||
2883 | #elif LL_DARWIN | ||
2884 | query_map["os"] = "mac"; | ||
2885 | #elif LL_LINUX | ||
2886 | query_map["os"] = "lnx"; | ||
2887 | #endif | ||
2888 | query_map["userserver"] = gUserServerName; | ||
2889 | query_map["channel"] = gChannelName; | ||
2890 | // *TODO constantize this guy | ||
2891 | LLURI update_url = LLURI::buildHTTP("secondlife.com", 80, "update.php", query_map); | ||
2892 | |||
2908 | #if LL_WINDOWS | 2893 | #if LL_WINDOWS |
2909 | char ip[MAX_STRING]; /* Flawfinder: ignore */ | 2894 | char ip[MAX_STRING]; /* Flawfinder: ignore */ |
2910 | 2895 | ||
@@ -2936,9 +2921,6 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2936 | } | 2921 | } |
2937 | u32_to_ip_string(gUserServer.getAddress(), ip); | 2922 | u32_to_ip_string(gUserServer.getAddress(), ip); |
2938 | 2923 | ||
2939 | std::ostringstream params; | ||
2940 | params << "-userserver " << gUserServerName; | ||
2941 | |||
2942 | // if a sim name was passed in via command line parameter (typically through a SLURL) | 2924 | // if a sim name was passed in via command line parameter (typically through a SLURL) |
2943 | if ( LLURLSimString::sInstance.mSimString.length() ) | 2925 | if ( LLURLSimString::sInstance.mSimString.length() ) |
2944 | { | 2926 | { |
@@ -2946,6 +2928,8 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2946 | gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString ); | 2928 | gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString ); |
2947 | }; | 2929 | }; |
2948 | 2930 | ||
2931 | std::ostringstream params; | ||
2932 | params << "-url \"" << update_url.asString() << "\""; | ||
2949 | if (gHideLinks) | 2933 | if (gHideLinks) |
2950 | { | 2934 | { |
2951 | // Figure out the program name. | 2935 | // Figure out the program name. |
@@ -2966,7 +2950,8 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2966 | program_name = "SecondLife"; | 2950 | program_name = "SecondLife"; |
2967 | } | 2951 | } |
2968 | 2952 | ||
2969 | params << " -silent -name \"" << gSecondLife << "\" -program \"" << program_name << "\""; | 2953 | params << " -silent -name \"" << gSecondLife << "\""; |
2954 | params << " -program \"" << program_name << "\""; | ||
2970 | } | 2955 | } |
2971 | 2956 | ||
2972 | llinfos << "Calling updater: " << update_exe_path << " " << params.str() << llendl; | 2957 | llinfos << "Calling updater: " << update_exe_path << " " << params.str() << llendl; |
@@ -2984,12 +2969,12 @@ void update_dialog_callback(S32 option, void *userdata) | |||
2984 | // record the location to start at next time | 2969 | // record the location to start at next time |
2985 | gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString ); | 2970 | gSavedSettings.setString( "NextLoginLocation", LLURLSimString::sInstance.mSimString ); |
2986 | }; | 2971 | }; |
2987 | 2972 | ||
2988 | update_exe_path = "'"; | 2973 | update_exe_path = "'"; |
2989 | update_exe_path += gDirUtilp->getAppRODataDir(); | 2974 | update_exe_path += gDirUtilp->getAppRODataDir(); |
2990 | update_exe_path += "/AutoUpdater.app/Contents/MacOS/AutoUpdater' -userserver "; | 2975 | update_exe_path += "/AutoUpdater.app/Contents/MacOS/AutoUpdater' -url \""; |
2991 | update_exe_path += gUserServerName; | 2976 | update_exe_path += update_url.asString(); |
2992 | update_exe_path += " -name \""; | 2977 | update_exe_path += "\" -name \""; |
2993 | update_exe_path += gSecondLife; | 2978 | update_exe_path += gSecondLife; |
2994 | update_exe_path += "\" &"; | 2979 | update_exe_path += "\" &"; |
2995 | 2980 | ||
@@ -3024,7 +3009,7 @@ void use_circuit_callback(void**, S32 result) | |||
3024 | llinfos << "Backing up to login screen!" << llendl; | 3009 | llinfos << "Backing up to login screen!" << llendl; |
3025 | gViewerWindow->alertXml("LoginPacketNeverReceived", | 3010 | gViewerWindow->alertXml("LoginPacketNeverReceived", |
3026 | login_alert_status, NULL); | 3011 | login_alert_status, NULL); |
3027 | gStartupState = STATE_LOGIN_SHOW; | 3012 | reset_login(); |
3028 | } | 3013 | } |
3029 | else | 3014 | else |
3030 | { | 3015 | { |
@@ -3117,8 +3102,9 @@ void register_viewer_callbacks(LLMessageSystem* msg) | |||
3117 | LLPanelAvatar::processAvatarInterestsReply); | 3102 | LLPanelAvatar::processAvatarInterestsReply); |
3118 | msg->setHandlerFunc("AvatarGroupsReply", | 3103 | msg->setHandlerFunc("AvatarGroupsReply", |
3119 | LLPanelAvatar::processAvatarGroupsReply); | 3104 | LLPanelAvatar::processAvatarGroupsReply); |
3120 | msg->setHandlerFuncFast(_PREHASH_AvatarStatisticsReply, | 3105 | // ratings deprecated |
3121 | LLPanelAvatar::processAvatarStatisticsReply); | 3106 | //msg->setHandlerFuncFast(_PREHASH_AvatarStatisticsReply, |
3107 | // LLPanelAvatar::processAvatarStatisticsReply); | ||
3122 | msg->setHandlerFunc("AvatarNotesReply", | 3108 | msg->setHandlerFunc("AvatarNotesReply", |
3123 | LLPanelAvatar::processAvatarNotesReply); | 3109 | LLPanelAvatar::processAvatarNotesReply); |
3124 | msg->setHandlerFunc("AvatarPicksReply", | 3110 | msg->setHandlerFunc("AvatarPicksReply", |
@@ -3137,8 +3123,9 @@ void register_viewer_callbacks(LLMessageSystem* msg) | |||
3137 | msg->setHandlerFuncFast(_PREHASH_GroupProfileReply, | 3123 | msg->setHandlerFuncFast(_PREHASH_GroupProfileReply, |
3138 | LLGroupMgr::processGroupPropertiesReply); | 3124 | LLGroupMgr::processGroupPropertiesReply); |
3139 | 3125 | ||
3140 | msg->setHandlerFuncFast(_PREHASH_ReputationIndividualReply, | 3126 | // ratings deprecated |
3141 | LLFloaterRate::processReputationIndividualReply); | 3127 | // msg->setHandlerFuncFast(_PREHASH_ReputationIndividualReply, |
3128 | // LLFloaterRate::processReputationIndividualReply); | ||
3142 | 3129 | ||
3143 | msg->setHandlerFuncFast(_PREHASH_AgentWearablesUpdate, | 3130 | msg->setHandlerFuncFast(_PREHASH_AgentWearablesUpdate, |
3144 | LLAgent::processAgentInitialWearablesUpdate ); | 3131 | LLAgent::processAgentInitialWearablesUpdate ); |
@@ -3146,9 +3133,6 @@ void register_viewer_callbacks(LLMessageSystem* msg) | |||
3146 | msg->setHandlerFunc("ScriptControlChange", | 3133 | msg->setHandlerFunc("ScriptControlChange", |
3147 | LLAgent::processScriptControlChange ); | 3134 | LLAgent::processScriptControlChange ); |
3148 | 3135 | ||
3149 | msg->setHandlerFuncFast(_PREHASH_GestureUpdate, | ||
3150 | LLViewerGestureList::processGestureUpdate); | ||
3151 | |||
3152 | msg->setHandlerFuncFast(_PREHASH_ViewerEffect, LLHUDManager::processViewerEffect); | 3136 | msg->setHandlerFuncFast(_PREHASH_ViewerEffect, LLHUDManager::processViewerEffect); |
3153 | 3137 | ||
3154 | msg->setHandlerFuncFast(_PREHASH_GrantGodlikePowers, process_grant_godlike_powers); | 3138 | msg->setHandlerFuncFast(_PREHASH_GrantGodlikePowers, process_grant_godlike_powers); |
@@ -3945,4 +3929,9 @@ bool LLStartUp::canGoFullscreen() | |||
3945 | return gStartupState >= STATE_WORLD_INIT; | 3929 | return gStartupState >= STATE_WORLD_INIT; |
3946 | } | 3930 | } |
3947 | 3931 | ||
3932 | void reset_login() | ||
3933 | { | ||
3934 | gStartupState = STATE_LOGIN_SHOW; | ||
3948 | 3935 | ||
3936 | // do cleanup here of in-world UI? | ||
3937 | } | ||