private byte[] ResultToBytes(Dictionary <string, object> result)
        {
            string       xmlString = WebUtils.BuildXmlResponse(result);
            UTF8Encoding encoding  = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 2
0
        byte[] HandleGetActiveGestures(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();
            UUID principal = UUID.Zero;

            UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);

            List <InventoryItemBase>    gestures = m_InventoryService.GetActiveGestures(principal);
            Dictionary <string, object> items    = new Dictionary <string, object>();

            if (gestures != null)
            {
                int i = 0;
                foreach (InventoryItemBase item in gestures)
                {
                    items["item_" + i.ToString()] = EncodeItem(item);
                    i++;
                }
            }
            result["ITEMS"] = items;

            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
        private byte[] HandleGetFolderForType(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();
            UUID principal = UUID.Zero;

            UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
            int type = 0;

            Int32.TryParse(request["TYPE"].ToString(), out type);
            int invtype = 0;

            if (request.ContainsKey("INVTYPE"))
            {
                Int32.TryParse(request["INVTYPE"].ToString(), out invtype);
            }
            InventoryFolderBase folder = m_InventoryService.GetFolderForType(principal, (InventoryType)invtype,
                                                                             (AssetType)type);

            if (folder != null)
            {
                result["folder"] = EncodeFolder(folder);
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
        private byte[] HandleGetFolderItems(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();
            UUID principal = UUID.Zero;

            UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
            UUID folderID = UUID.Zero;

            UUID.TryParse(request["FOLDER"].ToString(), out folderID);

            List <InventoryItemBase>    items  = m_InventoryService.GetFolderItems(principal, folderID);
            Dictionary <string, object> sitems = new Dictionary <string, object>();

            if (items != null)
            {
                int i = 0;
                foreach (InventoryItemBase item in items)
                {
                    sitems["item_" + i.ToString()] = EncodeItem(item);
                    i++;
                }
            }
            result["ITEMS"] = sitems;

            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 5
0
        public void SaveModuleToArchive(TarArchiveWriter writer, IScene scene)
        {
            MainConsole.Instance.Debug("[Archive]: Writing estates to archive");

            EstateSettings settings = scene.RegionInfo.EstateSettings;

            if (settings == null)
            {
                return;
            }
            writer.WriteDir("estate");
            string xmlData = WebUtils.BuildXmlResponse(settings.ToKVP());

            writer.WriteFile("estate/" + scene.RegionInfo.RegionName, xmlData);

            MainConsole.Instance.Debug("[Archive]: Finished writing estates to archive");
            MainConsole.Instance.Debug("[Archive]: Writing region info to archive");

            writer.WriteDir("regioninfo");
            RegionInfo regionInfo = scene.RegionInfo;

            writer.WriteFile("regioninfo/" + scene.RegionInfo.RegionName, OSDParser.SerializeLLSDBinary(regionInfo.PackRegionInfoData(true)));

            MainConsole.Instance.Debug("[Archive]: Finished writing region info to archive");
        }
        private byte[] GetAvatar(Dictionary <string, object> request)
        {
            UUID user = UUID.Zero;

            if (!request.ContainsKey("UserID"))
            {
                return(FailureResult());
            }

            if (UUID.TryParse(request["UserID"].ToString(), out user))
            {
                AvatarData avatar = m_AvatarService.GetAvatar(user);
                if (avatar == null)
                {
                    return(FailureResult());
                }

                Dictionary <string, object> result = new Dictionary <string, object>();
                if (avatar == null)
                {
                    result["result"] = "null";
                }
                else
                {
                    result["result"] = avatar.ToKVP();
                }

                string xmlString = WebUtils.BuildXmlResponse(result);

                UTF8Encoding encoding = new UTF8Encoding();
                return(encoding.GetBytes(xmlString));
            }

            return(FailureResult());
        }
Esempio n. 7
0
        private byte[] GetSafeRegions(Dictionary <string, object> request)
        {
            //m_log.DebugFormat("[GRID HANDLER]: GetRegionRange");
            UUID scopeID = UUID.Zero;

            if (request.ContainsKey("SCOPEID"))
            {
                UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to get fallback regions");
            }

            int x = 0, y = 0;

            if (request.ContainsKey("X"))
            {
                Int32.TryParse(request["X"].ToString(), out x);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no X in request to get fallback regions");
            }
            if (request.ContainsKey("Y"))
            {
                Int32.TryParse(request["Y"].ToString(), out y);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no Y in request to get fallback regions");
            }


            List <GridRegion> rinfos           = m_GridService.GetSafeRegions(scopeID, x, y);

            rinfos = CleanRegions(rinfos);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if ((rinfos == null) || ((rinfos != null) && (rinfos.Count == 0)))
            {
                result["result"] = "null";
            }
            else
            {
                int i = 0;
                foreach (GridRegion rinfo in rinfos)
                {
                    Dictionary <string, object> rinfoDict = rinfo.ToKeyValuePairs();
                    result["region" + i] = rinfoDict;
                    i++;
                }
            }
            string xmlString                   = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 8
0
        byte[] HandleGetInventorySkeleton(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            if (!request.ContainsKey("PRINCIPAL"))
            {
                return(FailureResult());
            }


            List <InventoryFolderBase> folders = m_InventoryService.GetInventorySkeleton(new UUID(request["PRINCIPAL"].ToString()));

            Dictionary <string, object> sfolders = new Dictionary <string, object>();

            if (folders != null)
            {
                int i = 0;
                foreach (InventoryFolderBase f in folders)
                {
                    sfolders["folder_" + i.ToString()] = EncodeFolder(f);
                    i++;
                }
            }
            result["FOLDERS"] = sfolders;

            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 9
0
        private byte[] InformNeighborsOfChatMessage(Dictionary <string, object> request)
        {
            byte[] result = new byte[0];

            if (!CheckThreatLevel(NeighborThreatLevel.Low))
            {
                return(result);
            }

            // retrieve the region
            RegionInfo aRegion = new RegionInfo();

            try
            {
                aRegion.UnpackRegionInfoData(Util.DictionaryToOSD(request));
            }
            catch (Exception)
            {
                return(result);
            }

            OSChatMessage message = new OSChatMessage();

            message.FromKVP(WebUtils.ParseQueryString(request["MESSAGE"].ToString()));
            ChatSourceType type = (ChatSourceType)int.Parse(request["TYPE"].ToString());

            if (m_AuthenticationService != null)
            {
                //Set password on the incoming region
                if (m_AuthenticationService.CheckExists(aRegion.RegionID))
                {
                    if (m_AuthenticationService.Authenticate(aRegion.RegionID, aRegion.Password.ToString(), 100) == "")
                    {
                        m_log.Warn("[RegionPostHandler]: Authentication failed for region " + aRegion.RegionName);
                        return(result);
                    }
                    else
                    {
                        m_log.InfoFormat("[RegionPostHandler]: Authentication succeeded for {0}", aRegion.RegionName);
                    }
                }
                else //Set the password then
                {
                    m_AuthenticationService.SetPasswordHashed(aRegion.RegionID, aRegion.Password.ToString());
                }
            }

            // Finally!
            m_NeighborService.SendChatMessageToNeighbors(message, type, aRegion);

            Dictionary <string, object> resp = new Dictionary <string, object>();

            resp["success"] = "true";

            string       xmlString = WebUtils.BuildXmlResponse(resp);
            UTF8Encoding encoding  = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 10
0
        private byte[] Return(Dictionary <string, object> result)
        {
            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[AuroraDataServerPostHandler]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 11
0
        byte[] GetAbuseReport(Dictionary <string, object> request)
        {
            string xmlString = WebUtils.BuildXmlResponse(
                m_AbuseReportsService.GetAbuseReport(int.Parse(request["Number"].ToString()), request["Password"].ToString()).ToKeyValuePairs());
            //m_log.DebugFormat("[FRIENDS HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 12
0
        public bool AskForeignServerForBans(string URL, string password)
        {
            Dictionary <string, object> sendData = new Dictionary <string, object>();

            sendData["Password"] = password;

            sendData["METHOD"] = "getbans";

            string reqString = WebUtils.BuildXmlResponse(sendData);

            try
            {
                string reply = SynchronousRestFormsRequester.MakeRequest("POST",
                                                                         URL + "/crbs",
                                                                         reqString);

                if (reply != string.Empty)
                {
                    Dictionary <string, object> replyData = WebUtils.ParseXmlResponse(reply);

                    if (replyData != null)
                    {
                        if (!replyData.ContainsKey("result"))
                        {
                            return(false);
                        }

                        if (replyData["result"].ToString() == "WrongPassword")
                        {
                            MainConsole.Instance.Warn("[CRBS]: Unable to connect successfully to " + URL +
                                                      ", the foreign password was incorrect.");
                            return(false);
                        }

                        if (replyData["result"].ToString() == "Successful")
                        {
                            UnpackBans(replyData);
                            return(true);
                        }
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception e)
            {
                MainConsole.Instance.DebugFormat("[CRBS]: Exception when contacting server: {0}", e);
            }
            return(false);
        }
Esempio n. 13
0
        private byte[] GetRegionByPosition(Dictionary <string, object> request)
        {
            UUID scopeID = UUID.Zero;

            if (request.ContainsKey("SCOPEID"))
            {
                UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[GRID HANDLER]: no scopeID in request to get region by position");
            }

            int x = 0, y = 0;

            if (request.ContainsKey("X"))
            {
                Int32.TryParse(request["X"].ToString(), out x);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[GRID HANDLER]: no X in request to get region by position");
            }
            if (request.ContainsKey("Y"))
            {
                Int32.TryParse(request["Y"].ToString(), out y);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[GRID HANDLER]: no Y in request to get region by position");
            }

            GridRegion rinfo = m_GridService.GetRegionByPosition(scopeID, x, y);

            rinfo = CleanRegion(rinfo);
            //MainConsole.Instance.DebugFormat("[GRID HANDLER]: neighbours for region {0}: {1}", regionID, rinfos.Count);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if (rinfo == null)
            {
                result["result"] = "null";
            }
            else
            {
                result["result"] = rinfo.ToKVP();
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
        private byte[] SuccessResult(string result)
        {
            Dictionary <string, object> sendData = new Dictionary <string, object>();

            sendData["Result"]  = "Success";
            sendData["Message"] = result;

            string       xmlString = WebUtils.BuildXmlResponse(sendData);
            UTF8Encoding encoding  = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 15
0
        public void SaveStateTo(ScriptData script)
        {
            if (script.Script == null)
            {
                return; //If it didn't compile correctly, this happens
            }
            if (!script.Script.NeedsStateSaved)
            {
                return; //If it doesn't need a state save, don't save one
            }
            script.Script.NeedsStateSaved = false;
            StateSave stateSave = new StateSave();

            stateSave.State           = script.State;
            stateSave.ItemID          = script.ItemID;
            stateSave.Running         = script.Running;
            stateSave.MinEventDelay   = script.EventDelayTicks;
            stateSave.Disabled        = script.Disabled;
            stateSave.UserInventoryID = script.UserInventoryItemID;
            //Allow for the full path to be put down, not just the assembly name itself
            stateSave.AssemblyName = script.AssemblyName;
            stateSave.Source       = script.Source;
            if (script.InventoryItem != null)
            {
                stateSave.PermsGranter = script.InventoryItem.PermsGranter;
                stateSave.PermsMask    = script.InventoryItem.PermsMask;
            }
            else
            {
                stateSave.PermsGranter = UUID.Zero;
                stateSave.PermsMask    = 0;
            }
            stateSave.TargetOmegaWasSet = script.TargetOmegaWasSet;

            //Vars
            Dictionary <string, Object> vars = new Dictionary <string, object> ();

            if (script.Script != null)
            {
                vars = script.Script.GetStoreVars();
            }
            stateSave.Variables = WebUtils.BuildXmlResponse(vars);

            //Plugins
            stateSave.Plugins = m_module.GetSerializationData(script.ItemID, script.Part.UUID);

            CreateOSDMapForState(script, stateSave);
        }
Esempio n. 16
0
        private byte[] GetMapItems(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            ulong        regionHandle = ulong.Parse(request["REGIONHANDLE"].ToString());
            GridItemType gridItemType = (GridItemType)int.Parse(request["GRIDITEMTYPE"].ToString());

            multipleMapItemReply items = m_GridService.GetMapItems(regionHandle, gridItemType);

            result["MapItems"] = items.ToKeyValuePairs();

            string       xmlString = WebUtils.BuildXmlResponse(result);
            UTF8Encoding encoding  = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 17
0
        byte[] GetAbuseReports(Dictionary <string, object> request)
        {
            List <AbuseReport>          ars         = m_AbuseReportsService.GetAbuseReports(int.Parse(request["start"].ToString()), int.Parse(request["count"].ToString()), request["filter"].ToString());
            Dictionary <string, object> returnvalue = new Dictionary <string, object>();

            foreach (AbuseReport ar in ars)
            {
                returnvalue.Add(ar.Number.ToString(), ar);
            }

            string xmlString = WebUtils.BuildXmlResponse(returnvalue);
            //m_log.DebugFormat("[FRIENDS HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 18
0
        private byte[] GetDefaultRegions(Dictionary <string, object> request)
        {
            //MainConsole.Instance.DebugFormat("[GRID HANDLER]: GetDefaultRegions");
            UUID scopeID = UUID.Zero;

            if (request.ContainsKey("SCOPEID"))
            {
                UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[GRID HANDLER]: no scopeID in request to get region range");
            }

            List <GridRegion> rinfos = m_GridService.GetDefaultRegions(scopeID);

            rinfos = CleanRegions(rinfos);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if ((rinfos == null) || ((rinfos != null) && (rinfos.Count == 0)))
            {
                result["result"] = "null";
            }
            else
            {
                int i = 0;
#if (!ISWIN)
                foreach (GridRegion rinfo in rinfos)
                {
                    Dictionary <string, object> rinfoDict = rinfo.ToKVP();
                    result["region" + i] = rinfoDict;
                    i++;
                }
#else
                foreach (Dictionary <string, object> rinfoDict in rinfos.Select(rinfo => rinfo.ToKVP()))
                {
                    result["region" + i] = rinfoDict;
                    i++;
                }
#endif
            }
            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();
            return(encoding.GetBytes(xmlString));
        }
Esempio n. 19
0
        private byte[] GetNeighbors(Dictionary <string, object> request)
        {
            byte[] result = new byte[0];

            if (!CheckThreatLevel(NeighborThreatLevel.None))
            {
                return(result);
            }

            // retrieve the region
            RegionInfo aRegion = new RegionInfo();

            try
            {
                aRegion.UnpackRegionInfoData(Util.DictionaryToOSD(request));
            }
            catch (Exception)
            {
                return(result);
            }

            // Finally!
            List <GridRegion> thisRegion = m_NeighborService.GetNeighbors(aRegion);

            Dictionary <string, object> resp = new Dictionary <string, object>();

            if (thisRegion.Count != 0)
            {
                resp["success"] = "true";
                int i = 0;
                foreach (GridRegion r in thisRegion)
                {
                    Dictionary <string, object> region = r.ToKeyValuePairs();
                    resp["region" + i] = region;
                    i++;
                }
            }
            else
            {
                resp["success"] = "false";
            }

            string       xmlString = WebUtils.BuildXmlResponse(resp);
            UTF8Encoding encoding  = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
        private byte[] GetFriends(Dictionary <string, object> request)
        {
            UUID principalID = UUID.Zero;

            if (request.ContainsKey("PRINCIPALID"))
            {
                UUID.TryParse(request["PRINCIPALID"].ToString(), out principalID);
            }
            else
            {
                MainConsole.Instance.WarnFormat("[FRIENDS HANDLER]: no principalID in request to get friends");
            }

            FriendInfo[] finfos = m_FriendsService.GetFriends(principalID);
            //MainConsole.Instance.DebugFormat("[FRIENDS HANDLER]: neighbours for region {0}: {1}", regionID, rinfos.Count);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if ((finfos == null) || ((finfos != null) && (finfos.Length == 0)))
            {
                result["result"] = "null";
            }
            else
            {
                int i = 0;
#if (!ISWIN)
                foreach (FriendInfo finfo in finfos)
                {
                    Dictionary <string, object> rinfoDict = finfo.ToKeyValuePairs();
                    result["friend" + i] = rinfoDict;
                    i++;
                }
#else
                foreach (Dictionary <string, object> rinfoDict in finfos.Select(finfo => finfo.ToKeyValuePairs()))
                {
                    result["friend" + i] = rinfoDict;
                    i++;
                }
#endif
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[FRIENDS HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();
            return(encoding.GetBytes(xmlString));
        }
Esempio n. 21
0
        private byte[] GetRegionByName(Dictionary <string, object> request)
        {
            UUID scopeID = UUID.Zero;

            if (request.ContainsKey("SCOPEID"))
            {
                UUID.TryParse(request["SCOPEID"].ToString(), out scopeID);
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to get region by name");
            }

            string regionName = string.Empty;

            if (request.ContainsKey("NAME"))
            {
                regionName = request["NAME"].ToString();
            }
            else
            {
                m_log.WarnFormat("[GRID HANDLER]: no name in request to get region by name");
            }

            GridRegion rinfo = m_GridService.GetRegionByName(scopeID, regionName);

            rinfo = CleanRegion(rinfo);
            //m_log.DebugFormat("[GRID HANDLER]: neighbours for region {0}: {1}", regionID, rinfos.Count);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if (rinfo == null)
            {
                result["result"] = "null";
            }
            else
            {
                result["result"] = rinfo.ToKeyValuePairs();
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 22
0
        public byte[] FindTelehub(Dictionary <string, object> request)
        {
            UUID regionID = UUID.Zero;

            UUID.TryParse(request["REGIONID"].ToString(), out regionID);

            Dictionary <string, object> result = new Dictionary <string, object>();
            Telehub telehub = TelehubConnector.FindTelehub(regionID, 0);

            if (telehub != null)
            {
                result = telehub.ToKVP();
            }
            string xmlString = WebUtils.BuildXmlResponse(result);
            //MainConsole.Instance.DebugFormat("[AuroraDataServerPostHandler]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 23
0
        byte[] HandleGetAssetPermissions(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();
            UUID principal = UUID.Zero;

            UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
            UUID assetID = UUID.Zero;

            UUID.TryParse(request["ASSET"].ToString(), out assetID);

            int perms = m_InventoryService.GetAssetPermissions(principal, assetID);

            result["RESULT"] = perms.ToString();
            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 24
0
        public EstateSettings CreateEstate(EstateSettings es, UUID RegionID)
        {
            Dictionary <string, object> sendData = es.ToKeyValuePairs(true);

            sendData["REGIONID"] = RegionID.ToString();
            sendData["METHOD"]   = "createestate";

            string reqString = WebUtils.BuildXmlResponse(sendData);

            try
            {
                List <string> m_ServerURIs = m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf("RemoteServerURI");
                foreach (string m_ServerURI in m_ServerURIs)
                {
                    string reply = SynchronousRestFormsRequester.MakeRequest("POST",
                                                                             m_ServerURI,
                                                                             reqString);
                    if (reply != string.Empty)
                    {
                        Dictionary <string, object> replyData = WebUtils.ParseXmlResponse(reply);

                        if (replyData != null)
                        {
                            es         = new EstateSettings(replyData);
                            es.OnSave += SaveEstateSettings;
                            return(es);
                        }

                        else
                        {
                            m_log.DebugFormat("[AuroraRemoteEstateConnector]: CreateEstate {0} received null response",
                                              RegionID);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                m_log.DebugFormat("[AuroraRemoteEstateConnector]: Exception when contacting server: {0}", e.ToString());
            }
            return(null);
        }
Esempio n. 25
0
        byte[] HandleGetRootFolder(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            UUID principal = UUID.Zero;

            UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
            InventoryFolderBase rfolder = m_InventoryService.GetRootFolder(principal);

            if (rfolder != null)
            {
                result["folder"] = EncodeFolder(rfolder);
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 26
0
        private byte[] RemoveTelehub(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();

            int RegionX, RegionY;

            Util.UlongToInts(m_regionHandle, out RegionX, out RegionY);
            GridRegion r = m_GridService.GetRegionByPosition(UUID.Zero, RegionX, RegionY);

            if (r != null)
            {
                TelehubConnector.RemoveTelehub(r.RegionID, 0);
            }
            result["result"] = "Successful";

            string       xmlString = WebUtils.BuildXmlResponse(result);
            UTF8Encoding encoding  = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 27
0
        public void SaveModuleToArchive(TarArchiveWriter writer, IScene scene)
        {
            m_log.Info("[Archive]: Writing estates to archive");

            writer.WriteDir("estate");
            EstateSettings settings = scene.RegionInfo.EstateSettings;
            string         xmlData  = WebUtils.BuildXmlResponse(settings.ToKeyValuePairs(true));

            writer.WriteFile("estate/" + scene.RegionInfo.RegionName, xmlData);

            m_log.Info("[Archive]: Finished writing estates to archive");
            m_log.Info("[Archive]: Writing region info to archive");

            writer.WriteDir("regioninfo");
            RegionInfo regionInfo = scene.RegionInfo;

            writer.WriteFile("regioninfo/" + scene.RegionInfo.RegionName, OSDParser.SerializeLLSDBinary(regionInfo.PackRegionInfoData(true)));

            m_log.Info("[Archive]: Finished writing region info to archive");
        }
        protected void HandleSaveAvatarProfile(string[] cmdparams)
        {
            if (cmdparams.Length != 6)
            {
                MainConsole.Instance.Info("[AvatarProfileArchiver] Not enough parameters!");
                return;
            }
            UserAccount account = UserAccountService.GetUserAccount(null, cmdparams[3] + " " + cmdparams[4]);

            if (account == null)
            {
                MainConsole.Instance.Info("Account could not be found, stopping now.");
                return;
            }
            IProfileConnector           data         = DataManager.DataManager.RequestPlugin <IProfileConnector>();
            string                      UPIxmlString = "";
            Dictionary <string, object> result       = new Dictionary <string, object>();

            if (data != null)
            {
                IUserProfileInfo profile = data.GetUserProfile(account.PrincipalID);
                if (profile != null)
                {
                    result["result"] = profile.ToKVP();
                    UPIxmlString     = WebUtils.BuildXmlResponse(result);
                }
            }

            result["result"] = account.ToKVP();
            string UDAxmlString = WebUtils.BuildXmlResponse(result);

            StreamWriter writer = new StreamWriter(cmdparams[5]);

            writer.Write("<profile>\n");
            writer.Write(UDAxmlString + "\n");
            writer.Write(UPIxmlString + "\n");
            writer.Write("</profile>\n");
            writer.Close();
            writer.Dispose();
            MainConsole.Instance.Info("[AvatarProfileArchiver] Saved Avatar Profile to " + cmdparams[5]);
        }
        byte[] GetAccounts(Dictionary <string, object> request)
        {
            if (!request.ContainsKey("ScopeID") || !request.ContainsKey("query"))
            {
                return(FailureResult());
            }

            UUID scopeID = UUID.Zero;

            if (!UUID.TryParse(request["ScopeID"].ToString(), out scopeID))
            {
                return(FailureResult());
            }

            string query = request["query"].ToString();

            List <UserAccount> accounts = m_UserAccountService.GetUserAccounts(scopeID, query);

            Dictionary <string, object> result = new Dictionary <string, object>();

            if ((accounts == null) || ((accounts != null) && (accounts.Count == 0)))
            {
                result["result"] = "null";
            }
            else
            {
                int i = 0;
                foreach (UserAccount acc in accounts)
                {
                    Dictionary <string, object> rinfoDict = acc.ToKeyValuePairs();
                    result["account" + i] = rinfoDict;
                    i++;
                }
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }
Esempio n. 30
0
        byte[] HandleGetItem(Dictionary <string, object> request)
        {
            Dictionary <string, object> result = new Dictionary <string, object>();
            UUID id = UUID.Zero;

            UUID.TryParse(request["ID"].ToString(), out id);

            InventoryItemBase item = new InventoryItemBase(id);

            item = m_InventoryService.GetItem(item);
            if (item != null)
            {
                result["item"] = EncodeItem(item);
            }

            string xmlString = WebUtils.BuildXmlResponse(result);
            //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
            UTF8Encoding encoding = new UTF8Encoding();

            return(encoding.GetBytes(xmlString));
        }