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 ddc8855..4fac951 100644 --- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs +++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs | |||
@@ -621,7 +621,19 @@ namespace OpenSim.Services.LLLoginService | |||
621 | if (finfo.TheirFlags == -1) | 621 | if (finfo.TheirFlags == -1) |
622 | continue; | 622 | continue; |
623 | LLLoginResponse.BuddyList.BuddyInfo buddyitem = new LLLoginResponse.BuddyList.BuddyInfo(finfo.Friend); | 623 | LLLoginResponse.BuddyList.BuddyInfo buddyitem = new LLLoginResponse.BuddyList.BuddyInfo(finfo.Friend); |
624 | buddyitem.BuddyID = finfo.Friend; | 624 | // finfo.Friend may not be a simple uuid |
625 | UUID friendID = UUID.Zero; | ||
626 | if (UUID.TryParse(finfo.Friend, out friendID)) | ||
627 | buddyitem.BuddyID = finfo.Friend; | ||
628 | else | ||
629 | { | ||
630 | string tmp; | ||
631 | if (Util.ParseUniversalUserIdentifier(finfo.Friend, out friendID, out tmp, out tmp, out tmp)) | ||
632 | buddyitem.BuddyID = friendID.ToString(); | ||
633 | else | ||
634 | // junk entry | ||
635 | continue; | ||
636 | } | ||
625 | buddyitem.BuddyRightsHave = (int)finfo.TheirFlags; | 637 | buddyitem.BuddyRightsHave = (int)finfo.TheirFlags; |
626 | buddyitem.BuddyRightsGiven = (int)finfo.MyFlags; | 638 | buddyitem.BuddyRightsGiven = (int)finfo.MyFlags; |
627 | buddylistreturn.AddNewBuddy(buddyitem); | 639 | buddylistreturn.AddNewBuddy(buddyitem); |