diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginResponse.cs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/OpenSim/Services/LLLoginService/LLLoginResponse.cs b/OpenSim/Services/LLLoginService/LLLoginResponse.cs index f8868f5..82acfbc 100644 --- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs +++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs | |||
@@ -627,7 +627,19 @@ namespace OpenSim.Services.LLLoginService | |||
627 | if (finfo.TheirFlags == -1) | 627 | if (finfo.TheirFlags == -1) |
628 | continue; | 628 | continue; |
629 | LLLoginResponse.BuddyList.BuddyInfo buddyitem = new LLLoginResponse.BuddyList.BuddyInfo(finfo.Friend); | 629 | LLLoginResponse.BuddyList.BuddyInfo buddyitem = new LLLoginResponse.BuddyList.BuddyInfo(finfo.Friend); |
630 | buddyitem.BuddyID = finfo.Friend; | 630 | // finfo.Friend may not be a simple uuid |
631 | UUID friendID = UUID.Zero; | ||
632 | if (UUID.TryParse(finfo.Friend, out friendID)) | ||
633 | buddyitem.BuddyID = finfo.Friend; | ||
634 | else | ||
635 | { | ||
636 | string tmp; | ||
637 | if (Util.ParseUniversalUserIdentifier(finfo.Friend, out friendID, out tmp, out tmp, out tmp, out tmp)) | ||
638 | buddyitem.BuddyID = friendID.ToString(); | ||
639 | else | ||
640 | // junk entry | ||
641 | continue; | ||
642 | } | ||
631 | buddyitem.BuddyRightsHave = (int)finfo.TheirFlags; | 643 | buddyitem.BuddyRightsHave = (int)finfo.TheirFlags; |
632 | buddyitem.BuddyRightsGiven = (int)finfo.MyFlags; | 644 | buddyitem.BuddyRightsGiven = (int)finfo.MyFlags; |
633 | buddylistreturn.AddNewBuddy(buddyitem); | 645 | buddylistreturn.AddNewBuddy(buddyitem); |