aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/NeighbourServiceOutConnector.cs (renamed from OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs)79
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs157
-rw-r--r--bin/config-include/Grid.ini2
-rw-r--r--bin/config-include/GridHypergrid.ini2
-rw-r--r--bin/config-include/HyperSimianGrid.ini2
-rw-r--r--bin/config-include/SimianGrid.ini2
-rw-r--r--bin/config-include/Standalone.ini2
-rw-r--r--bin/config-include/StandaloneHypergrid.ini2
8 files changed, 40 insertions, 208 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/NeighbourServiceOutConnector.cs
index e8d01b0..60addec 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/NeighbourServiceOutConnector.cs
@@ -25,44 +25,32 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using System;
29using System.Collections.Generic;
30using System.Reflection;
31using log4net; 28using log4net;
32using Mono.Addins; 29using Mono.Addins;
30using System;
31using System.Reflection;
32using System.Collections.Generic;
33using Nini.Config; 33using Nini.Config;
34using OpenMetaverse;
35using OpenSim.Framework; 34using OpenSim.Framework;
36using OpenSim.Server.Base; 35using OpenSim.Services.Connectors;
37using OpenSim.Region.Framework.Interfaces; 36using OpenSim.Region.Framework.Interfaces;
38using OpenSim.Region.Framework.Scenes; 37using OpenSim.Region.Framework.Scenes;
39using OpenSim.Services.Interfaces; 38using OpenSim.Services.Interfaces;
40 39
40
41namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour 41namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
42{ 42{
43 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LocalNeighbourServicesConnector")] 43 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "NeighbourServicesOutConnector")]
44 public class LocalNeighbourServicesConnector : 44 public class NeighbourServicesOutConnector :
45 ISharedRegionModule, INeighbourService 45 NeighbourServicesConnector, ISharedRegionModule, INeighbourService
46 { 46 {
47 private static readonly ILog m_log = 47 private static readonly ILog m_log =
48 LogManager.GetLogger( 48 LogManager.GetLogger(
49 MethodBase.GetCurrentMethod().DeclaringType); 49 MethodBase.GetCurrentMethod().DeclaringType);
50 50
51 private List<Scene> m_Scenes = new List<Scene>(); 51 private List<Scene> m_Scenes = new List<Scene>();
52
53 private bool m_Enabled = false; 52 private bool m_Enabled = false;
54 53
55 public LocalNeighbourServicesConnector()
56 {
57 }
58
59 public LocalNeighbourServicesConnector(List<Scene> scenes)
60 {
61 m_Scenes = scenes;
62 }
63
64 #region ISharedRegionModule
65
66 public Type ReplaceableInterface 54 public Type ReplaceableInterface
67 { 55 {
68 get { return null; } 56 get { return null; }
@@ -70,7 +58,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
70 58
71 public string Name 59 public string Name
72 { 60 {
73 get { return "LocalNeighbourServicesConnector"; } 61 get { return "NeighbourServicesOutConnector"; }
74 } 62 }
75 63
76 public void Initialise(IConfigSource source) 64 public void Initialise(IConfigSource source)
@@ -78,39 +66,32 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
78 IConfig moduleConfig = source.Configs["Modules"]; 66 IConfig moduleConfig = source.Configs["Modules"];
79 if (moduleConfig != null) 67 if (moduleConfig != null)
80 { 68 {
81 string name = moduleConfig.GetString("NeighbourServices", this.Name); 69 string name = moduleConfig.GetString("NeighbourServices");
82 if (name == Name) 70 if (name == Name)
83 { 71 {
84 // m_Enabled rules whether this module registers as INeighbourService or not
85 m_Enabled = true; 72 m_Enabled = true;
86 m_log.Info("[NEIGHBOUR CONNECTOR]: Local neighbour connector enabled"); 73 m_log.Info("[NEIGHBOUR CONNECTOR]: Neighbour out connector enabled");
87 } 74 }
88 } 75 }
89 } 76 }
90 77
78 public void PostInitialise()
79 {
80 }
81
91 public void Close() 82 public void Close()
92 { 83 {
93 } 84 }
94 85
95 public void AddRegion(Scene scene) 86 public void AddRegion(Scene scene)
96 { 87 {
97 m_Scenes.Add(scene);
98
99 if (!m_Enabled) 88 if (!m_Enabled)
100 return; 89 return;
101 90
91 m_Scenes.Add(scene);
102 scene.RegisterModuleInterface<INeighbourService>(this); 92 scene.RegisterModuleInterface<INeighbourService>(this);
103 } 93 }
104 94
105 public void RegionLoaded(Scene scene)
106 {
107 m_log.Info("[NEIGHBOUR CONNECTOR]: Local neighbour connector enabled for region " + scene.RegionInfo.RegionName);
108 }
109
110 public void PostInitialise()
111 {
112 }
113
114 public void RemoveRegion(Scene scene) 95 public void RemoveRegion(Scene scene)
115 { 96 {
116 // Always remove 97 // Always remove
@@ -118,28 +99,36 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
118 m_Scenes.Remove(scene); 99 m_Scenes.Remove(scene);
119 } 100 }
120 101
121 #endregion ISharedRegionModule 102 public void RegionLoaded(Scene scene)
103 {
104 if (!m_Enabled)
105 return;
106
107 m_GridService = scene.GridService;
108 m_log.InfoFormat("[NEIGHBOUR CONNECTOR]: Enabled out neighbours for region {0}", scene.RegionInfo.RegionName);
109
110 }
122 111
123 #region INeighbourService 112 #region INeighbourService
124 113
125 public OpenSim.Services.Interfaces.GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion) 114 public override GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
126 { 115 {
127 uint x, y; 116 if (!m_Enabled)
128 Util.RegionHandleToRegionLoc(regionHandle, out x, out y); 117 return null;
129 118
130 foreach (Scene s in m_Scenes) 119 foreach (Scene s in m_Scenes)
131 { 120 {
132 if (s.RegionInfo.RegionHandle == regionHandle) 121 if (s.RegionInfo.RegionHandle == regionHandle)
133 { 122 {
134 m_log.DebugFormat("[LOCAL NEIGHBOUR SERVICE CONNECTOR]: HelloNeighbour from region {0} to neighbour {1} at {2}-{3}", 123// uint x, y;
135 thisRegion.RegionName, s.Name, x, y ); 124// Util.RegionHandleToRegionLoc(regionHandle, out x, out y);
136 125// m_log.DebugFormat("[NEIGHBOUR SERVICE OUT CONNECTOR]: HelloNeighbour from region {0} to neighbour {1} at {2}-{3}",
137 //m_log.Debug("[NEIGHBOUR CONNECTOR]: Found region to SendHelloNeighbour"); 126// thisRegion.RegionName, s.Name, x, y );
138 return s.IncomingHelloNeighbour(thisRegion); 127 return s.IncomingHelloNeighbour(thisRegion);
139 } 128 }
140 } 129 }
141 //m_log.DebugFormat("[NEIGHBOUR CONNECTOR]: region handle {0} not found", regionHandle); 130
142 return null; 131 return base.HelloNeighbour(regionHandle, thisRegion);
143 } 132 }
144 133
145 #endregion INeighbourService 134 #endregion INeighbourService
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs
deleted file mode 100644
index fcb5521..0000000
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs
+++ /dev/null
@@ -1,157 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using log4net;
29using Mono.Addins;
30using System;
31using System.Collections.Generic;
32using System.Reflection;
33using Nini.Config;
34using OpenSim.Framework;
35using OpenSim.Services.Connectors;
36using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes;
38using OpenSim.Services.Interfaces;
39using OpenSim.Server.Base;
40
41namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
42{
43 [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RemoteNeighbourServicesConnector")]
44 public class RemoteNeighbourServicesConnector :
45 NeighbourServicesConnector, ISharedRegionModule, INeighbourService
46 {
47 private static readonly ILog m_log =
48 LogManager.GetLogger(
49 MethodBase.GetCurrentMethod().DeclaringType);
50
51 private bool m_Enabled = false;
52 private LocalNeighbourServicesConnector m_LocalService;
53 //private string serviceDll;
54 //private List<Scene> m_Scenes = new List<Scene>();
55
56 public Type ReplaceableInterface
57 {
58 get { return null; }
59 }
60
61 public string Name
62 {
63 get { return "RemoteNeighbourServicesConnector"; }
64 }
65
66 public void Initialise(IConfigSource source)
67 {
68 IConfig moduleConfig = source.Configs["Modules"];
69 if (moduleConfig != null)
70 {
71 string name = moduleConfig.GetString("NeighbourServices");
72 if (name == Name)
73 {
74 m_LocalService = new LocalNeighbourServicesConnector();
75
76 //IConfig neighbourConfig = source.Configs["NeighbourService"];
77 //if (neighbourConfig == null)
78 //{
79 // m_log.Error("[NEIGHBOUR CONNECTOR]: NeighbourService missing from OpenSim.ini");
80 // return;
81 //}
82 //serviceDll = neighbourConfig.GetString("LocalServiceModule", String.Empty);
83 //if (serviceDll == String.Empty)
84 //{
85 // m_log.Error("[NEIGHBOUR CONNECTOR]: No LocalServiceModule named in section NeighbourService");
86 // return;
87 //}
88
89 m_Enabled = true;
90
91 m_log.Info("[NEIGHBOUR CONNECTOR]: Remote Neighbour connector enabled");
92 }
93 }
94 }
95
96 public void PostInitialise()
97 {
98 //if (m_Enabled)
99 //{
100 // Object[] args = new Object[] { m_Scenes };
101 // m_LocalService =
102 // ServerUtils.LoadPlugin<INeighbourService>(serviceDll,
103 // args);
104
105 // if (m_LocalService == null)
106 // {
107 // m_log.Error("[NEIGHBOUR CONNECTOR]: Can't load neighbour service");
108 // Unregister();
109 // return;
110 // }
111 //}
112 }
113
114 public void Close()
115 {
116 }
117
118 public void AddRegion(Scene scene)
119 {
120 if (!m_Enabled)
121 return;
122
123 m_LocalService.AddRegion(scene);
124 scene.RegisterModuleInterface<INeighbourService>(this);
125 }
126
127 public void RemoveRegion(Scene scene)
128 {
129 if (m_Enabled)
130 m_LocalService.RemoveRegion(scene);
131 }
132
133 public void RegionLoaded(Scene scene)
134 {
135 if (!m_Enabled)
136 return;
137
138 m_GridService = scene.GridService;
139
140 m_log.InfoFormat("[NEIGHBOUR CONNECTOR]: Enabled remote neighbours for region {0}", scene.RegionInfo.RegionName);
141
142 }
143
144 #region INeighbourService
145
146 public override GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
147 {
148 GridRegion region = m_LocalService.HelloNeighbour(regionHandle, thisRegion);
149 if (region != null)
150 return region;
151
152 return base.HelloNeighbour(regionHandle, thisRegion);
153 }
154
155 #endregion INeighbourService
156 }
157}
diff --git a/bin/config-include/Grid.ini b/bin/config-include/Grid.ini
index fc98879..988e681 100644
--- a/bin/config-include/Grid.ini
+++ b/bin/config-include/Grid.ini
@@ -12,7 +12,7 @@
12 InventoryServices = "RemoteXInventoryServicesConnector" 12 InventoryServices = "RemoteXInventoryServicesConnector"
13 GridServices = "RemoteGridServicesConnector" 13 GridServices = "RemoteGridServicesConnector"
14 AvatarServices = "RemoteAvatarServicesConnector" 14 AvatarServices = "RemoteAvatarServicesConnector"
15 NeighbourServices = "RemoteNeighbourServicesConnector" 15 NeighbourServices = "NeighbourServicesOutConnector"
16 AuthenticationServices = "RemoteAuthenticationServicesConnector" 16 AuthenticationServices = "RemoteAuthenticationServicesConnector"
17 AuthorizationServices = "LocalAuthorizationServicesConnector" 17 AuthorizationServices = "LocalAuthorizationServicesConnector"
18 PresenceServices = "RemotePresenceServicesConnector" 18 PresenceServices = "RemotePresenceServicesConnector"
diff --git a/bin/config-include/GridHypergrid.ini b/bin/config-include/GridHypergrid.ini
index f5f4c87..68f2eb1 100644
--- a/bin/config-include/GridHypergrid.ini
+++ b/bin/config-include/GridHypergrid.ini
@@ -15,7 +15,7 @@
15 InventoryServices = "HGInventoryBroker" 15 InventoryServices = "HGInventoryBroker"
16 GridServices = "RemoteGridServicesConnector" 16 GridServices = "RemoteGridServicesConnector"
17 AvatarServices = "RemoteAvatarServicesConnector" 17 AvatarServices = "RemoteAvatarServicesConnector"
18 NeighbourServices = "RemoteNeighbourServicesConnector" 18 NeighbourServices = "NeighbourServicesOutConnector"
19 AuthenticationServices = "RemoteAuthenticationServicesConnector" 19 AuthenticationServices = "RemoteAuthenticationServicesConnector"
20 AuthorizationServices = "LocalAuthorizationServicesConnector" 20 AuthorizationServices = "LocalAuthorizationServicesConnector"
21 PresenceServices = "RemotePresenceServicesConnector" 21 PresenceServices = "RemotePresenceServicesConnector"
diff --git a/bin/config-include/HyperSimianGrid.ini b/bin/config-include/HyperSimianGrid.ini
index efad577..018c65e 100644
--- a/bin/config-include/HyperSimianGrid.ini
+++ b/bin/config-include/HyperSimianGrid.ini
@@ -29,7 +29,7 @@
29 InventoryServices = "HGInventoryBroker" 29 InventoryServices = "HGInventoryBroker"
30 AvatarServices = "SimianAvatarServiceConnector" 30 AvatarServices = "SimianAvatarServiceConnector"
31 31
32 NeighbourServices = "RemoteNeighbourServicesConnector" 32 NeighbourServices = "NeighbourServicesOutConnector"
33 SimulationServices = "RemoteSimulationConnectorModule" 33 SimulationServices = "RemoteSimulationConnectorModule"
34 EntityTransferModule = "HGEntityTransferModule" 34 EntityTransferModule = "HGEntityTransferModule"
35 InventoryAccessModule = "HGInventoryAccessModule" 35 InventoryAccessModule = "HGInventoryAccessModule"
diff --git a/bin/config-include/SimianGrid.ini b/bin/config-include/SimianGrid.ini
index 5749656..b3db08a 100644
--- a/bin/config-include/SimianGrid.ini
+++ b/bin/config-include/SimianGrid.ini
@@ -29,7 +29,7 @@
29 InventoryServices = "SimianInventoryServiceConnector" 29 InventoryServices = "SimianInventoryServiceConnector"
30 AvatarServices = "SimianAvatarServiceConnector" 30 AvatarServices = "SimianAvatarServiceConnector"
31 31
32 NeighbourServices = "RemoteNeighbourServicesConnector" 32 NeighbourServices = "NeighbourServicesOutConnector"
33 SimulationServices = "RemoteSimulationConnectorModule" 33 SimulationServices = "RemoteSimulationConnectorModule"
34 EntityTransferModule = "BasicEntityTransferModule" 34 EntityTransferModule = "BasicEntityTransferModule"
35 InventoryAccessModule = "BasicInventoryAccessModule" 35 InventoryAccessModule = "BasicInventoryAccessModule"
diff --git a/bin/config-include/Standalone.ini b/bin/config-include/Standalone.ini
index 78ada2b..db7cb36 100644
--- a/bin/config-include/Standalone.ini
+++ b/bin/config-include/Standalone.ini
@@ -7,7 +7,7 @@
7[Modules] 7[Modules]
8 AssetServices = "LocalAssetServicesConnector" 8 AssetServices = "LocalAssetServicesConnector"
9 InventoryServices = "LocalInventoryServicesConnector" 9 InventoryServices = "LocalInventoryServicesConnector"
10 NeighbourServices = "LocalNeighbourServicesConnector" 10 NeighbourServices = "NeighbourServicesOutConnector"
11 AuthenticationServices = "LocalAuthenticationServicesConnector" 11 AuthenticationServices = "LocalAuthenticationServicesConnector"
12 AuthorizationServices = "LocalAuthorizationServicesConnector" 12 AuthorizationServices = "LocalAuthorizationServicesConnector"
13 GridServices = "LocalGridServicesConnector" 13 GridServices = "LocalGridServicesConnector"
diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini
index eaacfff..84867a9 100644
--- a/bin/config-include/StandaloneHypergrid.ini
+++ b/bin/config-include/StandaloneHypergrid.ini
@@ -10,7 +10,7 @@
10[Modules] 10[Modules]
11 AssetServices = "HGAssetBroker" 11 AssetServices = "HGAssetBroker"
12 InventoryServices = "HGInventoryBroker" 12 InventoryServices = "HGInventoryBroker"
13 NeighbourServices = "LocalNeighbourServicesConnector" 13 NeighbourServices = "NeighbourServicesOutConnector"
14 AuthenticationServices = "LocalAuthenticationServicesConnector" 14 AuthenticationServices = "LocalAuthenticationServicesConnector"
15 AuthorizationServices = "LocalAuthorizationServicesConnector" 15 AuthorizationServices = "LocalAuthorizationServicesConnector"
16 GridServices = "LocalGridServicesConnector" 16 GridServices = "LocalGridServicesConnector"