3: 2010-05-22 (土) 19:16:09 admin  |
現: 2010-05-23 (日) 01:05:19 admin  |
- | ** Invalid format for Guid.Guid [#re2c7dd6] | + | *** Invalid format for Guid.Guid [#re2c7dd6] |
| - ログイン時に Robost.exe がエラーを出して,ログインが取り消される. | | - ログイン時に Robost.exe がエラーを出して,ログインが取り消される. |
| + | - mcs/class/corlib/System/Guid.csの GuidParser (Mono) に src="" が渡されるのが原因 |
| #br | | #br |
| | | |
| { | | { |
| PresenceData[] d = m_Database.Get("UserID", userID); | | PresenceData[] d = m_Database.Get("UserID", userID); |
| + | |
| PresenceData data = new PresenceData(); | | PresenceData data = new PresenceData(); |
| + | |
| data.UserID = userID; | | data.UserID = userID; |
| data.RegionID = UUID.Zero; | | data.RegionID = UUID.Zero; |
| data.Data = new Dictionary<string, string>(); | | data.Data = new Dictionary<string, string>(); |
| data.Data["SecureSessionID"] = secureSessionID.ToString(); | | data.Data["SecureSessionID"] = secureSessionID.ToString(); |
- | // added by Fumi.Iseki | + | + // added by Fumi.Iseki |
- | data.Data["HomeRegionID"] = UUID.Zero.ToString(); | + | + data.Data["HomeRegionID"] = UUID.Zero.ToString(); |
| + | |
| m_Database.Store(data); | | m_Database.Store(data); |
| + | |
| m_log.DebugFormat("[PRESENCE SERVICE]: LoginAgent {0} with session {1} and ssession {2}", | | m_log.DebugFormat("[PRESENCE SERVICE]: LoginAgent {0} with session {1} and ssession {2}", |
| userID, sessionID, secureSessionID); | | userID, sessionID, secureSessionID); |
| PresenceData data = m_Database.Get(sessionID); | | PresenceData data = m_Database.Get(sessionID); |
| data.Data["HomeRegionID"] = homeRegionID.ToString(); | | data.Data["HomeRegionID"] = homeRegionID.ToString(); |
| + | |
| m_Database.Store(data); | | m_Database.Store(data); |
| return true; | | return true; |
| } | | } |
| | | |
- | **** ログイン時の Presenceテーブルのレコード作成 [#m5efb2ae] | + | **** ログイン時の Presenceテーブルのレコード作成シーケンス [#m5efb2ae] |
| - OpenSim/Services/LLLoginService/LLLoginService.cs | | - OpenSim/Services/LLLoginService/LLLoginService.cs |
- | -- success = m_PresenceService.LoginAgent(account.PrincipalID.ToString(), session, secureSession); | + | - success = m_PresenceService.LoginAgent(account.PrincipalID.ToString(), session, secureSession); |
- | --- /OpenSim/Services/PresenceService/PresenceService.cs | + | -- OpenSim/Services/PresenceService/PresenceService.cs |
- | ---- LoginAgent() で,Presence データベースのレコードを作成.ただし HomeRegionIDはnull (ParseGuidのエラーの原因) | + | -- LoginAgent() で,Presence データベースのレコードを作成.ただし HomeRegionIDはnull (ParseGuidのエラーの原因) |
- | ---- GridUserテーブルから HomeRegionIDを引っ張ってくる.または UUID.Zero を入れる. | + | -- 追加項目: GridUserテーブルから HomeRegionIDを引っ張ってくる.または UUID.Zero を入れる. |
| #br | | #br |
| | | |