From 5cf6d6fa79dada85bd56530551409809d338b7d2 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Sun, 10 Jan 2010 20:17:37 -0800
Subject: All grid servers deleted, including user server. They served us well.
---
.../OGS1/OGS1InterServiceInventoryService.cs | 87 --
OpenSim/Grid/Framework/IGridServiceCore.cs | 40 -
OpenSim/Grid/Framework/IGridServiceModule.cs | 40 -
OpenSim/Grid/Framework/IInterServiceUserService.cs | 35 -
OpenSim/Grid/Framework/IMessageRegionLookup.cs | 38 -
.../Grid/Framework/IMessagingServerDiscovery.cs | 40 -
OpenSim/Grid/Framework/XMPPHTTPService.cs | 110 ---
OpenSim/Grid/GridServer.Modules/GridDBService.cs | 284 -------
.../Grid/GridServer.Modules/GridMessagingModule.cs | 164 ----
OpenSim/Grid/GridServer.Modules/GridRestModule.cs | 282 -------
.../Grid/GridServer.Modules/GridServerPlugin.cs | 176 ----
.../Grid/GridServer.Modules/GridXmlRpcModule.cs | 900 ---------------------
.../Resources/GridServer.Modules.addin.xml | 11 -
OpenSim/Grid/GridServer/GridServerBase.cs | 170 ----
OpenSim/Grid/GridServer/IGridPlugin.cs | 49 --
OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs | 63 --
OpenSim/Grid/Manager/OpenGridServices.Manager.mds | 16 -
.../Manager/OpenGridServices.Manager.userprefs | 39 -
.../Manager/OpenGridServices.Manager.usertasks | 2 -
.../OpenGridServices.Manager/AssemblyInfo.cs | 59 --
.../OpenGridServices.Manager/BlockingQueue.cs | 60 --
.../ConnectToGridServer.cs | 39 -
.../ConnectToGridServerDialog.cs | 54 --
.../GridServerConnectionManager.cs | 146 ----
.../Grid/Manager/OpenGridServices.Manager/Main.cs | 132 ---
.../Manager/OpenGridServices.Manager/MainWindow.cs | 106 ---
.../OpenGridServices.Manager/RegionBlock.cs | 62 --
.../Grid/Manager/OpenGridServices.Manager/Util.cs | 160 ----
...idServices.Manager.ConnectToGridServerDialog.cs | 242 ------
.../gtk-gui/OpenGridServices.Manager.MainWindow.cs | 250 ------
.../OpenGridServices.Manager/gtk-gui/generated.cs | 62 --
.../OpenGridServices.Manager/gtk-gui/gui.stetic | 502 ------------
.../InterMessageUserServerModule.cs | 187 -----
.../MessagingServer.Modules/MessageRegionModule.cs | 200 -----
.../Grid/MessagingServer.Modules/MessageService.cs | 503 ------------
.../PresenceBackreferenceEntry.cs | 96 ---
.../MessagingServer.Modules/PresenceInformer.cs | 135 ----
.../MessagingServer.Modules/PresenceService.cs | 33 -
.../MessagingServer.Modules/UserDataBaseService.cs | 75 --
.../MessagingServer.Modules/UserPresenceData.cs | 50 --
.../Grid/MessagingServer.Modules/WorkUnitBase.cs | 33 -
.../WorkUnitPresenceUpdate.cs | 33 -
OpenSim/Grid/MessagingServer/Main.cs | 293 -------
OpenSim/Grid/UserServer.Config/AssemblyInfo.cs | 56 --
OpenSim/Grid/UserServer.Config/DbUserConfig.cs | 106 ---
.../UserServer.Modules/AvatarCreationModule.cs | 550 -------------
.../UserServer.Modules/MessageServersConnector.cs | 514 ------------
.../Grid/UserServer.Modules/UserDataBaseService.cs | 100 ---
.../Grid/UserServer.Modules/UserLoginService.cs | 416 ----------
OpenSim/Grid/UserServer.Modules/UserManager.cs | 718 ----------------
.../UserServerAvatarAppearanceModule.cs | 132 ---
.../UserServer.Modules/UserServerFriendsModule.cs | 176 ----
OpenSim/Grid/UserServer/Main.cs | 316 --------
OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs | 63 --
OpenSim/Grid/UserServer/UserServerCommandModule.cs | 375 ---------
OpenSim/Grid/UserServer/UserServerCommsManager.cs | 39 -
.../UserServer/UserServerEventDispatchModule.cs | 142 ----
OpenSim/Services/LLLoginService/LLLoginService.cs | 60 ++
58 files changed, 60 insertions(+), 9761 deletions(-)
delete mode 100644 OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs
delete mode 100644 OpenSim/Grid/Framework/IGridServiceCore.cs
delete mode 100644 OpenSim/Grid/Framework/IGridServiceModule.cs
delete mode 100644 OpenSim/Grid/Framework/IInterServiceUserService.cs
delete mode 100644 OpenSim/Grid/Framework/IMessageRegionLookup.cs
delete mode 100644 OpenSim/Grid/Framework/IMessagingServerDiscovery.cs
delete mode 100644 OpenSim/Grid/Framework/XMPPHTTPService.cs
delete mode 100644 OpenSim/Grid/GridServer.Modules/GridDBService.cs
delete mode 100644 OpenSim/Grid/GridServer.Modules/GridMessagingModule.cs
delete mode 100644 OpenSim/Grid/GridServer.Modules/GridRestModule.cs
delete mode 100644 OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs
delete mode 100644 OpenSim/Grid/GridServer.Modules/GridXmlRpcModule.cs
delete mode 100644 OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml
delete mode 100644 OpenSim/Grid/GridServer/GridServerBase.cs
delete mode 100644 OpenSim/Grid/GridServer/IGridPlugin.cs
delete mode 100644 OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager.mds
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager.userprefs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager.usertasks
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/AssemblyInfo.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServer.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/MainWindow.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/RegionBlock.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/Util.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.ConnectToGridServerDialog.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.MainWindow.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/generated.cs
delete mode 100644 OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/gui.stetic
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/InterMessageUserServerModule.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/MessageRegionModule.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/MessageService.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/PresenceBackreferenceEntry.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/PresenceInformer.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/PresenceService.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/UserPresenceData.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/WorkUnitBase.cs
delete mode 100644 OpenSim/Grid/MessagingServer.Modules/WorkUnitPresenceUpdate.cs
delete mode 100644 OpenSim/Grid/MessagingServer/Main.cs
delete mode 100644 OpenSim/Grid/UserServer.Config/AssemblyInfo.cs
delete mode 100644 OpenSim/Grid/UserServer.Config/DbUserConfig.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/AvatarCreationModule.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/MessageServersConnector.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/UserDataBaseService.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/UserLoginService.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/UserManager.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
delete mode 100644 OpenSim/Grid/UserServer.Modules/UserServerFriendsModule.cs
delete mode 100644 OpenSim/Grid/UserServer/Main.cs
delete mode 100644 OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs
delete mode 100644 OpenSim/Grid/UserServer/UserServerCommandModule.cs
delete mode 100644 OpenSim/Grid/UserServer/UserServerCommsManager.cs
delete mode 100644 OpenSim/Grid/UserServer/UserServerEventDispatchModule.cs
(limited to 'OpenSim')
diff --git a/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs b/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs
deleted file mode 100644
index 1425260..0000000
--- a/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers.HttpServer;
-
-namespace OpenSim.Grid.Communications.OGS1
-{
- ///
- /// OGS1 implementation of the inter-service inventory service
- ///
- public class OGS1InterServiceInventoryService : IInterServiceInventoryServices
- {
- protected Uri m_inventoryServerUrl;
-
- public OGS1InterServiceInventoryService(Uri inventoryServerUrl)
- {
- m_inventoryServerUrl = inventoryServerUrl;
- }
-
- ///
- ///
- ///
- ///
- ///
- public bool CreateNewUserInventory(UUID userId)
- {
- return SynchronousRestObjectPoster.BeginPostObject(
- "POST", m_inventoryServerUrl + "CreateInventory/", userId.Guid);
- }
-
- ///
- ///
- ///
- ///
- ///
- public List GetInventorySkeleton(UUID userId)
- {
- return SynchronousRestObjectPoster.BeginPostObject>(
- "POST", m_inventoryServerUrl + "RootFolders/", userId.Guid);
- }
-
- ///
- /// Returns a list of all the active gestures in a user's inventory.
- ///
- ///
- /// The of the user
- ///
- ///
- /// A flat list of the gesture items.
- ///
- public List GetActiveGestures(UUID userId)
- {
- return SynchronousRestObjectPoster.BeginPostObject>(
- "POST", m_inventoryServerUrl + "ActiveGestures/", userId.Guid);
- }
-
- }
-}
diff --git a/OpenSim/Grid/Framework/IGridServiceCore.cs b/OpenSim/Grid/Framework/IGridServiceCore.cs
deleted file mode 100644
index da83ade..0000000
--- a/OpenSim/Grid/Framework/IGridServiceCore.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using OpenSim.Framework.Servers.HttpServer;
-
-namespace OpenSim.Grid.Framework
-{
- public interface IGridServiceCore
- {
- T Get();
- void RegisterInterface(T iface);
- bool TryGet(out T iface);
- BaseHttpServer GetHttpServer();
- }
-}
diff --git a/OpenSim/Grid/Framework/IGridServiceModule.cs b/OpenSim/Grid/Framework/IGridServiceModule.cs
deleted file mode 100644
index 2fdf1e4..0000000
--- a/OpenSim/Grid/Framework/IGridServiceModule.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using OpenSim.Framework.Servers.HttpServer;
-
-namespace OpenSim.Grid.Framework
-{
- public interface IGridServiceModule
- {
- void Close();
- void Initialise(IGridServiceCore core);
- void PostInitialise();
- void RegisterHandlers(BaseHttpServer httpServer);
- }
-}
diff --git a/OpenSim/Grid/Framework/IInterServiceUserService.cs b/OpenSim/Grid/Framework/IInterServiceUserService.cs
deleted file mode 100644
index ee7365a..0000000
--- a/OpenSim/Grid/Framework/IInterServiceUserService.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-namespace OpenSim.Grid.Framework
-{
- public interface IInterServiceUserService
- {
- bool SendToUserServer(System.Collections.Hashtable request, string method);
- }
-}
diff --git a/OpenSim/Grid/Framework/IMessageRegionLookup.cs b/OpenSim/Grid/Framework/IMessageRegionLookup.cs
deleted file mode 100644
index 461fe73..0000000
--- a/OpenSim/Grid/Framework/IMessageRegionLookup.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using OpenSim.Data;
-
-namespace OpenSim.Grid.Framework
-{
- public interface IMessageRegionLookup
- {
- int ClearRegionCache();
- RegionProfileData GetRegionInfo(ulong regionhandle);
- }
-}
diff --git a/OpenSim/Grid/Framework/IMessagingServerDiscovery.cs b/OpenSim/Grid/Framework/IMessagingServerDiscovery.cs
deleted file mode 100644
index c996f4f..0000000
--- a/OpenSim/Grid/Framework/IMessagingServerDiscovery.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using OpenSim.Framework.Servers;
-
-namespace OpenSim.Grid.Framework
-{
- public interface IMessagingServerDiscovery
- {
- List GetMessageServersList();
- void RegisterMessageServer(MessageServerInfo m);
- void DeRegisterMessageServer(MessageServerInfo m);
- }
-}
diff --git a/OpenSim/Grid/Framework/XMPPHTTPService.cs b/OpenSim/Grid/Framework/XMPPHTTPService.cs
deleted file mode 100644
index 9d27409..0000000
--- a/OpenSim/Grid/Framework/XMPPHTTPService.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.IO;
-using System.Reflection;
-using log4net;
-using OpenMetaverse;
-using OpenSim.Framework.Servers.HttpServer;
-
-namespace OpenSim.Grid.Framework
-{
- public class XMPPHTTPStreamHandler : BaseStreamHandler
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
-
- ///
- /// Constructor.
- ///
- ///
- ///
- public XMPPHTTPStreamHandler()
- : base("GET", "/presence")
- {
- m_log.Info("[REST]: In Get Request");
-
- }
-
- public override byte[] Handle(string path, Stream request,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- string param = GetParam(path);
- byte[] result = new byte[] {};
- try
- {
- string[] p = param.Split(new char[] {'/', '?', '&'}, StringSplitOptions.RemoveEmptyEntries);
-
- if (p.Length > 0)
- {
- UUID assetID = UUID.Zero;
-
- if (!UUID.TryParse(p[0], out assetID))
- {
- m_log.InfoFormat(
- "[REST]: GET:/presence ignoring request with malformed UUID {0}", p[0]);
- return result;
- }
-
- }
- }
- catch (Exception e)
- {
- m_log.Error(e.ToString());
- }
- return result;
- }
- }
-
- public class PostXMPPStreamHandler : BaseStreamHandler
- {
- // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public override byte[] Handle(string path, Stream request,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- string param = GetParam(path);
-
- UUID assetId;
- if (param.Length > 0)
- UUID.TryParse(param, out assetId);
- // byte[] txBuffer = new byte[4096];
-
- // TODO: Read POST serialize XMPP stanzas
-
- return new byte[] {};
- }
-
- public PostXMPPStreamHandler()
- : base("POST", "/presence")
- {
-
- }
-
- }
-}
diff --git a/OpenSim/Grid/GridServer.Modules/GridDBService.cs b/OpenSim/Grid/GridServer.Modules/GridDBService.cs
deleted file mode 100644
index fd5a09a..0000000
--- a/OpenSim/Grid/GridServer.Modules/GridDBService.cs
+++ /dev/null
@@ -1,284 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using System.Xml;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-
-
-namespace OpenSim.Grid.GridServer.Modules
-{
- public class GridDBService : IRegionProfileService
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private List _plugins = new List();
- private List _logplugins = new List();
-
- ///
- /// Adds a list of grid and log data plugins, as described by
- /// `provider' and `connect', to `_plugins' and `_logplugins',
- /// respectively.
- ///
- ///
- /// The filename of the inventory server plugin DLL.
- ///
- ///
- /// The connection string for the storage backend.
- ///
- public void AddPlugin(string provider, string connect)
- {
- _plugins = DataPluginFactory.LoadDataPlugins(provider, connect);
- _logplugins = DataPluginFactory.LoadDataPlugins(provider, connect);
- }
-
- public int GetNumberOfPlugins()
- {
- return _plugins.Count;
- }
-
- ///
- /// Logs a piece of information to the database
- ///
- /// What you were operating on (in grid server, this will likely be the region UUIDs)
- /// Which method is being called?
- /// What arguments are being passed?
- /// How high priority is this? 1 = Max, 6 = Verbose
- /// The message to log
- private void logToDB(string target, string method, string args, int priority, string message)
- {
- foreach (ILogDataPlugin plugin in _logplugins)
- {
- try
- {
- plugin.saveLog("Gridserver", target, method, args, priority, message);
- }
- catch (Exception)
- {
- m_log.Warn("[storage]: Unable to write log via " + plugin.Name);
- }
- }
- }
-
- ///
- /// Returns a region by argument
- ///
- /// A UUID key of the region to return
- /// A SimProfileData for the region
- public RegionProfileData GetRegion(UUID uuid)
- {
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- return plugin.GetProfileByUUID(uuid);
- }
- catch (Exception e)
- {
- m_log.Warn("[storage]: GetRegion - " + e.Message);
- }
- }
- return null;
- }
-
- ///
- /// Returns a region by argument
- ///
- /// A regionHandle of the region to return
- /// A SimProfileData for the region
- public RegionProfileData GetRegion(ulong handle)
- {
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- return plugin.GetProfileByHandle(handle);
- }
- catch (Exception ex)
- {
- m_log.Debug("[storage]: " + ex.Message);
- m_log.Warn("[storage]: Unable to find region " + handle.ToString() + " via " + plugin.Name);
- }
- }
- return null;
- }
-
- ///
- /// Returns a region by argument
- ///
- /// A partial regionName of the region to return
- /// A SimProfileData for the region
- public RegionProfileData GetRegion(string regionName)
- {
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- return plugin.GetProfileByString(regionName);
- }
- catch
- {
- m_log.Warn("[storage]: Unable to find region " + regionName + " via " + plugin.Name);
- }
- }
- return null;
- }
-
- public List GetRegions(uint xmin, uint ymin, uint xmax, uint ymax)
- {
- List regions = new List();
-
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- regions.AddRange(plugin.GetProfilesInRange(xmin, ymin, xmax, ymax));
- }
- catch
- {
- m_log.Warn("[storage]: Unable to query regionblock via " + plugin.Name);
- }
- }
-
- return regions;
- }
-
- public List GetRegions(string name, int maxNum)
- {
- List regions = new List();
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- int num = maxNum - regions.Count;
- List profiles = plugin.GetRegionsByName(name, (uint)num);
- if (profiles != null) regions.AddRange(profiles);
- }
- catch
- {
- m_log.Warn("[storage]: Unable to query regionblock via " + plugin.Name);
- }
- }
-
- return regions;
- }
-
- public DataResponse AddUpdateRegion(RegionProfileData sim, RegionProfileData existingSim)
- {
- DataResponse insertResponse = DataResponse.RESPONSE_ERROR;
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- if (existingSim == null)
- {
- insertResponse = plugin.StoreProfile(sim);
- }
- else
- {
- insertResponse = plugin.StoreProfile(sim);
- }
- }
- catch (Exception e)
- {
- m_log.Warn("[LOGIN END]: " +
- "Unable to login region " + sim.ToString() + " via " + plugin.Name);
- m_log.Warn("[LOGIN END]: " + e.ToString());
- }
- }
- return insertResponse;
- }
-
- public DataResponse DeleteRegion(string uuid)
- {
- DataResponse insertResponse = DataResponse.RESPONSE_ERROR;
- foreach (IGridDataPlugin plugin in _plugins)
- {
- //OpenSim.Data.MySQL.MySQLGridData dbengine = new OpenSim.Data.MySQL.MySQLGridData();
- try
- {
- //Nice are we not using multiple databases?
- //MySQLGridData mysqldata = (MySQLGridData)(plugin);
-
- //DataResponse insertResponse = mysqldata.DeleteProfile(TheSim);
- insertResponse = plugin.DeleteProfile(uuid);
- }
- catch (Exception)
- {
- m_log.Error("storage Unable to delete region " + uuid + " via " + plugin.Name);
- //MainLog.Instance.Warn("storage", e.ToString());
- insertResponse = DataResponse.RESPONSE_ERROR;
- }
- }
- return insertResponse;
- }
-
- public string CheckReservations(RegionProfileData theSim, XmlNode authkeynode)
- {
- foreach (IGridDataPlugin plugin in _plugins)
- {
- try
- {
- //Check reservations
- ReservationData reserveData =
- plugin.GetReservationAtPoint(theSim.regionLocX, theSim.regionLocY);
- if ((reserveData != null && reserveData.gridRecvKey == theSim.regionRecvKey) ||
- (reserveData == null && authkeynode.InnerText != theSim.regionRecvKey))
- {
- plugin.StoreProfile(theSim);
- m_log.Info("[grid]: New sim added to grid (" + theSim.regionName + ")");
- logToDB(theSim.ToString(), "RestSetSimMethod", String.Empty, 5,
- "Region successfully updated and connected to grid.");
- }
- else
- {
- m_log.Warn("[grid]: " +
- "Unable to update region (RestSetSimMethod): Incorrect reservation auth key.");
- // Wanted: " + reserveData.gridRecvKey + ", Got: " + theSim.regionRecvKey + ".");
- return "Unable to update region (RestSetSimMethod): Incorrect auth key.";
- }
- }
- catch (Exception e)
- {
- m_log.Warn("[GRID]: GetRegionPlugin Handle " + plugin.Name + " unable to add new sim: " +
- e.ToString());
- }
- }
- return "OK";
- }
- }
-}
diff --git a/OpenSim/Grid/GridServer.Modules/GridMessagingModule.cs b/OpenSim/Grid/GridServer.Modules/GridMessagingModule.cs
deleted file mode 100644
index 796c2e3..0000000
--- a/OpenSim/Grid/GridServer.Modules/GridMessagingModule.cs
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using System.Text;
-using Nwc.XmlRpc;
-using log4net;
-using OpenSim.Data;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Framework;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.GridServer.Modules
-{
- public class GridMessagingModule : IMessagingServerDiscovery
- {
- //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- protected IRegionProfileService m_gridDBService;
- protected IGridServiceCore m_gridCore;
-
- protected GridConfig m_config;
-
- ///
- /// Used to notify old regions as to which OpenSim version to upgrade to
- ///
- //private string m_opensimVersion;
-
- protected BaseHttpServer m_httpServer;
-
- // This is here so that the grid server can hand out MessageServer settings to regions on registration
- private List m_messageServers = new List();
-
- public GridMessagingModule()
- {
- }
-
- public void Initialise(string opensimVersion, IRegionProfileService gridDBService, IGridServiceCore gridCore, GridConfig config)
- {
- //m_opensimVersion = opensimVersion;
- m_gridDBService = gridDBService;
- m_gridCore = gridCore;
- m_config = config;
-
- m_gridCore.RegisterInterface(this);
-
- RegisterHandlers();
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void RegisterHandlers()
- {
- //have these in separate method as some servers restart the http server and reregister all the handlers.
- m_httpServer = m_gridCore.GetHttpServer();
-
- // Message Server ---> Grid Server
- m_httpServer.AddXmlRPCHandler("register_messageserver", XmlRPCRegisterMessageServer);
- m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer);
- }
-
- public List GetMessageServersList()
- {
- lock (m_messageServers)
- {
- return new List(m_messageServers);
- }
- }
-
- public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
-
- if (requestData.Contains("uri"))
- {
- string URI = (string)requestData["URI"];
- string sendkey = (string)requestData["sendkey"];
- string recvkey = (string)requestData["recvkey"];
- MessageServerInfo m = new MessageServerInfo();
- m.URI = URI;
- m.sendkey = sendkey;
- m.recvkey = recvkey;
- RegisterMessageServer(m);
- responseData["responsestring"] = "TRUE";
- response.Value = responseData;
- }
- return response;
- }
-
- public XmlRpcResponse XmlRPCDeRegisterMessageServer(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
-
- if (requestData.Contains("uri"))
- {
- string URI = (string)requestData["uri"];
- string sendkey = (string)requestData["sendkey"];
- string recvkey = (string)requestData["recvkey"];
- MessageServerInfo m = new MessageServerInfo();
- m.URI = URI;
- m.sendkey = sendkey;
- m.recvkey = recvkey;
- DeRegisterMessageServer(m);
- responseData["responsestring"] = "TRUE";
- response.Value = responseData;
- }
- return response;
- }
-
- public void RegisterMessageServer(MessageServerInfo m)
- {
- lock (m_messageServers)
- {
- if (!m_messageServers.Contains(m))
- m_messageServers.Add(m);
- }
- }
-
- public void DeRegisterMessageServer(MessageServerInfo m)
- {
- lock (m_messageServers)
- {
- if (m_messageServers.Contains(m))
- m_messageServers.Remove(m);
- }
- }
- }
-}
diff --git a/OpenSim/Grid/GridServer.Modules/GridRestModule.cs b/OpenSim/Grid/GridServer.Modules/GridRestModule.cs
deleted file mode 100644
index e4c19ca..0000000
--- a/OpenSim/Grid/GridServer.Modules/GridRestModule.cs
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using System.Xml;
-using log4net;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.GridServer.Modules
-{
- public class GridRestModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private GridDBService m_gridDBService;
- private IGridServiceCore m_gridCore;
-
- protected GridConfig m_config;
-
- ///
- /// Used to notify old regions as to which OpenSim version to upgrade to
- ///
- //private string m_opensimVersion;
-
- protected BaseHttpServer m_httpServer;
-
- ///
- /// Constructor
- ///
- ///
- /// Used to notify old regions as to which OpenSim version to upgrade to
- ///
- public GridRestModule()
- {
- }
-
- public void Initialise(string opensimVersion, GridDBService gridDBService, IGridServiceCore gridCore, GridConfig config)
- {
- //m_opensimVersion = opensimVersion;
- m_gridDBService = gridDBService;
- m_gridCore = gridCore;
- m_config = config;
- RegisterHandlers();
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void RegisterHandlers()
- {
- //have these in separate method as some servers restart the http server and reregister all the handlers.
- m_httpServer = m_gridCore.GetHttpServer();
-
- m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", RestGetSimMethod));
- m_httpServer.AddStreamHandler(new RestStreamHandler("POST", "/sims/", RestSetSimMethod));
-
- m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/regions/", RestGetRegionMethod));
- m_httpServer.AddStreamHandler(new RestStreamHandler("POST", "/regions/", RestSetRegionMethod));
- }
-
- ///
- /// Performs a REST Get Operation
- ///
- ///
- ///
- ///
- /// HTTP request header object
- /// HTTP response header object
- ///
- public string RestGetRegionMethod(string request, string path, string param,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- return RestGetSimMethod(String.Empty, "/sims/", param, httpRequest, httpResponse);
- }
-
- ///
- /// Performs a REST Set Operation
- ///
- ///
- ///
- ///
- /// HTTP request header object
- /// HTTP response header object
- ///
- public string RestSetRegionMethod(string request, string path, string param,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- return RestSetSimMethod(String.Empty, "/sims/", param, httpRequest, httpResponse);
- }
-
- ///
- /// Returns information about a sim via a REST Request
- ///
- ///
- ///
- /// A string representing the sim's UUID
- /// HTTP request header object
- /// HTTP response header object
- /// Information about the sim in XML
- public string RestGetSimMethod(string request, string path, string param,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- string respstring = String.Empty;
-
- RegionProfileData TheSim;
-
- UUID UUID;
- if (UUID.TryParse(param, out UUID))
- {
- TheSim = m_gridDBService.GetRegion(UUID);
-
- if (!(TheSim == null))
- {
- respstring = "";
- respstring += "" + TheSim.regionSendKey + "";
- respstring += "";
- respstring += "" + TheSim.UUID.ToString() + "";
- respstring += "" + TheSim.regionName + "";
- respstring += "" + TheSim.serverIP + "";
- respstring += "" + TheSim.serverPort.ToString() + "";
- respstring += "" + TheSim.regionLocX.ToString() + "";
- respstring += "" + TheSim.regionLocY.ToString() + "";
- respstring += "1";
- respstring += "";
- respstring += "";
- }
- }
- else
- {
- respstring = "";
- respstring += "Param must be a UUID";
- respstring += "";
- }
-
- return respstring;
- }
-
- ///
- /// Creates or updates a sim via a REST Method Request
- /// BROKEN with SQL Update
- ///
- ///
- ///
- ///
- /// HTTP request header object
- /// HTTP response header object
- /// "OK" or an error
- public string RestSetSimMethod(string request, string path, string param,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- m_log.Info("Processing region update via REST method");
- RegionProfileData theSim;
- theSim = m_gridDBService.GetRegion(new UUID(param));
- if (theSim == null)
- {
- theSim = new RegionProfileData();
- UUID UUID = new UUID(param);
- theSim.UUID = UUID;
- theSim.regionRecvKey = m_config.SimRecvKey;
- }
-
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(request);
- XmlNode rootnode = doc.FirstChild;
- XmlNode authkeynode = rootnode.ChildNodes[0];
- if (authkeynode.Name != "authkey")
- {
- return "ERROR! bad XML - expected authkey tag";
- }
-
- XmlNode simnode = rootnode.ChildNodes[1];
- if (simnode.Name != "sim")
- {
- return "ERROR! bad XML - expected sim tag";
- }
-
- //theSim.regionSendKey = Cfg;
- theSim.regionRecvKey = m_config.SimRecvKey;
- theSim.regionSendKey = m_config.SimSendKey;
- theSim.regionSecret = m_config.SimRecvKey;
- theSim.regionDataURI = String.Empty;
- theSim.regionAssetURI = m_config.DefaultAssetServer;
- theSim.regionAssetRecvKey = m_config.AssetRecvKey;
- theSim.regionAssetSendKey = m_config.AssetSendKey;
- theSim.regionUserURI = m_config.DefaultUserServer;
- theSim.regionUserSendKey = m_config.UserSendKey;
- theSim.regionUserRecvKey = m_config.UserRecvKey;
-
- for (int i = 0; i < simnode.ChildNodes.Count; i++)
- {
- switch (simnode.ChildNodes[i].Name)
- {
- case "regionname":
- theSim.regionName = simnode.ChildNodes[i].InnerText;
- break;
-
- case "sim_ip":
- theSim.serverIP = simnode.ChildNodes[i].InnerText;
- break;
-
- case "sim_port":
- theSim.serverPort = Convert.ToUInt32(simnode.ChildNodes[i].InnerText);
- break;
-
- case "region_locx":
- theSim.regionLocX = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
- theSim.regionHandle = Utils.UIntsToLong((theSim.regionLocX * Constants.RegionSize), (theSim.regionLocY * Constants.RegionSize));
- break;
-
- case "region_locy":
- theSim.regionLocY = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
- theSim.regionHandle = Utils.UIntsToLong((theSim.regionLocX * Constants.RegionSize), (theSim.regionLocY * Constants.RegionSize));
- break;
- }
- }
-
- theSim.serverURI = "http://" + theSim.serverIP + ":" + theSim.serverPort + "/";
- bool requirePublic = false;
- bool requireValid = true;
-
- if (requirePublic &&
- (theSim.serverIP.StartsWith("172.16") || theSim.serverIP.StartsWith("192.168") ||
- theSim.serverIP.StartsWith("10.") || theSim.serverIP.StartsWith("0.") ||
- theSim.serverIP.StartsWith("255.")))
- {
- return "ERROR! Servers must register with public addresses.";
- }
-
- if (requireValid && (theSim.serverIP.StartsWith("0.") || theSim.serverIP.StartsWith("255.")))
- {
- return "ERROR! 0.*.*.* / 255.*.*.* Addresses are invalid, please check your server config and try again";
- }
-
- try
- {
- m_log.Info("[DATA]: " +
- "Updating / adding via " + m_gridDBService.GetNumberOfPlugins() + " storage provider(s) registered.");
-
- return m_gridDBService.CheckReservations(theSim, authkeynode);
- }
- catch (Exception e)
- {
- return "ERROR! Could not save to database! (" + e.ToString() + ")";
- }
- }
- }
-}
diff --git a/OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs b/OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs
deleted file mode 100644
index f1acaf9..0000000
--- a/OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-using log4net;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-using OpenSim.Grid.Framework;
-using OpenSim.Grid;
-
-namespace OpenSim.Grid.GridServer.Modules
-{
- public class GridServerPlugin : IGridPlugin
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- protected GridXmlRpcModule m_gridXmlRpcModule;
- protected GridMessagingModule m_gridMessageModule;
- protected GridRestModule m_gridRestModule;
-
- protected GridDBService m_gridDBService;
-
- protected string m_version;
-
- protected GridConfig m_config;
-
- protected IGridServiceCore m_core;
-
- protected CommandConsole m_console;
-
- #region IGridPlugin Members
-
- public void Initialise(GridServerBase gridServer)
- {
- m_core = gridServer;
- m_config = gridServer.Config;
- m_version = gridServer.Version;
- m_console = MainConsole.Instance;
-
- AddConsoleCommands();
-
- SetupGridServices();
- }
-
- public void PostInitialise()
- {
-
- }
-
- #endregion
-
- #region IPlugin Members
-
- public string Version
- {
- get { return "0.0"; }
- }
-
- public string Name
- {
- get { return "GridServerPlugin"; }
- }
-
- public void Initialise()
- {
- }
-
- #endregion
-
- protected virtual void SetupGridServices()
- {
- // m_log.Info("[DATA]: Connecting to Storage Server");
- m_gridDBService = new GridDBService();
- m_gridDBService.AddPlugin(m_config.DatabaseProvider, m_config.DatabaseConnect);
-
- //Register the database access service so modules can fetch it
- // RegisterInterface(m_gridDBService);
-
- m_gridMessageModule = new GridMessagingModule();
- m_gridMessageModule.Initialise(m_version, m_gridDBService, m_core, m_config);
-
- m_gridXmlRpcModule = new GridXmlRpcModule();
- m_gridXmlRpcModule.Initialise(m_version, m_gridDBService, m_core, m_config);
-
- m_gridRestModule = new GridRestModule();
- m_gridRestModule.Initialise(m_version, m_gridDBService, m_core, m_config);
-
- m_gridMessageModule.PostInitialise();
- m_gridXmlRpcModule.PostInitialise();
- m_gridRestModule.PostInitialise();
- }
-
- #region Console Command Handlers
-
- protected virtual void AddConsoleCommands()
- {
- m_console.Commands.AddCommand("gridserver", false,
- "enable registration",
- "enable registration",
- "Enable new regions to register", HandleRegistration);
-
- m_console.Commands.AddCommand("gridserver", false,
- "disable registration",
- "disable registration",
- "Disable registering new regions", HandleRegistration);
-
- m_console.Commands.AddCommand("gridserver", false, "show status",
- "show status",
- "Show registration status", HandleShowStatus);
- }
-
- private void HandleRegistration(string module, string[] cmd)
- {
- switch (cmd[0])
- {
- case "enable":
- m_config.AllowRegionRegistration = true;
- m_log.Info("Region registration enabled");
- break;
- case "disable":
- m_config.AllowRegionRegistration = false;
- m_log.Info("Region registration disabled");
- break;
- }
- }
-
- private void HandleShowStatus(string module, string[] cmd)
- {
- if (m_config.AllowRegionRegistration)
- {
- m_log.Info("Region registration enabled.");
- }
- else
- {
- m_log.Info("Region registration disabled.");
- }
- }
-
- #endregion
-
- #region IDisposable Members
-
- public void Dispose()
- {
- }
-
- #endregion
- }
-}
diff --git a/OpenSim/Grid/GridServer.Modules/GridXmlRpcModule.cs b/OpenSim/Grid/GridServer.Modules/GridXmlRpcModule.cs
deleted file mode 100644
index 854e66a..0000000
--- a/OpenSim/Grid/GridServer.Modules/GridXmlRpcModule.cs
+++ /dev/null
@@ -1,900 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using System.Reflection;
-using System.Xml;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.GridServer.Modules
-{
- public class GridXmlRpcModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private IRegionProfileService m_gridDBService;
- private IGridServiceCore m_gridCore;
-
- protected GridConfig m_config;
-
- protected IMessagingServerDiscovery m_messagingServerMapper;
- ///
- /// Used to notify old regions as to which OpenSim version to upgrade to
- ///
- private string m_opensimVersion;
-
- protected BaseHttpServer m_httpServer;
-
- ///
- /// Constructor
- ///
- ///
- /// Used to notify old regions as to which OpenSim version to upgrade to
- ///
- public GridXmlRpcModule()
- {
- }
-
- public void Initialise(string opensimVersion, IRegionProfileService gridDBService, IGridServiceCore gridCore, GridConfig config)
- {
- m_opensimVersion = opensimVersion;
- m_gridDBService = gridDBService;
- m_gridCore = gridCore;
- m_config = config;
- RegisterHandlers();
- }
-
- public void PostInitialise()
- {
- IMessagingServerDiscovery messagingModule;
- if (m_gridCore.TryGet(out messagingModule))
- {
- m_messagingServerMapper = messagingModule;
- }
- }
-
- public void RegisterHandlers()
- {
- //have these in separate method as some servers restart the http server and reregister all the handlers.
- m_httpServer = m_gridCore.GetHttpServer();
-
- m_httpServer.AddXmlRPCHandler("simulator_login", XmlRpcSimulatorLoginMethod);
- m_httpServer.AddXmlRPCHandler("simulator_data_request", XmlRpcSimulatorDataRequestMethod);
- m_httpServer.AddXmlRPCHandler("simulator_after_region_moved", XmlRpcDeleteRegionMethod);
- m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod);
- m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod);
- }
-
- ///
- /// Returns a XML String containing a list of the neighbouring regions
- ///
- /// The regionhandle for the center sim
- /// An XML string containing neighbour entities
- public string GetXMLNeighbours(ulong reqhandle)
- {
- string response = String.Empty;
- RegionProfileData central_region = m_gridDBService.GetRegion(reqhandle);
- RegionProfileData neighbour;
- for (int x = -1; x < 2; x++)
- {
- for (int y = -1; y < 2; y++)
- {
- if (
- m_gridDBService.GetRegion(
- Util.UIntsToLong((uint)((central_region.regionLocX + x) * Constants.RegionSize),
- (uint)(central_region.regionLocY + y) * Constants.RegionSize)) != null)
- {
- neighbour =
- m_gridDBService.GetRegion(
- Util.UIntsToLong((uint)((central_region.regionLocX + x) * Constants.RegionSize),
- (uint)(central_region.regionLocY + y) * Constants.RegionSize));
-
- response += "";
- response += "" + neighbour.serverIP + "";
- response += "" + neighbour.serverPort.ToString() + "";
- response += "" + neighbour.regionLocX.ToString() + "";
- response += "" + neighbour.regionLocY.ToString() + "";
- response += "" + neighbour.regionHandle.ToString() + "";
- response += "";
- }
- }
- }
- return response;
- }
-
- ///
- /// Checks that it's valid to replace the existing region data with new data
- ///
- /// Currently, this means ensure that the keys passed in by the new region
- /// match those in the original region. (XXX Is this correct? Shouldn't we simply check
- /// against the keys in the current configuration?)
- ///
- ///
- ///
- protected virtual void ValidateOverwriteKeys(RegionProfileData sim, RegionProfileData existingSim)
- {
- if (!(existingSim.regionRecvKey == sim.regionRecvKey && existingSim.regionSendKey == sim.regionSendKey))
- {
- throw new LoginException(
- String.Format(
- "Authentication failed when trying to login existing region {0} at location {1} {2} currently occupied by {3}"
- + " with the region's send key {4} (expected {5}) and the region's receive key {6} (expected {7})",
- sim.regionName, sim.regionLocX, sim.regionLocY, existingSim.regionName,
- sim.regionSendKey, existingSim.regionSendKey, sim.regionRecvKey, existingSim.regionRecvKey),
- "The keys required to login your region did not match the grid server keys. Please check your grid send and receive keys.");
- }
- }
-
- ///
- /// Checks that the new region data is valid.
- ///
- /// Currently, this means checking that the keys passed in by the new region
- /// match those in the grid server's configuration.
- ///
- ///
- ///
- /// Thrown if region login failed
- protected virtual void ValidateNewRegionKeys(RegionProfileData sim)
- {
- if (!(sim.regionRecvKey == m_config.SimSendKey && sim.regionSendKey == m_config.SimRecvKey))
- {
- throw new LoginException(
- String.Format(
- "Authentication failed when trying to login new region {0} at location {1} {2}"
- + " with the region's send key {3} (expected {4}) and the region's receive key {5} (expected {6})",
- sim.regionName, sim.regionLocX, sim.regionLocY,
- sim.regionSendKey, m_config.SimRecvKey, sim.regionRecvKey, m_config.SimSendKey),
- "The keys required to login your region did not match your existing region keys. Please check your grid send and receive keys.");
- }
- }
-
- ///
- /// Check that a region's http uri is externally contactable.
- ///
- ///
- /// Thrown if the region is not contactable
- protected virtual void ValidateRegionContactable(RegionProfileData sim)
- {
- string regionStatusUrl = String.Format("{0}{1}", sim.httpServerURI, "simstatus/");
- string regionStatusResponse;
-
- RestClient rc = new RestClient(regionStatusUrl);
- rc.RequestMethod = "GET";
-
- m_log.DebugFormat("[LOGIN]: Contacting {0} for status of region {1}", regionStatusUrl, sim.regionName);
-
- try
- {
- Stream rs = rc.Request();
- StreamReader sr = new StreamReader(rs);
- regionStatusResponse = sr.ReadToEnd();
- sr.Close();
- }
- catch (Exception e)
- {
- throw new LoginException(
- String.Format("Region status request to {0} failed", regionStatusUrl),
- String.Format(
- "The grid service could not contact the http url {0} at your region. Please make sure this url is reachable by the grid service",
- regionStatusUrl),
- e);
- }
-
- if (!regionStatusResponse.Equals("OK"))
- {
- throw new LoginException(
- String.Format(
- "Region {0} at {1} returned status response {2} rather than {3}",
- sim.regionName, regionStatusUrl, regionStatusResponse, "OK"),
- String.Format(
- "When the grid service asked for the status of your region, it received the response {0} rather than {1}. Please check your status",
- regionStatusResponse, "OK"));
- }
- }
-
- ///
- /// Construct an XMLRPC error response
- ///
- ///
- ///
- public static XmlRpcResponse ErrorResponse(string error)
- {
- XmlRpcResponse errorResponse = new XmlRpcResponse();
- Hashtable errorResponseData = new Hashtable();
- errorResponse.Value = errorResponseData;
- errorResponseData["error"] = error;
- return errorResponse;
- }
-
- ///
- /// Performed when a region connects to the grid server initially.
- ///
- /// The XML RPC Request
- /// Startup parameters
- public XmlRpcResponse XmlRpcSimulatorLoginMethod(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- RegionProfileData sim;
- RegionProfileData existingSim;
-
- Hashtable requestData = (Hashtable)request.Params[0];
- UUID uuid;
-
- if (!requestData.ContainsKey("UUID") || !UUID.TryParse((string)requestData["UUID"], out uuid))
- {
- m_log.Debug("[LOGIN PRELUDE]: Region connected without a UUID, sending back error response.");
- return ErrorResponse("No UUID passed to grid server - unable to connect you");
- }
-
- try
- {
- sim = RegionFromRequest(requestData);
- }
- catch (FormatException e)
- {
- m_log.Debug("[LOGIN PRELUDE]: Invalid login parameters, sending back error response.");
- return ErrorResponse("Wrong format in login parameters. Please verify parameters." + e.ToString());
- }
-
- m_log.InfoFormat("[LOGIN BEGIN]: Received login request from simulator: {0}", sim.regionName);
-
- if (!m_config.AllowRegionRegistration)
- {
- m_log.DebugFormat(
- "[LOGIN END]: Disabled region registration blocked login request from simulator: {0}",
- sim.regionName);
-
- return ErrorResponse("This grid is currently not accepting region registrations.");
- }
-
- int majorInterfaceVersion = 0;
- if (requestData.ContainsKey("major_interface_version"))
- int.TryParse((string)requestData["major_interface_version"], out majorInterfaceVersion);
-
- if (majorInterfaceVersion != VersionInfo.MajorInterfaceVersion)
- {
- return ErrorResponse(
- String.Format(
- "Your region service implements OGS1 interface version {0}"
- + " but this grid requires that the region implement OGS1 interface version {1} to connect."
- + " Try changing to OpenSimulator {2}",
- majorInterfaceVersion, VersionInfo.MajorInterfaceVersion, m_opensimVersion));
- }
-
- existingSim = m_gridDBService.GetRegion(sim.regionHandle);
-
- if (existingSim == null || existingSim.UUID == sim.UUID || sim.UUID != sim.originUUID)
- {
- try
- {
- if (existingSim == null)
- {
- ValidateNewRegionKeys(sim);
- }
- else
- {
- ValidateOverwriteKeys(sim, existingSim);
- }
-
- ValidateRegionContactable(sim);
- }
- catch (LoginException e)
- {
- string logMsg = e.Message;
- if (e.InnerException != null)
- logMsg += ", " + e.InnerException.Message;
-
- m_log.WarnFormat("[LOGIN END]: {0}", logMsg);
-
- return e.XmlRpcErrorResponse;
- }
-
- DataResponse insertResponse = m_gridDBService.AddUpdateRegion(sim, existingSim);
-
- switch (insertResponse)
- {
- case DataResponse.RESPONSE_OK:
- m_log.Info("[LOGIN END]: " + (existingSim == null ? "New" : "Existing") + " sim login successful: " + sim.regionName);
- break;
- case DataResponse.RESPONSE_ERROR:
- m_log.Warn("[LOGIN END]: Sim login failed (Error): " + sim.regionName);
- break;
- case DataResponse.RESPONSE_INVALIDCREDENTIALS:
- m_log.Warn("[LOGIN END]: " +
- "Sim login failed (Invalid Credentials): " + sim.regionName);
- break;
- case DataResponse.RESPONSE_AUTHREQUIRED:
- m_log.Warn("[LOGIN END]: " +
- "Sim login failed (Authentication Required): " +
- sim.regionName);
- break;
- }
-
- XmlRpcResponse response = CreateLoginResponse(sim);
-
- return response;
- }
- else
- {
- m_log.Warn("[LOGIN END]: Failed to login region " + sim.regionName + " at location " + sim.regionLocX + " " + sim.regionLocY + " currently occupied by " + existingSim.regionName);
- return ErrorResponse("Another region already exists at that location. Please try another.");
- }
- }
-
- ///
- /// Construct a successful response to a simulator's login attempt.
- ///
- ///
- ///
- private XmlRpcResponse CreateLoginResponse(RegionProfileData sim)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
- response.Value = responseData;
-
- ArrayList SimNeighboursData = GetSimNeighboursData(sim);
-
- responseData["UUID"] = sim.UUID.ToString();
- responseData["region_locx"] = sim.regionLocX.ToString();
- responseData["region_locy"] = sim.regionLocY.ToString();
- responseData["regionname"] = sim.regionName;
- responseData["estate_id"] = "1";
- responseData["neighbours"] = SimNeighboursData;
-
- responseData["sim_ip"] = sim.serverIP;
- responseData["sim_port"] = sim.serverPort.ToString();
- responseData["asset_url"] = sim.regionAssetURI;
- responseData["asset_sendkey"] = sim.regionAssetSendKey;
- responseData["asset_recvkey"] = sim.regionAssetRecvKey;
- responseData["user_url"] = sim.regionUserURI;
- responseData["user_sendkey"] = sim.regionUserSendKey;
- responseData["user_recvkey"] = sim.regionUserRecvKey;
- responseData["authkey"] = sim.regionSecret;
-
- // New! If set, use as URL to local sim storage (ie http://remotehost/region.Yap)
- responseData["data_uri"] = sim.regionDataURI;
-
- responseData["allow_forceful_banlines"] = m_config.AllowForcefulBanlines;
-
- // Instead of sending a multitude of message servers to the registering sim
- // we should probably be sending a single one and parhaps it's backup
- // that has responsibility over routing it's messages.
-
- // The Sim won't be contacting us again about any of the message server stuff during it's time up.
-
- responseData["messageserver_count"] = 0;
-
- // IGridMessagingModule messagingModule;
- // if (m_gridCore.TryGet(out messagingModule))
- //{
- if (m_messagingServerMapper != null)
- {
- List messageServers = m_messagingServerMapper.GetMessageServersList();
- responseData["messageserver_count"] = messageServers.Count;
-
- for (int i = 0; i < messageServers.Count; i++)
- {
- responseData["messageserver_uri" + i] = messageServers[i].URI;
- responseData["messageserver_sendkey" + i] = messageServers[i].sendkey;
- responseData["messageserver_recvkey" + i] = messageServers[i].recvkey;
- }
- }
- return response;
- }
-
- private ArrayList GetSimNeighboursData(RegionProfileData sim)
- {
- ArrayList SimNeighboursData = new ArrayList();
-
- RegionProfileData neighbour;
- Hashtable NeighbourBlock;
-
- //First use the fast method. (not implemented in SQLLite)
- List neighbours = m_gridDBService.GetRegions(sim.regionLocX - 1, sim.regionLocY - 1, sim.regionLocX + 1, sim.regionLocY + 1);
-
- if (neighbours.Count > 0)
- {
- foreach (RegionProfileData aSim in neighbours)
- {
- NeighbourBlock = new Hashtable();
- NeighbourBlock["sim_ip"] = aSim.serverIP;
- NeighbourBlock["sim_port"] = aSim.serverPort.ToString();
- NeighbourBlock["region_locx"] = aSim.regionLocX.ToString();
- NeighbourBlock["region_locy"] = aSim.regionLocY.ToString();
- NeighbourBlock["UUID"] = aSim.ToString();
- NeighbourBlock["regionHandle"] = aSim.regionHandle.ToString();
-
- if (aSim.UUID != sim.UUID)
- {
- SimNeighboursData.Add(NeighbourBlock);
- }
- }
- }
- else
- {
- for (int x = -1; x < 2; x++)
- {
- for (int y = -1; y < 2; y++)
- {
- if (
- m_gridDBService.GetRegion(
- Utils.UIntsToLong((uint)((sim.regionLocX + x) * Constants.RegionSize),
- (uint)(sim.regionLocY + y) * Constants.RegionSize)) != null)
- {
- neighbour =
- m_gridDBService.GetRegion(
- Utils.UIntsToLong((uint)((sim.regionLocX + x) * Constants.RegionSize),
- (uint)(sim.regionLocY + y) * Constants.RegionSize));
-
- NeighbourBlock = new Hashtable();
- NeighbourBlock["sim_ip"] = neighbour.serverIP;
- NeighbourBlock["sim_port"] = neighbour.serverPort.ToString();
- NeighbourBlock["region_locx"] = neighbour.regionLocX.ToString();
- NeighbourBlock["region_locy"] = neighbour.regionLocY.ToString();
- NeighbourBlock["UUID"] = neighbour.UUID.ToString();
- NeighbourBlock["regionHandle"] = neighbour.regionHandle.ToString();
-
- if (neighbour.UUID != sim.UUID) SimNeighboursData.Add(NeighbourBlock);
- }
- }
- }
- }
- return SimNeighboursData;
- }
-
- ///
- /// Loads the grid's own RegionProfileData object with data from the XMLRPC simulator_login request from a region
- ///
- ///
- ///
- private RegionProfileData RegionFromRequest(Hashtable requestData)
- {
- RegionProfileData sim;
- sim = new RegionProfileData();
-
- sim.UUID = new UUID((string)requestData["UUID"]);
- sim.originUUID = new UUID((string)requestData["originUUID"]);
-
- sim.regionRecvKey = String.Empty;
- sim.regionSendKey = String.Empty;
-
- if (requestData.ContainsKey("region_secret"))
- {
- string regionsecret = (string)requestData["region_secret"];
- if (regionsecret.Length > 0)
- sim.regionSecret = regionsecret;
- else
- sim.regionSecret = m_config.SimRecvKey;
-
- }
- else
- {
- sim.regionSecret = m_config.SimRecvKey;
- }
-
- sim.regionDataURI = String.Empty;
- sim.regionAssetURI = m_config.DefaultAssetServer;
- sim.regionAssetRecvKey = m_config.AssetRecvKey;
- sim.regionAssetSendKey = m_config.AssetSendKey;
- sim.regionUserURI = m_config.DefaultUserServer;
- sim.regionUserSendKey = m_config.UserSendKey;
- sim.regionUserRecvKey = m_config.UserRecvKey;
-
- sim.serverIP = (string)requestData["sim_ip"];
- sim.serverPort = Convert.ToUInt32((string)requestData["sim_port"]);
- sim.httpPort = Convert.ToUInt32((string)requestData["http_port"]);
- sim.remotingPort = Convert.ToUInt32((string)requestData["remoting_port"]);
- sim.regionLocX = Convert.ToUInt32((string)requestData["region_locx"]);
- sim.regionLocY = Convert.ToUInt32((string)requestData["region_locy"]);
- sim.regionLocZ = 0;
-
- UUID textureID;
- if (UUID.TryParse((string)requestData["map-image-id"], out textureID))
- {
- sim.regionMapTextureID = textureID;
- }
-
- // part of an initial brutish effort to provide accurate information (as per the xml region spec)
- // wrt the ownership of a given region
- // the (very bad) assumption is that this value is being read and handled inconsistently or
- // not at all. Current strategy is to put the code in place to support the validity of this information
- // and to roll forward debugging any issues from that point
- //
- // this particular section of the mod attempts to receive a value from the region's xml file by way of
- // OSG1GridServices for the region's owner
- sim.owner_uuid = (UUID)(string)requestData["master_avatar_uuid"];
-
- try
- {
- sim.regionRecvKey = (string)requestData["recvkey"];
- sim.regionSendKey = (string)requestData["authkey"];
- }
- catch (KeyNotFoundException) { }
-
- sim.regionHandle = Utils.UIntsToLong((sim.regionLocX * Constants.RegionSize), (sim.regionLocY * Constants.RegionSize));
- sim.serverURI = (string)requestData["server_uri"];
-
- sim.httpServerURI = "http://" + sim.serverIP + ":" + sim.httpPort + "/";
-
- sim.regionName = (string)requestData["sim_name"];
-
-
- try
- {
-
- sim.maturity = Convert.ToUInt32((string)requestData["maturity"]);
- }
- catch (KeyNotFoundException)
- {
- //older region not providing this key - so default to Mature
- sim.maturity = 1;
- }
-
- return sim;
- }
-
- ///
- /// Returns an XML RPC response to a simulator profile request
- /// Performed after moving a region.
- ///
- ///
- ///
- /// The XMLRPC Request
- /// Processing parameters
- public XmlRpcResponse XmlRpcDeleteRegionMethod(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
- response.Value = responseData;
-
- //RegionProfileData TheSim = null;
- string uuid;
- Hashtable requestData = (Hashtable)request.Params[0];
-
- if (requestData.ContainsKey("UUID"))
- {
- //TheSim = GetRegion(new UUID((string) requestData["UUID"]));
- uuid = requestData["UUID"].ToString();
- m_log.InfoFormat("[LOGOUT]: Logging out region: {0}", uuid);
- // logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID.");
- }
- else
- {
- responseData["error"] = "No UUID or region_handle passed to grid server - unable to delete";
- return response;
- }
-
- DataResponse insertResponse = m_gridDBService.DeleteRegion(uuid);
-
- string insertResp = "";
- switch (insertResponse)
- {
- case DataResponse.RESPONSE_OK:
- //MainLog.Instance.Verbose("grid", "Deleting region successful: " + uuid);
- insertResp = "Deleting region successful: " + uuid;
- break;
- case DataResponse.RESPONSE_ERROR:
- //MainLog.Instance.Warn("storage", "Deleting region failed (Error): " + uuid);
- insertResp = "Deleting region failed (Error): " + uuid;
- break;
- case DataResponse.RESPONSE_INVALIDCREDENTIALS:
- //MainLog.Instance.Warn("storage", "Deleting region failed (Invalid Credentials): " + uuid);
- insertResp = "Deleting region (Invalid Credentials): " + uuid;
- break;
- case DataResponse.RESPONSE_AUTHREQUIRED:
- //MainLog.Instance.Warn("storage", "Deleting region failed (Authentication Required): " + uuid);
- insertResp = "Deleting region (Authentication Required): " + uuid;
- break;
- }
-
- responseData["status"] = insertResp;
-
- return response;
- }
-
- ///
- /// Returns an XML RPC response to a simulator profile request
- ///
- ///
- ///
- public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
- RegionProfileData simData = null;
- if (requestData.ContainsKey("region_UUID"))
- {
- UUID regionID = new UUID((string)requestData["region_UUID"]);
- simData = m_gridDBService.GetRegion(regionID);
- if (simData == null)
- {
- m_log.WarnFormat("[DATA] didn't find region for regionID {0} from {1}",
- regionID, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
- }
- }
- else if (requestData.ContainsKey("region_handle"))
- {
- //CFK: The if/else below this makes this message redundant.
- //CFK: m_log.Info("requesting data for region " + (string) requestData["region_handle"]);
- ulong regionHandle = Convert.ToUInt64((string)requestData["region_handle"]);
- simData = m_gridDBService.GetRegion(regionHandle);
- if (simData == null)
- {
- m_log.WarnFormat("[DATA] didn't find region for regionHandle {0} from {1}",
- regionHandle, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
- }
- }
- else if (requestData.ContainsKey("region_name_search"))
- {
- string regionName = (string)requestData["region_name_search"];
- simData = m_gridDBService.GetRegion(regionName);
- if (simData == null)
- {
- m_log.WarnFormat("[DATA] didn't find region for regionName {0} from {1}",
- regionName, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
- }
- }
- else m_log.Warn("[DATA] regionlookup without regionID, regionHandle or regionHame");
-
- if (simData == null)
- {
- //Sim does not exist
- responseData["error"] = "Sim does not exist";
- }
- else
- {
- m_log.Info("[DATA]: found " + (string)simData.regionName + " regionHandle = " +
- (string)requestData["region_handle"]);
- responseData["sim_ip"] = simData.serverIP;
- responseData["sim_port"] = simData.serverPort.ToString();
- responseData["server_uri"] = simData.serverURI;
- responseData["http_port"] = simData.httpPort.ToString();
- responseData["remoting_port"] = simData.remotingPort.ToString();
- responseData["region_locx"] = simData.regionLocX.ToString();
- responseData["region_locy"] = simData.regionLocY.ToString();
- responseData["region_UUID"] = simData.UUID.Guid.ToString();
- responseData["region_name"] = simData.regionName;
- responseData["regionHandle"] = simData.regionHandle.ToString();
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = responseData;
- return response;
- }
-
- public XmlRpcResponse XmlRpcMapBlockMethod(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- int xmin = 980, ymin = 980, xmax = 1020, ymax = 1020;
-
- Hashtable requestData = (Hashtable)request.Params[0];
- if (requestData.ContainsKey("xmin"))
- {
- xmin = (Int32)requestData["xmin"];
- }
- if (requestData.ContainsKey("ymin"))
- {
- ymin = (Int32)requestData["ymin"];
- }
- if (requestData.ContainsKey("xmax"))
- {
- xmax = (Int32)requestData["xmax"];
- }
- if (requestData.ContainsKey("ymax"))
- {
- ymax = (Int32)requestData["ymax"];
- }
- //CFK: The second log is more meaningful and either standard or fast generally occurs.
- //CFK: m_log.Info("[MAP]: World map request for range (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")");
-
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
- response.Value = responseData;
- IList simProfileList = new ArrayList();
-
- bool fastMode = (m_config.DatabaseProvider == "OpenSim.Data.MySQL.dll" || m_config.DatabaseProvider == "OpenSim.Data.MSSQL.dll");
-
- if (fastMode)
- {
- List neighbours = m_gridDBService.GetRegions((uint)xmin, (uint)ymin, (uint)xmax, (uint)ymax);
-
- foreach (RegionProfileData aSim in neighbours)
- {
- Hashtable simProfileBlock = new Hashtable();
- simProfileBlock["x"] = aSim.regionLocX.ToString();
- simProfileBlock["y"] = aSim.regionLocY.ToString();
- //m_log.DebugFormat("[MAP]: Sending neighbour info for {0},{1}", aSim.regionLocX, aSim.regionLocY);
- simProfileBlock["name"] = aSim.regionName;
- simProfileBlock["access"] = aSim.AccessLevel.ToString();
- simProfileBlock["region-flags"] = 512;
- simProfileBlock["water-height"] = 0;
- simProfileBlock["agents"] = 1;
- simProfileBlock["map-image-id"] = aSim.regionMapTextureID.ToString();
-
- // For Sugilite compatibility
- simProfileBlock["regionhandle"] = aSim.regionHandle.ToString();
- simProfileBlock["sim_ip"] = aSim.serverIP;
- simProfileBlock["sim_port"] = aSim.serverPort.ToString();
- simProfileBlock["sim_uri"] = aSim.serverURI.ToString();
- simProfileBlock["uuid"] = aSim.UUID.ToString();
- simProfileBlock["remoting_port"] = aSim.remotingPort.ToString();
- simProfileBlock["http_port"] = aSim.httpPort.ToString();
-
- simProfileList.Add(simProfileBlock);
- }
- m_log.Info("[MAP]: Fast map " + simProfileList.Count.ToString() +
- " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")");
- }
- else
- {
- RegionProfileData simProfile;
- for (int x = xmin; x < xmax + 1; x++)
- {
- for (int y = ymin; y < ymax + 1; y++)
- {
- ulong regHandle = Utils.UIntsToLong((uint)(x * Constants.RegionSize), (uint)(y * Constants.RegionSize));
- simProfile = m_gridDBService.GetRegion(regHandle);
- if (simProfile != null)
- {
- Hashtable simProfileBlock = new Hashtable();
- simProfileBlock["x"] = x;
- simProfileBlock["y"] = y;
- simProfileBlock["name"] = simProfile.regionName;
- simProfileBlock["access"] = simProfile.AccessLevel.ToString();
- simProfileBlock["region-flags"] = 0;
- simProfileBlock["water-height"] = 20;
- simProfileBlock["agents"] = 1;
- simProfileBlock["map-image-id"] = simProfile.regionMapTextureID.ToString();
-
- // For Sugilite compatibility
- simProfileBlock["regionhandle"] = simProfile.regionHandle.ToString();
- simProfileBlock["sim_ip"] = simProfile.serverIP.ToString();
- simProfileBlock["sim_port"] = simProfile.serverPort.ToString();
- simProfileBlock["sim_uri"] = simProfile.serverURI.ToString();
- simProfileBlock["uuid"] = simProfile.UUID.ToString();
- simProfileBlock["remoting_port"] = simProfile.remotingPort.ToString();
- simProfileBlock["http_port"] = simProfile.httpPort;
-
- simProfileList.Add(simProfileBlock);
- }
- }
- }
- m_log.Info("[MAP]: Std map " + simProfileList.Count.ToString() +
- " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")");
- }
-
- responseData["sim-profiles"] = simProfileList;
-
- return response;
- }
-
- ///
- /// Returns up to maxNumber
profiles of regions that have a name starting with name
- ///
- ///
- ///
- public XmlRpcResponse XmlRpcSearchForRegionMethod(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
-
- if (!requestData.ContainsKey("name") || !requestData.Contains("maxNumber"))
- {
- m_log.Warn("[DATA] Invalid region-search request; missing name or maxNumber");
- return new XmlRpcResponse(500, "Missing name or maxNumber in region search request");
- }
-
- Hashtable responseData = new Hashtable();
-
- string name = (string)requestData["name"];
- int maxNumber = Convert.ToInt32((string)requestData["maxNumber"]);
- if (maxNumber == 0 || name.Length < 3)
- {
- // either we didn't want any, or we were too unspecific
- responseData["numFound"] = 0;
- }
- else
- {
- List sims = m_gridDBService.GetRegions(name, maxNumber);
-
- responseData["numFound"] = sims.Count;
- for (int i = 0; i < sims.Count; ++i)
- {
- RegionProfileData sim = sims[i];
- string prefix = "region" + i + ".";
- responseData[prefix + "region_name"] = sim.regionName;
- responseData[prefix + "region_UUID"] = sim.UUID.ToString();
- responseData[prefix + "region_locx"] = sim.regionLocX.ToString();
- responseData[prefix + "region_locy"] = sim.regionLocY.ToString();
- responseData[prefix + "sim_ip"] = sim.serverIP.ToString();
- responseData[prefix + "sim_port"] = sim.serverPort.ToString();
- responseData[prefix + "remoting_port"] = sim.remotingPort.ToString();
- responseData[prefix + "http_port"] = sim.httpPort.ToString();
- responseData[prefix + "map_UUID"] = sim.regionMapTextureID.ToString();
- }
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = responseData;
- return response;
- }
-
- ///
- /// Construct an XMLRPC registration disabled response
- ///
- ///
- ///
- public static XmlRpcResponse XmlRPCRegionRegistrationDisabledResponse(string error)
- {
- XmlRpcResponse errorResponse = new XmlRpcResponse();
- Hashtable errorResponseData = new Hashtable();
- errorResponse.Value = errorResponseData;
- errorResponseData["restricted"] = error;
- return errorResponse;
- }
- }
-
- ///
- /// Exception generated when a simulator fails to login to the grid
- ///
- public class LoginException : Exception
- {
- ///
- /// Return an XmlRpcResponse version of the exception message suitable for sending to a client
- ///
- ///
- ///
- public XmlRpcResponse XmlRpcErrorResponse
- {
- get { return m_xmlRpcErrorResponse; }
- }
- private XmlRpcResponse m_xmlRpcErrorResponse;
-
- public LoginException(string message, string xmlRpcMessage)
- : base(message)
- {
- // FIXME: Might be neater to refactor and put the method inside here
- m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage);
- }
-
- public LoginException(string message, string xmlRpcMessage, Exception e)
- : base(message, e)
- {
- // FIXME: Might be neater to refactor and put the method inside here
- m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage);
- }
- }
-}
diff --git a/OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml b/OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml
deleted file mode 100644
index c2c5ac3..0000000
--- a/OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs
deleted file mode 100644
index 9b0d7ea..0000000
--- a/OpenSim/Grid/GridServer/GridServerBase.cs
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using log4net;
-using Nini.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.GridServer
-{
- ///
- ///
- public class GridServerBase : BaseOpenSimServer, IGridServiceCore
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- protected GridConfig m_config;
- public string m_consoleType = "local";
- public IConfigSource m_configSource = null;
- public string m_configFile = "GridServer_Config.xml";
-
- public GridConfig Config
- {
- get { return m_config; }
- }
-
- public string Version
- {
- get { return m_version; }
- }
-
- protected List m_plugins = new List();
-
- public void Work()
- {
- m_console.Output("Enter help for a list of commands\n");
-
- while (true)
- {
- m_console.Prompt();
- }
- }
-
- public GridServerBase()
- {
- }
-
- protected override void StartupSpecific()
- {
- switch (m_consoleType)
- {
- case "rest":
- m_console = new RemoteConsole("Grid");
- break;
- case "basic":
- m_console = new CommandConsole("Grid");
- break;
- default:
- m_console = new LocalConsole("Grid");
- break;
- }
- MainConsole.Instance = m_console;
- m_config = new GridConfig("GRID SERVER", (Path.Combine(Util.configDir(), m_configFile)));
-
- m_log.Info("[GRID]: Starting HTTP process");
- m_httpServer = new BaseHttpServer(m_config.HttpPort);
- if (m_console is RemoteConsole)
- {
- RemoteConsole c = (RemoteConsole)m_console;
- c.SetServer(m_httpServer);
- IConfig netConfig = m_configSource.AddConfig("Network");
- netConfig.Set("ConsoleUser", m_config.ConsoleUser);
- netConfig.Set("ConsolePass", m_config.ConsolePass);
- c.ReadConfig(m_configSource);
- }
-
- LoadPlugins();
-
- m_httpServer.Start();
-
- base.StartupSpecific();
- }
-
- protected virtual void LoadPlugins()
- {
- using (PluginLoader loader = new PluginLoader(new GridPluginInitialiser(this)))
- {
- loader.Load("/OpenSim/GridServer");
- m_plugins = loader.Plugins;
- }
- }
-
- public override void ShutdownSpecific()
- {
- foreach (IGridPlugin plugin in m_plugins) plugin.Dispose();
- }
-
- #region IServiceCore
- protected Dictionary m_moduleInterfaces = new Dictionary();
-
- ///
- /// Register an Module interface.
- ///
- ///
- ///
- public void RegisterInterface(T iface)
- {
- lock (m_moduleInterfaces)
- {
- if (!m_moduleInterfaces.ContainsKey(typeof(T)))
- {
- m_moduleInterfaces.Add(typeof(T), iface);
- }
- }
- }
-
- public bool TryGet(out T iface)
- {
- if (m_moduleInterfaces.ContainsKey(typeof(T)))
- {
- iface = (T)m_moduleInterfaces[typeof(T)];
- return true;
- }
- iface = default(T);
- return false;
- }
-
- public T Get()
- {
- return (T)m_moduleInterfaces[typeof(T)];
- }
-
- public BaseHttpServer GetHttpServer()
- {
- return m_httpServer;
- }
- #endregion
- }
-}
diff --git a/OpenSim/Grid/GridServer/IGridPlugin.cs b/OpenSim/Grid/GridServer/IGridPlugin.cs
deleted file mode 100644
index bd0feb6..0000000
--- a/OpenSim/Grid/GridServer/IGridPlugin.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) Contributors, http://opensimulator.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* * Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-* * Neither the name of the OpenSimulator Project nor the
-* names of its contributors may be used to endorse or promote products
-* derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-*/
-
-using OpenSim.Framework;
-
-namespace OpenSim.Grid.GridServer
-{
- public interface IGridPlugin : IPlugin
- {
- void Initialise(GridServerBase gridServer);
- void PostInitialise();
- }
-
- public class GridPluginInitialiser : PluginInitialiserBase
- {
- private GridServerBase server;
- public GridPluginInitialiser (GridServerBase s) { server = s; }
- public override void Initialise (IPlugin plugin)
- {
- IGridPlugin p = plugin as IGridPlugin;
- p.Initialise (server);
- }
- }
-}
diff --git a/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs
deleted file mode 100644
index 24c4bd7..0000000
--- a/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-
-[assembly : AssemblyTitle("OGS-GridServer")]
-[assembly : AssemblyDescription("")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("http://opensimulator.org")]
-[assembly : AssemblyProduct("OGS-GridServer")]
-[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-
-[assembly : ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-
-[assembly : Guid("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-
-[assembly : AssemblyVersion("0.6.5.*")]
-[assembly : AssemblyFileVersion("0.6.5.0")]
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager.mds b/OpenSim/Grid/Manager/OpenGridServices.Manager.mds
deleted file mode 100644
index ed7bc24..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager.mds
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager.userprefs b/OpenSim/Grid/Manager/OpenGridServices.Manager.userprefs
deleted file mode 100644
index f221509..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager.userprefs
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager.usertasks b/OpenSim/Grid/Manager/OpenGridServices.Manager.usertasks
deleted file mode 100644
index d887d0e..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager.usertasks
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/AssemblyInfo.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/AssemblyInfo.cs
deleted file mode 100644
index 49d1818..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/AssemblyInfo.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-// Information about this assembly is defined by the following
-// attributes.
-//
-// change them to the information which is associated with the assembly
-// you compile.
-
-[assembly: AssemblyTitle("")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("http://opensimulator.org")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all values by your own or you can build default build and revision
-// numbers with the '*' character (the default):
-
-[assembly: AssemblyVersion("0.6.3.*")]
-
-// The following attributes specify the key for the sign of your assembly. See the
-// .NET Framework documentation for more information about signing.
-// This is not required, if you don't want signing let these attributes like they're.
-[assembly: AssemblyDelaySign(false)]
-[assembly: AssemblyKeyFile("")]
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs
deleted file mode 100644
index 2e39cd0..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Threading;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OpenGridServices.Manager
-{
- public class BlockingQueue
- {
- private Queue _queue = new Queue();
- private object _queueSync = new object();
-
- public void Enqueue(T value)
- {
- lock (_queueSync)
- {
- _queue.Enqueue(value);
- Monitor.Pulse(_queueSync);
- }
- }
-
- public T Dequeue()
- {
- lock (_queueSync)
- {
- if (_queue.Count < 1)
- Monitor.Wait(_queueSync);
-
- return _queue.Dequeue();
- }
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServer.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServer.cs
deleted file mode 100644
index 25f25a7..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServer.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-
-namespace OpenGridServices.Manager
-{
- public partial class Connect to grid server : Gtk.Dialog
- {
- public Connect to grid server()
- {
- this.Build();
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs
deleted file mode 100644
index fd4d211..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using Gtk;
-using System;
-
-namespace OpenGridServices.Manager
-{
- public partial class ConnectToGridServerDialog : Gtk.Dialog
- {
- public ConnectToGridServerDialog()
- {
- this.Build();
- }
-
- protected virtual void OnResponse(object o, Gtk.ResponseArgs args)
- {
- switch (args.ResponseId)
- {
- case Gtk.ResponseType.Ok:
- MainClass.PendingOperations.Enqueue("connect_to_gridserver " + this.entry1.Text + " " + this.entry2.Text + " " + this.entry3.Text);
- break;
-
- case Gtk.ResponseType.Cancel:
- break;
- }
- this.Hide();
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs
deleted file mode 100644
index 425a20e..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using Nwc.XmlRpc;
-using System;
-using System.Net;
-using System.IO;
-using System.Xml;
-using System.Collections;
-using System.Collections.Generic;
-using libsecondlife;
-
-namespace OpenGridServices.Manager
-{
- public class GridServerConnectionManager
- {
- private string ServerURL;
- public LLUUID SessionID;
- public bool connected=false;
-
- public RegionBlock[][] WorldMap;
-
- public bool Connect(string GridServerURL, string username, string password)
- {
- try
- {
- this.ServerURL=GridServerURL;
- Hashtable LoginParamsHT = new Hashtable();
- LoginParamsHT["username"]=username;
- LoginParamsHT["password"]=password;
- ArrayList LoginParams = new ArrayList();
- LoginParams.Add(LoginParamsHT);
- XmlRpcRequest GridLoginReq = new XmlRpcRequest("manager_login",LoginParams);
- XmlRpcResponse GridResp = GridLoginReq.Send(ServerURL,3000);
- if (GridResp.IsFault)
- {
- connected=false;
- return false;
- }
- else
- {
- Hashtable gridrespData = (Hashtable)GridResp.Value;
- this.SessionID = new LLUUID((string)gridrespData["session_id"]);
- connected=true;
- return true;
- }
- }
- catch(Exception e)
- {
- Console.WriteLine(e.ToString());
- connected=false;
- return false;
- }
- }
-
- public void DownloadMap()
- {
- System.Net.WebClient mapdownloader = new WebClient();
- Stream regionliststream = mapdownloader.OpenRead(ServerURL + "/regionlist");
-
- RegionBlock TempRegionData;
-
- XmlDocument doc = new XmlDocument();
- doc.Load(regionliststream);
- regionliststream.Close();
- XmlNode rootnode = doc.FirstChild;
- if (rootnode.Name != "regions")
- {
- // TODO - ERROR!
- }
-
- for (int i = 0; i <= rootnode.ChildNodes.Count; i++)
- {
- if (rootnode.ChildNodes.Item(i).Name != "region")
- {
- // TODO - ERROR!
- }
- else
- {
- TempRegionData = new RegionBlock();
- }
- }
- }
-
- public bool RestartServer()
- {
- return true;
- }
-
- public bool ShutdownServer()
- {
- try
- {
- Hashtable ShutdownParamsHT = new Hashtable();
- ArrayList ShutdownParams = new ArrayList();
- ShutdownParamsHT["session_id"]=this.SessionID.ToString();
- ShutdownParams.Add(ShutdownParamsHT);
- XmlRpcRequest GridShutdownReq = new XmlRpcRequest("shutdown",ShutdownParams);
- XmlRpcResponse GridResp = GridShutdownReq.Send(this.ServerURL, 3000);
- if (GridResp.IsFault)
- {
- return false;
- }
- else
- {
- connected=false;
- return true;
- }
- }
- catch(Exception e)
- {
- Console.WriteLine(e.ToString());
- return false;
- }
- }
-
- public void DisconnectServer()
- {
- this.connected=false;
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs
deleted file mode 100644
index 63954d5..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Threading;
-using Gtk;
-
-namespace OpenGridServices.Manager
-{
- class MainClass
- {
-
- public static bool QuitReq=false;
- public static BlockingQueue PendingOperations = new BlockingQueue();
-
- private static Thread OperationsRunner;
-
- private static GridServerConnectionManager gridserverConn;
-
- private static MainWindow win;
-
- public static void DoMainLoop()
- {
- while (!QuitReq)
- {
- Application.RunIteration();
- }
- }
-
- public static void RunOperations()
- {
- string operation;
- string cmd;
- char[] sep = new char[1];
- sep[0]=' ';
- while (!QuitReq)
- {
- operation=PendingOperations.Dequeue();
- Console.WriteLine(operation);
- cmd = operation.Split(sep)[0];
- switch (cmd)
- {
- case "connect_to_gridserver":
- win.SetStatus("Connecting to grid server...");
- if (gridserverConn.Connect(operation.Split(sep)[1], operation.Split(sep)[2], operation.Split(sep)[3]))
- {
- win.SetStatus("Connected OK with session ID:" + gridserverConn.SessionID);
- win.SetGridServerConnected(true);
- Thread.Sleep(3000);
- win.SetStatus("Downloading region maps...");
- gridserverConn.DownloadMap();
- }
- else
- {
- win.SetStatus("Could not connect");
- }
- break;
-
- case "restart_gridserver":
- win.SetStatus("Restarting grid server...");
- if (gridserverConn.RestartServer())
- {
- win.SetStatus("Restarted server OK");
- Thread.Sleep(3000);
- win.SetStatus("");
- }
- else
- {
- win.SetStatus("Error restarting grid server!!!");
- }
- break;
-
- case "shutdown_gridserver":
- win.SetStatus("Shutting down grid server...");
- if (gridserverConn.ShutdownServer())
- {
- win.SetStatus("Grid server shutdown");
- win.SetGridServerConnected(false);
- Thread.Sleep(3000);
- win.SetStatus("");
- }
- else
- {
- win.SetStatus("Could not shutdown grid server!!!");
- }
- break;
-
- case "disconnect_gridserver":
- gridserverConn.DisconnectServer();
- win.SetGridServerConnected(false);
- break;
- }
- }
- }
-
- public static void Main (string[] args)
- {
- gridserverConn = new GridServerConnectionManager();
- Application.Init ();
- win = new MainWindow ();
- win.Show ();
- OperationsRunner = new Thread(new ThreadStart(RunOperations));
- OperationsRunner.IsBackground=true;
- OperationsRunner.Start();
- DoMainLoop();
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/MainWindow.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/MainWindow.cs
deleted file mode 100644
index c6fa800..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/MainWindow.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using Gtk;
-
-namespace OpenGridServices.Manager
-{
- public partial class MainWindow: Gtk.Window
- {
- public MainWindow() : base (Gtk.WindowType.Toplevel)
- {
- Build();
- }
-
- public void SetStatus(string statustext)
- {
- this.statusbar1.Pop(0);
- this.statusbar1.Push(0, statustext);
- }
-
- public void DrawGrid(RegionBlock[][] regions)
- {
- for (int x=0; x<=regions.GetUpperBound(0); x++)
- {
- for (int y=0; y<=regions.GetUpperBound(1); y++)
- {
- Gdk.Image themap = new Gdk.Image(Gdk.ImageType.Fastest,Gdk.Visual.System,256,256);
- this.drawingarea1.GdkWindow.DrawImage(new Gdk.GC(this.drawingarea1.GdkWindow),themap,0,0,x*256,y*256,256,256);
- }
- }
- }
-
- public void SetGridServerConnected(bool connected)
- {
- if (connected)
- {
- this.ConnectToGridserver.Visible=false;
- this.DisconnectFromGridServer.Visible=true;
- }
- else
- {
- this.ConnectToGridserver.Visible=true;
- this.DisconnectFromGridServer.Visible=false;
- }
- }
-
- protected void OnDeleteEvent (object sender, DeleteEventArgs a)
- {
- Application.Quit ();
- MainClass.QuitReq=true;
- a.RetVal = true;
- }
-
- protected virtual void QuitMenu(object sender, System.EventArgs e)
- {
- MainClass.QuitReq=true;
- Application.Quit();
- }
-
- protected virtual void ConnectToGridServerMenu(object sender, System.EventArgs e)
- {
- ConnectToGridServerDialog griddialog = new ConnectToGridServerDialog ();
- griddialog.Show();
- }
-
- protected virtual void RestartGridserverMenu(object sender, System.EventArgs e)
- {
- MainClass.PendingOperations.Enqueue("restart_gridserver");
- }
-
- protected virtual void ShutdownGridserverMenu(object sender, System.EventArgs e)
- {
- MainClass.PendingOperations.Enqueue("shutdown_gridserver");
- }
-
- protected virtual void DisconnectGridServerMenu(object sender, System.EventArgs e)
- {
- MainClass.PendingOperations.Enqueue("disconnect_gridserver");
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/RegionBlock.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/RegionBlock.cs
deleted file mode 100644
index 6c8b0bd..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/RegionBlock.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Xml;
-using libsecondlife;
-using OpenSim.Framework.Utilities;
-
-namespace OpenGridServices.Manager
-{
- public class RegionBlock
- {
- public uint regloc_x;
- public uint regloc_y;
-
- public string httpd_url;
-
- public string region_name;
-
- public ulong regionhandle {
- get { return Util.UIntsToLong(regloc_x*256,regloc_y*256); }
- }
-
- public Gdk.Pixbuf MiniMap;
-
- public RegionBlock()
- {
- }
-
- public void LoadFromXmlNode(XmlNode sourcenode)
- {
- this.regloc_x=Convert.ToUInt32(sourcenode.Attributes.GetNamedItem("loc_x").Value);
- this.regloc_y=Convert.ToUInt32(sourcenode.Attributes.GetNamedItem("loc_y").Value);
- this.region_name=sourcenode.Attributes.GetNamedItem("region_name").Value;
- this.httpd_url=sourcenode.Attributes.GetNamedItem("httpd_url").Value;
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/Util.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/Util.cs
deleted file mode 100644
index f2383bc..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/Util.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using libsecondlife.Packets;
-
-namespace OpenSim.Framework.Utilities
-{
- public class Util
- {
- private static Random randomClass = new Random();
- private static uint nextXferID = 5000;
- private static object XferLock = new object();
-
- public static ulong UIntsToLong(uint X, uint Y)
- {
- return Helpers.UIntsToLong(X, Y);
- }
-
- public static Random RandomClass
- {
- get
- {
- return randomClass;
- }
- }
-
- public static uint GetNextXferID()
- {
- uint id = 0;
- lock (XferLock)
- {
- id = nextXferID;
- nextXferID++;
- }
- return id;
- }
-
- //public static int fast_distance2d(int x, int y)
- //{
- // x = System.Math.Abs(x);
- // y = System.Math.Abs(y);
-
- // int min = System.Math.Min(x, y);
-
- // return (x + y - (min >> 1) - (min >> 2) + (min >> 4));
- //}
-
- public static string FieldToString(byte[] bytes)
- {
- return FieldToString(bytes, String.Empty);
- }
-
- ///
- /// Convert a variable length field (byte array) to a string, with a
- /// field name prepended to each line of the output
- ///
- /// If the byte array has unprintable characters in it, a
- /// hex dump will be put in the string instead
- /// The byte array to convert to a string
- /// A field name to prepend to each line of output
- /// An ASCII string or a string containing a hex dump, minus
- /// the null terminator
- public static string FieldToString(byte[] bytes, string fieldName)
- {
- // Check for a common case
- if (bytes.Length == 0) return String.Empty;
-
- StringBuilder output = new StringBuilder();
- bool printable = true;
-
- for (int i = 0; i < bytes.Length; ++i)
- {
- // Check if there are any unprintable characters in the array
- if ((bytes[i] < 0x20 || bytes[i] > 0x7E) && bytes[i] != 0x09
- && bytes[i] != 0x0D && bytes[i] != 0x0A && bytes[i] != 0x00)
- {
- printable = false;
- break;
- }
- }
-
- if (printable)
- {
- if (fieldName.Length > 0)
- {
- output.Append(fieldName);
- output.Append(": ");
- }
-
- if (bytes[bytes.Length - 1] == 0x00)
- output.Append(UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length - 1));
- else
- output.Append(UTF8Encoding.UTF8.GetString(bytes));
- }
- else
- {
- for (int i = 0; i < bytes.Length; i += 16)
- {
- if (i != 0)
- output.Append(Environment.NewLine);
- if (fieldName.Length > 0)
- {
- output.Append(fieldName);
- output.Append(": ");
- }
-
- for (int j = 0; j < 16; j++)
- {
- if ((i + j) < bytes.Length)
- output.Append(String.Format("{0:X2} ", bytes[i + j]));
- else
- output.Append(" ");
- }
-
- for (int j = 0; j < 16 && (i + j) < bytes.Length; j++)
- {
- if (bytes[i + j] >= 0x20 && bytes[i + j] < 0x7E)
- output.Append((char)bytes[i + j]);
- else
- output.Append(".");
- }
- }
- }
-
- return output.ToString();
- }
-
- public Util()
- {
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.ConnectToGridServerDialog.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.ConnectToGridServerDialog.cs
deleted file mode 100644
index d80499c..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.ConnectToGridServerDialog.cs
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// ------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Mono Runtime Version: 2.0.50727.42
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-// ------------------------------------------------------------------------------
-
-namespace OpenGridServices.Manager
-{
- public partial class ConnectToGridServerDialog
- {
- private Gtk.VBox vbox2;
- private Gtk.VBox vbox3;
- private Gtk.HBox hbox1;
- private Gtk.Label label1;
- private Gtk.Entry entry1;
- private Gtk.HBox hbox2;
- private Gtk.Label label2;
- private Gtk.Entry entry2;
- private Gtk.HBox hbox3;
- private Gtk.Label label3;
- private Gtk.Entry entry3;
- private Gtk.Button button2;
- private Gtk.Button button8;
-
- protected virtual void Build()
- {
- Stetic.Gui.Initialize();
- // Widget OpenGridServices.Manager.ConnectToGridServerDialog
- this.Events = ((Gdk.EventMask)(256));
- this.Name = "OpenGridServices.Manager.ConnectToGridServerDialog";
- this.Title = Mono.Unix.Catalog.GetString("Connect to Grid server");
- this.WindowPosition = ((Gtk.WindowPosition)(4));
- this.HasSeparator = false;
- // Internal child OpenGridServices.Manager.ConnectToGridServerDialog.VBox
- Gtk.VBox w1 = this.VBox;
- w1.Events = ((Gdk.EventMask)(256));
- w1.Name = "dialog_VBox";
- w1.BorderWidth = ((uint)(2));
- // Container child dialog_VBox.Gtk.Box+BoxChild
- this.vbox2 = new Gtk.VBox();
- this.vbox2.Name = "vbox2";
- // Container child vbox2.Gtk.Box+BoxChild
- this.vbox3 = new Gtk.VBox();
- this.vbox3.Name = "vbox3";
- // Container child vbox3.Gtk.Box+BoxChild
- this.hbox1 = new Gtk.HBox();
- this.hbox1.Name = "hbox1";
- // Container child hbox1.Gtk.Box+BoxChild
- this.label1 = new Gtk.Label();
- this.label1.Name = "label1";
- this.label1.Xalign = 1F;
- this.label1.LabelProp = Mono.Unix.Catalog.GetString("Grid server URL: ");
- this.label1.Justify = ((Gtk.Justification)(1));
- this.hbox1.Add(this.label1);
- Gtk.Box.BoxChild w2 = ((Gtk.Box.BoxChild)(this.hbox1[this.label1]));
- w2.Position = 0;
- // Container child hbox1.Gtk.Box+BoxChild
- this.entry1 = new Gtk.Entry();
- this.entry1.CanFocus = true;
- this.entry1.Name = "entry1";
- this.entry1.Text = Mono.Unix.Catalog.GetString("http://gridserver:8001");
- this.entry1.IsEditable = true;
- this.entry1.MaxLength = 255;
- this.entry1.InvisibleChar = '•';
- this.hbox1.Add(this.entry1);
- Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.hbox1[this.entry1]));
- w3.Position = 1;
- this.vbox3.Add(this.hbox1);
- Gtk.Box.BoxChild w4 = ((Gtk.Box.BoxChild)(this.vbox3[this.hbox1]));
- w4.Position = 0;
- w4.Expand = false;
- w4.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.hbox2 = new Gtk.HBox();
- this.hbox2.Name = "hbox2";
- // Container child hbox2.Gtk.Box+BoxChild
- this.label2 = new Gtk.Label();
- this.label2.Name = "label2";
- this.label2.Xalign = 1F;
- this.label2.LabelProp = Mono.Unix.Catalog.GetString("Username:");
- this.label2.Justify = ((Gtk.Justification)(1));
- this.hbox2.Add(this.label2);
- Gtk.Box.BoxChild w5 = ((Gtk.Box.BoxChild)(this.hbox2[this.label2]));
- w5.Position = 0;
- // Container child hbox2.Gtk.Box+BoxChild
- this.entry2 = new Gtk.Entry();
- this.entry2.CanFocus = true;
- this.entry2.Name = "entry2";
- this.entry2.IsEditable = true;
- this.entry2.InvisibleChar = '•';
- this.hbox2.Add(this.entry2);
- Gtk.Box.BoxChild w6 = ((Gtk.Box.BoxChild)(this.hbox2[this.entry2]));
- w6.Position = 1;
- this.vbox3.Add(this.hbox2);
- Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(this.vbox3[this.hbox2]));
- w7.Position = 1;
- w7.Expand = false;
- w7.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.hbox3 = new Gtk.HBox();
- this.hbox3.Name = "hbox3";
- // Container child hbox3.Gtk.Box+BoxChild
- this.label3 = new Gtk.Label();
- this.label3.Name = "label3";
- this.label3.Xalign = 1F;
- this.label3.LabelProp = Mono.Unix.Catalog.GetString("Password:");
- this.label3.Justify = ((Gtk.Justification)(1));
- this.hbox3.Add(this.label3);
- Gtk.Box.BoxChild w8 = ((Gtk.Box.BoxChild)(this.hbox3[this.label3]));
- w8.Position = 0;
- // Container child hbox3.Gtk.Box+BoxChild
- this.entry3 = new Gtk.Entry();
- this.entry3.CanFocus = true;
- this.entry3.Name = "entry3";
- this.entry3.IsEditable = true;
- this.entry3.InvisibleChar = '•';
- this.hbox3.Add(this.entry3);
- Gtk.Box.BoxChild w9 = ((Gtk.Box.BoxChild)(this.hbox3[this.entry3]));
- w9.Position = 1;
- this.vbox3.Add(this.hbox3);
- Gtk.Box.BoxChild w10 = ((Gtk.Box.BoxChild)(this.vbox3[this.hbox3]));
- w10.Position = 2;
- w10.Expand = false;
- w10.Fill = false;
- this.vbox2.Add(this.vbox3);
- Gtk.Box.BoxChild w11 = ((Gtk.Box.BoxChild)(this.vbox2[this.vbox3]));
- w11.Position = 2;
- w11.Expand = false;
- w11.Fill = false;
- w1.Add(this.vbox2);
- Gtk.Box.BoxChild w12 = ((Gtk.Box.BoxChild)(w1[this.vbox2]));
- w12.Position = 0;
- // Internal child OpenGridServices.Manager.ConnectToGridServerDialog.ActionArea
- Gtk.HButtonBox w13 = this.ActionArea;
- w13.Events = ((Gdk.EventMask)(256));
- w13.Name = "OpenGridServices.Manager.ConnectToGridServerDialog_ActionArea";
- w13.Spacing = 6;
- w13.BorderWidth = ((uint)(5));
- w13.LayoutStyle = ((Gtk.ButtonBoxStyle)(4));
- // Container child OpenGridServices.Manager.ConnectToGridServerDialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.button2 = new Gtk.Button();
- this.button2.CanDefault = true;
- this.button2.CanFocus = true;
- this.button2.Name = "button2";
- this.button2.UseUnderline = true;
- // Container child button2.Gtk.Container+ContainerChild
- Gtk.Alignment w14 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- w14.Name = "GtkAlignment";
- // Container child GtkAlignment.Gtk.Container+ContainerChild
- Gtk.HBox w15 = new Gtk.HBox();
- w15.Name = "GtkHBox";
- w15.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
- Gtk.Image w16 = new Gtk.Image();
- w16.Name = "image1";
- w16.Pixbuf = Gtk.IconTheme.Default.LoadIcon("gtk-apply", 16, 0);
- w15.Add(w16);
- // Container child GtkHBox.Gtk.Container+ContainerChild
- Gtk.Label w18 = new Gtk.Label();
- w18.Name = "GtkLabel";
- w18.LabelProp = Mono.Unix.Catalog.GetString("Connect");
- w18.UseUnderline = true;
- w15.Add(w18);
- w14.Add(w15);
- this.button2.Add(w14);
- this.AddActionWidget(this.button2, -5);
- Gtk.ButtonBox.ButtonBoxChild w22 = ((Gtk.ButtonBox.ButtonBoxChild)(w13[this.button2]));
- w22.Expand = false;
- w22.Fill = false;
- // Container child OpenGridServices.Manager.ConnectToGridServerDialog_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.button8 = new Gtk.Button();
- this.button8.CanDefault = true;
- this.button8.CanFocus = true;
- this.button8.Name = "button8";
- this.button8.UseUnderline = true;
- // Container child button8.Gtk.Container+ContainerChild
- Gtk.Alignment w23 = new Gtk.Alignment(0.5F, 0.5F, 0F, 0F);
- w23.Name = "GtkAlignment1";
- // Container child GtkAlignment1.Gtk.Container+ContainerChild
- Gtk.HBox w24 = new Gtk.HBox();
- w24.Name = "GtkHBox1";
- w24.Spacing = 2;
- // Container child GtkHBox1.Gtk.Container+ContainerChild
- Gtk.Image w25 = new Gtk.Image();
- w25.Name = "image2";
- w25.Pixbuf = Gtk.IconTheme.Default.LoadIcon("gtk-cancel", 16, 0);
- w24.Add(w25);
- // Container child GtkHBox1.Gtk.Container+ContainerChild
- Gtk.Label w27 = new Gtk.Label();
- w27.Name = "GtkLabel1";
- w27.LabelProp = Mono.Unix.Catalog.GetString("Cancel");
- w27.UseUnderline = true;
- w24.Add(w27);
- w23.Add(w24);
- this.button8.Add(w23);
- this.AddActionWidget(this.button8, -6);
- Gtk.ButtonBox.ButtonBoxChild w31 = ((Gtk.ButtonBox.ButtonBoxChild)(w13[this.button8]));
- w31.Position = 1;
- w31.Expand = false;
- w31.Fill = false;
- if (this.Child != null)
- {
- this.Child.ShowAll();
- }
- this.DefaultWidth = 476;
- this.DefaultHeight = 137;
- this.Show();
- this.Response += new Gtk.ResponseHandler(this.OnResponse);
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.MainWindow.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.MainWindow.cs
deleted file mode 100644
index 0476081..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/OpenGridServices.Manager.MainWindow.cs
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// ------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Mono Runtime Version: 2.0.50727.42
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-// ------------------------------------------------------------------------------
-
-namespace OpenGridServices.Manager
-{
- public partial class MainWindow
- {
- private Gtk.Action Grid;
- private Gtk.Action User;
- private Gtk.Action Asset;
- private Gtk.Action Region;
- private Gtk.Action Services;
- private Gtk.Action ConnectToGridserver;
- private Gtk.Action RestartWholeGrid;
- private Gtk.Action ShutdownWholeGrid;
- private Gtk.Action ExitGridManager;
- private Gtk.Action ConnectToUserserver;
- private Gtk.Action AccountManagment;
- private Gtk.Action GlobalNotice;
- private Gtk.Action DisableAllLogins;
- private Gtk.Action DisableNonGodUsersOnly;
- private Gtk.Action ShutdownUserServer;
- private Gtk.Action ShutdownGridserverOnly;
- private Gtk.Action RestartGridserverOnly;
- private Gtk.Action DefaultLocalGridUserserver;
- private Gtk.Action CustomUserserver;
- private Gtk.Action RemoteGridDefaultUserserver;
- private Gtk.Action DisconnectFromGridServer;
- private Gtk.Action UploadAsset;
- private Gtk.Action AssetManagement;
- private Gtk.Action ConnectToAssetServer;
- private Gtk.Action ConnectToDefaultAssetServerForGrid;
- private Gtk.Action DefaultForLocalGrid;
- private Gtk.Action DefaultForRemoteGrid;
- private Gtk.Action CustomAssetServer;
- private Gtk.VBox vbox1;
- private Gtk.MenuBar menubar2;
- private Gtk.HBox hbox1;
- private Gtk.ScrolledWindow scrolledwindow1;
- private Gtk.DrawingArea drawingarea1;
- private Gtk.TreeView treeview1;
- private Gtk.Statusbar statusbar1;
-
- protected virtual void Build()
- {
- Stetic.Gui.Initialize();
- // Widget OpenGridServices.Manager.MainWindow
- Gtk.UIManager w1 = new Gtk.UIManager();
- Gtk.ActionGroup w2 = new Gtk.ActionGroup("Default");
- this.Grid = new Gtk.Action("Grid", Mono.Unix.Catalog.GetString("Grid"), null, null);
- this.Grid.HideIfEmpty = false;
- this.Grid.ShortLabel = Mono.Unix.Catalog.GetString("Grid");
- w2.Add(this.Grid, "g");
- this.User = new Gtk.Action("User", Mono.Unix.Catalog.GetString("User"), null, null);
- this.User.HideIfEmpty = false;
- this.User.ShortLabel = Mono.Unix.Catalog.GetString("User");
- w2.Add(this.User, null);
- this.Asset = new Gtk.Action("Asset", Mono.Unix.Catalog.GetString("Asset"), null, null);
- this.Asset.HideIfEmpty = false;
- this.Asset.ShortLabel = Mono.Unix.Catalog.GetString("Asset");
- w2.Add(this.Asset, null);
- this.Region = new Gtk.Action("Region", Mono.Unix.Catalog.GetString("Region"), null, null);
- this.Region.ShortLabel = Mono.Unix.Catalog.GetString("Region");
- w2.Add(this.Region, null);
- this.Services = new Gtk.Action("Services", Mono.Unix.Catalog.GetString("Services"), null, null);
- this.Services.ShortLabel = Mono.Unix.Catalog.GetString("Services");
- w2.Add(this.Services, null);
- this.ConnectToGridserver = new Gtk.Action("ConnectToGridserver", Mono.Unix.Catalog.GetString("Connect to gridserver..."), null, "gtk-connect");
- this.ConnectToGridserver.HideIfEmpty = false;
- this.ConnectToGridserver.ShortLabel = Mono.Unix.Catalog.GetString("Connect to gridserver");
- w2.Add(this.ConnectToGridserver, null);
- this.RestartWholeGrid = new Gtk.Action("RestartWholeGrid", Mono.Unix.Catalog.GetString("Restart whole grid"), null, "gtk-refresh");
- this.RestartWholeGrid.ShortLabel = Mono.Unix.Catalog.GetString("Restart whole grid");
- w2.Add(this.RestartWholeGrid, null);
- this.ShutdownWholeGrid = new Gtk.Action("ShutdownWholeGrid", Mono.Unix.Catalog.GetString("Shutdown whole grid"), null, "gtk-stop");
- this.ShutdownWholeGrid.ShortLabel = Mono.Unix.Catalog.GetString("Shutdown whole grid");
- w2.Add(this.ShutdownWholeGrid, null);
- this.ExitGridManager = new Gtk.Action("ExitGridManager", Mono.Unix.Catalog.GetString("Exit grid manager"), null, "gtk-close");
- this.ExitGridManager.ShortLabel = Mono.Unix.Catalog.GetString("Exit grid manager");
- w2.Add(this.ExitGridManager, null);
- this.ConnectToUserserver = new Gtk.Action("ConnectToUserserver", Mono.Unix.Catalog.GetString("Connect to userserver"), null, "gtk-connect");
- this.ConnectToUserserver.ShortLabel = Mono.Unix.Catalog.GetString("Connect to userserver");
- w2.Add(this.ConnectToUserserver, null);
- this.AccountManagment = new Gtk.Action("AccountManagment", Mono.Unix.Catalog.GetString("Account managment"), null, "gtk-properties");
- this.AccountManagment.ShortLabel = Mono.Unix.Catalog.GetString("Account managment");
- w2.Add(this.AccountManagment, null);
- this.GlobalNotice = new Gtk.Action("GlobalNotice", Mono.Unix.Catalog.GetString("Global notice"), null, "gtk-network");
- this.GlobalNotice.ShortLabel = Mono.Unix.Catalog.GetString("Global notice");
- w2.Add(this.GlobalNotice, null);
- this.DisableAllLogins = new Gtk.Action("DisableAllLogins", Mono.Unix.Catalog.GetString("Disable all logins"), null, "gtk-no");
- this.DisableAllLogins.ShortLabel = Mono.Unix.Catalog.GetString("Disable all logins");
- w2.Add(this.DisableAllLogins, null);
- this.DisableNonGodUsersOnly = new Gtk.Action("DisableNonGodUsersOnly", Mono.Unix.Catalog.GetString("Disable non-god users only"), null, "gtk-no");
- this.DisableNonGodUsersOnly.ShortLabel = Mono.Unix.Catalog.GetString("Disable non-god users only");
- w2.Add(this.DisableNonGodUsersOnly, null);
- this.ShutdownUserServer = new Gtk.Action("ShutdownUserServer", Mono.Unix.Catalog.GetString("Shutdown user server"), null, "gtk-stop");
- this.ShutdownUserServer.ShortLabel = Mono.Unix.Catalog.GetString("Shutdown user server");
- w2.Add(this.ShutdownUserServer, null);
- this.ShutdownGridserverOnly = new Gtk.Action("ShutdownGridserverOnly", Mono.Unix.Catalog.GetString("Shutdown gridserver only"), null, "gtk-stop");
- this.ShutdownGridserverOnly.ShortLabel = Mono.Unix.Catalog.GetString("Shutdown gridserver only");
- w2.Add(this.ShutdownGridserverOnly, null);
- this.RestartGridserverOnly = new Gtk.Action("RestartGridserverOnly", Mono.Unix.Catalog.GetString("Restart gridserver only"), null, "gtk-refresh");
- this.RestartGridserverOnly.ShortLabel = Mono.Unix.Catalog.GetString("Restart gridserver only");
- w2.Add(this.RestartGridserverOnly, null);
- this.DefaultLocalGridUserserver = new Gtk.Action("DefaultLocalGridUserserver", Mono.Unix.Catalog.GetString("Default local grid userserver"), null, null);
- this.DefaultLocalGridUserserver.ShortLabel = Mono.Unix.Catalog.GetString("Default local grid userserver");
- w2.Add(this.DefaultLocalGridUserserver, null);
- this.CustomUserserver = new Gtk.Action("CustomUserserver", Mono.Unix.Catalog.GetString("Custom userserver..."), null, null);
- this.CustomUserserver.ShortLabel = Mono.Unix.Catalog.GetString("Custom userserver");
- w2.Add(this.CustomUserserver, null);
- this.RemoteGridDefaultUserserver = new Gtk.Action("RemoteGridDefaultUserserver", Mono.Unix.Catalog.GetString("Remote grid default userserver..."), null, null);
- this.RemoteGridDefaultUserserver.ShortLabel = Mono.Unix.Catalog.GetString("Remote grid default userserver");
- w2.Add(this.RemoteGridDefaultUserserver, null);
- this.DisconnectFromGridServer = new Gtk.Action("DisconnectFromGridServer", Mono.Unix.Catalog.GetString("Disconnect from grid server"), null, "gtk-disconnect");
- this.DisconnectFromGridServer.ShortLabel = Mono.Unix.Catalog.GetString("Disconnect from grid server");
- this.DisconnectFromGridServer.Visible = false;
- w2.Add(this.DisconnectFromGridServer, null);
- this.UploadAsset = new Gtk.Action("UploadAsset", Mono.Unix.Catalog.GetString("Upload asset"), null, null);
- this.UploadAsset.ShortLabel = Mono.Unix.Catalog.GetString("Upload asset");
- w2.Add(this.UploadAsset, null);
- this.AssetManagement = new Gtk.Action("AssetManagement", Mono.Unix.Catalog.GetString("Asset management"), null, null);
- this.AssetManagement.ShortLabel = Mono.Unix.Catalog.GetString("Asset management");
- w2.Add(this.AssetManagement, null);
- this.ConnectToAssetServer = new Gtk.Action("ConnectToAssetServer", Mono.Unix.Catalog.GetString("Connect to asset server"), null, null);
- this.ConnectToAssetServer.ShortLabel = Mono.Unix.Catalog.GetString("Connect to asset server");
- w2.Add(this.ConnectToAssetServer, null);
- this.ConnectToDefaultAssetServerForGrid = new Gtk.Action("ConnectToDefaultAssetServerForGrid", Mono.Unix.Catalog.GetString("Connect to default asset server for grid"), null, null);
- this.ConnectToDefaultAssetServerForGrid.ShortLabel = Mono.Unix.Catalog.GetString("Connect to default asset server for grid");
- w2.Add(this.ConnectToDefaultAssetServerForGrid, null);
- this.DefaultForLocalGrid = new Gtk.Action("DefaultForLocalGrid", Mono.Unix.Catalog.GetString("Default for local grid"), null, null);
- this.DefaultForLocalGrid.ShortLabel = Mono.Unix.Catalog.GetString("Default for local grid");
- w2.Add(this.DefaultForLocalGrid, null);
- this.DefaultForRemoteGrid = new Gtk.Action("DefaultForRemoteGrid", Mono.Unix.Catalog.GetString("Default for remote grid..."), null, null);
- this.DefaultForRemoteGrid.ShortLabel = Mono.Unix.Catalog.GetString("Default for remote grid...");
- w2.Add(this.DefaultForRemoteGrid, null);
- this.CustomAssetServer = new Gtk.Action("CustomAssetServer", Mono.Unix.Catalog.GetString("Custom asset server..."), null, null);
- this.CustomAssetServer.ShortLabel = Mono.Unix.Catalog.GetString("Custom asset server...");
- w2.Add(this.CustomAssetServer, null);
- w1.InsertActionGroup(w2, 0);
- this.AddAccelGroup(w1.AccelGroup);
- this.WidthRequest = 800;
- this.HeightRequest = 600;
- this.Name = "OpenGridServices.Manager.MainWindow";
- this.Title = Mono.Unix.Catalog.GetString("Open Grid Services Manager");
- this.Icon = Gtk.IconTheme.Default.LoadIcon("gtk-network", 48, 0);
- // Container child OpenGridServices.Manager.MainWindow.Gtk.Container+ContainerChild
- this.vbox1 = new Gtk.VBox();
- this.vbox1.Name = "vbox1";
- // Container child vbox1.Gtk.Box+BoxChild
- w1.AddUiFromString("");
- this.menubar2 = ((Gtk.MenuBar)(w1.GetWidget("/menubar2")));
- this.menubar2.HeightRequest = 25;
- this.menubar2.Name = "menubar2";
- this.vbox1.Add(this.menubar2);
- Gtk.Box.BoxChild w3 = ((Gtk.Box.BoxChild)(this.vbox1[this.menubar2]));
- w3.Position = 0;
- w3.Expand = false;
- w3.Fill = false;
- // Container child vbox1.Gtk.Box+BoxChild
- this.hbox1 = new Gtk.HBox();
- this.hbox1.Name = "hbox1";
- // Container child hbox1.Gtk.Box+BoxChild
- this.scrolledwindow1 = new Gtk.ScrolledWindow();
- this.scrolledwindow1.CanFocus = true;
- this.scrolledwindow1.Name = "scrolledwindow1";
- this.scrolledwindow1.VscrollbarPolicy = ((Gtk.PolicyType)(1));
- this.scrolledwindow1.HscrollbarPolicy = ((Gtk.PolicyType)(1));
- // Container child scrolledwindow1.Gtk.Container+ContainerChild
- Gtk.Viewport w4 = new Gtk.Viewport();
- w4.Name = "GtkViewport";
- w4.ShadowType = ((Gtk.ShadowType)(0));
- // Container child GtkViewport.Gtk.Container+ContainerChild
- this.drawingarea1 = new Gtk.DrawingArea();
- this.drawingarea1.Name = "drawingarea1";
- w4.Add(this.drawingarea1);
- this.scrolledwindow1.Add(w4);
- this.hbox1.Add(this.scrolledwindow1);
- Gtk.Box.BoxChild w7 = ((Gtk.Box.BoxChild)(this.hbox1[this.scrolledwindow1]));
- w7.Position = 1;
- // Container child hbox1.Gtk.Box+BoxChild
- this.treeview1 = new Gtk.TreeView();
- this.treeview1.CanFocus = true;
- this.treeview1.Name = "treeview1";
- this.hbox1.Add(this.treeview1);
- Gtk.Box.BoxChild w8 = ((Gtk.Box.BoxChild)(this.hbox1[this.treeview1]));
- w8.Position = 2;
- this.vbox1.Add(this.hbox1);
- Gtk.Box.BoxChild w9 = ((Gtk.Box.BoxChild)(this.vbox1[this.hbox1]));
- w9.Position = 1;
- // Container child vbox1.Gtk.Box+BoxChild
- this.statusbar1 = new Gtk.Statusbar();
- this.statusbar1.Name = "statusbar1";
- this.statusbar1.Spacing = 5;
- this.vbox1.Add(this.statusbar1);
- Gtk.Box.BoxChild w10 = ((Gtk.Box.BoxChild)(this.vbox1[this.statusbar1]));
- w10.PackType = ((Gtk.PackType)(1));
- w10.Position = 2;
- w10.Expand = false;
- w10.Fill = false;
- this.Add(this.vbox1);
- if (this.Child != null)
- {
- this.Child.ShowAll();
- }
- this.DefaultWidth = 800;
- this.DefaultHeight = 800;
- this.Show();
- this.DeleteEvent += new Gtk.DeleteEventHandler(this.OnDeleteEvent);
- this.ConnectToGridserver.Activated += new System.EventHandler(this.ConnectToGridServerMenu);
- this.ExitGridManager.Activated += new System.EventHandler(this.QuitMenu);
- this.ShutdownGridserverOnly.Activated += new System.EventHandler(this.ShutdownGridserverMenu);
- this.RestartGridserverOnly.Activated += new System.EventHandler(this.RestartGridserverMenu);
- this.DisconnectFromGridServer.Activated += new System.EventHandler(this.DisconnectGridServerMenu);
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/generated.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/generated.cs
deleted file mode 100644
index 9fb84d2..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/generated.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-// ------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Mono Runtime Version: 2.0.50727.42
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-// ------------------------------------------------------------------------------
-
-namespace Stetic
-{
- internal class Gui
- {
- private static bool initialized;
-
- internal static void Initialize()
- {
- Stetic.Gui.initialized = true;
- }
- }
-
- internal class ActionGroups
- {
- public static Gtk.ActionGroup GetActionGroup(System.Type type)
- {
- return Stetic.ActionGroups.GetActionGroup(type.FullName);
- }
-
- public static Gtk.ActionGroup GetActionGroup(string name)
- {
- return null;
- }
- }
-}
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/gui.stetic b/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/gui.stetic
deleted file mode 100644
index c883f08..0000000
--- a/OpenSim/Grid/Manager/OpenGridServices.Manager/gtk-gui/gui.stetic
+++ /dev/null
@@ -1,502 +0,0 @@
-
-
-
-
-
- Action
- <Alt><Mod2>g
- False
- Grid
- Grid
-
-
- Action
- False
- User
- User
-
-
- Action
- False
- Asset
- Asset
-
-
- Action
- Region
- Region
-
-
- Action
- Services
- Services
-
-
- Action
- False
- Connect to gridserver...
- Connect to gridserver
- gtk-connect
-
-
-
- Action
- Restart whole grid
- Restart whole grid
- gtk-refresh
-
-
- Action
- Shutdown whole grid
- Shutdown whole grid
- gtk-stop
-
-
- Action
- Exit grid manager
- Exit grid manager
- gtk-close
-
-
-
- Action
- Connect to userserver
- Connect to userserver
- gtk-connect
-
-
- Action
- Account managment
- Account managment
- gtk-properties
-
-
- Action
- Global notice
- Global notice
- gtk-network
-
-
- Action
- Disable all logins
- Disable all logins
- gtk-no
-
-
- Action
- Disable non-god users only
- Disable non-god users only
- gtk-no
-
-
- Action
- Shutdown user server
- Shutdown user server
- gtk-stop
-
-
- Action
- Shutdown gridserver only
- Shutdown gridserver only
- gtk-stop
-
-
-
- Action
- Restart gridserver only
- Restart gridserver only
- gtk-refresh
-
-
-
- Action
- Default local grid userserver
- Default local grid userserver
-
-
- Action
- Custom userserver...
- Custom userserver
-
-
- Action
- Remote grid default userserver...
- Remote grid default userserver
-
-
- Action
- Disconnect from grid server
- Disconnect from grid server
- gtk-disconnect
- False
-
-
-
- Action
- Upload asset
- Upload asset
-
-
- Action
- Asset management
- Asset management
-
-
- Action
- Connect to asset server
- Connect to asset server
-
-
- Action
- Connect to default asset server for grid
- Connect to default asset server for grid
-
-
- Action
- Default for local grid
- Default for local grid
-
-
- Action
- Default for remote grid...
- Default for remote grid...
-
-
- Action
- Custom asset server...
- Custom asset server...
-
-
-
- 800
- 600
- Open Grid Services Manager
- stock:gtk-network Dialog
-
-
-
-
-
-
-
- 0
- False
- False
- False
-
-
-
-
-
-
-
-
-
-
-
- True
- Automatic
- Automatic
-
-
-
- None
-
-
-
-
-
-
-
-
-
- 1
- True
-
-
-
-
-
- True
-
-
- 2
- True
-
-
-
-
- 1
- True
-
-
-
-
- statusBar1
- 5
-
-
-
-
-
-
-
-
- End
- 2
- False
- False
- False
-
-
-
-
-
-
-
- ButtonPressMask
- Connect to Grid server
- CenterOnParent
- 2
- False
- False
-
-
-
-
- ButtonPressMask
- 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- Grid server URL:
- Right
-
-
- 0
- False
-
-
-
-
-
- True
- http://gridserver:8001
- True
- 255
- •
-
-
- 1
- False
-
-
-
-
-
-
-
- 0
- True
- False
- False
-
-
-
-
-
-
-
-
- 1
- Username:
- Right
-
-
- 0
- False
-
-
-
-
-
- True
- True
- •
-
-
- 1
- True
-
-
-
-
-
-
-
- 1
- False
- False
- False
-
-
-
-
-
-
-
-
- 1
- Password:
- Right
-
-
- 0
- False
-
-
-
-
-
- True
- True
- •
-
-
- 1
- True
-
-
-
-
-
-
-
- 2
- True
- False
- False
-
-
-
-
- 2
- True
- False
- False
-
-
-
-
- 0
- True
-
-
-
-
-
-
-
- ButtonPressMask
- 6
- 5
- 2
- End
-
-
-
- True
- True
- TextAndIcon
- stock:gtk-apply Menu
- Connect
- True
- True
- -5
-
-
- False
- False
-
-
-
-
-
- True
- True
- TextAndIcon
- stock:gtk-cancel Menu
- Cancel
- True
- True
- -6
-
-
- 1
- False
- False
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OpenSim/Grid/MessagingServer.Modules/InterMessageUserServerModule.cs b/OpenSim/Grid/MessagingServer.Modules/InterMessageUserServerModule.cs
deleted file mode 100644
index ae04535..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/InterMessageUserServerModule.cs
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using System.Threading;
-using System.Timers;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Grid.Framework;
-using Timer = System.Timers.Timer;
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public class InterMessageUserServerModule : IInterServiceUserService
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private MessageServerConfig m_cfg;
-
- private IGridServiceCore m_messageCore;
-
- private Timer reconnectTimer = new Timer(300000); // 5 mins
-
- public InterMessageUserServerModule(MessageServerConfig config, IGridServiceCore messageCore)
- {
- m_cfg = config;
- m_messageCore = messageCore;
-
- reconnectTimer.Elapsed += registerWithUserServer;
- lock (reconnectTimer)
- reconnectTimer.Start();
- }
-
- public void Initialise()
- {
- m_messageCore.RegisterInterface(this);
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void RegisterHandlers()
- {
- //have these in separate method as some servers restart the http server and reregister all the handlers.
-
- }
-
- public void registerWithUserServer(object sender, ElapsedEventArgs e)
- {
- registerWithUserServer();
- }
-
- public bool registerWithUserServer()
- {
- Hashtable UserParams = new Hashtable();
- // Login / Authentication
-
- if (m_cfg.HttpSSL)
- {
- UserParams["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort;
- }
- else
- {
- UserParams["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort;
- }
-
- UserParams["recvkey"] = m_cfg.UserRecvKey;
- UserParams["sendkey"] = m_cfg.UserRecvKey;
-
- // Package into an XMLRPC Request
- ArrayList SendParams = new ArrayList();
- SendParams.Add(UserParams);
-
- bool success = true;
- string[] servers = m_cfg.UserServerURL.Split(' ');
-
- foreach (string srv in servers)
- {
- // Send Request
- try
- {
- XmlRpcRequest UserReq = new XmlRpcRequest("register_messageserver", SendParams);
- XmlRpcResponse UserResp = UserReq.Send(srv, 16000);
-
- // Process Response
- Hashtable GridRespData = (Hashtable)UserResp.Value;
- // if we got a response, we were successful
- if (!GridRespData.ContainsKey("responsestring"))
- success = false;
- else
- m_log.InfoFormat("[SERVER] Registered with {0}", srv);
- }
- catch
- {
- m_log.ErrorFormat("Unable to connect to server {0}. Server not running?", srv);
- success = false;
- }
- }
- return success;
- }
-
- public bool deregisterWithUserServer()
- {
- Hashtable request = new Hashtable();
-
- return SendToUserServer(request, "deregister_messageserver");
- }
-
- public bool SendToUserServer(Hashtable request, string method)
- {
- // Login / Authentication
-
- if (m_cfg.HttpSSL)
- {
- request["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort;
- }
- else
- {
- request["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort;
- }
-
- request["recvkey"] = m_cfg.UserRecvKey;
- request["sendkey"] = m_cfg.UserRecvKey;
-
- // Package into an XMLRPC Request
- ArrayList SendParams = new ArrayList();
- SendParams.Add(request);
-
- bool success = true;
- string[] servers = m_cfg.UserServerURL.Split(' ');
-
- // Send Request
- foreach (string srv in servers)
- {
- try
- {
- XmlRpcRequest UserReq = new XmlRpcRequest(method, SendParams);
- XmlRpcResponse UserResp = UserReq.Send(m_cfg.UserServerURL, 16000);
- // Process Response
- Hashtable UserRespData = (Hashtable)UserResp.Value;
- // if we got a response, we were successful
- if (!UserRespData.ContainsKey("responsestring"))
- success = false;
- }
- catch
- {
- m_log.ErrorFormat("Unable to connect to server {0}. Server not running?", srv);
- success = false;
- }
- }
- return success;
- }
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/MessageRegionModule.cs b/OpenSim/Grid/MessagingServer.Modules/MessageRegionModule.cs
deleted file mode 100644
index b9d3f22..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/MessageRegionModule.cs
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using System.Threading;
-using System.Timers;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Grid.Framework;
-using Timer = System.Timers.Timer;
-using OpenSim.Services.Interfaces;
-using OpenSim.Services.Connectors;
-using GridRegion = OpenSim.Services.Interfaces.GridRegion;
-
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public class MessageRegionModule : IMessageRegionLookup
- {
-// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private MessageServerConfig m_cfg;
-
- private IInterServiceUserService m_userServerModule;
-
- private IGridServiceCore m_messageCore;
-
- private IGridService m_GridService;
-
- // a dictionary of all current regions this server knows about
- private Dictionary m_regionInfoCache = new Dictionary();
-
- public MessageRegionModule(MessageServerConfig config, IGridServiceCore messageCore)
- {
- m_cfg = config;
- m_messageCore = messageCore;
-
- m_GridService = new GridServicesConnector(m_cfg.GridServerURL);
- }
-
- public void Initialise()
- {
- m_messageCore.RegisterInterface(this);
- }
-
- public void PostInitialise()
- {
- IInterServiceUserService messageUserServer;
- if (m_messageCore.TryGet(out messageUserServer))
- {
- m_userServerModule = messageUserServer;
- }
- }
-
- public void RegisterHandlers()
- {
- //have these in separate method as some servers restart the http server and reregister all the handlers.
-
- }
-
- ///
- /// Gets and caches a RegionInfo object from the gridserver based on regionhandle
- /// if the regionhandle is already cached, use the cached values
- /// Gets called by lots of threads!!!!!
- ///
- /// handle to the XY of the region we're looking for
- /// A RegionInfo object to stick in the presence info
- public RegionProfileData GetRegionInfo(ulong regionhandle)
- {
- RegionProfileData regionInfo = null;
-
- lock (m_regionInfoCache)
- {
- m_regionInfoCache.TryGetValue(regionhandle, out regionInfo);
- }
-
- if (regionInfo == null) // not found in cache
- {
- regionInfo = RequestRegionInfo(regionhandle);
-
- if (regionInfo != null) // lookup was successful
- {
- lock (m_regionInfoCache)
- {
- m_regionInfoCache[regionhandle] = regionInfo;
- }
- }
- }
-
- return regionInfo;
- }
-
- public int ClearRegionCache()
- {
- int cachecount = 0;
-
- lock (m_regionInfoCache)
- {
- cachecount = m_regionInfoCache.Count;
- m_regionInfoCache.Clear();
- }
-
- return cachecount;
- }
-
- ///
- /// Get RegionProfileData from the GridServer.
- /// We'll cache this information in GetRegionInfo and use it for presence updates
- ///
- ///
- ///
- public RegionProfileData RequestRegionInfo(ulong regionHandle)
- {
- uint x = 0, y = 0;
- Utils.LongToUInts(regionHandle, out x, out y);
- GridRegion region = m_GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
-
- if (region != null)
- return GridRegionToRegionProfile(region);
-
- else
- return null;
- }
-
- private RegionProfileData GridRegionToRegionProfile(GridRegion region)
- {
- RegionProfileData rprofile = new RegionProfileData();
- rprofile.httpPort = region.HttpPort;
- rprofile.httpServerURI = region.ServerURI;
- rprofile.regionLocX = (uint)(region.RegionLocX / Constants.RegionSize);
- rprofile.regionLocY = (uint)(region.RegionLocY / Constants.RegionSize);
- rprofile.RegionName = region.RegionName;
- rprofile.ServerHttpPort = region.HttpPort;
- rprofile.ServerIP = region.ExternalHostName;
- rprofile.ServerPort = (uint)region.ExternalEndPoint.Port;
- rprofile.Uuid = region.RegionID;
- return rprofile;
- }
-
- public XmlRpcResponse RegionStartup(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
- result["success"] = "FALSE";
-
- if (m_userServerModule.SendToUserServer(requestData, "region_startup"))
- result["success"] = "TRUE";
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- public XmlRpcResponse RegionShutdown(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
- result["success"] = "FALSE";
-
- if (m_userServerModule.SendToUserServer(requestData, "region_shutdown"))
- result["success"] = "TRUE";
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- }
-}
\ No newline at end of file
diff --git a/OpenSim/Grid/MessagingServer.Modules/MessageService.cs b/OpenSim/Grid/MessagingServer.Modules/MessageService.cs
deleted file mode 100644
index 8ad1e9c..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/MessageService.cs
+++ /dev/null
@@ -1,503 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using System.Threading;
-using System.Timers;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Grid.Framework;
-using Timer=System.Timers.Timer;
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public class MessageService
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private MessageServerConfig m_cfg;
- private UserDataBaseService m_userDataBaseService;
-
- private IGridServiceCore m_messageCore;
-
- private IInterServiceUserService m_userServerModule;
- private IMessageRegionLookup m_regionModule;
-
- // a dictionary of all current presences this server knows about
- private Dictionary m_presences = new Dictionary();
-
- public MessageService(MessageServerConfig cfg, IGridServiceCore messageCore, UserDataBaseService userDataBaseService)
- {
- m_cfg = cfg;
- m_messageCore = messageCore;
-
- m_userDataBaseService = userDataBaseService;
-
- //???
- UserConfig uc = new UserConfig();
- uc.DatabaseConnect = cfg.DatabaseConnect;
- uc.DatabaseProvider = cfg.DatabaseProvider;
- }
-
- public void Initialise()
- {
- }
-
- public void PostInitialise()
- {
- IInterServiceUserService messageUserServer;
- if (m_messageCore.TryGet(out messageUserServer))
- {
- m_userServerModule = messageUserServer;
- }
-
- IMessageRegionLookup messageRegion;
- if (m_messageCore.TryGet(out messageRegion))
- {
- m_regionModule = messageRegion;
- }
- }
-
- public void RegisterHandlers()
- {
- //have these in separate method as some servers restart the http server and reregister all the handlers.
-
- }
-
- #region FriendList Methods
-
- ///
- /// Process Friendlist subscriptions for a user
- /// The login method calls this for a User
- ///
- /// The Agent we're processing the friendlist subscriptions for
- private void ProcessFriendListSubscriptions(UserPresenceData userpresence)
- {
- lock (m_presences)
- {
- m_presences[userpresence.agentData.AgentID] = userpresence;
- }
-
- Dictionary uFriendList = userpresence.friendData;
- foreach (KeyValuePair pair in uFriendList)
- {
- UserPresenceData friendup = null;
- lock (m_presences)
- {
- m_presences.TryGetValue(pair.Key, out friendup);
- }
- if (friendup != null)
- {
- SubscribeToPresenceUpdates(userpresence, friendup, pair.Value);
- }
- }
- }
-
- ///
- /// Enqueues a presence update, sending info about user 'talkingAbout' to user 'receiver'.
- ///
- /// We are sending presence information about this user.
- /// We are sending the presence update to this user
- private void enqueuePresenceUpdate(UserPresenceData talkingAbout, UserPresenceData receiver)
- {
- UserAgentData p2Handle = m_userDataBaseService.GetUserAgentData(receiver.agentData.AgentID);
- if (p2Handle != null)
- {
- if (receiver.lookupUserRegionYN)
- {
- receiver.regionData.regionHandle = p2Handle.Handle;
- }
- else
- {
- receiver.lookupUserRegionYN = true; // TODO Huh?
- }
-
- PresenceInformer friendlistupdater = new PresenceInformer();
- friendlistupdater.presence1 = talkingAbout;
- friendlistupdater.presence2 = receiver;
- friendlistupdater.OnGetRegionData += m_regionModule.GetRegionInfo;
- friendlistupdater.OnDone += PresenceUpdateDone;
- Util.FireAndForget(friendlistupdater.go);
- }
- else
- {
- m_log.WarnFormat("no data found for user {0}", receiver.agentData.AgentID);
- // Skip because we can't find any data on the user
- }
- }
-
- ///
- /// Does the necessary work to subscribe one agent to another's presence notifications
- /// Gets called by ProcessFriendListSubscriptions. You shouldn't call this directly
- /// unless you know what you're doing
- ///
- /// P1
- /// P2
- ///
- private void SubscribeToPresenceUpdates(UserPresenceData userpresence,
- UserPresenceData friendpresence,
- FriendListItem uFriendListItem)
- {
- // Can the friend see me online?
- if ((uFriendListItem.FriendListOwnerPerms & (uint)FriendRights.CanSeeOnline) != 0)
- {
- // tell user to update friend about user's presence changes
- if (!userpresence.subscriptionData.Contains(friendpresence.agentData.AgentID))
- {
- userpresence.subscriptionData.Add(friendpresence.agentData.AgentID);
- }
-
- // send an update about user's presence to the friend
- enqueuePresenceUpdate(userpresence, friendpresence);
- }
-
- // Can I see the friend online?
- if ((uFriendListItem.FriendPerms & (uint)FriendRights.CanSeeOnline) != 0)
- {
- // tell friend to update user about friend's presence changes
- if (!friendpresence.subscriptionData.Contains(userpresence.agentData.AgentID))
- {
- friendpresence.subscriptionData.Add(userpresence.agentData.AgentID);
- }
-
- // send an update about friend's presence to user.
- enqueuePresenceUpdate(friendpresence, userpresence);
- }
- }
-
- ///
- /// Logoff Processor. Call this to clean up agent presence data and send logoff presence notifications
- ///
- ///
- private void ProcessLogOff(UUID AgentID)
- {
- m_log.Info("[LOGOFF]: Processing Logoff");
-
- UserPresenceData userPresence = null;
- lock (m_presences)
- {
- m_presences.TryGetValue(AgentID, out userPresence);
- }
-
- if (userPresence != null) // found the user
- {
- List AgentsNeedingNotification = userPresence.subscriptionData;
- userPresence.OnlineYN = false;
-
- for (int i = 0; i < AgentsNeedingNotification.Count; i++)
- {
- UserPresenceData friendPresence = null;
- lock (m_presences)
- {
- m_presences.TryGetValue(AgentsNeedingNotification[i], out friendPresence);
- }
-
- // This might need to be enumerated and checked before we try to remove it.
- if (friendPresence != null)
- {
- lock (friendPresence)
- {
- // no updates for this user anymore
- friendPresence.subscriptionData.Remove(AgentID);
-
- // set user's entry in the friend's list to offline (if it exists)
- if (friendPresence.friendData.ContainsKey(AgentID))
- {
- friendPresence.friendData[AgentID].onlinestatus = false;
- }
- }
-
- enqueuePresenceUpdate(userPresence, friendPresence);
- }
- }
- }
- }
-
- #endregion
-
- private void PresenceUpdateDone(PresenceInformer obj)
- {
- obj.OnGetRegionData -= m_regionModule.GetRegionInfo;
- obj.OnDone -= PresenceUpdateDone;
- }
-
- #region UserServer Comms
-
- ///
- /// Returns a list of FriendsListItems that describe the friends and permissions in the friend
- /// relationship for UUID friendslistowner. For faster lookup, we index by friend's UUID.
- ///
- /// The agent that we're retreiving the friends Data for.
- private Dictionary GetUserFriendList(UUID friendlistowner)
- {
- Dictionary buddies = new Dictionary();
-
- try
- {
- Hashtable param = new Hashtable();
- param["ownerID"] = friendlistowner.ToString();
-
- IList parameters = new ArrayList();
- parameters.Add(param);
- XmlRpcRequest req = new XmlRpcRequest("get_user_friend_list", parameters);
- XmlRpcResponse resp = req.Send(m_cfg.UserServerURL, 3000);
- Hashtable respData = (Hashtable)resp.Value;
-
- if (respData.Contains("avcount"))
- {
- buddies = ConvertXMLRPCDataToFriendListItemList(respData);
- }
-
- }
- catch (WebException e)
- {
- m_log.Warn("Error when trying to fetch Avatar's friends list: " +
- e.Message);
- // Return Empty list (no friends)
- }
- return buddies;
- }
-
- ///
- /// Converts XMLRPC Friend List to FriendListItem Object
- ///
- /// XMLRPC response data Hashtable
- ///
- public Dictionary ConvertXMLRPCDataToFriendListItemList(Hashtable data)
- {
- Dictionary buddies = new Dictionary();
- int buddycount = Convert.ToInt32((string)data["avcount"]);
-
- for (int i = 0; i < buddycount; i++)
- {
- FriendListItem buddylistitem = new FriendListItem();
-
- buddylistitem.FriendListOwner = new UUID((string)data["ownerID" + i.ToString()]);
- buddylistitem.Friend = new UUID((string)data["friendID" + i.ToString()]);
- buddylistitem.FriendListOwnerPerms = (uint)Convert.ToInt32((string)data["ownerPerms" + i.ToString()]);
- buddylistitem.FriendPerms = (uint)Convert.ToInt32((string)data["friendPerms" + i.ToString()]);
-
- buddies.Add(buddylistitem.Friend, buddylistitem);
- }
-
- return buddies;
- }
-
- ///
- /// UserServer sends an expect_user method
- /// this handles the method and provisions the
- /// necessary info for presence to work
- ///
- /// UserServer Data
- ///
- public XmlRpcResponse UserLoggedOn(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- try
- {
- Hashtable requestData = (Hashtable)request.Params[0];
-
- AgentCircuitData agentData = new AgentCircuitData();
- agentData.SessionID = new UUID((string)requestData["sessionid"]);
- agentData.SecureSessionID = new UUID((string)requestData["secure_session_id"]);
- agentData.firstname = (string)requestData["firstname"];
- agentData.lastname = (string)requestData["lastname"];
- agentData.AgentID = new UUID((string)requestData["agentid"]);
- agentData.circuitcode = Convert.ToUInt32(requestData["circuit_code"]);
- agentData.CapsPath = (string)requestData["caps_path"];
-
- if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1"))
- {
- agentData.child = true;
- }
- else
- {
- agentData.startpos =
- new Vector3(Convert.ToSingle(requestData["positionx"]),
- Convert.ToSingle(requestData["positiony"]),
- Convert.ToSingle(requestData["positionz"]));
- agentData.child = false;
- }
-
- ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]);
-
- m_log.InfoFormat("[LOGON]: User {0} {1} logged into region {2} as {3} agent, building indexes for user",
- agentData.firstname, agentData.lastname, regionHandle, agentData.child ? "child" : "root");
-
- UserPresenceData up = new UserPresenceData();
- up.agentData = agentData;
- up.friendData = GetUserFriendList(agentData.AgentID);
- up.regionData = m_regionModule.GetRegionInfo(regionHandle);
- up.OnlineYN = true;
- up.lookupUserRegionYN = false;
- ProcessFriendListSubscriptions(up);
-
- }
- catch (Exception e)
- {
- m_log.WarnFormat("[LOGIN]: Exception on UserLoggedOn: {0}", e);
- }
-
- return new XmlRpcResponse();
-
- }
-
- ///
- /// The UserServer got a Logoff message
- /// Cleanup time for that user. Send out presence notifications
- ///
- ///
- ///
- public XmlRpcResponse UserLoggedOff(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- try
- {
- m_log.Info("[USERLOGOFF]: User logged off called");
- Hashtable requestData = (Hashtable)request.Params[0];
-
- UUID AgentID = new UUID((string)requestData["agentid"]);
- ProcessLogOff(AgentID);
- }
- catch (Exception e)
- {
- m_log.WarnFormat("[USERLOGOFF]: Exception on UserLoggedOff: {0}", e);
- }
-
- return new XmlRpcResponse();
- }
-
- #endregion
-
- public XmlRpcResponse GetPresenceInfoBulk(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable paramHash = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
-
- // TODO check access (recv_key/send_key)
-
- IList list = (IList)paramHash["uuids"];
-
- // convert into List
- List uuids = new List();
- for (int i = 0; i < list.Count; ++i)
- {
- UUID uuid;
- if (UUID.TryParse((string)list[i], out uuid))
- {
- uuids.Add(uuid);
- }
- }
-
- try {
- Dictionary infos = m_userDataBaseService.GetFriendRegionInfos(uuids);
- m_log.DebugFormat("[FRIEND]: Got {0} region entries back.", infos.Count);
- int count = 0;
- foreach (KeyValuePair pair in infos)
- {
- result["uuid_" + count] = pair.Key.ToString();
- result["isOnline_" + count] = pair.Value.isOnline;
- result["regionHandle_" + count] = pair.Value.regionHandle.ToString(); // XML-RPC doesn't know ulongs
- ++count;
- }
- result["count"] = count;
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
- catch(Exception e) {
- m_log.Error("Got exception:", e);
- throw e;
- }
- }
-
- public XmlRpcResponse AgentLocation(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
- result["success"] = "FALSE";
-
- if (m_userServerModule.SendToUserServer(requestData, "agent_location"))
- result["success"] = "TRUE";
-
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- public XmlRpcResponse AgentLeaving(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
- result["success"] = "FALSE";
-
- if (m_userServerModule.SendToUserServer(requestData, "agent_leaving"))
- result["success"] = "TRUE";
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- public XmlRpcResponse ProcessRegionShutdown(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
- result["success"] = "FALSE";
-
- UUID regionID;
- if (UUID.TryParse((string)requestData["regionid"], out regionID))
- {
- m_log.DebugFormat("[PRESENCE] Processing region restart for {0}", regionID);
- result["success"] = "TRUE";
-
- foreach (UserPresenceData up in m_presences.Values)
- {
- if (up.regionData.UUID == regionID)
- {
- if (up.OnlineYN)
- {
- m_log.DebugFormat("[PRESENCE] Logging off {0} because the region they were in has gone", up.agentData.AgentID);
- ProcessLogOff(up.agentData.AgentID);
- }
- }
- }
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
- }
-}
\ No newline at end of file
diff --git a/OpenSim/Grid/MessagingServer.Modules/PresenceBackreferenceEntry.cs b/OpenSim/Grid/MessagingServer.Modules/PresenceBackreferenceEntry.cs
deleted file mode 100644
index 67dde6d..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/PresenceBackreferenceEntry.cs
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections.Generic;
-using OpenMetaverse;
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- // This is a wrapper for a List so it can be happily stored in a hashtable.
- public class PresenceBackreferenceEntry
- {
- List AgentList = new List();
-
- public PresenceBackreferenceEntry()
- {
-
- }
-
- public void Add(UUID item)
- {
- lock (AgentList)
- {
- AgentList.Add(item);
- }
- }
-
- public UUID getitem(int index)
- {
- UUID result = UUID.Zero;
- lock (AgentList)
- {
- if (index > 0 && index < AgentList.Count)
- {
- result = AgentList[index];
- }
- }
- return result;
- }
-
- public int Count
- {
- get
- {
- int count = 0;
- lock (AgentList)
- {
- count = AgentList.Count;
- }
- return count;
- }
- }
-
- public void Remove(UUID item)
- {
- lock (AgentList)
- {
- if (AgentList.Contains(item))
- AgentList.Remove(item);
- }
- }
-
- public bool contains(UUID item)
- {
- bool result = false;
- lock (AgentList)
- {
- result = AgentList.Contains(item);
- }
- return result;
- }
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/PresenceInformer.cs b/OpenSim/Grid/MessagingServer.Modules/PresenceInformer.cs
deleted file mode 100644
index 97126f7..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/PresenceInformer.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections;
-using System.Net;
-using System.Reflection;
-using log4net;
-using Nwc.XmlRpc;
-using OpenSim.Data;
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public delegate RegionProfileData GetRegionData(ulong region_handle);
- public delegate void Done(PresenceInformer obj);
-
-
- public class PresenceInformer
- {
- public event GetRegionData OnGetRegionData;
- public event Done OnDone;
-
- private GetRegionData handlerGetRegionData = null;
- private Done handlerDone = null;
-
- public UserPresenceData presence1 = null;
- public UserPresenceData presence2 = null;
- public string gridserverurl, gridserversendkey, gridserverrecvkey;
- public bool lookupRegion = true;
- //public methodGroup
-
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public PresenceInformer()
- {
-
- }
- public void go(object o)
- {
- if (presence1 != null && presence2 != null)
- {
- SendRegionPresenceUpdate(presence1, presence2);
- }
-
- }
-
- ///
- /// Informs a region about an Agent
- ///
- /// User to talk about
- /// User we're sending this too (contains the region)
- public void SendRegionPresenceUpdate(UserPresenceData TalkingAbout, UserPresenceData UserToUpdate)
- {
- // TODO: Fill in pertenant Presence Data from 'TalkingAbout'
- RegionProfileData whichRegion = new RegionProfileData();
- if (lookupRegion)
- {
- handlerGetRegionData = OnGetRegionData;
- if (handlerGetRegionData != null)
- {
- whichRegion = handlerGetRegionData(UserToUpdate.regionData.regionHandle);
- }
- //RegionProfileData rp = RegionProfileData.RequestSimProfileData(UserToUpdate.regionData.regionHandle, gridserverurl, gridserversendkey, gridserverrecvkey);
-
- //whichRegion = rp;
- }
- else
- {
- whichRegion = UserToUpdate.regionData;
- }
- //whichRegion.httpServerURI
-
- if (whichRegion != null)
- {
- Hashtable PresenceParams = new Hashtable();
- PresenceParams.Add("agent_id",TalkingAbout.agentData.AgentID.ToString());
- PresenceParams.Add("notify_id",UserToUpdate.agentData.AgentID.ToString());
- if (TalkingAbout.OnlineYN)
- PresenceParams.Add("status","TRUE");
- else
- PresenceParams.Add("status","FALSE");
-
- ArrayList SendParams = new ArrayList();
- SendParams.Add(PresenceParams);
-
- m_log.InfoFormat("[PRESENCE]: Informing {0}@{1} at {2} about {3}", TalkingAbout.agentData.firstname + " " + TalkingAbout.agentData.lastname, whichRegion.regionName, whichRegion.httpServerURI, UserToUpdate.agentData.firstname + " " + UserToUpdate.agentData.lastname);
- // Send
- XmlRpcRequest RegionReq = new XmlRpcRequest("presence_update", SendParams);
- try
- {
- // XmlRpcResponse RegionResp = RegionReq.Send(whichRegion.httpServerURI, 6000);
- RegionReq.Send(whichRegion.httpServerURI, 6000);
- }
- catch (WebException)
- {
- m_log.WarnFormat("[INFORM]: failed notifying region {0} containing user {1} about {2}", whichRegion.regionName, UserToUpdate.agentData.firstname + " " + UserToUpdate.agentData.lastname, TalkingAbout.agentData.firstname + " " + TalkingAbout.agentData.lastname);
- }
- }
- else
- {
- m_log.Info("[PRESENCEUPDATER]: Region data was null skipping");
-
- }
-
- handlerDone = OnDone;
- if (handlerDone != null)
- {
- handlerDone(this);
- }
- }
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/PresenceService.cs b/OpenSim/Grid/MessagingServer.Modules/PresenceService.cs
deleted file mode 100644
index 7487a21..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/PresenceService.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- class PresenceService
- {
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs b/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs
deleted file mode 100644
index 76c4899..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public class UserDataBaseService : UserManagerBase
- {
- ///
- /// Constructor.
- ///
- /// Passing null to parent because we never use any function that requires an interservice inventory call.
- public UserDataBaseService()
- : base(null)
- {
- }
-
- public UserAgentData GetUserAgentData(UUID AgentID)
- {
- UserProfileData userProfile = GetUserProfile(AgentID);
-
- if (userProfile != null)
- {
- return userProfile.CurrentAgent;
- }
-
- return null;
- }
-
- public override UserProfileData SetupMasterUser(string firstName, string lastName)
- {
- //throw new Exception("The method or operation is not implemented.");
- return null;
- }
-
- public override UserProfileData SetupMasterUser(string firstName, string lastName, string password)
- {
- //throw new Exception("The method or operation is not implemented.");
- return null;
- }
-
- public override UserProfileData SetupMasterUser(UUID uuid)
- {
- //throw new Exception("The method or operation is not implemented.");
- return null;
- }
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/UserPresenceData.cs b/OpenSim/Grid/MessagingServer.Modules/UserPresenceData.cs
deleted file mode 100644
index 7d4e45c..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/UserPresenceData.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-
-namespace OpenSim.Grid.MessagingServer
-{
- public class UserPresenceData
- {
- public AgentCircuitData agentData = new AgentCircuitData();
- public RegionProfileData regionData = new RegionProfileData();
- public string httpURI = String.Empty;
- public Dictionary friendData = new Dictionary();
- public List subscriptionData = new List();
- public bool OnlineYN = true;
- public bool lookupUserRegionYN = true;
-
- public UserPresenceData()
- {
- }
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/WorkUnitBase.cs b/OpenSim/Grid/MessagingServer.Modules/WorkUnitBase.cs
deleted file mode 100644
index f740339..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/WorkUnitBase.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public class WorkUnitBase
- {
- }
-}
diff --git a/OpenSim/Grid/MessagingServer.Modules/WorkUnitPresenceUpdate.cs b/OpenSim/Grid/MessagingServer.Modules/WorkUnitPresenceUpdate.cs
deleted file mode 100644
index 7f11e66..0000000
--- a/OpenSim/Grid/MessagingServer.Modules/WorkUnitPresenceUpdate.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-namespace OpenSim.Grid.MessagingServer.Modules
-{
- public class WorkUnitPresenceUpdate : WorkUnitBase
- {
- }
-}
diff --git a/OpenSim/Grid/MessagingServer/Main.cs b/OpenSim/Grid/MessagingServer/Main.cs
deleted file mode 100644
index f2631a7..0000000
--- a/OpenSim/Grid/MessagingServer/Main.cs
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using log4net;
-using Nini.Config;
-using log4net.Config;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-using OpenSim.Grid.MessagingServer.Modules;
-
-namespace OpenSim.Grid.MessagingServer
-{
- ///
- ///
- public class OpenMessage_Main : BaseOpenSimServer , IGridServiceCore
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private MessageServerConfig Cfg;
- private MessageService msgsvc;
-
- private MessageRegionModule m_regionModule;
- private InterMessageUserServerModule m_userServerModule;
-
- private UserDataBaseService m_userDataBaseService;
-
- // private UUID m_lastCreatedUser = UUID.Random();
-
- protected static string m_consoleType = "local";
- protected static IConfigSource m_config = null;
- protected static string m_configFile = "MessagingServer_Config.xml";
-
- public static void Main(string[] args)
- {
- ArgvConfigSource argvSource = new ArgvConfigSource(args);
- argvSource.AddSwitch("Startup", "console", "c");
- argvSource.AddSwitch("Startup", "xmlfile", "x");
-
- IConfig startupConfig = argvSource.Configs["Startup"];
- if (startupConfig != null)
- {
- m_consoleType = startupConfig.GetString("console", "local");
- m_configFile = startupConfig.GetString("xmlfile", "MessagingServer_Config.xml");
- }
-
- m_config = argvSource;
-
- XmlConfigurator.Configure();
-
- m_log.Info("[SERVER]: Launching MessagingServer...");
-
- OpenMessage_Main messageserver = new OpenMessage_Main();
-
- messageserver.Startup();
- messageserver.Work();
- }
-
- public OpenMessage_Main()
- {
- switch (m_consoleType)
- {
- case "rest":
- m_console = new RemoteConsole("Messaging");
- break;
- case "basic":
- m_console = new CommandConsole("Messaging");
- break;
- default:
- m_console = new LocalConsole("Messaging");
- break;
- }
- MainConsole.Instance = m_console;
- }
-
- private void Work()
- {
- m_console.Output("Enter help for a list of commands\n");
-
- while (true)
- {
- m_console.Prompt();
- }
- }
-
- private void registerWithUserServer()
- {
- if (m_userServerModule.registerWithUserServer())
- {
- if (m_httpServer == null)
- {
- m_log.Info("[SERVER]: Starting HTTP process");
- m_httpServer = new BaseHttpServer(Cfg.HttpPort);
-
- if (m_console is RemoteConsole)
- {
- RemoteConsole c = (RemoteConsole)m_console;
- c.SetServer(m_httpServer);
- IConfig netConfig = m_config.AddConfig("Network");
- netConfig.Set("ConsoleUser", Cfg.ConsoleUser);
- netConfig.Set("ConsolePass", Cfg.ConsolePass);
- c.ReadConfig(m_config);
- }
-
- m_httpServer.AddXmlRPCHandler("login_to_simulator", msgsvc.UserLoggedOn);
- m_httpServer.AddXmlRPCHandler("logout_of_simulator", msgsvc.UserLoggedOff);
- m_httpServer.AddXmlRPCHandler("get_presence_info_bulk", msgsvc.GetPresenceInfoBulk);
- m_httpServer.AddXmlRPCHandler("process_region_shutdown", msgsvc.ProcessRegionShutdown);
- m_httpServer.AddXmlRPCHandler("agent_location", msgsvc.AgentLocation);
- m_httpServer.AddXmlRPCHandler("agent_leaving", msgsvc.AgentLeaving);
-
- m_httpServer.AddXmlRPCHandler("region_startup", m_regionModule.RegionStartup);
- m_httpServer.AddXmlRPCHandler("region_shutdown", m_regionModule.RegionShutdown);
-
- m_httpServer.Start();
- }
- m_log.Info("[SERVER]: Userserver registration was successful");
- }
- else
- {
- m_log.Error("[STARTUP]: Unable to connect to User Server");
- }
-
- }
-
- private void deregisterFromUserServer()
- {
- m_userServerModule.deregisterWithUserServer();
-// if (m_httpServer != null)
-// {
- // try a completely fresh registration, with fresh handlers, too
-// m_httpServer.Stop();
-// m_httpServer = null;
-// }
- m_console.Output("[SERVER]: Deregistered from userserver.");
- }
-
- protected override void StartupSpecific()
- {
- Cfg = new MessageServerConfig("MESSAGING SERVER", (Path.Combine(Util.configDir(), m_configFile)));
-
- m_userDataBaseService = new UserDataBaseService();
- m_userDataBaseService.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect);
-
- //Register the database access service so modules can fetch it
- // RegisterInterface(m_userDataBaseService);
-
- m_userServerModule = new InterMessageUserServerModule(Cfg, this);
- m_userServerModule.Initialise();
-
- msgsvc = new MessageService(Cfg, this, m_userDataBaseService);
- msgsvc.Initialise();
-
- m_regionModule = new MessageRegionModule(Cfg, this);
- m_regionModule.Initialise();
-
- registerWithUserServer();
-
- m_userServerModule.PostInitialise();
- msgsvc.PostInitialise();
- m_regionModule.PostInitialise();
-
- m_log.Info("[SERVER]: Messageserver 0.5 - Startup complete");
-
- base.StartupSpecific();
-
- m_console.Commands.AddCommand("messageserver", false, "clear cache",
- "clear cache",
- "Clear presence cache", HandleClearCache);
-
- m_console.Commands.AddCommand("messageserver", false, "register",
- "register",
- "Re-register with user server(s)", HandleRegister);
- }
-
- public void do_create(string what)
- {
- //switch (what)
- //{
- // case "user":
- // try
- // {
- // //userID =
- // //m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY);
- // } catch (Exception ex)
- // {
- // m_console.Error("[SERVER]: Error creating user: {0}", ex.ToString());
- // }
-
- // try
- // {
- // //RestObjectPoster.BeginPostObject(m_userManager._config.InventoryUrl + "CreateInventory/",
- // //userID.Guid);
- // }
- // catch (Exception ex)
- // {
- // m_console.Error("[SERVER]: Error creating inventory for user: {0}", ex.ToString());
- // }
- // // m_lastCreatedUser = userID;
- // break;
- //}
- }
-
- private void HandleClearCache(string module, string[] cmd)
- {
- int entries = m_regionModule.ClearRegionCache();
- m_console.Output("Region cache cleared! Cleared " +
- entries.ToString() + " entries");
- }
-
- private void HandleRegister(string module, string[] cmd)
- {
- deregisterFromUserServer();
- registerWithUserServer();
- }
-
- public override void ShutdownSpecific()
- {
- m_userServerModule.deregisterWithUserServer();
- }
-
- #region IUGAIMCore
- protected Dictionary m_moduleInterfaces = new Dictionary();
-
- ///
- /// Register an Module interface.
- ///
- ///
- ///
- public void RegisterInterface(T iface)
- {
- lock (m_moduleInterfaces)
- {
- if (!m_moduleInterfaces.ContainsKey(typeof(T)))
- {
- m_moduleInterfaces.Add(typeof(T), iface);
- }
- }
- }
-
- public bool TryGet(out T iface)
- {
- if (m_moduleInterfaces.ContainsKey(typeof(T)))
- {
- iface = (T)m_moduleInterfaces[typeof(T)];
- return true;
- }
- iface = default(T);
- return false;
- }
-
- public T Get()
- {
- return (T)m_moduleInterfaces[typeof(T)];
- }
-
- public BaseHttpServer GetHttpServer()
- {
- return m_httpServer;
- }
- #endregion
- }
-}
diff --git a/OpenSim/Grid/UserServer.Config/AssemblyInfo.cs b/OpenSim/Grid/UserServer.Config/AssemblyInfo.cs
deleted file mode 100644
index bd6b551..0000000
--- a/OpenSim/Grid/UserServer.Config/AssemblyInfo.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-// Information about this assembly is defined by the following
-// attributes.
-//
-// change them to the information which is associated with the assembly
-// you compile.
-
-[assembly: AssemblyTitle("UserConfig")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("http://opensimulator.org")]
-[assembly: AssemblyProduct("UserConfig")]
-[assembly: AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// This sets the default COM visibility of types in the assembly to invisible.
-// If you need to expose a type to COM, use [ComVisible(true)] on that type.
-[assembly: ComVisible(false)]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all values by your own or you can build default build and revision
-// numbers with the '*' character (the default):
-
-[assembly: AssemblyVersion("0.6.3.*")]
diff --git a/OpenSim/Grid/UserServer.Config/DbUserConfig.cs b/OpenSim/Grid/UserServer.Config/DbUserConfig.cs
deleted file mode 100644
index cbd0f0d..0000000
--- a/OpenSim/Grid/UserServer.Config/DbUserConfig.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using Db4objects.Db4o;
-using OpenSim.Framework.Configuration;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenUser.Config.UserConfigDb4o
-{
- public class Db4oConfigPlugin: IUserConfig
- {
- private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
-
- public UserConfig GetConfigObject()
- {
- m_log.Info("[DBUSERCONFIG]: Loading Db40Config dll");
- return new DbUserConfig();
- }
- }
-
- public class DbUserConfig : UserConfig
- {
- private IObjectContainer db;
-
- public void LoadDefaults()
- {
- m_log.Info("DbUserConfig.cs:LoadDefaults() - Please press enter to retain default or enter new settings");
-
- this.DefaultStartupMsg = m_log.CmdPrompt("Default startup message", "Welcome to OGS");
-
- this.GridServerURL = m_log.CmdPrompt("Grid server URL","http://127.0.0.1:" + GridConfig.DefaultHttpPort.ToString() + "/");
- this.GridSendKey = m_log.CmdPrompt("Key to send to grid server","null");
- this.GridRecvKey = m_log.CmdPrompt("Key to expect from grid server","null");
- }
-
- public override void InitConfig()
- {
- try
- {
- db = Db4oFactory.OpenFile("openuser.yap");
- IObjectSet result = db.Get(typeof(DbUserConfig));
- if (result.Count == 1)
- {
- m_log.Info("[DBUSERCONFIG]: DbUserConfig.cs:InitConfig() - Found a UserConfig object in the local database, loading");
- foreach (DbUserConfig cfg in result)
- {
- this.GridServerURL=cfg.GridServerURL;
- this.GridSendKey=cfg.GridSendKey;
- this.GridRecvKey=cfg.GridRecvKey;
- this.DefaultStartupMsg=cfg.DefaultStartupMsg;
- }
- }
- else
- {
- m_log.Info("[DBUSERCONFIG]: DbUserConfig.cs:InitConfig() - Could not find object in database, loading precompiled defaults");
- LoadDefaults();
- m_log.Info("[DBUSERCONFIG]: Writing out default settings to local database");
- db.Set(this);
- db.Close();
- }
- }
- catch(Exception e)
- {
- m_log.Warn("DbUserConfig.cs:InitConfig() - Exception occured");
- m_log.Warn(e.ToString());
- }
-
- m_log.Info("[DBUSERCONFIG]: User settings loaded:");
- m_log.Info("[DBUSERCONFIG]: Default startup message: " + this.DefaultStartupMsg);
- m_log.Info("[DBUSERCONFIG]: Grid server URL: " + this.GridServerURL);
- m_log.Info("[DBUSERCONFIG]: Key to send to grid: " + this.GridSendKey);
- m_log.Info("[DBUSERCONFIG]: Key to expect from grid: " + this.GridRecvKey);
- }
-
- public void Shutdown()
- {
- db.Close();
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer.Modules/AvatarCreationModule.cs b/OpenSim/Grid/UserServer.Modules/AvatarCreationModule.cs
deleted file mode 100644
index 923b06c..0000000
--- a/OpenSim/Grid/UserServer.Modules/AvatarCreationModule.cs
+++ /dev/null
@@ -1,550 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Threading;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public class AvatarCreationModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private UserDataBaseService m_userDataBaseService;
- // private BaseHttpServer m_httpServer;
- // TODO: unused: private UserConfig m_config;
-
- private string m_inventoryServerUrl;
- private IInterServiceInventoryServices m_inventoryService;
-
- public AvatarCreationModule(UserDataBaseService userDataBaseService, UserConfig config, IInterServiceInventoryServices inventoryService)
- {
- // TODO: unused: m_config = config;
- m_userDataBaseService = userDataBaseService;
- m_inventoryService = inventoryService;
- m_inventoryServerUrl = config.InventoryUrl.OriginalString;
- }
-
- public void Initialise(IGridServiceCore core)
- {
- CommandConsole console;
- if (core.TryGet(out console))
- {
- console.Commands.AddCommand("userserver", false, "clone avatar",
- "clone avatar ",
- "Clone the template avatar's inventory into a target avatar", RunCommand);
- }
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
- }
-
- public void RunCommand(string module, string[] cmd)
- {
- if ((cmd.Length == 6) && (cmd[0] == "clone") && (cmd[1] == "avatar"))
- {
- try
- {
- string tFirst = cmd[2];
- string tLast = cmd[3];
-
- string nFirst = cmd[4];
- string nLast = cmd[5];
-
- UserProfileData templateAvatar = m_userDataBaseService.GetUserProfile(tFirst, tLast);
- UserProfileData newAvatar = m_userDataBaseService.GetUserProfile(nFirst, nLast);
-
- if (templateAvatar == null)
- {
- m_log.ErrorFormat("[AvatarAppearance] Clone Avatar: Could not find template avatar {0} , {1}", tFirst, tLast);
- return;
- }
-
- if (newAvatar == null)
- {
- m_log.ErrorFormat("[AvatarAppearance] Clone Avatar: Could not find target avatar {0} , {1}", nFirst, nLast);
- return;
- }
- Guid avatar = newAvatar.ID.Guid;
- Guid template = templateAvatar.ID.Guid;
- CloneAvatar(avatar, template, true, true);
-
- }
- catch (Exception e)
- {
- m_log.Error("Error: " + e.ToString());
- }
- }
- }
- #region Avatar Appearance Creation
-
- public bool CloneAvatar(Guid avatarID, Guid templateID, bool modifyPermissions, bool removeTargetsClothes)
- {
- m_log.InfoFormat("[AvatarAppearance] Starting to clone avatar {0} inventory to avatar {1}", templateID.ToString(), avatarID.ToString());
- // TODO: unused: Guid bodyFolder = Guid.Empty;
- // TODO: unused: Guid clothesFolder = Guid.Empty;
- bool success = false;
-
- UUID avID = new UUID(avatarID);
- List avatarInventory = m_inventoryService.GetInventorySkeleton(avID);
- if ((avatarInventory == null) || (avatarInventory.Count == 0))
- {
- m_log.InfoFormat("[AvatarAppearance] No inventory found for user {0} , so creating it", avID.ToString());
- m_inventoryService.CreateNewUserInventory(avID);
- Thread.Sleep(5000);
- avatarInventory = m_inventoryService.GetInventorySkeleton(avID);
- }
-
- if ((avatarInventory != null) && (avatarInventory.Count > 0))
- {
- UUID tempOwnID = new UUID(templateID);
- AvatarAppearance appearance = m_userDataBaseService.GetUserAppearance(tempOwnID);
-
- if (removeTargetsClothes)
- {
- //remove clothes and attachments from target avatar so that the end result isn't a merger of its existing clothes
- // and the clothes from the template avatar.
- RemoveClothesAndAttachments(avID);
- }
-
- List templateInventory = m_inventoryService.GetInventorySkeleton(tempOwnID);
- if ((templateInventory != null) && (templateInventory.Count != 0))
- {
- for (int i = 0; i < templateInventory.Count; i++)
- {
- if (templateInventory[i].ParentID == UUID.Zero)
- {
- success = CloneFolder(avatarInventory, avID, UUID.Zero, appearance, templateInventory[i], templateInventory, modifyPermissions);
- break;
- }
- }
- }
- else
- {
- m_log.InfoFormat("[AvatarAppearance] Failed to find the template owner's {0} inventory", tempOwnID);
- }
- }
- m_log.InfoFormat("[AvatarAppearance] finished cloning avatar with result: {0}", success);
- return success;
- }
-
- private bool CloneFolder(List avatarInventory, UUID avID, UUID parentFolder, AvatarAppearance appearance, InventoryFolderBase templateFolder, List templateFolders, bool modifyPermissions)
- {
- bool success = false;
- UUID templateFolderId = templateFolder.ID;
- if (templateFolderId != UUID.Zero)
- {
- InventoryFolderBase toFolder = FindFolder(templateFolder.Name, parentFolder.Guid, avatarInventory);
- if (toFolder == null)
- {
- //create new folder
- toFolder = new InventoryFolderBase();
- toFolder.ID = UUID.Random();
- toFolder.Name = templateFolder.Name;
- toFolder.Owner = avID;
- toFolder.Type = templateFolder.Type;
- toFolder.Version = 1;
- toFolder.ParentID = parentFolder;
- if (!SynchronousRestObjectRequester.MakeRequest(
- "POST", m_inventoryServerUrl + "CreateFolder/", toFolder))
- {
- m_log.InfoFormat("[AvatarApperance] Couldn't make new folder {0} in users inventory", toFolder.Name);
- return false;
- }
- else
- {
- // m_log.InfoFormat("made new folder {0} in users inventory", toFolder.Name);
- }
- }
-
- List templateItems = SynchronousRestObjectRequester.MakeRequest>(
- "POST", m_inventoryServerUrl + "GetItems/", templateFolderId.Guid);
- if ((templateItems != null) && (templateItems.Count > 0))
- {
- List wornClothes = new List();
- List attachedItems = new List();
-
- foreach (InventoryItemBase item in templateItems)
- {
-
- UUID clonedItemId = CloneInventoryItem(avID, toFolder.ID, item, modifyPermissions);
- if (clonedItemId != UUID.Zero)
- {
- int appearanceType = ItemIsPartOfAppearance(item, appearance);
- if (appearanceType >= 0)
- {
- // UpdateAvatarAppearance(avID, appearanceType, clonedItemId, item.AssetID);
- wornClothes.Add(new ClothesAttachment(appearanceType, clonedItemId, item.AssetID));
- }
-
- if (appearance != null)
- {
- int attachment = appearance.GetAttachpoint(item.ID);
- if (attachment > 0)
- {
- //UpdateAvatarAttachment(avID, attachment, clonedItemId, item.AssetID);
- attachedItems.Add(new ClothesAttachment(attachment, clonedItemId, item.AssetID));
- }
- }
- success = true;
- }
- }
-
- if ((wornClothes.Count > 0) || (attachedItems.Count > 0))
- {
- //Update the worn clothes and attachments
- AvatarAppearance targetAppearance = GetAppearance(avID);
- if (targetAppearance != null)
- {
- foreach (ClothesAttachment wornItem in wornClothes)
- {
- targetAppearance.Wearables[wornItem.Type].AssetID = wornItem.AssetID;
- targetAppearance.Wearables[wornItem.Type].ItemID = wornItem.ItemID;
- }
-
- foreach (ClothesAttachment wornItem in attachedItems)
- {
- targetAppearance.SetAttachment(wornItem.Type, wornItem.ItemID, wornItem.AssetID);
- }
-
- m_userDataBaseService.UpdateUserAppearance(avID, targetAppearance);
- wornClothes.Clear();
- attachedItems.Clear();
- }
- }
- }
- else if ((templateItems != null) && (templateItems.Count == 0))
- {
- // m_log.Info("[AvatarAppearance]Folder being cloned was empty");
- success = true;
- }
-
- List subFolders = FindSubFolders(templateFolder.ID.Guid, templateFolders);
- foreach (InventoryFolderBase subFolder in subFolders)
- {
- if (subFolder.Name.ToLower() != "trash")
- {
- success = CloneFolder(avatarInventory, avID, toFolder.ID, appearance, subFolder, templateFolders, modifyPermissions);
- }
- }
- }
- else
- {
- m_log.Info("[AvatarAppearance] Failed to find the template folder");
- }
- return success;
- }
-
- private UUID CloneInventoryItem(UUID avatarID, UUID avatarFolder, InventoryItemBase item, bool modifyPerms)
- {
- if (avatarFolder != UUID.Zero)
- {
- InventoryItemBase clonedItem = new InventoryItemBase();
- clonedItem.Owner = avatarID;
- clonedItem.AssetID = item.AssetID;
- clonedItem.AssetType = item.AssetType;
- clonedItem.BasePermissions = item.BasePermissions;
- clonedItem.CreationDate = item.CreationDate;
- clonedItem.CreatorId = item.CreatorId;
- clonedItem.CreatorIdAsUuid = item.CreatorIdAsUuid;
- clonedItem.CurrentPermissions = item.CurrentPermissions;
- clonedItem.Description = item.Description;
- clonedItem.EveryOnePermissions = item.EveryOnePermissions;
- clonedItem.Flags = item.Flags;
- clonedItem.Folder = avatarFolder;
- clonedItem.GroupID = item.GroupID;
- clonedItem.GroupOwned = item.GroupOwned;
- clonedItem.GroupPermissions = item.GroupPermissions;
- clonedItem.ID = UUID.Random();
- clonedItem.InvType = item.InvType;
- clonedItem.Name = item.Name;
- clonedItem.NextPermissions = item.NextPermissions;
- clonedItem.SalePrice = item.SalePrice;
- clonedItem.SaleType = item.SaleType;
-
- if (modifyPerms)
- {
- ModifyPermissions(ref clonedItem);
- }
-
- SynchronousRestObjectRequester.MakeRequest(
- "POST", m_inventoryServerUrl + "AddNewItem/", clonedItem);
-
- return clonedItem.ID;
- }
-
- return UUID.Zero;
- }
-
- // TODO: unused
- // private void UpdateAvatarAppearance(UUID avatarID, int wearableType, UUID itemID, UUID assetID)
- // {
- // AvatarAppearance appearance = GetAppearance(avatarID);
- // appearance.Wearables[wearableType].AssetID = assetID;
- // appearance.Wearables[wearableType].ItemID = itemID;
- // m_userDataBaseService.UpdateUserAppearance(avatarID, appearance);
- // }
-
- // TODO: unused
- // private void UpdateAvatarAttachment(UUID avatarID, int attachmentPoint, UUID itemID, UUID assetID)
- // {
- // AvatarAppearance appearance = GetAppearance(avatarID);
- // appearance.SetAttachment(attachmentPoint, itemID, assetID);
- // m_userDataBaseService.UpdateUserAppearance(avatarID, appearance);
- // }
-
- private void RemoveClothesAndAttachments(UUID avatarID)
- {
- AvatarAppearance appearance = GetAppearance(avatarID);
-
- appearance.ClearWearables();
- appearance.ClearAttachments();
- m_userDataBaseService.UpdateUserAppearance(avatarID, appearance);
-
- }
-
- private AvatarAppearance GetAppearance(UUID avatarID)
- {
- AvatarAppearance appearance = m_userDataBaseService.GetUserAppearance(avatarID);
- if (appearance == null)
- {
- appearance = CreateDefaultAppearance(avatarID);
- }
- return appearance;
- }
-
- // TODO: unused
- // private UUID FindFolderID(string name, List folders)
- // {
- // foreach (InventoryFolderBase folder in folders)
- // {
- // if (folder.Name == name)
- // {
- // return folder.ID;
- // }
- // }
- // return UUID.Zero;
- // }
-
- // TODO: unused
- // private InventoryFolderBase FindFolder(string name, List folders)
- // {
- // foreach (InventoryFolderBase folder in folders)
- // {
- // if (folder.Name == name)
- // {
- // return folder;
- // }
- // }
- // return null;
- // }
-
- private InventoryFolderBase FindFolder(string name, Guid parentFolderID, List folders)
- {
- foreach (InventoryFolderBase folder in folders)
- {
- if ((folder.Name == name) && (folder.ParentID.Guid == parentFolderID))
- {
- return folder;
- }
- }
- return null;
- }
-
- // TODO: unused
- // private InventoryItemBase GetItem(string itemName, List items)
- // {
- // foreach (InventoryItemBase item in items)
- // {
- // if (item.Name.ToLower() == itemName.ToLower())
- // {
- // return item;
- // }
- // }
- // return null;
- // }
-
- private List FindSubFolders(Guid parentFolderID, List folders)
- {
- List subFolders = new List();
- foreach (InventoryFolderBase folder in folders)
- {
- if (folder.ParentID.Guid == parentFolderID)
- {
- subFolders.Add(folder);
- }
- }
- return subFolders;
- }
-
- protected virtual void ModifyPermissions(ref InventoryItemBase item)
- {
- // Propagate Permissions
- item.BasePermissions = item.BasePermissions & item.NextPermissions;
- item.CurrentPermissions = item.BasePermissions;
- item.EveryOnePermissions = item.EveryOnePermissions & item.NextPermissions;
- item.GroupPermissions = item.GroupPermissions & item.NextPermissions;
-
- }
-
- private AvatarAppearance CreateDefaultAppearance(UUID avatarId)
- {
- AvatarAppearance appearance = null;
- AvatarWearable[] wearables;
- byte[] visualParams;
- GetDefaultAvatarAppearance(out wearables, out visualParams);
- appearance = new AvatarAppearance(avatarId, wearables, visualParams);
-
- return appearance;
- }
-
- private static void GetDefaultAvatarAppearance(out AvatarWearable[] wearables, out byte[] visualParams)
- {
- visualParams = GetDefaultVisualParams();
- wearables = AvatarWearable.DefaultWearables;
- }
-
- private static byte[] GetDefaultVisualParams()
- {
- byte[] visualParams;
- visualParams = new byte[218];
- for (int i = 0; i < 218; i++)
- {
- visualParams[i] = 100;
- }
- return visualParams;
- }
-
- private int ItemIsPartOfAppearance(InventoryItemBase item, AvatarAppearance appearance)
- {
- if (appearance != null)
- {
- if (appearance.BodyItem == item.ID)
- return (int)WearableType.Shape;
-
- if (appearance.EyesItem == item.ID)
- return (int)WearableType.Eyes;
-
- if (appearance.GlovesItem == item.ID)
- return (int)WearableType.Gloves;
-
- if (appearance.HairItem == item.ID)
- return (int)WearableType.Hair;
-
- if (appearance.JacketItem == item.ID)
- return (int)WearableType.Jacket;
-
- if (appearance.PantsItem == item.ID)
- return (int)WearableType.Pants;
-
- if (appearance.ShirtItem == item.ID)
- return (int)WearableType.Shirt;
-
- if (appearance.ShoesItem == item.ID)
- return (int)WearableType.Shoes;
-
- if (appearance.SkinItem == item.ID)
- return (int)WearableType.Skin;
-
- if (appearance.SkirtItem == item.ID)
- return (int)WearableType.Skirt;
-
- if (appearance.SocksItem == item.ID)
- return (int)WearableType.Socks;
-
- if (appearance.UnderPantsItem == item.ID)
- return (int)WearableType.Underpants;
-
- if (appearance.UnderShirtItem == item.ID)
- return (int)WearableType.Undershirt;
- }
- return -1;
- }
- #endregion
-
- public enum PermissionMask
- {
- None = 0,
- Transfer = 8192,
- Modify = 16384,
- Copy = 32768,
- Move = 524288,
- Damage = 1048576,
- All = 2147483647,
- }
-
- public enum WearableType
- {
- Shape = 0,
- Skin = 1,
- Hair = 2,
- Eyes = 3,
- Shirt = 4,
- Pants = 5,
- Shoes = 6,
- Socks = 7,
- Jacket = 8,
- Gloves = 9,
- Undershirt = 10,
- Underpants = 11,
- Skirt = 12,
- }
-
- public class ClothesAttachment
- {
- public int Type;
- public UUID ItemID;
- public UUID AssetID;
-
- public ClothesAttachment(int type, UUID itemID, UUID assetID)
- {
- Type = type;
- ItemID = itemID;
- AssetID = assetID;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/OpenSim/Grid/UserServer.Modules/MessageServersConnector.cs b/OpenSim/Grid/UserServer.Modules/MessageServersConnector.cs
deleted file mode 100644
index 3384952..0000000
--- a/OpenSim/Grid/UserServer.Modules/MessageServersConnector.cs
+++ /dev/null
@@ -1,514 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using System.Threading;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public enum NotificationRequest : int
- {
- Login = 0,
- Logout = 1,
- Shutdown = 2
- }
-
- public struct PresenceNotification
- {
- public NotificationRequest request;
- public UUID agentID;
- public UUID sessionID;
- public UUID RegionID;
- public ulong regionhandle;
- public float positionX;
- public float positionY;
- public float positionZ;
- public string firstname;
- public string lastname;
- }
-
- public delegate void AgentLocationDelegate(UUID agentID, UUID regionID, ulong regionHandle);
- public delegate void AgentLeavingDelegate(UUID agentID, UUID regionID, ulong regionHandle);
- public delegate void RegionStartupDelegate(UUID regionID);
- public delegate void RegionShutdownDelegate(UUID regionID);
-
-
- public class MessageServersConnector
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public Dictionary MessageServers;
-
- private BaseHttpServer m_httpServer;
-
- private OpenSim.Framework.BlockingQueue m_NotifyQueue =
- new OpenSim.Framework.BlockingQueue();
-
- private IGridServiceCore m_core;
-
- public event AgentLocationDelegate OnAgentLocation;
- public event AgentLeavingDelegate OnAgentLeaving;
- public event RegionStartupDelegate OnRegionStartup;
- public event RegionShutdownDelegate OnRegionShutdown;
-
- public MessageServersConnector()
- {
- MessageServers = new Dictionary();
- }
-
- public void Initialise(IGridServiceCore core)
- {
- m_core = core;
- m_core.RegisterInterface(this);
-
- Watchdog.StartThread(NotifyQueueRunner, "NotifyQueueRunner", ThreadPriority.Normal, true);
- }
-
- public void PostInitialise()
- {
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
- m_httpServer = httpServer;
-
- m_httpServer.AddXmlRPCHandler("region_startup", RegionStartup);
- m_httpServer.AddXmlRPCHandler("region_shutdown", RegionShutdown);
- m_httpServer.AddXmlRPCHandler("agent_location", AgentLocation);
- m_httpServer.AddXmlRPCHandler("agent_leaving", AgentLeaving);
- // Message Server ---> User Server
- m_httpServer.AddXmlRPCHandler("register_messageserver", XmlRPCRegisterMessageServer);
- m_httpServer.AddXmlRPCHandler("agent_change_region", XmlRPCUserMovedtoRegion);
- m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer);
- }
-
- public void RegisterMessageServer(string URI, MessageServerInfo serverData)
- {
- lock (MessageServers)
- {
- if (!MessageServers.ContainsKey(URI))
- MessageServers.Add(URI, serverData);
- }
- }
-
- public void DeRegisterMessageServer(string URI)
- {
- lock (MessageServers)
- {
- if (MessageServers.ContainsKey(URI))
- MessageServers.Remove(URI);
- }
- }
-
- public void AddResponsibleRegion(string URI, ulong regionhandle)
- {
- if (!MessageServers.ContainsKey(URI))
- {
- m_log.Warn("[MSGSERVER]: Got addResponsibleRegion Request for a MessageServer that isn't registered");
- }
- else
- {
- MessageServerInfo msginfo = MessageServers["URI"];
- msginfo.responsibleForRegions.Add(regionhandle);
- MessageServers["URI"] = msginfo;
- }
- }
- public void RemoveResponsibleRegion(string URI, ulong regionhandle)
- {
- if (!MessageServers.ContainsKey(URI))
- {
- m_log.Warn("[MSGSERVER]: Got RemoveResponsibleRegion Request for a MessageServer that isn't registered");
- }
- else
- {
- MessageServerInfo msginfo = MessageServers["URI"];
- if (msginfo.responsibleForRegions.Contains(regionhandle))
- {
- msginfo.responsibleForRegions.Remove(regionhandle);
- MessageServers["URI"] = msginfo;
- }
- }
-
- }
- public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
-
- if (requestData.Contains("uri"))
- {
- string URI = (string)requestData["uri"];
- string sendkey=(string)requestData["sendkey"];
- string recvkey=(string)requestData["recvkey"];
- MessageServerInfo m = new MessageServerInfo();
- m.URI = URI;
- m.sendkey = sendkey;
- m.recvkey = recvkey;
- RegisterMessageServer(URI, m);
- responseData["responsestring"] = "TRUE";
- response.Value = responseData;
- }
- return response;
- }
- public XmlRpcResponse XmlRPCDeRegisterMessageServer(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
-
- if (requestData.Contains("uri"))
- {
- string URI = (string)requestData["uri"];
-
- DeRegisterMessageServer(URI);
- responseData["responsestring"] = "TRUE";
- response.Value = responseData;
- }
- return response;
- }
-
- public XmlRpcResponse XmlRPCUserMovedtoRegion(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
-
- if (requestData.Contains("fromuri"))
- {
- // string sURI = (string)requestData["fromuri"];
- // string sagentID = (string)requestData["agentid"];
- // string ssessionID = (string)requestData["sessionid"];
- // string scurrentRegionID = (string)requestData["regionid"];
- // string sregionhandle = (string)requestData["regionhandle"];
- // string scurrentpos = (string)requestData["currentpos"];
- //Vector3.TryParse((string)reader["currentPos"], out retval.currentPos);
- // TODO: Okay now raise event so the user server can pass this data to the Usermanager
-
- responseData["responsestring"] = "TRUE";
- response.Value = responseData;
- }
- return response;
- }
-
- public void TellMessageServersAboutUser(UUID agentID, UUID sessionID, UUID RegionID,
- ulong regionhandle, float positionX, float positionY,
- float positionZ, string firstname, string lastname)
- {
- PresenceNotification notification = new PresenceNotification();
-
- notification.request = NotificationRequest.Login;
- notification.agentID = agentID;
- notification.sessionID = sessionID;
- notification.RegionID = RegionID;
- notification.regionhandle = regionhandle;
- notification.positionX = positionX;
- notification.positionY = positionY;
- notification.positionZ = positionZ;
- notification.firstname = firstname;
- notification.lastname = lastname;
-
- m_NotifyQueue.Enqueue(notification);
- }
-
- private void TellMessageServersAboutUserInternal(UUID agentID, UUID sessionID, UUID RegionID,
- ulong regionhandle, float positionX, float positionY,
- float positionZ, string firstname, string lastname)
- {
- // Loop over registered Message Servers (AND THERE WILL BE MORE THEN ONE :D)
- lock (MessageServers)
- {
- if (MessageServers.Count > 0)
- {
- m_log.Info("[MSGCONNECTOR]: Sending login notice to registered message servers");
- }
-// else
-// {
-// m_log.Debug("[MSGCONNECTOR]: No Message Servers registered, ignoring");
-// }
- foreach (MessageServerInfo serv in MessageServers.Values)
- {
- NotifyMessageServerAboutUser(serv, agentID, sessionID, RegionID,
- regionhandle, positionX, positionY, positionZ,
- firstname, lastname);
- }
- }
- }
-
- private void TellMessageServersAboutUserLogoffInternal(UUID agentID)
- {
- lock (MessageServers)
- {
- if (MessageServers.Count > 0)
- {
- m_log.Info("[MSGCONNECTOR]: Sending logoff notice to registered message servers");
- }
- else
- {
-// m_log.Debug("[MSGCONNECTOR]: No Message Servers registered, ignoring");
- }
- foreach (MessageServerInfo serv in MessageServers.Values)
- {
- NotifyMessageServerAboutUserLogoff(serv,agentID);
- }
- }
- }
-
- private void TellMessageServersAboutRegionShutdownInternal(UUID regionID)
- {
- lock (MessageServers)
- {
- if (MessageServers.Count > 0)
- {
- m_log.Info("[MSGCONNECTOR]: Sending region down notice to registered message servers");
- }
- else
- {
-// m_log.Debug("[MSGCONNECTOR]: No Message Servers registered, ignoring");
- }
- foreach (MessageServerInfo serv in MessageServers.Values)
- {
- NotifyMessageServerAboutRegionShutdown(serv,regionID);
- }
- }
- }
-
- public void TellMessageServersAboutUserLogoff(UUID agentID)
- {
- PresenceNotification notification = new PresenceNotification();
-
- notification.request = NotificationRequest.Logout;
- notification.agentID = agentID;
-
- m_NotifyQueue.Enqueue(notification);
- }
-
- public void TellMessageServersAboutRegionShutdown(UUID regionID)
- {
- PresenceNotification notification = new PresenceNotification();
-
- notification.request = NotificationRequest.Shutdown;
- notification.RegionID = regionID;
-
- m_NotifyQueue.Enqueue(notification);
- }
-
- private void NotifyMessageServerAboutUserLogoff(MessageServerInfo serv, UUID agentID)
- {
- Hashtable reqparams = new Hashtable();
- reqparams["sendkey"] = serv.sendkey;
- reqparams["agentid"] = agentID.ToString();
- ArrayList SendParams = new ArrayList();
- SendParams.Add(reqparams);
-
- XmlRpcRequest GridReq = new XmlRpcRequest("logout_of_simulator", SendParams);
- try
- {
- GridReq.Send(serv.URI, 6000);
- }
- catch (WebException)
- {
- m_log.Warn("[MSGCONNECTOR]: Unable to notify Message Server about log out. Other users might still think this user is online");
- }
- m_log.Info("[LOGOUT]: Notified : " + serv.URI + " about user logout");
- }
-
- private void NotifyMessageServerAboutRegionShutdown(MessageServerInfo serv, UUID regionID)
- {
- Hashtable reqparams = new Hashtable();
- reqparams["sendkey"] = serv.sendkey;
- reqparams["regionid"] = regionID.ToString();
- ArrayList SendParams = new ArrayList();
- SendParams.Add(reqparams);
-
- XmlRpcRequest GridReq = new XmlRpcRequest("process_region_shutdown", SendParams);
- try
- {
- GridReq.Send(serv.URI, 6000);
- }
- catch (WebException)
- {
- m_log.Warn("[MSGCONNECTOR]: Unable to notify Message Server about region shutdown.");
- }
- m_log.Info("[REGION UPDOWN]: Notified : " + serv.URI + " about region state change");
- }
-
- private void NotifyMessageServerAboutUser(MessageServerInfo serv,
- UUID agentID, UUID sessionID, UUID RegionID,
- ulong regionhandle, float positionX, float positionY, float positionZ,
- string firstname, string lastname)
- {
- Hashtable reqparams = new Hashtable();
- reqparams["sendkey"] = serv.sendkey;
- reqparams["agentid"] = agentID.ToString();
- reqparams["sessionid"] = sessionID.ToString();
- reqparams["regionid"] = RegionID.ToString();
- reqparams["regionhandle"] = regionhandle.ToString();
- reqparams["positionx"] = positionX.ToString();
- reqparams["positiony"] = positionY.ToString();
- reqparams["positionz"] = positionZ.ToString();
- reqparams["firstname"] = firstname;
- reqparams["lastname"] = lastname;
-
- //reqparams["position"] = Position.ToString();
-
- ArrayList SendParams = new ArrayList();
- SendParams.Add(reqparams);
-
- XmlRpcRequest GridReq = new XmlRpcRequest("login_to_simulator", SendParams);
- try
- {
- GridReq.Send(serv.URI, 6000);
- m_log.Info("[LOGIN]: Notified : " + serv.URI + " about user login");
- }
- catch (WebException)
- {
- m_log.Warn("[MSGCONNECTOR]: Unable to notify Message Server about login. Presence might be borked for this user");
- }
-
- }
-
- private void NotifyQueueRunner()
- {
- while (true)
- {
- PresenceNotification presence = m_NotifyQueue.Dequeue();
-
- if (presence.request == NotificationRequest.Shutdown)
- {
- TellMessageServersAboutRegionShutdownInternal(presence.RegionID);
- }
-
- if (presence.request == NotificationRequest.Login)
- {
- TellMessageServersAboutUserInternal(presence.agentID,
- presence.sessionID, presence.RegionID,
- presence.regionhandle, presence.positionX,
- presence.positionY, presence.positionZ,
- presence.firstname, presence.lastname);
- }
-
- if (presence.request == NotificationRequest.Logout)
- {
- TellMessageServersAboutUserLogoffInternal(presence.agentID);
- }
-
- Watchdog.UpdateThread();
- }
- }
-
- public XmlRpcResponse RegionStartup(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
-
- UUID regionID;
- if (UUID.TryParse((string)requestData["RegionUUID"], out regionID))
- {
- if (OnRegionStartup != null)
- OnRegionStartup(regionID);
-
- result["responsestring"] = "TRUE";
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- public XmlRpcResponse RegionShutdown(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
-
- UUID regionID;
- if (UUID.TryParse((string)requestData["RegionUUID"], out regionID))
- {
- if (OnRegionShutdown != null)
- OnRegionShutdown(regionID);
-
- result["responsestring"] = "TRUE";
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- public XmlRpcResponse AgentLocation(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
-
- UUID agentID;
- UUID regionID;
- ulong regionHandle;
- if (UUID.TryParse((string)requestData["AgentID"], out agentID) && UUID.TryParse((string)requestData["RegionUUID"], out regionID) && ulong.TryParse((string)requestData["RegionHandle"], out regionHandle))
- {
- if (OnAgentLocation != null)
- OnAgentLocation(agentID, regionID, regionHandle);
-
- result["responsestring"] = "TRUE";
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
-
- public XmlRpcResponse AgentLeaving(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable result = new Hashtable();
-
- UUID agentID;
- UUID regionID;
- ulong regionHandle;
- if (UUID.TryParse((string)requestData["AgentID"], out agentID) && UUID.TryParse((string)requestData["RegionUUID"], out regionID) && ulong.TryParse((string)requestData["RegionHandle"], out regionHandle))
- {
- if (OnAgentLeaving != null)
- OnAgentLeaving(agentID, regionID, regionHandle);
-
- result["responsestring"] = "TRUE";
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = result;
- return response;
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer.Modules/UserDataBaseService.cs b/OpenSim/Grid/UserServer.Modules/UserDataBaseService.cs
deleted file mode 100644
index 10d6f80..0000000
--- a/OpenSim/Grid/UserServer.Modules/UserDataBaseService.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public class UserDataBaseService : UserManagerBase
- {
- protected IGridServiceCore m_core;
-
- public UserDataBaseService(CommunicationsManager commsManager)
- : base(commsManager)
- {
- }
-
- public void Initialise(IGridServiceCore core)
- {
- m_core = core;
-
- UserConfig cfg;
- if (m_core.TryGet(out cfg))
- {
- AddPlugin(cfg.DatabaseProvider, cfg.DatabaseConnect);
- }
-
- m_core.RegisterInterface(this);
- }
-
- public void PostInitialise()
- {
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
- }
-
- public UserAgentData GetUserAgentData(UUID AgentID)
- {
- UserProfileData userProfile = GetUserProfile(AgentID);
-
- if (userProfile != null)
- {
- return userProfile.CurrentAgent;
- }
-
- return null;
- }
-
- public override UserProfileData SetupMasterUser(string firstName, string lastName)
- {
- throw new Exception("The method or operation is not implemented.");
- }
-
- public override UserProfileData SetupMasterUser(string firstName, string lastName, string password)
- {
- throw new Exception("The method or operation is not implemented.");
- }
-
- public override UserProfileData SetupMasterUser(UUID uuid)
- {
- throw new Exception("The method or operation is not implemented.");
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer.Modules/UserLoginService.cs b/OpenSim/Grid/UserServer.Modules/UserLoginService.cs
deleted file mode 100644
index 97a919f..0000000
--- a/OpenSim/Grid/UserServer.Modules/UserLoginService.cs
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using System.Text.RegularExpressions;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using Nini.Config;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Communications.Services;
-using LoginResponse = OpenSim.Framework.Communications.Services.LoginResponse;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Capabilities;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Services.Interfaces;
-using OpenSim.Services.Connectors;
-using GridRegion = OpenSim.Services.Interfaces.GridRegion;
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public delegate void UserLoggedInAtLocation(UUID agentID, UUID sessionID, UUID RegionID,
- ulong regionhandle, float positionX, float positionY, float positionZ,
- string firstname, string lastname);
-
- ///
- /// Login service used in grid mode.
- ///
- public class UserLoginService : LoginService
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public event UserLoggedInAtLocation OnUserLoggedInAtLocation;
-
- private UserLoggedInAtLocation handlerUserLoggedInAtLocation;
-
- public UserConfig m_config;
- private readonly IRegionProfileRouter m_regionProfileService;
-
- private IGridService m_GridService;
-
- protected BaseHttpServer m_httpServer;
-
- public UserLoginService(
- UserManagerBase userManager, IInterServiceInventoryServices inventoryService,
- LibraryRootFolder libraryRootFolder,
- UserConfig config, string welcomeMess, IRegionProfileRouter regionProfileService)
- : base(userManager, libraryRootFolder, welcomeMess)
- {
- m_config = config;
- m_defaultHomeX = m_config.DefaultX;
- m_defaultHomeY = m_config.DefaultY;
- m_interInventoryService = inventoryService;
- m_regionProfileService = regionProfileService;
-
- m_GridService = new GridServicesConnector(config.GridServerURL.ToString());
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer, bool registerLLSDHandler, bool registerOpenIDHandlers)
- {
- m_httpServer = httpServer;
-
- m_httpServer.AddXmlRPCHandler("login_to_simulator", XmlRpcLoginMethod);
- m_httpServer.AddHTTPHandler("login", ProcessHTMLLogin);
- m_httpServer.AddXmlRPCHandler("set_login_params", XmlRPCSetLoginParams);
- m_httpServer.AddXmlRPCHandler("check_auth_session", XmlRPCCheckAuthSession, false);
-
- if (registerLLSDHandler)
- {
- m_httpServer.SetDefaultLLSDHandler(LLSDLoginMethod);
- }
-
- }
-
- public void setloginlevel(int level)
- {
- m_minLoginLevel = level;
- m_log.InfoFormat("[GRID]: Login Level set to {0} ", level);
- }
- public void setwelcometext(string text)
- {
- m_welcomeMessage = text;
- m_log.InfoFormat("[GRID]: Login text set to {0} ", text);
- }
-
- public override void LogOffUser(UserProfileData theUser, string message)
- {
- RegionProfileData SimInfo;
- try
- {
- SimInfo = m_regionProfileService.RequestSimProfileData(
- theUser.CurrentAgent.Handle, m_config.GridServerURL,
- m_config.GridSendKey, m_config.GridRecvKey);
-
- if (SimInfo == null)
- {
- m_log.Error("[GRID]: Region user was in isn't currently logged in");
- return;
- }
- }
- catch (Exception)
- {
- m_log.Error("[GRID]: Unable to look up region to log user off");
- return;
- }
-
- // Prepare notification
- Hashtable SimParams = new Hashtable();
- SimParams["agent_id"] = theUser.ID.ToString();
- SimParams["region_secret"] = theUser.CurrentAgent.SecureSessionID.ToString();
- SimParams["region_secret2"] = SimInfo.regionSecret;
- //m_log.Info(SimInfo.regionSecret);
- SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
- SimParams["message"] = message;
- ArrayList SendParams = new ArrayList();
- SendParams.Add(SimParams);
-
- m_log.InfoFormat(
- "[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
- SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
- theUser.FirstName + " " + theUser.SurName);
-
- try
- {
- XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
- XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
-
- if (GridResp.IsFault)
- {
- m_log.ErrorFormat(
- "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
- SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
- }
- }
- catch (Exception)
- {
- m_log.Error("[LOGIN]: Error telling region to logout user!");
- }
-
- // Prepare notification
- SimParams = new Hashtable();
- SimParams["agent_id"] = theUser.ID.ToString();
- SimParams["region_secret"] = SimInfo.regionSecret;
- //m_log.Info(SimInfo.regionSecret);
- SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
- SimParams["message"] = message;
- SendParams = new ArrayList();
- SendParams.Add(SimParams);
-
- m_log.InfoFormat(
- "[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
- SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
- theUser.FirstName + " " + theUser.SurName);
-
- try
- {
- XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
- XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
-
- if (GridResp.IsFault)
- {
- m_log.ErrorFormat(
- "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
- SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
- }
- }
- catch (Exception)
- {
- m_log.Error("[LOGIN]: Error telling region to logout user!");
- }
- //base.LogOffUser(theUser);
- }
-
- protected override RegionInfo RequestClosestRegion(string region)
- {
- return GridRegionToRegionInfo(m_GridService.GetRegionByName(UUID.Zero, region));
- }
-
- protected override RegionInfo GetRegionInfo(ulong homeRegionHandle)
- {
- uint x = 0, y = 0;
- Utils.LongToUInts(homeRegionHandle, out x, out y);
- return GridRegionToRegionInfo(m_GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y));
- }
-
- protected override RegionInfo GetRegionInfo(UUID homeRegionId)
- {
- return GridRegionToRegionInfo(m_GridService.GetRegionByUUID(UUID.Zero, homeRegionId));
- }
-
- private RegionInfo GridRegionToRegionInfo(GridRegion gregion)
- {
- if (gregion == null)
- return null;
-
- RegionInfo rinfo = new RegionInfo();
- rinfo.ExternalHostName = gregion.ExternalHostName;
- rinfo.HttpPort = gregion.HttpPort;
- rinfo.InternalEndPoint = gregion.InternalEndPoint;
- rinfo.RegionID = gregion.RegionID;
- rinfo.RegionLocX = (uint)(gregion.RegionLocX / Constants.RegionSize);
- rinfo.RegionLocY = (uint)(gregion.RegionLocY / Constants.RegionSize);
- rinfo.RegionName = gregion.RegionName;
- rinfo.ScopeID = gregion.ScopeID;
- rinfo.ServerURI = gregion.ServerURI;
-
- return rinfo;
- }
-
- protected override bool PrepareLoginToRegion(RegionInfo regionInfo, UserProfileData user, LoginResponse response, IPEndPoint remoteClient)
- {
- return PrepareLoginToRegion(RegionProfileData.FromRegionInfo(regionInfo), user, response, remoteClient);
- }
-
- ///
- /// Prepare a login to the given region. This involves both telling the region to expect a connection
- /// and appropriately customising the response to the user.
- ///
- ///
- ///
- ///
- /// true if the region was successfully contacted, false otherwise
- private bool PrepareLoginToRegion(RegionProfileData regionInfo, UserProfileData user, LoginResponse response, IPEndPoint remoteClient)
- {
- try
- {
- response.SimAddress = Util.GetHostFromURL(regionInfo.serverURI).ToString();
- response.SimPort = uint.Parse(regionInfo.serverURI.Split(new char[] { '/', ':' })[4]);
- response.RegionX = regionInfo.regionLocX;
- response.RegionY = regionInfo.regionLocY;
-
- string capsPath = CapsUtil.GetRandomCapsObjectPath();
-
- // Adam's working code commented for now -- Diva 5/25/2009
- //// For NAT
- ////string host = NetworkUtil.GetHostFor(remoteClient.Address, regionInfo.ServerIP);
- //string host = response.SimAddress;
- //// TODO: This doesnt support SSL. -Adam
- //string serverURI = "http://" + host + ":" + regionInfo.ServerPort;
-
- //response.SeedCapability = serverURI + CapsUtil.GetCapsSeedPath(capsPath);
-
- // Take off trailing / so that the caps path isn't //CAPS/someUUID
- string uri = regionInfo.httpServerURI.Trim(new char[] { '/' });
- response.SeedCapability = uri + CapsUtil.GetCapsSeedPath(capsPath);
-
-
- // Notify the target of an incoming user
- m_log.InfoFormat(
- "[LOGIN]: Telling {0} @ {1},{2} ({3}) to prepare for client connection",
- regionInfo.regionName, response.RegionX, response.RegionY, regionInfo.httpServerURI);
-
- // Update agent with target sim
- user.CurrentAgent.Region = regionInfo.UUID;
- user.CurrentAgent.Handle = regionInfo.regionHandle;
-
- // Prepare notification
- Hashtable loginParams = new Hashtable();
- loginParams["session_id"] = user.CurrentAgent.SessionID.ToString();
- loginParams["secure_session_id"] = user.CurrentAgent.SecureSessionID.ToString();
- loginParams["firstname"] = user.FirstName;
- loginParams["lastname"] = user.SurName;
- loginParams["agent_id"] = user.ID.ToString();
- loginParams["circuit_code"] = (Int32)Convert.ToUInt32(response.CircuitCode);
- loginParams["startpos_x"] = user.CurrentAgent.Position.X.ToString();
- loginParams["startpos_y"] = user.CurrentAgent.Position.Y.ToString();
- loginParams["startpos_z"] = user.CurrentAgent.Position.Z.ToString();
- loginParams["regionhandle"] = user.CurrentAgent.Handle.ToString();
- loginParams["caps_path"] = capsPath;
-
- // Get appearance
- AvatarAppearance appearance = m_userManager.GetUserAppearance(user.ID);
- if (appearance != null)
- {
- loginParams["appearance"] = appearance.ToHashTable();
- m_log.DebugFormat("[LOGIN]: Found appearance for {0} {1}", user.FirstName, user.SurName);
- }
- else
- {
- m_log.DebugFormat("[LOGIN]: Appearance not for {0} {1}. Creating default.", user.FirstName, user.SurName);
- appearance = new AvatarAppearance(user.ID);
- loginParams["appearance"] = appearance.ToHashTable();
- }
-
- ArrayList SendParams = new ArrayList();
- SendParams.Add(loginParams);
-
- // Send
- XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams);
- XmlRpcResponse GridResp = GridReq.Send(regionInfo.httpServerURI, 6000);
-
- if (!GridResp.IsFault)
- {
- bool responseSuccess = true;
-
- if (GridResp.Value != null)
- {
- Hashtable resp = (Hashtable)GridResp.Value;
- if (resp.ContainsKey("success"))
- {
- if ((string)resp["success"] == "FALSE")
- {
- responseSuccess = false;
- }
- }
- }
-
- if (responseSuccess)
- {
- handlerUserLoggedInAtLocation = OnUserLoggedInAtLocation;
- if (handlerUserLoggedInAtLocation != null)
- {
- handlerUserLoggedInAtLocation(user.ID, user.CurrentAgent.SessionID,
- user.CurrentAgent.Region,
- user.CurrentAgent.Handle,
- user.CurrentAgent.Position.X,
- user.CurrentAgent.Position.Y,
- user.CurrentAgent.Position.Z,
- user.FirstName, user.SurName);
- }
- }
- else
- {
- m_log.ErrorFormat("[LOGIN]: Region responded that it is not available to receive clients");
- return false;
- }
- }
- else
- {
- m_log.ErrorFormat("[LOGIN]: XmlRpc request to region failed with message {0}, code {1} ", GridResp.FaultString, GridResp.FaultCode);
- return false;
- }
- }
- catch (Exception e)
- {
- m_log.ErrorFormat("[LOGIN]: Region not available for login, {0}", e);
- return false;
- }
-
- return true;
- }
-
- public XmlRpcResponse XmlRPCSetLoginParams(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- UserProfileData userProfile;
- Hashtable responseData = new Hashtable();
-
- UUID uid;
- string pass = requestData["password"].ToString();
-
- if (!UUID.TryParse((string)requestData["avatar_uuid"], out uid))
- {
- responseData["error"] = "No authorization";
- response.Value = responseData;
- return response;
- }
-
- userProfile = m_userManager.GetUserProfile(uid);
-
- if (userProfile == null ||
- (!AuthenticateUser(userProfile, pass)) ||
- userProfile.GodLevel < 200)
- {
- responseData["error"] = "No authorization";
- response.Value = responseData;
- return response;
- }
-
- if (requestData.ContainsKey("login_level"))
- {
- m_minLoginLevel = Convert.ToInt32(requestData["login_level"]);
- }
-
- if (requestData.ContainsKey("login_motd"))
- {
- m_welcomeMessage = requestData["login_motd"].ToString();
- }
-
- response.Value = responseData;
- return response;
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer.Modules/UserManager.cs b/OpenSim/Grid/UserServer.Modules/UserManager.cs
deleted file mode 100644
index 36c6297..0000000
--- a/OpenSim/Grid/UserServer.Modules/UserManager.cs
+++ /dev/null
@@ -1,718 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public delegate void logOffUser(UUID AgentID);
-
- public class UserManager
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public event logOffUser OnLogOffUser;
- private logOffUser handlerLogOffUser;
-
- private UserDataBaseService m_userDataBaseService;
- private BaseHttpServer m_httpServer;
-
- ///
- ///
- ///
- ///
- public UserManager(UserDataBaseService userDataBaseService)
- {
- m_userDataBaseService = userDataBaseService;
- }
-
- public void Initialise(IGridServiceCore core)
- {
-
- }
-
- public void PostInitialise()
- {
-
- }
-
- private string RESTGetUserProfile(string request, string path, string param, OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- UUID id;
- UserProfileData userProfile;
-
- try
- {
- id = new UUID(param);
- }
- catch (Exception)
- {
- httpResponse.StatusCode = 500;
- return "Malformed Param [" + param + "]";
- }
-
- userProfile = m_userDataBaseService.GetUserProfile(id);
-
- if (userProfile == null)
- {
- httpResponse.StatusCode = 404;
- return "Not Found.";
- }
-
- return ProfileToXmlRPCResponse(userProfile).ToString();
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
- m_httpServer = httpServer;
-
- m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/users/", RESTGetUserProfile));
-
- m_httpServer.AddXmlRPCHandler("get_user_by_name", XmlRPCGetUserMethodName);
- m_httpServer.AddXmlRPCHandler("get_user_by_uuid", XmlRPCGetUserMethodUUID);
- m_httpServer.AddXmlRPCHandler("get_avatar_picker_avatar", XmlRPCGetAvatarPickerAvatar);
-
- // Used by IAR module to do password checks
- m_httpServer.AddXmlRPCHandler("authenticate_user_by_password", XmlRPCAuthenticateUserMethodPassword);
-
- m_httpServer.AddXmlRPCHandler("update_user_current_region", XmlRPCAtRegion);
- m_httpServer.AddXmlRPCHandler("logout_of_simulator", XmlRPCLogOffUserMethodUUID);
- m_httpServer.AddXmlRPCHandler("get_agent_by_uuid", XmlRPCGetAgentMethodUUID);
-
- m_httpServer.AddXmlRPCHandler("update_user_profile", XmlRpcResponseXmlRPCUpdateUserProfile);
-
- m_httpServer.AddStreamHandler(new RestStreamHandler("DELETE", "/usersessions/", RestDeleteUserSessionMethod));
- }
-
- ///
- /// Deletes an active agent session
- ///
- /// The request
- /// The path (eg /bork/narf/test)
- /// Parameters sent
- /// HTTP request header object
- /// HTTP response header object
- /// Success "OK" else error
- public string RestDeleteUserSessionMethod(string request, string path, string param,
- OSHttpRequest httpRequest, OSHttpResponse httpResponse)
- {
- // TODO! Important!
-
- return "OK";
- }
-
- public XmlRpcResponse AvatarPickerListtoXmlRPCResponse(UUID queryID, List returnUsers)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
- // Query Result Information
- responseData["queryid"] = queryID.ToString();
- responseData["avcount"] = returnUsers.Count.ToString();
-
- for (int i = 0; i < returnUsers.Count; i++)
- {
- responseData["avatarid" + i] = returnUsers[i].AvatarID.ToString();
- responseData["firstname" + i] = returnUsers[i].firstName;
- responseData["lastname" + i] = returnUsers[i].lastName;
- }
- response.Value = responseData;
-
- return response;
- }
-
- ///
- /// Converts a user profile to an XML element which can be returned
- ///
- /// The user profile
- /// A string containing an XML Document of the user profile
- public XmlRpcResponse ProfileToXmlRPCResponse(UserProfileData profile)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
-
- // Account information
- responseData["firstname"] = profile.FirstName;
- responseData["lastname"] = profile.SurName;
- responseData["email"] = profile.Email;
- responseData["uuid"] = profile.ID.ToString();
- // Server Information
- responseData["server_inventory"] = profile.UserInventoryURI;
- responseData["server_asset"] = profile.UserAssetURI;
- // Profile Information
- responseData["profile_about"] = profile.AboutText;
- responseData["profile_firstlife_about"] = profile.FirstLifeAboutText;
- responseData["profile_firstlife_image"] = profile.FirstLifeImage.ToString();
- responseData["profile_can_do"] = profile.CanDoMask.ToString();
- responseData["profile_want_do"] = profile.WantDoMask.ToString();
- responseData["profile_image"] = profile.Image.ToString();
- responseData["profile_created"] = profile.Created.ToString();
- responseData["profile_lastlogin"] = profile.LastLogin.ToString();
- // Home region information
- responseData["home_coordinates_x"] = profile.HomeLocation.X.ToString();
- responseData["home_coordinates_y"] = profile.HomeLocation.Y.ToString();
- responseData["home_coordinates_z"] = profile.HomeLocation.Z.ToString();
-
- responseData["home_region"] = profile.HomeRegion.ToString();
- responseData["home_region_id"] = profile.HomeRegionID.ToString();
-
- responseData["home_look_x"] = profile.HomeLookAt.X.ToString();
- responseData["home_look_y"] = profile.HomeLookAt.Y.ToString();
- responseData["home_look_z"] = profile.HomeLookAt.Z.ToString();
-
- responseData["user_flags"] = profile.UserFlags.ToString();
- responseData["god_level"] = profile.GodLevel.ToString();
- responseData["custom_type"] = profile.CustomType;
- responseData["partner"] = profile.Partner.ToString();
- response.Value = responseData;
-
- return response;
- }
-
- #region XMLRPC User Methods
-
- ///
- /// Authenticate a user using their password
- ///
- /// Must contain values for "user_uuid" and "password" keys
- ///
- ///
- public XmlRpcResponse XmlRPCAuthenticateUserMethodPassword(XmlRpcRequest request, IPEndPoint remoteClient)
- {
-// m_log.DebugFormat("[USER MANAGER]: Received authenticated user by password request from {0}", remoteClient);
-
- Hashtable requestData = (Hashtable)request.Params[0];
- string userUuidRaw = (string)requestData["user_uuid"];
- string password = (string)requestData["password"];
-
- if (null == userUuidRaw)
- return Util.CreateUnknownUserErrorResponse();
-
- UUID userUuid;
- if (!UUID.TryParse(userUuidRaw, out userUuid))
- return Util.CreateUnknownUserErrorResponse();
-
- UserProfileData userProfile = m_userDataBaseService.GetUserProfile(userUuid);
- if (null == userProfile)
- return Util.CreateUnknownUserErrorResponse();
-
- string authed;
-
- if (null == password)
- {
- authed = "FALSE";
- }
- else
- {
- if (m_userDataBaseService.AuthenticateUserByPassword(userUuid, password))
- authed = "TRUE";
- else
- authed = "FALSE";
- }
-
-// m_log.DebugFormat(
-// "[USER MANAGER]: Authentication by password result from {0} for {1} is {2}",
-// remoteClient, userUuid, authed);
-
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
- responseData["auth_user"] = authed;
- response.Value = responseData;
-
- return response;
- }
-
- public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- // XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- List returnAvatar = new List();
- UUID queryID = new UUID(UUID.Zero.ToString());
-
- if (requestData.Contains("avquery") && requestData.Contains("queryid"))
- {
- queryID = new UUID((string)requestData["queryid"]);
- returnAvatar = m_userDataBaseService.GenerateAgentPickerRequestResponse(queryID, (string)requestData["avquery"]);
- }
-
- m_log.InfoFormat("[AVATARINFO]: Servicing Avatar Query: " + (string)requestData["avquery"]);
- return AvatarPickerListtoXmlRPCResponse(queryID, returnAvatar);
- }
-
- 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;
- }
-
- public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- // XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- UserProfileData userProfile;
- if (requestData.Contains("avatar_name"))
- {
- string query = (string)requestData["avatar_name"];
-
- if (null == query)
- return Util.CreateUnknownUserErrorResponse();
-
- // Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]");
-
- string[] querysplit = query.Split(' ');
-
- if (querysplit.Length == 2)
- {
- userProfile = m_userDataBaseService.GetUserProfile(querysplit[0], querysplit[1]);
- if (userProfile == null)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
- }
- else
- {
- return Util.CreateUnknownUserErrorResponse();
- }
- }
- else
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- return ProfileToXmlRPCResponse(userProfile);
- }
-
- public XmlRpcResponse XmlRPCGetUserMethodUUID(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- // XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- UserProfileData userProfile;
- //CFK: this clogs the UserServer log and is not necessary at this time.
- //CFK: m_log.Debug("METHOD BY UUID CALLED");
- if (requestData.Contains("avatar_uuid"))
- {
- try
- {
- UUID guess = new UUID((string)requestData["avatar_uuid"]);
-
- userProfile = m_userDataBaseService.GetUserProfile(guess);
- }
- catch (FormatException)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- if (userProfile == null)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
- }
- else
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- return ProfileToXmlRPCResponse(userProfile);
- }
-
- public XmlRpcResponse XmlRPCGetAgentMethodUUID(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- UserProfileData userProfile;
- //CFK: this clogs the UserServer log and is not necessary at this time.
- //CFK: m_log.Debug("METHOD BY UUID CALLED");
- if (requestData.Contains("avatar_uuid"))
- {
- UUID guess;
-
- UUID.TryParse((string)requestData["avatar_uuid"], out guess);
-
- if (guess == UUID.Zero)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- userProfile = m_userDataBaseService.GetUserProfile(guess);
-
- if (userProfile == null)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- // no agent???
- if (userProfile.CurrentAgent == null)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
- Hashtable responseData = new Hashtable();
-
- responseData["handle"] = userProfile.CurrentAgent.Handle.ToString();
- responseData["session"] = userProfile.CurrentAgent.SessionID.ToString();
- if (userProfile.CurrentAgent.AgentOnline)
- responseData["agent_online"] = "TRUE";
- else
- responseData["agent_online"] = "FALSE";
-
- response.Value = responseData;
- }
- else
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- return response;
- }
-
- public XmlRpcResponse XmlRpcResponseXmlRPCUpdateUserProfile(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- m_log.Debug("[UserManager]: Got request to update user profile");
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
-
- if (!requestData.Contains("avatar_uuid"))
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- UUID UserUUID = new UUID((string)requestData["avatar_uuid"]);
- UserProfileData userProfile = m_userDataBaseService.GetUserProfile(UserUUID);
- if (null == userProfile)
- {
- return Util.CreateUnknownUserErrorResponse();
- }
- // don't know how yet.
- if (requestData.Contains("AllowPublish"))
- {
- }
- if (requestData.Contains("FLImageID"))
- {
- userProfile.FirstLifeImage = new UUID((string)requestData["FLImageID"]);
- }
- if (requestData.Contains("ImageID"))
- {
- userProfile.Image = new UUID((string)requestData["ImageID"]);
- }
- // dont' know how yet
- if (requestData.Contains("MaturePublish"))
- {
- }
- if (requestData.Contains("AboutText"))
- {
- userProfile.AboutText = (string)requestData["AboutText"];
- }
- if (requestData.Contains("FLAboutText"))
- {
- userProfile.FirstLifeAboutText = (string)requestData["FLAboutText"];
- }
- // not in DB yet.
- if (requestData.Contains("ProfileURL"))
- {
- }
- if (requestData.Contains("home_region"))
- {
- try
- {
- userProfile.HomeRegion = Convert.ToUInt64((string)requestData["home_region"]);
- }
- catch (ArgumentException)
- {
- m_log.Error("[PROFILE]:Failed to set home region, Invalid Argument");
- }
- catch (FormatException)
- {
- m_log.Error("[PROFILE]:Failed to set home region, Invalid Format");
- }
- catch (OverflowException)
- {
- m_log.Error("[PROFILE]:Failed to set home region, Value was too large");
- }
- }
- if (requestData.Contains("home_region_id"))
- {
- UUID regionID;
- UUID.TryParse((string)requestData["home_region_id"], out regionID);
- userProfile.HomeRegionID = regionID;
- }
- if (requestData.Contains("home_pos_x"))
- {
- try
- {
- userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set home postion x");
- }
- }
- if (requestData.Contains("home_pos_y"))
- {
- try
- {
- userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set home postion y");
- }
- }
- if (requestData.Contains("home_pos_z"))
- {
- try
- {
- userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set home postion z");
- }
- }
- if (requestData.Contains("home_look_x"))
- {
- try
- {
- userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set home lookat x");
- }
- }
- if (requestData.Contains("home_look_y"))
- {
- try
- {
- userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set home lookat y");
- }
- }
- if (requestData.Contains("home_look_z"))
- {
- try
- {
- userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set home lookat z");
- }
- }
- if (requestData.Contains("user_flags"))
- {
- try
- {
- userProfile.UserFlags = Convert.ToInt32((string)requestData["user_flags"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set user flags");
- }
- }
- if (requestData.Contains("god_level"))
- {
- try
- {
- userProfile.GodLevel = Convert.ToInt32((string)requestData["god_level"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set god level");
- }
- }
- if (requestData.Contains("custom_type"))
- {
- try
- {
- userProfile.CustomType = (string)requestData["custom_type"];
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set custom type");
- }
- }
- if (requestData.Contains("partner"))
- {
- try
- {
- userProfile.Partner = new UUID((string)requestData["partner"]);
- }
- catch (InvalidCastException)
- {
- m_log.Error("[PROFILE]:Failed to set partner");
- }
- }
- else
- {
- userProfile.Partner = UUID.Zero;
- }
-
- // call plugin!
- bool ret = m_userDataBaseService.UpdateUserProfile(userProfile);
- responseData["returnString"] = ret.ToString();
- response.Value = responseData;
- return response;
- }
-
- public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
-
- if (requestData.Contains("avatar_uuid"))
- {
- try
- {
- UUID userUUID = new UUID((string)requestData["avatar_uuid"]);
- UUID RegionID = new UUID((string)requestData["region_uuid"]);
- ulong regionhandle = (ulong)Convert.ToInt64((string)requestData["region_handle"]);
- Vector3 position = new Vector3(
- (float)Convert.ToDecimal((string)requestData["region_pos_x"]),
- (float)Convert.ToDecimal((string)requestData["region_pos_y"]),
- (float)Convert.ToDecimal((string)requestData["region_pos_z"]));
- Vector3 lookat = new Vector3(
- (float)Convert.ToDecimal((string)requestData["lookat_x"]),
- (float)Convert.ToDecimal((string)requestData["lookat_y"]),
- (float)Convert.ToDecimal((string)requestData["lookat_z"]));
-
- handlerLogOffUser = OnLogOffUser;
- if (handlerLogOffUser != null)
- handlerLogOffUser(userUUID);
-
- m_userDataBaseService.LogOffUser(userUUID, RegionID, regionhandle, position, lookat);
- }
- catch (FormatException)
- {
- m_log.Warn("[LOGOUT]: Error in Logout XMLRPC Params");
- return response;
- }
- }
- else
- {
- return Util.CreateUnknownUserErrorResponse();
- }
-
- return response;
- }
-
- #endregion
-
-
- public void HandleAgentLocation(UUID agentID, UUID regionID, ulong regionHandle)
- {
- UserProfileData userProfile = m_userDataBaseService.GetUserProfile(agentID);
- if (userProfile != null)
- {
- userProfile.CurrentAgent.Region = regionID;
- userProfile.CurrentAgent.Handle = regionHandle;
- m_userDataBaseService.CommitAgent(ref userProfile);
- }
- }
-
- public void HandleAgentLeaving(UUID agentID, UUID regionID, ulong regionHandle)
- {
- UserProfileData userProfile = m_userDataBaseService.GetUserProfile(agentID);
- if (userProfile != null)
- {
- if (userProfile.CurrentAgent.Region == regionID)
- {
- UserAgentData userAgent = userProfile.CurrentAgent;
- if (userAgent != null && userAgent.AgentOnline)
- {
- userAgent.AgentOnline = false;
- userAgent.LogoutTime = Util.UnixTimeSinceEpoch();
- if (regionID != UUID.Zero)
- {
- userAgent.Region = regionID;
- }
- userAgent.Handle = regionHandle;
- userProfile.LastLogin = userAgent.LogoutTime;
-
- m_userDataBaseService.CommitAgent(ref userProfile);
-
- handlerLogOffUser = OnLogOffUser;
- if (handlerLogOffUser != null)
- handlerLogOffUser(agentID);
- }
- }
- }
- }
-
- public void HandleRegionStartup(UUID regionID)
- {
- m_userDataBaseService.LogoutUsers(regionID);
- }
-
- public void HandleRegionShutdown(UUID regionID)
- {
- m_userDataBaseService.LogoutUsers(regionID);
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs b/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
deleted file mode 100644
index 88918d1..0000000
--- a/OpenSim/Grid/UserServer.Modules/UserServerAvatarAppearanceModule.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public class UserServerAvatarAppearanceModule
- {
- //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private UserDataBaseService m_userDataBaseService;
- private BaseHttpServer m_httpServer;
-
- public UserServerAvatarAppearanceModule(UserDataBaseService userDataBaseService)
- {
- m_userDataBaseService = userDataBaseService;
- }
-
- public void Initialise(IGridServiceCore core)
- {
-
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
- m_httpServer = httpServer;
-
- m_httpServer.AddXmlRPCHandler("get_avatar_appearance", XmlRPCGetAvatarAppearance);
- m_httpServer.AddXmlRPCHandler("update_avatar_appearance", XmlRPCUpdateAvatarAppearance);
- }
-
- public XmlRpcResponse XmlRPCGetAvatarAppearance(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- AvatarAppearance appearance;
- Hashtable responseData;
- if (requestData.Contains("owner"))
- {
- appearance = m_userDataBaseService.GetUserAppearance(new UUID((string)requestData["owner"]));
- if (appearance == null)
- {
- responseData = new Hashtable();
- responseData["error_type"] = "no appearance";
- responseData["error_desc"] = "There was no appearance found for this avatar";
- }
- else
- {
- responseData = appearance.ToHashTable();
- }
- }
- else
- {
- responseData = new Hashtable();
- responseData["error_type"] = "unknown_avatar";
- responseData["error_desc"] = "The avatar appearance requested is not in the database";
- }
-
- response.Value = responseData;
- return response;
- }
-
- public XmlRpcResponse XmlRPCUpdateAvatarAppearance(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData;
- if (requestData.Contains("owner"))
- {
- AvatarAppearance appearance = new AvatarAppearance(requestData);
-
- // TODO: Sometime in the future we may have a database layer that is capable of updating appearance when
- // the TextureEntry is null. When that happens, this check can be removed
- if (appearance.Texture != null)
- m_userDataBaseService.UpdateUserAppearance(new UUID((string)requestData["owner"]), appearance);
-
- responseData = new Hashtable();
- responseData["returnString"] = "TRUE";
- }
- else
- {
- responseData = new Hashtable();
- responseData["error_type"] = "unknown_avatar";
- responseData["error_desc"] = "The avatar appearance requested is not in the database";
- }
- response.Value = responseData;
- return response;
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer.Modules/UserServerFriendsModule.cs b/OpenSim/Grid/UserServer.Modules/UserServerFriendsModule.cs
deleted file mode 100644
index 56e52a0..0000000
--- a/OpenSim/Grid/UserServer.Modules/UserServerFriendsModule.cs
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Grid.Framework;
-
-namespace OpenSim.Grid.UserServer.Modules
-{
- public class UserServerFriendsModule
- {
- //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private UserDataBaseService m_userDataBaseService;
-
- private BaseHttpServer m_httpServer;
-
- public UserServerFriendsModule(UserDataBaseService userDataBaseService)
- {
- m_userDataBaseService = userDataBaseService;
- }
-
- public void Initialise(IGridServiceCore core)
- {
-
- }
-
- public void PostInitialise()
- {
-
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
- m_httpServer = httpServer;
-
- m_httpServer.AddXmlRPCHandler("add_new_user_friend", XmlRpcResponseXmlRPCAddUserFriend);
- m_httpServer.AddXmlRPCHandler("remove_user_friend", XmlRpcResponseXmlRPCRemoveUserFriend);
- m_httpServer.AddXmlRPCHandler("update_user_friend_perms", XmlRpcResponseXmlRPCUpdateUserFriendPerms);
- m_httpServer.AddXmlRPCHandler("get_user_friend_list", XmlRpcResponseXmlRPCGetUserFriendList);
- }
-
- public XmlRpcResponse FriendListItemListtoXmlRPCResponse(List returnUsers)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
- // Query Result Information
-
- responseData["avcount"] = returnUsers.Count.ToString();
-
- for (int i = 0; i < returnUsers.Count; i++)
- {
- responseData["ownerID" + i] = returnUsers[i].FriendListOwner.ToString();
- responseData["friendID" + i] = returnUsers[i].Friend.ToString();
- responseData["ownerPerms" + i] = returnUsers[i].FriendListOwnerPerms.ToString();
- responseData["friendPerms" + i] = returnUsers[i].FriendPerms.ToString();
- }
- response.Value = responseData;
-
- return response;
- }
-
- public XmlRpcResponse XmlRpcResponseXmlRPCAddUserFriend(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
- string returnString = "FALSE";
- // Query Result Information
-
- if (requestData.Contains("ownerID") && requestData.Contains("friendID") &&
- requestData.Contains("friendPerms"))
- {
- // UserManagerBase.AddNewuserFriend
- m_userDataBaseService.AddNewUserFriend(new UUID((string)requestData["ownerID"]),
- new UUID((string)requestData["friendID"]),
- (uint)Convert.ToInt32((string)requestData["friendPerms"]));
- returnString = "TRUE";
- }
- responseData["returnString"] = returnString;
- response.Value = responseData;
- return response;
- }
-
- public XmlRpcResponse XmlRpcResponseXmlRPCRemoveUserFriend(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
- string returnString = "FALSE";
- // Query Result Information
-
- if (requestData.Contains("ownerID") && requestData.Contains("friendID"))
- {
- // UserManagerBase.AddNewuserFriend
- m_userDataBaseService.RemoveUserFriend(new UUID((string)requestData["ownerID"]),
- new UUID((string)requestData["friendID"]));
- returnString = "TRUE";
- }
- responseData["returnString"] = returnString;
- response.Value = responseData;
- return response;
- }
-
- public XmlRpcResponse XmlRpcResponseXmlRPCUpdateUserFriendPerms(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- Hashtable responseData = new Hashtable();
- string returnString = "FALSE";
-
- if (requestData.Contains("ownerID") && requestData.Contains("friendID") &&
- requestData.Contains("friendPerms"))
- {
- m_userDataBaseService.UpdateUserFriendPerms(new UUID((string)requestData["ownerID"]),
- new UUID((string)requestData["friendID"]),
- (uint)Convert.ToInt32((string)requestData["friendPerms"]));
- // UserManagerBase.
- returnString = "TRUE";
- }
- responseData["returnString"] = returnString;
- response.Value = responseData;
- return response;
- }
-
- public XmlRpcResponse XmlRpcResponseXmlRPCGetUserFriendList(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- // XmlRpcResponse response = new XmlRpcResponse();
- Hashtable requestData = (Hashtable)request.Params[0];
- // Hashtable responseData = new Hashtable();
-
- List returndata = new List();
-
- if (requestData.Contains("ownerID"))
- {
- returndata = m_userDataBaseService.GetUserFriendList(new UUID((string)requestData["ownerID"]));
- }
-
- return FriendListItemListtoXmlRPCResponse(returndata);
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs
deleted file mode 100644
index d598728..0000000
--- a/OpenSim/Grid/UserServer/Main.cs
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using log4net;
-using log4net.Config;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Framework.Statistics;
-using OpenSim.Grid.Communications.OGS1;
-using OpenSim.Grid.Framework;
-using OpenSim.Grid.UserServer.Modules;
-using Nini.Config;
-
-namespace OpenSim.Grid.UserServer
-{
- ///
- /// Grid user server main class
- ///
- public class OpenUser_Main : BaseOpenSimServer, IGridServiceCore
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- protected UserConfig Cfg;
-
- protected UserDataBaseService m_userDataBaseService;
-
- public UserManager m_userManager;
-
- protected UserServerAvatarAppearanceModule m_avatarAppearanceModule;
- protected UserServerFriendsModule m_friendsModule;
-
- public UserLoginService m_loginService;
- public MessageServersConnector m_messagesService;
-
- protected UserServerCommandModule m_consoleCommandModule;
- protected UserServerEventDispatchModule m_eventDispatcher;
-
- protected AvatarCreationModule m_appearanceModule;
-
- protected static string m_consoleType = "local";
- protected static IConfigSource m_config = null;
- protected static string m_configFile = "UserServer_Config.xml";
-
- public static void Main(string[] args)
- {
- ArgvConfigSource argvSource = new ArgvConfigSource(args);
- argvSource.AddSwitch("Startup", "console", "c");
- argvSource.AddSwitch("Startup", "xmlfile", "x");
-
- IConfig startupConfig = argvSource.Configs["Startup"];
- if (startupConfig != null)
- {
- m_consoleType = startupConfig.GetString("console", "local");
- m_configFile = startupConfig.GetString("xmlfile", "UserServer_Config.xml");
- }
-
- m_config = argvSource;
-
- XmlConfigurator.Configure();
-
- m_log.Info("Launching UserServer...");
-
- OpenUser_Main userserver = new OpenUser_Main();
-
- userserver.Startup();
- userserver.Work();
- }
-
- public OpenUser_Main()
- {
- switch (m_consoleType)
- {
- case "rest":
- m_console = new RemoteConsole("User");
- break;
- case "basic":
- m_console = new CommandConsole("User");
- break;
- default:
- m_console = new LocalConsole("User");
- break;
- }
- MainConsole.Instance = m_console;
- }
-
- public void Work()
- {
- m_console.Output("Enter help for a list of commands\n");
-
- while (true)
- {
- m_console.Prompt();
- }
- }
-
- protected override void StartupSpecific()
- {
- IInterServiceInventoryServices inventoryService = StartupCoreComponents();
-
- m_stats = StatsManager.StartCollectingUserStats();
-
- //setup services/modules
- StartupUserServerModules();
-
- StartOtherComponents(inventoryService);
-
- //PostInitialise the modules
- PostInitialiseModules();
-
- //register http handlers and start http server
- m_log.Info("[STARTUP]: Starting HTTP process");
- RegisterHttpHandlers();
- m_httpServer.Start();
-
- base.StartupSpecific();
- }
-
- protected virtual IInterServiceInventoryServices StartupCoreComponents()
- {
- Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), m_configFile)));
-
- m_httpServer = new BaseHttpServer(Cfg.HttpPort);
-
- if (m_console is RemoteConsole)
- {
- RemoteConsole c = (RemoteConsole)m_console;
- c.SetServer(m_httpServer);
- IConfig netConfig = m_config.AddConfig("Network");
- netConfig.Set("ConsoleUser", Cfg.ConsoleUser);
- netConfig.Set("ConsolePass", Cfg.ConsolePass);
- c.ReadConfig(m_config);
- }
-
- RegisterInterface(m_console);
- RegisterInterface(Cfg);
-
- //Should be in modules?
- IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl);
- // IRegionProfileRouter regionProfileService = new RegionProfileServiceProxy();
-
- RegisterInterface(inventoryService);
- // RegisterInterface(regionProfileService);
-
- return inventoryService;
- }
-
- ///
- /// Start up the user manager
- ///
- ///
- protected virtual void StartupUserServerModules()
- {
- m_log.Info("[STARTUP]: Establishing data connection");
-
- //we only need core components so we can request them from here
- IInterServiceInventoryServices inventoryService;
- TryGet(out inventoryService);
-
- CommunicationsManager commsManager = new UserServerCommsManager(inventoryService);
-
- //setup database access service, for now this has to be created before the other modules.
- m_userDataBaseService = new UserDataBaseService(commsManager);
- m_userDataBaseService.Initialise(this);
-
- //TODO: change these modules so they fetch the databaseService class in the PostInitialise method
- m_userManager = new UserManager(m_userDataBaseService);
- m_userManager.Initialise(this);
-
- m_avatarAppearanceModule = new UserServerAvatarAppearanceModule(m_userDataBaseService);
- m_avatarAppearanceModule.Initialise(this);
-
- m_friendsModule = new UserServerFriendsModule(m_userDataBaseService);
- m_friendsModule.Initialise(this);
-
- m_consoleCommandModule = new UserServerCommandModule();
- m_consoleCommandModule.Initialise(this);
-
- m_messagesService = new MessageServersConnector();
- m_messagesService.Initialise(this);
- }
-
- protected virtual void StartOtherComponents(IInterServiceInventoryServices inventoryService)
- {
- m_appearanceModule = new AvatarCreationModule(m_userDataBaseService, Cfg, inventoryService);
- m_appearanceModule.Initialise(this);
-
- StartupLoginService(inventoryService);
- //
- // Get the minimum defaultLevel to access to the grid
- //
- m_loginService.setloginlevel((int)Cfg.DefaultUserLevel);
-
- RegisterInterface(m_loginService); //TODO: should be done in the login service
-
- m_eventDispatcher = new UserServerEventDispatchModule(m_userManager, m_messagesService, m_loginService);
- m_eventDispatcher.Initialise(this);
- }
-
- ///
- /// Start up the login service
- ///
- ///
- protected virtual void StartupLoginService(IInterServiceInventoryServices inventoryService)
- {
- m_loginService = new UserLoginService(
- m_userDataBaseService, inventoryService, new LibraryRootFolder(Cfg.LibraryXmlfile), Cfg, Cfg.DefaultStartupMsg, new RegionProfileServiceProxy());
-
- }
-
- protected virtual void PostInitialiseModules()
- {
- m_consoleCommandModule.PostInitialise(); //it will register its Console command handlers in here
- m_userDataBaseService.PostInitialise();
- m_messagesService.PostInitialise();
- m_eventDispatcher.PostInitialise(); //it will register event handlers in here
- m_userManager.PostInitialise();
- m_avatarAppearanceModule.PostInitialise();
- m_friendsModule.PostInitialise();
- }
-
- protected virtual void RegisterHttpHandlers()
- {
- m_loginService.RegisterHandlers(m_httpServer, Cfg.EnableLLSDLogin, true);
-
- m_userManager.RegisterHandlers(m_httpServer);
- m_friendsModule.RegisterHandlers(m_httpServer);
- m_avatarAppearanceModule.RegisterHandlers(m_httpServer);
- m_messagesService.RegisterHandlers(m_httpServer);
- }
-
- public override void ShutdownSpecific()
- {
- m_eventDispatcher.Close();
- }
-
- #region IUGAIMCore
- protected Dictionary m_moduleInterfaces = new Dictionary();
-
- ///
- /// Register an Module interface.
- ///
- ///
- ///
- public void RegisterInterface(T iface)
- {
- lock (m_moduleInterfaces)
- {
- if (!m_moduleInterfaces.ContainsKey(typeof(T)))
- {
- m_moduleInterfaces.Add(typeof(T), iface);
- }
- }
- }
-
- public bool TryGet(out T iface)
- {
- if (m_moduleInterfaces.ContainsKey(typeof(T)))
- {
- iface = (T)m_moduleInterfaces[typeof(T)];
- return true;
- }
- iface = default(T);
- return false;
- }
-
- public T Get()
- {
- return (T)m_moduleInterfaces[typeof(T)];
- }
-
- public BaseHttpServer GetHttpServer()
- {
- return m_httpServer;
- }
- #endregion
-
- public void TestResponse(List resp)
- {
- m_console.Output("response got");
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs
deleted file mode 100644
index ba79a55..0000000
--- a/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-// General information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-
-[assembly : AssemblyTitle("OGS-UserServer")]
-[assembly : AssemblyDescription("")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("http://opensimulator.org")]
-[assembly : AssemblyProduct("OGS-UserServer")]
-[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-
-[assembly : ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-
-[assembly : Guid("e266513a-090b-4d38-80f6-8599eef68c8c")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-
-[assembly : AssemblyVersion("0.6.5.*")]
-[assembly : AssemblyFileVersion("0.6.5.0")]
diff --git a/OpenSim/Grid/UserServer/UserServerCommandModule.cs b/OpenSim/Grid/UserServer/UserServerCommandModule.cs
deleted file mode 100644
index cca410e..0000000
--- a/OpenSim/Grid/UserServer/UserServerCommandModule.cs
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using log4net;
-using log4net.Config;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Framework.Statistics;
-using OpenSim.Grid.Communications.OGS1;
-using OpenSim.Grid.Framework;
-using OpenSim.Grid.UserServer.Modules;
-
-namespace OpenSim.Grid.UserServer
-{
- public class UserServerCommandModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- protected CommandConsole m_console;
- protected UserConfig m_cfg;
-
- protected UserDataBaseService m_userDataBaseService;
- protected UserLoginService m_loginService;
-
- protected UUID m_lastCreatedUser = UUID.Random();
-
- protected IGridServiceCore m_core;
-
- public UserServerCommandModule()
- {
- }
-
- public void Initialise(IGridServiceCore core)
- {
- m_core = core;
- }
-
- public void PostInitialise()
- {
- UserConfig cfg;
- if (m_core.TryGet(out cfg))
- {
- m_cfg = cfg;
- }
-
- UserDataBaseService userDBservice;
- if (m_core.TryGet(out userDBservice))
- {
- m_userDataBaseService = userDBservice;
- }
-
- UserLoginService loginService;
- if (m_core.TryGet(out loginService))
- {
- m_loginService = loginService;
- }
-
- CommandConsole console;
- if ((m_core.TryGet(out console)) && (m_cfg != null)
- && (m_userDataBaseService != null) && (m_loginService != null))
- {
- RegisterConsoleCommands(console);
- }
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
-
- }
-
- private void RegisterConsoleCommands(CommandConsole console)
- {
- m_console = console;
- m_console.Commands.AddCommand("userserver", false, "create user",
- "create user [ [ [ [email]]]]",
- "Create a new user account", RunCommand);
-
- m_console.Commands.AddCommand("userserver", false, "reset user password",
- "reset user password [ [ []]]",
- "Reset a user's password", RunCommand);
-
- m_console.Commands.AddCommand("userserver", false, "login level",
- "login level ",
- "Set the minimum user level to log in", HandleLoginCommand);
-
- m_console.Commands.AddCommand("userserver", false, "login reset",
- "login reset",
- "Reset the login level to allow all users",
- HandleLoginCommand);
-
- m_console.Commands.AddCommand("userserver", false, "login text",
- "login text ",
- "Set the text users will see on login", HandleLoginCommand);
-
- m_console.Commands.AddCommand("userserver", false, "test-inventory",
- "test-inventory",
- "Perform a test inventory transaction", RunCommand);
-
- m_console.Commands.AddCommand("userserver", false, "logoff-user",
- "logoff-user ",
- "Log off a named user", RunCommand);
- }
-
- #region Console Command Handlers
- public void do_create(string[] args)
- {
- switch (args[0])
- {
- case "user":
- CreateUser(args);
- break;
- }
- }
-
- ///
- /// Execute switch for some of the reset commands
- ///
- ///
- protected void Reset(string[] args)
- {
- if (args.Length == 0)
- return;
-
- switch (args[0])
- {
- case "user":
-
- switch (args[1])
- {
- case "password":
- ResetUserPassword(args);
- break;
- }
-
- break;
- }
- }
-
- ///
- /// Create a new user
- ///
- /// string array with parameters: firstname, lastname, password, locationX, locationY, email
- protected void CreateUser(string[] cmdparams)
- {
- string firstName;
- string lastName;
- string password;
- string email;
- uint regX = 1000;
- uint regY = 1000;
-
- if (cmdparams.Length < 2)
- firstName = MainConsole.Instance.CmdPrompt("First name", "Default");
- else firstName = cmdparams[1];
-
- if (cmdparams.Length < 3)
- lastName = MainConsole.Instance.CmdPrompt("Last name", "User");
- else lastName = cmdparams[2];
-
- if (cmdparams.Length < 4)
- password = MainConsole.Instance.PasswdPrompt("Password");
- else password = cmdparams[3];
-
- if (cmdparams.Length < 5)
- regX = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region X", regX.ToString()));
- else regX = Convert.ToUInt32(cmdparams[4]);
-
- if (cmdparams.Length < 6)
- regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString()));
- else regY = Convert.ToUInt32(cmdparams[5]);
-
- if (cmdparams.Length < 7)
- email = MainConsole.Instance.CmdPrompt("Email", "");
- else email = cmdparams[6];
-
- if (null == m_userDataBaseService.GetUserProfile(firstName, lastName))
- {
- m_lastCreatedUser = m_userDataBaseService.AddUser(firstName, lastName, password, email, regX, regY);
- }
- else
- {
- m_log.ErrorFormat("[USERS]: A user with the name {0} {1} already exists!", firstName, lastName);
- }
- }
-
- ///
- /// Reset a user password.
- ///
- ///
- private void ResetUserPassword(string[] cmdparams)
- {
- string firstName;
- string lastName;
- string newPassword;
-
- if (cmdparams.Length < 3)
- firstName = MainConsole.Instance.CmdPrompt("First name");
- else firstName = cmdparams[2];
-
- if (cmdparams.Length < 4)
- lastName = MainConsole.Instance.CmdPrompt("Last name");
- else lastName = cmdparams[3];
-
- if (cmdparams.Length < 5)
- newPassword = MainConsole.Instance.PasswdPrompt("New password");
- else newPassword = cmdparams[4];
-
- m_userDataBaseService.ResetUserPassword(firstName, lastName, newPassword);
- }
-
- /*
- private void HandleTestCommand(string module, string[] cmd)
- {
- m_log.Info("test command received");
- }
- */
-
- private void HandleLoginCommand(string module, string[] cmd)
- {
- string subcommand = cmd[1];
-
- switch (subcommand)
- {
- case "level":
- // Set the minimal level to allow login
- // Useful to allow grid update without worrying about users.
- // or fixing critical issues
- //
- if (cmd.Length > 2)
- {
- int level = Convert.ToInt32(cmd[2]);
- m_loginService.setloginlevel(level);
- }
- break;
- case "reset":
- m_loginService.setloginlevel(0);
- break;
- case "text":
- if (cmd.Length > 2)
- {
- m_loginService.setwelcometext(cmd[2]);
- }
- break;
- }
- }
-
- public void RunCommand(string module, string[] cmd)
- {
- List args = new List(cmd);
- string command = cmd[0];
-
- args.RemoveAt(0);
-
- string[] cmdparams = args.ToArray();
-
- switch (command)
- {
- case "create":
- do_create(cmdparams);
- break;
-
- case "reset":
- Reset(cmdparams);
- break;
-
-
- case "test-inventory":
- // RestObjectPosterResponse> requester = new RestObjectPosterResponse>();
- // requester.ReturnResponseVal = TestResponse;
- // requester.BeginPostObject(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser);
- SynchronousRestObjectPoster.BeginPostObject>(
- "POST", m_cfg.InventoryUrl + "RootFolders/", m_lastCreatedUser);
- break;
-
- case "logoff-user":
- if (cmdparams.Length >= 3)
- {
- string firstname = cmdparams[0];
- string lastname = cmdparams[1];
- string message = "";
-
- for (int i = 2; i < cmdparams.Length; i++)
- message += " " + cmdparams[i];
-
- UserProfileData theUser = null;
- try
- {
- theUser = m_loginService.GetTheUser(firstname, lastname);
- }
- catch (Exception)
- {
- m_log.Error("[LOGOFF]: Error getting user data from the database.");
- }
-
- if (theUser != null)
- {
- if (theUser.CurrentAgent != null)
- {
- if (theUser.CurrentAgent.AgentOnline)
- {
- m_log.Info("[LOGOFF]: Logging off requested user!");
- m_loginService.LogOffUser(theUser, message);
-
- theUser.CurrentAgent.AgentOnline = false;
-
- m_loginService.CommitAgent(ref theUser);
- }
- else
- {
- m_log.Info(
- "[LOGOFF]: User Doesn't appear to be online, sending the logoff message anyway.");
- m_loginService.LogOffUser(theUser, message);
-
- theUser.CurrentAgent.AgentOnline = false;
-
- m_loginService.CommitAgent(ref theUser);
- }
- }
- else
- {
- m_log.Error(
- "[LOGOFF]: Unable to logoff-user. User doesn't have an agent record so I can't find the simulator to notify");
- }
- }
- else
- {
- m_log.Info("[LOGOFF]: User doesn't exist in the database");
- }
- }
- else
- {
- m_log.Error(
- "[LOGOFF]: Invalid amount of parameters. logoff-user takes at least three. Firstname, Lastname, and message");
- }
-
- break;
- }
- }
- }
- #endregion
-}
diff --git a/OpenSim/Grid/UserServer/UserServerCommsManager.cs b/OpenSim/Grid/UserServer/UserServerCommsManager.cs
deleted file mode 100644
index 7dc514c..0000000
--- a/OpenSim/Grid/UserServer/UserServerCommsManager.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using OpenSim.Framework.Communications;
-
-namespace OpenSim.Grid.UserServer
-{
- public class UserServerCommsManager : CommunicationsManager
- {
- public UserServerCommsManager(IInterServiceInventoryServices interServiceInventoryService)
- : base(null, null)
- {
- }
- }
-}
diff --git a/OpenSim/Grid/UserServer/UserServerEventDispatchModule.cs b/OpenSim/Grid/UserServer/UserServerEventDispatchModule.cs
deleted file mode 100644
index 0ad2f02..0000000
--- a/OpenSim/Grid/UserServer/UserServerEventDispatchModule.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using log4net;
-using log4net.Config;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Framework.Statistics;
-using OpenSim.Grid.Communications.OGS1;
-using OpenSim.Grid.Framework;
-using OpenSim.Grid.UserServer.Modules;
-
-namespace OpenSim.Grid.UserServer
-{
- //Do we actually need these event dispatchers?
- //shouldn't the other modules just directly register event handlers to each other?
- public class UserServerEventDispatchModule
- {
- protected UserManager m_userManager;
- protected MessageServersConnector m_messagesService;
- protected UserLoginService m_loginService;
-
- public UserServerEventDispatchModule(UserManager userManager, MessageServersConnector messagesService, UserLoginService loginService)
- {
- m_userManager = userManager;
- m_messagesService = messagesService;
- m_loginService = loginService;
- }
-
- public void Initialise(IGridServiceCore core)
- {
- }
-
- public void PostInitialise()
- {
- m_loginService.OnUserLoggedInAtLocation += NotifyMessageServersUserLoggedInToLocation;
- m_userManager.OnLogOffUser += NotifyMessageServersUserLoggOff;
-
- m_messagesService.OnAgentLocation += HandleAgentLocation;
- m_messagesService.OnAgentLeaving += HandleAgentLeaving;
- m_messagesService.OnRegionStartup += HandleRegionStartup;
- m_messagesService.OnRegionShutdown += HandleRegionShutdown;
- }
-
- public void RegisterHandlers(BaseHttpServer httpServer)
- {
-
- }
-
- public void Close()
- {
- m_loginService.OnUserLoggedInAtLocation -= NotifyMessageServersUserLoggedInToLocation;
- }
-
- #region Event Handlers
- public void NotifyMessageServersUserLoggOff(UUID agentID)
- {
- m_messagesService.TellMessageServersAboutUserLogoff(agentID);
- }
-
- public void NotifyMessageServersUserLoggedInToLocation(UUID agentID, UUID sessionID, UUID RegionID,
- ulong regionhandle, float positionX, float positionY,
- float positionZ, string firstname, string lastname)
- {
- m_messagesService.TellMessageServersAboutUser(agentID, sessionID, RegionID, regionhandle, positionX,
- positionY, positionZ, firstname, lastname);
- }
-
- public void HandleAgentLocation(UUID agentID, UUID regionID, ulong regionHandle)
- {
- m_userManager.HandleAgentLocation(agentID, regionID, regionHandle);
- }
-
- public void HandleAgentLeaving(UUID agentID, UUID regionID, ulong regionHandle)
- {
- m_userManager.HandleAgentLeaving(agentID, regionID, regionHandle);
- }
-
- public void HandleRegionStartup(UUID regionID)
- {
- // This might seem strange, that we send this back to the
- // server it came from. But there is method to the madness.
- // There can be multiple user servers on the same database,
- // and each can have multiple messaging servers. So, we send
- // it to all known user servers, who send it to all known
- // message servers. That way, we should be able to finally
- // update presence to all regions and thereby all friends
- //
- m_userManager.HandleRegionStartup(regionID);
- m_messagesService.TellMessageServersAboutRegionShutdown(regionID);
- }
-
- public void HandleRegionShutdown(UUID regionID)
- {
- // This might seem strange, that we send this back to the
- // server it came from. But there is method to the madness.
- // There can be multiple user servers on the same database,
- // and each can have multiple messaging servers. So, we send
- // it to all known user servers, who send it to all known
- // message servers. That way, we should be able to finally
- // update presence to all regions and thereby all friends
- //
- m_userManager.HandleRegionShutdown(regionID);
- m_messagesService.TellMessageServersAboutRegionShutdown(regionID);
- }
- #endregion
- }
-}
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs
index 47d1b16..32df16d 100644
--- a/OpenSim/Services/LLLoginService/LLLoginService.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginService.cs
@@ -10,6 +10,7 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Capabilities;
+using OpenSim.Framework.Console;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
@@ -19,6 +20,7 @@ namespace OpenSim.Services.LLLoginService
public class LLLoginService : ILoginService
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static bool Initialized = false;
private IUserAccountService m_UserAccountService;
private IAuthenticationService m_AuthenticationService;
@@ -33,6 +35,7 @@ namespace OpenSim.Services.LLLoginService
private string m_DefaultRegionName;
private string m_WelcomeMessage;
private bool m_RequireInventory;
+ private int m_MinLoginLevel;
public LLLoginService(IConfigSource config, ISimulationService simService, ILibraryService libraryService)
{
@@ -84,6 +87,12 @@ namespace OpenSim.Services.LLLoginService
m_LibraryService = ServerUtils.LoadPlugin(libService, args);
}
+ if (!Initialized)
+ {
+ Initialized = true;
+ RegisterCommands();
+ }
+
m_log.DebugFormat("[LLOGIN SERVICE]: Starting...");
}
@@ -107,6 +116,12 @@ namespace OpenSim.Services.LLLoginService
return LLFailedLoginResponse.UserProblem;
}
+ if (account.UserLevel < m_MinLoginLevel)
+ {
+ m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: login is blocked for user level {0}", account.UserLevel);
+ return LLFailedLoginResponse.LoginBlockedProblem;
+ }
+
// Authenticate this user
if (!passwd.StartsWith("$1$"))
passwd = "$1$" + Util.Md5Hash(passwd);
@@ -379,5 +394,50 @@ namespace OpenSim.Services.LLLoginService
return null;
}
+
+ #region Console Commands
+ private void RegisterCommands()
+ {
+ //MainConsole.Instance.Commands.AddCommand
+ MainConsole.Instance.Commands.AddCommand("loginservice", false, "login level",
+ "login level ",
+ "Set the minimum user level to log in", HandleLoginCommand);
+
+ MainConsole.Instance.Commands.AddCommand("loginservice", false, "login reset",
+ "login reset",
+ "Reset the login level to allow all users",
+ HandleLoginCommand);
+
+ MainConsole.Instance.Commands.AddCommand("loginservice", false, "login text",
+ "login text ",
+ "Set the text users will see on login", HandleLoginCommand);
+
+ }
+
+ private void HandleLoginCommand(string module, string[] cmd)
+ {
+ string subcommand = cmd[1];
+
+ switch (subcommand)
+ {
+ case "level":
+ // Set the minimum level to allow login
+ // Useful to allow grid update without worrying about users.
+ // or fixing critical issues
+ //
+ if (cmd.Length > 2)
+ Int32.TryParse(cmd[2], out m_MinLoginLevel);
+ break;
+ case "reset":
+ m_MinLoginLevel = 0;
+ break;
+ case "text":
+ if (cmd.Length > 2)
+ m_WelcomeMessage = cmd[2];
+ break;
+ }
+ }
}
+
+ #endregion
}
--
cgit v1.1