From 87082996e6408919591ee3d408918a4425494dc9 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Tue, 22 Jun 2010 15:19:16 -0700 Subject: Revert to previous implementation of getNodeId. --- indra/llcommon/lluuid.cpp | 116 +++++++++++--------------------------- indra/newview/lllogininstance.cpp | 4 +- 2 files changed, 37 insertions(+), 83 deletions(-) diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp index 583c1e589b..3bab01715a 100644 --- a/indra/llcommon/lluuid.cpp +++ b/indra/llcommon/lluuid.cpp @@ -456,101 +456,53 @@ static void get_random_bytes(void *buf, int nbytes) } #if LL_WINDOWS -// Code copied from http://msdn.microsoft.com/en-us/library/aa365939(VS.85).aspx -// This code grabs the first hardware address, rather than the first interface. -// Using a VPN can cause the first returned interface to be changed. - -const S32 MAC_ADDRESS_BYTES=6; +typedef struct _ASTAT_ +{ + ADAPTER_STATUS adapt; + NAME_BUFFER NameBuff [30]; +}ASTAT, * PASTAT; // static S32 LLUUID::getNodeID(unsigned char *node_id) { + ASTAT Adapter; + NCB Ncb; + UCHAR uRetCode; + LANA_ENUM lenum; + int i; + int retval = 0; - // Declare and initialize variables. - DWORD dwSize = 0; - DWORD dwRetVal = 0; - int i; - -/* variables used for GetIfTable and GetIfEntry */ - MIB_IFTABLE *pIfTable; - MIB_IFROW *pIfRow; + memset( &Ncb, 0, sizeof(Ncb) ); + Ncb.ncb_command = NCBENUM; + Ncb.ncb_buffer = (UCHAR *)&lenum; + Ncb.ncb_length = sizeof(lenum); + uRetCode = Netbios( &Ncb ); - // Allocate memory for our pointers. - pIfTable = (MIB_IFTABLE *) malloc(sizeof (MIB_IFTABLE)); - if (pIfTable == NULL) + for(i=0; i < lenum.length ;i++) { - printf("Error allocating memory needed to call GetIfTable\n"); - return 0; - } + memset( &Ncb, 0, sizeof(Ncb) ); + Ncb.ncb_command = NCBRESET; + Ncb.ncb_lana_num = lenum.lana[i]; - // Before calling GetIfEntry, we call GetIfTable to make - // sure there are entries to get and retrieve the interface index. + uRetCode = Netbios( &Ncb ); - // Make an initial call to GetIfTable to get the - // necessary size into dwSize - if (GetIfTable(pIfTable, &dwSize, 0) == ERROR_INSUFFICIENT_BUFFER) { - free(pIfTable); - pIfTable = (MIB_IFTABLE *) malloc(dwSize); - if (pIfTable == NULL) - { - printf("Error allocating memory\n"); - return 0; - } - } - // Make a second call to GetIfTable to get the actual - // data we want. - if ((dwRetVal = GetIfTable(pIfTable, &dwSize, 0)) == NO_ERROR) - { - if (pIfTable->dwNumEntries > 0) - { - pIfRow = (MIB_IFROW *) malloc(sizeof (MIB_IFROW)); - if (pIfRow == NULL) - { - printf("Error allocating memory\n"); - if (pIfTable != NULL) - { - free(pIfTable); - pIfTable = NULL; - } - return 0; - } + memset( &Ncb, 0, sizeof (Ncb) ); + Ncb.ncb_command = NCBASTAT; + Ncb.ncb_lana_num = lenum.lana[i]; - int limit = MAC_ADDRESS_BYTES; - memcpy(node_id, "\0\0\0\0\0\0", limit); // zero out array of bytes - for (i = 0; i < (int) pIfTable->dwNumEntries; i++) - { - pIfRow->dwIndex = pIfTable->table[i].dwIndex; - if ((dwRetVal = GetIfEntry(pIfRow)) == NO_ERROR) - { - switch (pIfRow->dwType) - { - case IF_TYPE_ETHERNET_CSMACD: - case IF_TYPE_IEEE80211: - limit = min((int) pIfRow->dwPhysAddrLen, limit); - if (pIfRow->dwPhysAddrLen == 0) - break; - memcpy(node_id, (UCHAR *)&pIfRow->bPhysAddr[0], limit); // just incase the PhysAddr is not the expected MAC_Address size - free(pIfTable); - return 1; //return first hardware device found. - break; - - case IF_TYPE_OTHER: - case IF_TYPE_PPP: - case IF_TYPE_SOFTWARE_LOOPBACK: - case IF_TYPE_ISO88025_TOKENRING: - case IF_TYPE_IEEE1394: - case IF_TYPE_ATM: - case IF_TYPE_TUNNEL: - default: - break; - } - } - } + strcpy( (char *)Ncb.ncb_callname, "* " ); /* Flawfinder: ignore */ + Ncb.ncb_buffer = (unsigned char *)&Adapter; + Ncb.ncb_length = sizeof(Adapter); + + uRetCode = Netbios( &Ncb ); + if ( uRetCode == 0 ) + { + memcpy(node_id,Adapter.adapt.adapter_address,6); /* Flawfinder: ignore */ + retval = 1; } } - free(pIfTable); - return 0; + return retval; } #elif LL_DARWIN diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp index 71604291e1..06f490e8e3 100644 --- a/indra/newview/lllogininstance.cpp +++ b/indra/newview/lllogininstance.cpp @@ -168,7 +168,9 @@ void LLLoginInstance::constructAuthParams(LLPointer user_credentia char hashed_mac_string[MD5HEX_STR_SIZE]; /* Flawfinder: ignore */ LLMD5 hashed_mac; unsigned char MACAddress[MAC_ADDRESS_BYTES]; - LLUUID::getNodeID(MACAddress); + if(LLUUID::getNodeID(MACAddress) == 0) { + llerrs << "Failed to get node id; cannot uniquely identify this machine." << llendl; + } hashed_mac.update( MACAddress, MAC_ADDRESS_BYTES ); hashed_mac.finalize(); hashed_mac.hex_digest(hashed_mac_string); -- cgit v1.2.3 From 23706afa6431e34f821baa925ada220b06833a97 Mon Sep 17 00:00:00 2001 From: "Andrew A. de Laix" Date: Thu, 24 Jun 2010 17:36:59 -0700 Subject: Fix EXT-8039: change from std::vector to std::list to permit appending during iteration and prevent random crashes. --- indra/newview/llviewermedia.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h index 8626f4469e..ef9c07c6c7 100644 --- a/indra/newview/llviewermedia.h +++ b/indra/newview/llviewermedia.h @@ -84,7 +84,7 @@ public: static const char* SHOW_MEDIA_WITHIN_PARCEL_SETTING; static const char* SHOW_MEDIA_OUTSIDE_PARCEL_SETTING; - typedef std::vector impl_list; + typedef std::list impl_list; typedef std::map impl_id_map; -- cgit v1.2.3 From abb607a65e8a3f9328a0ce97fa5d3d08a75338ef Mon Sep 17 00:00:00 2001 From: "Karl Stiefvater (qarl)" Date: Fri, 25 Jun 2010 09:59:20 -0500 Subject: EXT-7446 Spatial Partition Crash. reviewed by Richard. --- indra/newview/llviewerobject.cpp | 5 +++++ indra/newview/llviewerobjectlist.cpp | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index ee89680fea..9027caa4ce 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -4928,6 +4928,11 @@ void LLViewerObject::setIncludeInSearch(bool include_in_search) void LLViewerObject::setRegion(LLViewerRegion *regionp) { + if (!regionp) + { + llwarns << "viewer object set region to NULL" << llendl; + } + mLatestRecvPacketID = 0; mRegionp = regionp; diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 752aeaaab0..fc94fbafac 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -894,10 +894,10 @@ void LLViewerObjectList::removeDrawable(LLDrawable* drawablep) BOOL LLViewerObjectList::killObject(LLViewerObject *objectp) { - // Don't ever kill gAgentAvatarp, just mark it as null region instead. + // Don't ever kill gAgentAvatarp, just force it to the agent's region if (objectp == gAgentAvatarp) { - objectp->setRegion(NULL); + objectp->setRegion(gAgent.getRegion()); return FALSE; } -- cgit v1.2.3 From 3ae35441b9a4728a8e9ade3d02fceb1fd2cc0027 Mon Sep 17 00:00:00 2001 From: Kent Quirk Date: Fri, 25 Jun 2010 13:00:34 -0400 Subject: EXT-8039 - further fix to allow mac/linux to build properly --- indra/newview/llviewermedia.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index d7190f26a3..34e30b3ccd 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -763,7 +763,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg) } // Sort the static instance list using our interest criteria - std::stable_sort(sViewerMediaImplList.begin(), sViewerMediaImplList.end(), priorityComparitor); + sViewerMediaImplList.sort(priorityComparitor); // Go through the list again and adjust according to priority. iter = sViewerMediaImplList.begin(); -- cgit v1.2.3 From 742c1238790a5219864bac617a95065e827adda3 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Fri, 25 Jun 2010 10:37:08 -0700 Subject: EXT-8071 FIX Viewer crashes in login screen when moving mousewheel in login fields. --- indra/newview/llagentcamera.h | 1 + indra/newview/llviewerwindow.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h index 3b8f88733a..fc78fef6d0 100644 --- a/indra/newview/llagentcamera.h +++ b/indra/newview/llagentcamera.h @@ -82,6 +82,7 @@ public: void init(); void cleanup(); void setAvatarObject(LLVOAvatarSelf* avatar); + bool isInitialized() { return mInitialized; } private: bool mInitialized; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index c9c0b72528..6346ac320b 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2329,7 +2329,9 @@ void LLViewerWindow::handleScrollWheel(S32 clicks) // Zoom the camera in and out behavior - if(top_ctrl == 0 && getWorldViewRectScaled().pointInRect(mCurrentMousePoint.mX, mCurrentMousePoint.mY) ) + if(top_ctrl == 0 + && getWorldViewRectScaled().pointInRect(mCurrentMousePoint.mX, mCurrentMousePoint.mY) + && gAgentCamera.isInitialized()) gAgentCamera.handleScrollWheel(clicks); return; -- cgit v1.2.3 From 6ad6e7fd6164e321e0c919e8d5a29f0e67795661 Mon Sep 17 00:00:00 2001 From: Eli Linden Date: Fri, 25 Jun 2010 11:33:46 -0700 Subject: EXT-7887 FIX mark URL string as non-translatable --- indra/newview/skins/default/xui/en/strings.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index e30c081ba1..799d440292 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -136,7 +136,8 @@ Retrieving... Release Notes - http://wiki.secondlife.com/wiki/Release_Notes/ + + http://wiki.secondlife.com/wiki/Release_Notes/ Loading... -- cgit v1.2.3 From 5226f23144df0893bd000a56b2378fda26488bc3 Mon Sep 17 00:00:00 2001 From: Richard Nelson Date: Fri, 25 Jun 2010 11:48:26 -0700 Subject: removed some parsing error spam due to invalid attributes --- .../skins/default/xui/en/floater_nearby_chat.xml | 34 ++++++++++------------ .../skins/default/xui/en/outfit_accordion_tab.xml | 2 +- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml index 28616d503b..ec097a8e87 100644 --- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml +++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml @@ -1,8 +1,6 @@ - + diff --git a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml index bdfa928b1d..06bd1e9ff4 100644 --- a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml +++ b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml @@ -3,7 +3,7 @@ Date: Fri, 25 Jun 2010 11:51:03 -0700 Subject: EXT-7957 - clothing editor does not open when editing clothes reviewed by nyx --- indra/newview/llsidepanelappearance.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index ea5796d766..951323551c 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -405,6 +405,8 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name) //static void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data) { + LLSideTray::getInstance()->showPanel("sidepanel_appearance"); + LLSidepanelAppearance *panel = dynamic_cast(data); if (panel) { -- cgit v1.2.3 From c2e536480ec9579b263f1cb67c38fd3f4d661e3a Mon Sep 17 00:00:00 2001 From: Eli Linden Date: Fri, 25 Jun 2010 12:04:48 -0700 Subject: ND-47583 WIP DE translation for set 13 --- indra/newview/skins/default/xui/de/floater_map.xml | 3 + .../default/xui/de/floater_preview_gesture.xml | 12 +-- .../skins/default/xui/de/floater_snapshot.xml | 86 +++++++++++++++++----- .../skins/default/xui/de/floater_voice_effect.xml | 15 ++-- .../skins/default/xui/de/menu_attachment_self.xml | 4 +- .../skins/default/xui/de/menu_outfit_tab.xml | 2 +- indra/newview/skins/default/xui/de/menu_viewer.xml | 1 + .../default/xui/de/menu_wearable_list_item.xml | 2 +- .../newview/skins/default/xui/de/notifications.xml | 3 +- .../default/xui/de/panel_body_parts_list_item.xml | 4 + .../default/xui/de/panel_clothing_list_item.xml | 5 ++ .../xui/de/panel_deletable_wearable_list_item.xml | 1 + .../xui/de/panel_dummy_clothing_list_item.xml | 3 + .../skins/default/xui/de/panel_edit_wearable.xml | 3 +- .../skins/default/xui/de/panel_outfit_edit.xml | 8 +- .../default/xui/de/panel_outfits_inventory.xml | 2 +- .../default/xui/de/panel_preferences_graphics1.xml | 5 +- .../skins/default/xui/de/panel_voice_effect.xml | 4 +- .../skins/default/xui/de/sidepanel_appearance.xml | 2 + indra/newview/skins/default/xui/de/strings.xml | 6 ++ 20 files changed, 125 insertions(+), 46 deletions(-) diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml index 130d3062d7..d4358fa8e9 100644 --- a/indra/newview/skins/default/xui/de/floater_map.xml +++ b/indra/newview/skins/default/xui/de/floater_map.xml @@ -27,6 +27,9 @@ [AGENT][REGION](Karte mit Doppelklick öffnen) + + MINI-KARTE + N diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml index 48b1f1170c..3a036fc441 100644 --- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml @@ -24,9 +24,6 @@ Gesten: [NAME] - - Name: - Beschreibung: @@ -36,7 +33,7 @@ Ersetzen mit: - + Tastenkürzel: @@ -46,19 +43,22 @@ Bibliothek: -