예제 #1
0
        public XmlRpcResponse XmlRPCAtRegion(XmlRpcRequest request, IPEndPoint remoteClient)
        {
            XmlRpcResponse response     = new XmlRpcResponse();
            Hashtable      requestData  = (Hashtable)request.Params[0];
            Hashtable      responseData = new Hashtable();
            string         returnstring = "FALSE";

            if (requestData.Contains("avatar_id") && requestData.Contains("region_handle") &&
                requestData.Contains("region_uuid"))
            {
                // ulong cregionhandle = 0;
                UUID regionUUID;
                UUID avatarUUID;

                UUID.TryParse((string)requestData["avatar_id"], out avatarUUID);
                UUID.TryParse((string)requestData["region_uuid"], out regionUUID);

                if (avatarUUID != UUID.Zero)
                {
                    UserProfileData userProfile = m_userDataBaseService.GetUserProfile(avatarUUID);
                    userProfile.CurrentAgent.Region = regionUUID;
                    userProfile.CurrentAgent.Handle = (ulong)Convert.ToInt64((string)requestData["region_handle"]);
                    //userProfile.CurrentAgent.
                    m_userDataBaseService.CommitAgent(ref userProfile);
                    //setUserProfile(userProfile);


                    returnstring = "TRUE";
                }
            }
            responseData.Add("returnString", returnstring);
            response.Value = responseData;
            return(response);
        }
예제 #2
0
        public XmlRpcResponse XmlRPCAtRegion(XmlRpcRequest request, IPEndPoint remoteClient)
        {
            // Check IP Endpoint Access
            if (!TrustManager.Instance.IsTrustedPeer(remoteClient))
            {
                return(Util.CreateTrustManagerAccessDeniedResponse());
            }

            XmlRpcResponse response     = new XmlRpcResponse();
            Hashtable      requestData  = (Hashtable)request.Params[0];
            Hashtable      responseData = new Hashtable();
            string         returnstring = "FALSE";

            if (requestData.Contains("avatar_id") && requestData.Contains("region_handle") &&
                requestData.Contains("region_uuid"))
            {
                // ulong cregionhandle = 0;
                UUID regionUUID;
                UUID avatarUUID;

                UUID.TryParse((string)requestData["avatar_id"], out avatarUUID);
                UUID.TryParse((string)requestData["region_uuid"], out regionUUID);

                if (avatarUUID != UUID.Zero)
                {
                    // Force a refresh for this due to Commit below.
                    UserProfileData userProfile = m_userDataBaseService.GetUserProfile(avatarUUID, true);
                    userProfile.CurrentAgent.Region = regionUUID;
                    userProfile.CurrentAgent.Handle = (ulong)Convert.ToInt64((string)requestData["region_handle"]);
                    //userProfile.CurrentAgent.
                    m_userDataBaseService.CommitAgent(ref userProfile);
                    //setUserProfile(userProfile);


                    returnstring = "TRUE";
                }
            }
            responseData.Add("returnString", returnstring);
            response.Value = responseData;
            return(response);
        }