diff --git a/.nant/local.include b/.nant/local.include
index 8c72c80af3..f78c6a6987 100644
--- a/.nant/local.include
+++ b/.nant/local.include
@@ -53,6 +53,11 @@
+
+
+
+
+
@@ -223,6 +228,11 @@
+
+
+
+
+
diff --git a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs
index 6a66116eeb..0f827b0c6b 100644
--- a/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs
+++ b/OpenSim/ApplicationPlugins/CreateCommsManager/CreateCommsManagerPlugin.cs
@@ -69,7 +69,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
protected CommunicationsManager m_commsManager;
protected GridInfoService m_gridInfoService;
- protected IHyperlink HGServices = null;
protected IRegionCreator m_regionCreator;
@@ -144,7 +143,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
// We are in grid mode
InitialiseHGGridServices(libraryRootFolder);
}
- HGCommands.HGServices = HGServices;
}
protected void InitialiseStandardServices(LibraryRootFolder libraryRootFolder)
@@ -187,19 +185,12 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
}
protected virtual void InitialiseHGStandaloneServices(LibraryRootFolder libraryRootFolder)
- {
- HGGridServicesStandalone gridService
- = new HGGridServicesStandalone(
- m_openSim.NetServersInfo, m_httpServer, m_openSim.SceneManager);
-
+ {
m_commsManager
= new HGCommunicationsStandalone(
m_openSim.ConfigurationSettings, m_openSim.NetServersInfo, m_httpServer,
- gridService,
- libraryRootFolder, false);
+ libraryRootFolder, false);
- HGServices = gridService;
-
CreateGridInfoService();
}
@@ -210,8 +201,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
m_openSim.NetServersInfo,
m_openSim.SceneManager, libraryRootFolder);
- HGServices = ((HGCommunicationsGridMode) m_commsManager).HGServices;
-
m_httpServer.AddStreamHandler(new OpenSim.SimStatusHandler());
m_httpServer.AddStreamHandler(new OpenSim.XSimStatusHandler(m_openSim));
if (m_openSim.userStatsURI != String.Empty)
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index 7e0a4ba04c..ef45f73db3 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -69,7 +69,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private string m_name = "RemoteAdminPlugin";
private string m_version = "0.0";
- //AnakinLohner 0.6.5-post-fixes
//guard for XmlRpc-related methods
private void FailIfRemoteAdminDisabled(string requestName)
{
@@ -142,7 +141,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
availableMethods["admin_acl_remove"] = XmlRpcAccessListRemove;
availableMethods["admin_acl_list"] = XmlRpcAccessListList;
- // Either enable full remote functionality or just selected features
+ // Either enable full remote functionality or just selected features
string enabledMethods = m_config.GetString("enabled_methods", "all");
// To get this, you must explicitly specify "all" or
@@ -469,7 +468,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: CreateRegion: new request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("CreateRegion");
XmlRpcResponse response = new XmlRpcResponse();
@@ -477,7 +475,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
lock (rslock)
{
-
int m_regionLimit = m_config.GetInt("region_limit", 0);
bool m_enableVoiceForNewRegions = m_config.GetBoolean("create_region_enable_voice", false);
bool m_publicAccess = m_config.GetBoolean("create_region_public", true);
@@ -502,7 +499,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
// check whether we still have space left (iff we are using limits)
if (m_regionLimit != 0 && m_app.SceneManager.Scenes.Count >= m_regionLimit)
- throw new Exception(String.Format("cannot instantiate new region, server capacity {0} already reached; delete regions first",
+ throw new Exception(String.Format("cannot instantiate new region, server capacity {0} already reached; delete regions first",
m_regionLimit));
// extract or generate region ID now
Scene scene = null;
@@ -561,7 +558,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
scene.RegionInfo.RegionName, scene.RegionInfo.RegionID,
scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY));
-
region.ExternalHostName = (string) requestData["external_address"];
string masterFirst = (string) requestData["region_master_first"];
@@ -580,10 +576,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (masterFirst != String.Empty && masterLast != String.Empty) // User requests a master avatar
{
// no client supplied UUID: look it up...
- CachedUserInfo userInfo
+ CachedUserInfo userInfo
= m_app.CommunicationsManager.UserProfileCacheService.GetUserDetails(
masterFirst, masterLast);
-
+
if (null == userInfo)
{
m_log.InfoFormat("master avatar does not exist, creating it");
@@ -636,7 +632,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
m_log.DebugFormat("[RADMIN] CreateRegion: persisting region {0} to {1}",
region.RegionID, regionXmlPath);
region.SaveRegionToFile("dynamic region", regionXmlPath);
- }
+ }
else
{
region.Persistent = false;
@@ -664,7 +660,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
parcel.landData.Flags |= (uint) ParcelFlags.AllowVoiceChat;
parcel.landData.Flags |= (uint) ParcelFlags.UseEstateVoiceChan;
- ((Scene)newscene).LandChannel.UpdateLandObject(parcel.landData.LocalID, parcel.landData);
+ ((Scene)newscene).LandChannel.UpdateLandObject(parcel.landData.LocalID, parcel.landData);
}
}
@@ -684,7 +680,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
response.Value = responseData;
}
-
+
m_log.Info("[RADMIN]: CreateRegion: request complete");
return response;
}
@@ -756,7 +752,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
return response;
}
}
-
+
///
/// Close a region.
///
@@ -798,7 +794,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
Hashtable requestData = (Hashtable) request.Params[0];
checkStringParameters(request, new string[] {"password"});
-
+
if (requestData.ContainsKey("region_id") &&
!String.IsNullOrEmpty((string) requestData["region_id"]))
{
@@ -899,8 +895,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (!m_app.SceneManager.TryGetScene(regionName, out scene))
throw new Exception(String.Format("region \"{0}\" does not exist", regionName));
- // Modify access
- scene.RegionInfo.EstateSettings.PublicAccess =
+ // Modify access
+ scene.RegionInfo.EstateSettings.PublicAccess =
getBoolean(requestData,"public", scene.RegionInfo.EstateSettings.PublicAccess);
if (scene.RegionInfo.Persistent)
scene.RegionInfo.EstateSettings.Save();
@@ -988,8 +984,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public XmlRpcResponse XmlRpcCreateUserMethod(XmlRpcRequest request, IPEndPoint remoteClient)
{
m_log.Info("[RADMIN]: CreateUser: new request");
-
- //AnakinLohner 0.6.5-post-fixes
+
FailIfRemoteAdminDisabled("CreateUser");
XmlRpcResponse response = new XmlRpcResponse();
@@ -1024,13 +1019,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (requestData.Contains("user_email"))
email = (string)requestData["user_email"];
- CachedUserInfo userInfo =
+ CachedUserInfo userInfo =
m_app.CommunicationsManager.UserProfileCacheService.GetUserDetails(firstname, lastname);
-
+
if (null != userInfo)
throw new Exception(String.Format("Avatar {0} {1} already exists", firstname, lastname));
- UUID userID =
+ UUID userID =
m_app.CommunicationsManager.UserAdminService.AddUser(firstname, lastname,
passwd, email, regX, regY);
@@ -1101,7 +1096,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: UserExists: new request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("UserExists");
XmlRpcResponse response = new XmlRpcResponse();
@@ -1117,8 +1111,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
string firstname = (string) requestData["user_firstname"];
string lastname = (string) requestData["user_lastname"];
- CachedUserInfo userInfo
- = m_app.CommunicationsManager.UserProfileCacheService.GetUserDetails(firstname, lastname);
+ CachedUserInfo userInfo
+ = m_app.CommunicationsManager.UserProfileCacheService.GetUserDetails(firstname, lastname);
responseData["user_firstname"] = firstname;
responseData["user_lastname"] = lastname;
@@ -1131,10 +1125,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController
else
{
responseData["success"] = true;
- responseData["lastlogin"] = userInfo.UserProfile.LastLogin;
+ responseData["lastlogin"] = userInfo.UserProfile.LastLogin;
}
-
response.Value = responseData;
}
catch (Exception e)
@@ -1252,7 +1245,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (requestData.ContainsKey("about_virtual_world"))
aboutAvatar = (string)requestData["about_virtual_world"];
- UserProfileData userProfile
+ UserProfileData userProfile
= m_app.CommunicationsManager.UserService.GetUserProfile(firstname, lastname);
if (null == userProfile)
@@ -1308,20 +1301,18 @@ namespace OpenSim.ApplicationPlugins.RemoteController
m_log.Info("[RADMIN]: UpdateUserAccount: request complete");
return response;
-
}
///
/// This method is called by the user-create and user-modify methods to establish
/// or change, the user's appearance. Default avatar names can be specified via
- /// the config file, but must correspond to avatars in the default appearance
+ /// the config file, but must correspond to avatars in the default appearance
/// file, or pre-existing in the user database.
/// This should probably get moved into somewhere more core eventually.
///
private void updateUserAppearance(Hashtable responseData, Hashtable requestData, UUID userid)
{
-
m_log.DebugFormat("[RADMIN] updateUserAppearance");
string dmale = m_config.GetString("default_male", "Default Male");
@@ -1347,7 +1338,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
break;
}
}
-
+
// Has an explicit model been specified?
if (requestData.Contains("model"))
@@ -1384,7 +1375,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
return;
}
- // Set current user's appearance. This bit is easy. The appearance structure is populated with
+ // Set current user's appearance. This bit is easy. The appearance structure is populated with
// actual asset ids, however to complete the magic we need to populate the inventory with the
// assets in question.
@@ -1393,7 +1384,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
m_log.DebugFormat("[RADMIN] Finished setting appearance for avatar {0}, using model {1}",
userid, model);
}
-
+
///
/// This method is called by updateAvatarAppearance once any specified model has been
/// ratified, or an appropriate default value has been adopted. The intended prototype
@@ -1402,19 +1393,18 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private void establishAppearance(UUID dest, UUID srca)
{
-
m_log.DebugFormat("[RADMIN] Initializing inventory for {0} from {1}", dest, srca);
AvatarAppearance ava = m_app.CommunicationsManager.AvatarService.GetUserAppearance(srca);
// If the model has no associated appearance we're done.
- // if (ava == null)
+ // if (ava == null)
// {
// return new AvatarAppearance();
// }
- if (ava == null)
+ if (ava == null)
return;
UICallback sic = new UICallback();
@@ -1423,7 +1413,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
try
{
-
Dictionary imap = new Dictionary();
iserv.GetUserInventory(dest, dic.callback);
@@ -1434,7 +1423,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (sic.OK && dic.OK)
{
-
InventoryFolderImpl efolder;
InventoryFolderImpl srcf = sic.root.FindFolderForType(5);
InventoryFolderImpl dstf = dic.root.FindFolderForType(5);
@@ -1460,7 +1448,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (item.Folder == folder.ID)
{
InventoryItemBase dsti = new InventoryItemBase();
- dsti.ID = UUID.Random();
+ dsti.ID = UUID.Random();
dsti.Name = item.Name;
dsti.Description = item.Description;
dsti.InvType = item.InvType;
@@ -1494,7 +1482,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
ava.SetWearable(i, dw);
}
}
-
}
else
{
@@ -1502,7 +1489,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
m_app.CommunicationsManager.AvatarService.UpdateUserAppearance(dest, ava);
-
}
catch (Exception e)
{
@@ -1510,16 +1496,15 @@ namespace OpenSim.ApplicationPlugins.RemoteController
dest, e.Message);
return;
}
-
- return;
+ return;
}
///
/// This method is called if a given model avatar name can not be found. If the external
- /// file has already been loaded once, then control returns immediately. If not, then it
+ /// file has already been loaded once, then control returns immediately. If not, then it
/// looks for a default appearance file. This file contains XML definitions of zero or more named
- /// avatars, each avatar can specify zero or more "outfits". Each outfit is a collection
+ /// avatars, each avatar can specify zero or more "outfits". Each outfit is a collection
/// of items that together, define a particular ensemble for the avatar. Each avatar should
/// indicate which outfit is the default, and this outfit will be automatically worn. The
/// other outfits are provided to allow "real" avatars a way to easily change their outfits.
@@ -1527,7 +1512,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
private bool createDefaultAvatars()
{
-
// Only load once
if (daload)
@@ -1543,10 +1527,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
try
{
-
string dafn = null;
-
- //AnakinLohner 0.6.5-post-fixes
+
//m_config may be null if RemoteAdmin configuration secition is missing or disabled in OpenSim.ini
if (m_config != null)
{
@@ -1555,7 +1537,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
if (File.Exists(dafn))
{
-
XmlDocument doc = new XmlDocument();
string name = "*unknown*";
string email = "anon@anon";
@@ -1630,12 +1611,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
m_log.DebugFormat("[RADMIN] User {0}[{1}] created or retrieved", name, ID);
- include = true;
+ include = true;
}
catch (Exception e)
{
m_log.DebugFormat("[RADMIN] Error creating user {0} : {1}", name, e.Message);
- include = false;
+ include = false;
}
// OK, User has been created OK, now we can install the inventory.
@@ -1654,7 +1635,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
mava = new AvatarAppearance();
}
-
+
{
AvatarWearable[] wearables = mava.Wearables;
for (int i=0; i
/// Load an OAR file into a region..
///
@@ -1859,9 +1837,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: Received Load OAR Administrator Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Load OAR");
-
+
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
@@ -1962,9 +1939,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: Received Save OAR Administrator Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Save OAR");
-
+
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
@@ -2003,7 +1979,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
IRegionArchiverModule archiver = scene.RequestModuleInterface();
-
if (archiver != null)
{
scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted;
@@ -2014,11 +1989,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController
else
throw new Exception("Archiver module not present for scene");
-
responseData["saved"] = true;
response.Value = responseData;
-
}
catch (Exception e)
{
@@ -2045,7 +2018,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: Received Load XML Administrator Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Load XML");
XmlRpcResponse response = new XmlRpcResponse();
@@ -2129,12 +2101,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
}
-
public XmlRpcResponse XmlRpcSaveXMLMethod(XmlRpcRequest request, IPEndPoint remoteClient)
{
m_log.Info("[RADMIN]: Received Save XML Administrator Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Save XML");
XmlRpcResponse response = new XmlRpcResponse();
@@ -2220,7 +2190,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: Received Query XML Administrator Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Query XML");
XmlRpcResponse response = new XmlRpcResponse();
@@ -2255,9 +2224,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
else throw new Exception("neither region_name nor region_uuid given");
Scene s = m_app.SceneManager.CurrentScene;
-
int health = s.GetHealth();
-
responseData["health"] = health;
response.Value = responseData;
@@ -2280,7 +2247,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
m_log.Info("[RADMIN]: Received Command XML Administrator Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Command XML");
XmlRpcResponse response = new XmlRpcResponse();
@@ -2320,12 +2286,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public XmlRpcResponse XmlRpcAccessListClear(XmlRpcRequest request, IPEndPoint remoteClient)
{
-
m_log.Info("[RADMIN]: Received Access List Clear Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Access List Clear");
-
+
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
@@ -2360,7 +2324,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
s.RegionInfo.EstateSettings.EstateAccess = new UUID[]{};
if (s.RegionInfo.Persistent)
s.RegionInfo.EstateSettings.Save();
-
}
catch (Exception e)
{
@@ -2368,7 +2331,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
responseData["success"] = false;
responseData["error"] = e.Message;
-
}
finally
{
@@ -2381,12 +2343,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public XmlRpcResponse XmlRpcAccessListAdd(XmlRpcRequest request, IPEndPoint remoteClient)
{
-
m_log.Info("[RADMIN]: Received Access List Add Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Access List Add");
-
+
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
@@ -2419,7 +2379,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
int addk = 0;
- if (requestData.Contains("users"))
+ if (requestData.Contains("users"))
{
UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService;
Scene s = m_app.SceneManager.CurrentScene;
@@ -2450,7 +2410,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
responseData["added"] = addk;
-
}
catch (Exception e)
{
@@ -2458,7 +2417,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
responseData["success"] = false;
responseData["error"] = e.Message;
-
}
finally
{
@@ -2471,12 +2429,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public XmlRpcResponse XmlRpcAccessListRemove(XmlRpcRequest request, IPEndPoint remoteClient)
{
-
m_log.Info("[RADMIN]: Received Access List Remove Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Access List Remove");
-
+
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
@@ -2509,7 +2465,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
int remk = 0;
- if (requestData.Contains("users"))
+ if (requestData.Contains("users"))
{
UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService;
Scene s = m_app.SceneManager.CurrentScene;
@@ -2539,7 +2495,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
responseData["removed"] = remk;
-
}
catch (Exception e)
{
@@ -2547,7 +2502,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
responseData["success"] = false;
responseData["error"] = e.Message;
-
}
finally
{
@@ -2560,12 +2514,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public XmlRpcResponse XmlRpcAccessListList(XmlRpcRequest request, IPEndPoint remoteClient)
{
-
m_log.Info("[RADMIN]: Received Access List List Request");
- //AnakinLohner 0.6.5-post-fixes
FailIfRemoteAdminDisabled("Access List List");
-
+
XmlRpcResponse response = new XmlRpcResponse();
Hashtable responseData = new Hashtable();
@@ -2608,9 +2560,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
users[user.ToString()] = udata.UserProfile.Name;
}
}
-
- responseData["users"] = users;
+ responseData["users"] = users;
}
catch (Exception e)
{
@@ -2618,7 +2569,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
responseData["success"] = false;
responseData["error"] = e.Message;
-
}
finally
{
@@ -2695,12 +2645,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public void Dispose()
{
}
-
}
class UICallback
{
-
private Object uilock = new Object();
internal InventoryFolderImpl root = null;
internal List folders;
@@ -2720,7 +2668,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
public void GetInventory()
{
-
Dictionary fmap = new Dictionary();
if (OK == false)
@@ -2729,7 +2676,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
if (OK == false)
System.Threading.Monitor.Wait(uilock);
- }
+ }
}
// Got the inventory OK. So now merge the content of the default appearance
@@ -2774,8 +2721,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController
{
fmap[item.Folder].Items.Add(item.ID, item);
}
-
}
}
-
}
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs
index a407b9eef5..9c90a7ef08 100644
--- a/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs
+++ b/OpenSim/ApplicationPlugins/Rest/Regions/GETHandler.cs
@@ -218,7 +218,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions
httpResponse.ContentType = "text/xml";
IRegionSerialiserModule serialiser = scene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
serialiser.SavePrimsToXml2(scene, new StreamWriter(httpResponse.OutputStream), min, max);
return "";
diff --git a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
index 104f2d5656..02eaf5dee5 100644
--- a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
+++ b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs
@@ -304,7 +304,7 @@ namespace OpenSim.Client.MXP.ClientStack
String typeName = ToOmType(primShape.PCode);
m_log.Info("[MXP ClientStack] Transmitting Primitive" + typeName);
- PerceptionEventMessage pe = new PerceptionEventMessage();
+ PerceptionEventMessage pe = new PerceptionEventMessage();
pe.ObjectFragment.ObjectId = objectID.Guid;
pe.ObjectFragment.ParentObjectId = Guid.Empty;
diff --git a/OpenSim/Data/IUserData.cs b/OpenSim/Data/IUserData.cs
index ee6936605a..e9a1e81616 100644
--- a/OpenSim/Data/IUserData.cs
+++ b/OpenSim/Data/IUserData.cs
@@ -54,7 +54,7 @@ namespace OpenSim.Data
///
/// Get a user from a given uri.
- ///
+ ///
///
/// The user data profile. Null if no user is found.
UserProfileData GetUserByUri(Uri uri);
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
index d193cf5e69..25f7cf019e 100644
--- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
@@ -175,7 +175,7 @@ namespace OpenSim.Data.MSSQL
(@id, @name, @description, @assetType, @local,
@temporary, @create_time, @access_time, @data)";
- string assetName = asset.Name;
+ string assetName = asset.Name;
if (asset.Name.Length > 64)
{
assetName = asset.Name.Substring(0, 64);
@@ -223,7 +223,7 @@ namespace OpenSim.Data.MSSQL
local = @local, temporary = @temporary, data = @data
WHERE id = @keyId;";
- string assetName = asset.Name;
+ string assetName = asset.Name;
if (asset.Name.Length > 64)
{
assetName = asset.Name.Substring(0, 64);
diff --git a/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs b/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs
index 78fc22cdf9..099faea149 100644
--- a/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLAuthenticationData.cs
@@ -135,7 +135,7 @@ namespace OpenSim.Data.MSSQL
insertBuilder.AppendFormat("insert into '{0}' ('UUID', '", m_Realm);
insertBuilder.Append(String.Join("', '", fields));
- insertBuilder.Append("') values ( @principalID, @");
+ insertBuilder.Append("') values (@principalID, @");
insertBuilder.Append(String.Join(", @", fields));
insertBuilder.Append(")");
diff --git a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
index 27a4e70bee..1482184402 100644
--- a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
@@ -428,7 +428,7 @@ namespace OpenSim.Data.MSSQL
@inventoryBasePermissions, @inventoryEveryOnePermissions, @inventoryGroupPermissions, @salePrice, @saleType,
@creationDate, @groupID, @groupOwned, @flags)";
- string itemName = item.Name;
+ string itemName = item.Name;
if (item.Name.Length > 64)
{
itemName = item.Name.Substring(0, 64);
@@ -529,7 +529,7 @@ namespace OpenSim.Data.MSSQL
{
itemDesc = item.Description.Substring(0, 128);
m_log.Warn("[INVENTORY DB]: Description field truncated from " + item.Description.Length.ToString() + " to " + itemDesc.Length.ToString() + " characters on update");
- }
+ }
using (AutoClosingSqlCommand command = database.Query(sql))
{
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
index adedcce81d..e26a8308bc 100644
--- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs
@@ -146,7 +146,7 @@ namespace OpenSim.Data.MSSQL
sceneObjectPart.Name, sceneObjectPart.UUID, sceneObjectPart.GroupPosition, groupID);
sceneObjectPart.UUID = groupID;
- }
+ }
grp = new SceneObjectGroup(sceneObjectPart);
}
diff --git a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
index 15208883ea..38be9f4061 100644
--- a/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLUserAccountData.cs
@@ -52,7 +52,7 @@ namespace OpenSim.Data.MSSQL
conn.Open();
Migration m = new Migration(conn, GetType().Assembly, "UserStore");
m.Update();
- }
+ }
}
public List Query(UUID principalID, UUID scopeID, string query)
@@ -152,7 +152,7 @@ namespace OpenSim.Data.MSSQL
StringBuilder insertBuilder = new StringBuilder();
insertBuilder.AppendFormat("insert into '{0}' ('UUID', 'ScopeID', '", m_Realm);
insertBuilder.Append(String.Join("', '", fields));
- insertBuilder.Append("') values ( @principalID, @scopeID, @");
+ insertBuilder.Append("') values (@principalID, @scopeID, @");
insertBuilder.Append(String.Join(", @", fields));
insertBuilder.Append(")");
diff --git a/OpenSim/Data/MSSQL/MSSQLUserData.cs b/OpenSim/Data/MSSQL/MSSQLUserData.cs
index 6efb89d4fd..3ef10535a8 100644
--- a/OpenSim/Data/MSSQL/MSSQLUserData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLUserData.cs
@@ -1146,7 +1146,7 @@ ELSE
if (reader.IsDBNull(reader.GetOrdinal("homeRegionID")))
retval.HomeRegionID = UUID.Zero;
else
- retval.HomeRegionID = new UUID((Guid)reader["homeRegionID"]);
+ retval.HomeRegionID = new UUID((Guid)reader["homeRegionID"]);
retval.Created = Convert.ToInt32(reader["created"].ToString());
retval.LastLogin = Convert.ToInt32(reader["lastLogin"].ToString());
@@ -1200,7 +1200,7 @@ ELSE
if (reader.IsDBNull(reader.GetOrdinal("partner")))
retval.Partner = UUID.Zero;
else
- retval.Partner = new UUID((Guid)reader["partner"]);
+ retval.Partner = new UUID((Guid)reader["partner"]);
}
else
{
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs
index 66c34fef4f..0502b2b9a2 100644
--- a/OpenSim/Data/MySQL/MySQLAssetData.cs
+++ b/OpenSim/Data/MySQL/MySQLAssetData.cs
@@ -204,7 +204,7 @@ namespace OpenSim.Data.MySQL
"VALUES(?id, ?name, ?description, ?assetType, ?local, ?temporary, ?create_time, ?access_time, ?data)",
_dbConnection.Connection);
- string assetName = asset.Name;
+ string assetName = asset.Name;
if (asset.Name.Length > 64)
{
assetName = asset.Name.Substring(0, 64);
diff --git a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs
index afd59bd141..e508b5285b 100644
--- a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs
+++ b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs
@@ -127,7 +127,7 @@ namespace OpenSim.Data.MySQL
{
string insert = "insert into `" + m_Realm + "` (`UUID`, `" +
String.Join("`, `", fields) +
- "`) values ( ?principalID, ?" + String.Join(", ?", fields) + ")";
+ "`) values (?principalID, ?" + String.Join(", ?", fields) + ")";
cmd.CommandText = insert;
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs
index 4521a0f3f7..0eecf06642 100644
--- a/OpenSim/Data/MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs
@@ -325,10 +325,10 @@ namespace OpenSim.Data.MySQL
UUID GroupID = UUID.Zero;
UUID.TryParse((string)reader["avatarID"], out Owner);
UUID.TryParse((string)reader["groupID"], out GroupID);
- item.Owner = Owner;
+ item.Owner = Owner;
item.GroupID = GroupID;
- // Rest of the parsing. If these UUID's fail, we're dead anyway
+ // Rest of the parsing. If these UUID's fail, we're dead anyway
item.ID = new UUID((string) reader["inventoryID"]);
item.AssetID = new UUID((string) reader["assetID"]);
item.AssetType = (int) reader["assetType"];
@@ -472,7 +472,7 @@ namespace OpenSim.Data.MySQL
+ ", ?inventoryBasePermissions, ?inventoryEveryOnePermissions, ?inventoryGroupPermissions, ?salePrice, ?saleType, ?creationDate"
+ ", ?groupID, ?groupOwned, ?flags)";
- string itemName = item.Name;
+ string itemName = item.Name;
if (item.Name.Length > 64)
{
itemName = item.Name.Substring(0, 64);
@@ -484,7 +484,7 @@ namespace OpenSim.Data.MySQL
{
itemDesc = item.Description.Substring(0, 128);
m_log.Warn("[INVENTORY DB]: Description field truncated from " + item.Description.Length + " to " + itemDesc.Length + " characters on add item");
- }
+ }
try
{
@@ -590,12 +590,12 @@ namespace OpenSim.Data.MySQL
"REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName, type, version) VALUES ";
sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName, ?type, ?version)";
- string folderName = folder.Name;
+ string folderName = folder.Name;
if (folderName.Length > 64)
{
folderName = folderName.Substring(0, 64);
m_log.Warn("[INVENTORY DB]: Name field truncated from " + folder.Name.Length + " to " + folderName.Length + " characters on add folder");
- }
+ }
database.CheckConnection();
diff --git a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs
index 4a16a702c4..c2dd788bf1 100644
--- a/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs
+++ b/OpenSim/Data/MySQL/MySQLLegacyRegionData.cs
@@ -464,7 +464,7 @@ namespace OpenSim.Data.MySQL
prim.Name, prim.UUID, prim.GroupPosition, groupID);
prim.UUID = groupID;
- }
+ }
grp = new SceneObjectGroup(prim);
}
@@ -533,7 +533,7 @@ namespace OpenSim.Data.MySQL
///
/// Load in a prim's persisted inventory.
///
- /// The prim
+ /// The prim
private void LoadItems(SceneObjectPart prim)
{
lock (m_Connection)
@@ -773,7 +773,7 @@ namespace OpenSim.Data.MySQL
"use_estate_sun, fixed_sun, sun_position, " +
"covenant, Sandbox, sunvectorx, sunvectory, " +
"sunvectorz, loaded_creation_datetime, " +
- "loaded_creation_id) values ( ?RegionUUID, ?BlockTerraform, " +
+ "loaded_creation_id) values (?RegionUUID, ?BlockTerraform, " +
"?BlockFly, ?AllowDamage, ?RestrictPushing, " +
"?AllowLandResell, ?AllowLandJoinDivide, " +
"?BlockShowInSearch, ?AgentLimit, ?ObjectBonus, " +
diff --git a/OpenSim/Data/MySQL/MySQLUserAccountData.cs b/OpenSim/Data/MySQL/MySQLUserAccountData.cs
index 5352727bc2..d48144d2e8 100644
--- a/OpenSim/Data/MySQL/MySQLUserAccountData.cs
+++ b/OpenSim/Data/MySQL/MySQLUserAccountData.cs
@@ -146,7 +146,7 @@ namespace OpenSim.Data.MySQL
{
string insert = "insert into `" + m_Realm + "` (`UUID`, `ScopeID`, `" +
String.Join("`, `", fields) +
- "`) values ( ?principalID, ?scopeID, ?" + String.Join(", ?", fields) + ")";
+ "`) values (?principalID, ?scopeID, ?" + String.Join(", ?", fields) + ")";
cmd.CommandText = insert;
diff --git a/OpenSim/Data/MySQL/MySQLUserData.cs b/OpenSim/Data/MySQL/MySQLUserData.cs
index 537ef6cd10..04f872f249 100644
--- a/OpenSim/Data/MySQL/MySQLUserData.cs
+++ b/OpenSim/Data/MySQL/MySQLUserData.cs
@@ -632,7 +632,7 @@ namespace OpenSim.Data.MySQL
UUID zero = UUID.Zero;
if (user.ID == zero)
{
- return;
+ return;
}
MySQLSuperManager dbm = GetLockedConnection("AddNewUserProfile");
@@ -666,7 +666,7 @@ namespace OpenSim.Data.MySQL
{
UUID zero = UUID.Zero;
if (agent.ProfileID == zero || agent.SessionID == zero)
- return;
+ return;
MySQLSuperManager dbm = GetLockedConnection("AddNewUserAgent");
try
diff --git a/OpenSim/Data/NHibernate/NHibernateManager.cs b/OpenSim/Data/NHibernate/NHibernateManager.cs
index 7c5cf338f3..2e7081ee55 100644
--- a/OpenSim/Data/NHibernate/NHibernateManager.cs
+++ b/OpenSim/Data/NHibernate/NHibernateManager.cs
@@ -155,7 +155,7 @@ namespace OpenSim.Data.NHibernate
m_log.ErrorFormat("[NHIBERNATE] {0} of id {1} loading threw exception: " + e.ToString(), type.Name, id);
}
return obj;
- }
+ }
}
///
diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs
index 73b630fde2..1b0c4c96a0 100644
--- a/OpenSim/Data/NHibernate/NHibernateUserData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs
@@ -86,7 +86,7 @@ namespace OpenSim.Data.NHibernate
m_log.InfoFormat("[NHIBERNATE] GetUserByUUID: {0} ", uuid);
user = (UserProfileData)manager.Get(typeof(UserProfileData), uuid);
- if (user != null)
+ if (user != null)
{
UserAgentData agent = GetAgentByUUID(uuid);
if (agent != null)
@@ -245,7 +245,7 @@ namespace OpenSim.Data.NHibernate
UserProfileData user=GetUserByUUID(agentID);
user.WebLoginKey = webLoginKey;
UpdateUserProfile(user);
- return;
+ return;
}
public override void AddNewUserFriend(UUID ownerId, UUID friendId, uint perms)
@@ -258,7 +258,7 @@ namespace OpenSim.Data.NHibernate
{
manager.Insert(new UserFriend(UUID.Random(), friendId, ownerId, perms));
}
- return;
+ return;
}
private bool FriendRelationExists(UUID ownerId, UUID friendId)
diff --git a/OpenSim/Data/Null/NullRegionData.cs b/OpenSim/Data/Null/NullRegionData.cs
index 218fcd04b5..e8263ea24c 100644
--- a/OpenSim/Data/Null/NullRegionData.cs
+++ b/OpenSim/Data/Null/NullRegionData.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Data.Null
{
List ret = new List();
- foreach(RegionData r in m_regionData.Values)
+ foreach (RegionData r in m_regionData.Values)
{
if (regionName.Contains("%"))
{
@@ -71,7 +71,7 @@ namespace OpenSim.Data.Null
{
List ret = new List();
- foreach(RegionData r in m_regionData.Values)
+ foreach (RegionData r in m_regionData.Values)
{
if (r.posX == posX && r.posY == posY)
ret.Add(r);
@@ -95,7 +95,7 @@ namespace OpenSim.Data.Null
{
List ret = new List();
- foreach(RegionData r in m_regionData.Values)
+ foreach (RegionData r in m_regionData.Values)
{
if (r.posX >= startX && r.posX <= endX && r.posY >= startY && r.posY <= endY)
ret.Add(r);
diff --git a/OpenSim/Data/RegionProfileData.cs b/OpenSim/Data/RegionProfileData.cs
index 1d9663103f..86d7f6b414 100644
--- a/OpenSim/Data/RegionProfileData.cs
+++ b/OpenSim/Data/RegionProfileData.cs
@@ -137,7 +137,7 @@ namespace OpenSim.Data
public uint maturity;
- //Data Wrappers
+ //Data Wrappers
public string RegionName
{
get { return regionName; }
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index ea076fe657..d22a3ecddc 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -496,7 +496,7 @@ namespace OpenSim.Data.SQLite
{
//m_log.DebugFormat("[DATASTORE]: Loading inventory for {0}, {1}", prim.Name, prim.UUID);
- DataTable dbItems = ds.Tables["primitems"];
+ DataTable dbItems = ds.Tables["primitems"];
String sql = String.Format("primID = '{0}'", prim.UUID.ToString());
DataRow[] dbItemRows = dbItems.Select(sql);
IList inventory = new List();
diff --git a/OpenSim/Data/Tests/BasicRegionTest.cs b/OpenSim/Data/Tests/BasicRegionTest.cs
index c66ab7c886..97990e1b72 100644
--- a/OpenSim/Data/Tests/BasicRegionTest.cs
+++ b/OpenSim/Data/Tests/BasicRegionTest.cs
@@ -60,7 +60,7 @@ namespace OpenSim.Data.Tests
public UUID item2;
public UUID item3;
- public static Random random;
+ public static Random random;
public string itemname1 = "item1";
@@ -173,7 +173,7 @@ namespace OpenSim.Data.Tests
UUID tmp0 = UUID.Random();
UUID tmp1 = UUID.Random();
UUID tmp2 = UUID.Random();
- UUID tmp3 = UUID.Random();
+ UUID tmp3 = UUID.Random();
UUID newregion = UUID.Random();
SceneObjectPart p1 = NewSOP("SoP 1",tmp1);
SceneObjectPart p2 = NewSOP("SoP 2",tmp2);
@@ -224,7 +224,7 @@ namespace OpenSim.Data.Tests
random.NextBytes(partsys);
DateTime expires = new DateTime(2008, 12, 20);
DateTime rezzed = new DateTime(2009, 07, 15);
- Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
+ Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
Vector3 offset = new Vector3(random.Next(),random.Next(),random.Next());
Quaternion rotoff = new Quaternion(random.Next(),random.Next(),random.Next(),random.Next());
Vector3 velocity = new Vector3(random.Next(),random.Next(),random.Next());
@@ -261,7 +261,7 @@ namespace OpenSim.Data.Tests
sop.Shape = pbshap;
sop.GroupPosition = groupos;
sop.RotationOffset = rotoff;
- sop.CreatorID = creator;
+ sop.CreatorID = creator;
sop.InventorySerial = iserial;
sop.TaskInventory = dic;
sop.ObjectFlags = objf;
@@ -306,7 +306,7 @@ namespace OpenSim.Data.Tests
Assert.That(expires,Is.EqualTo(sop.Expires), "Assert.That(expires,Is.EqualTo(sop.Expires))");
Assert.That(rezzed,Is.EqualTo(sop.Rezzed), "Assert.That(rezzed,Is.EqualTo(sop.Rezzed))");
Assert.That(offset,Is.EqualTo(sop.OffsetPosition), "Assert.That(offset,Is.EqualTo(sop.OffsetPosition))");
- Assert.That(velocity,Is.EqualTo(sop.Velocity), "Assert.That(velocity,Is.EqualTo(sop.Velocity))");
+ Assert.That(velocity,Is.EqualTo(sop.Velocity), "Assert.That(velocity,Is.EqualTo(sop.Velocity))");
Assert.That(angvelo,Is.EqualTo(sop.AngularVelocity), "Assert.That(angvelo,Is.EqualTo(sop.AngularVelocity))");
Assert.That(accel,Is.EqualTo(sop.Acceleration), "Assert.That(accel,Is.EqualTo(sop.Acceleration))");
Assert.That(description,Is.EqualTo(sop.Description), "Assert.That(description,Is.EqualTo(sop.Description))");
@@ -319,7 +319,7 @@ namespace OpenSim.Data.Tests
Assert.That(scale,Is.EqualTo(sop.Scale), "Assert.That(scale,Is.EqualTo(sop.Scale))");
Assert.That(updatef,Is.EqualTo(sop.UpdateFlag), "Assert.That(updatef,Is.EqualTo(sop.UpdateFlag))");
- // This is necessary or object will not be inserted in DB
+ // This is necessary or object will not be inserted in DB
sop.ObjectFlags = 0;
SceneObjectGroup sog = new SceneObjectGroup(sop);
@@ -332,11 +332,11 @@ namespace OpenSim.Data.Tests
// Makes sure there are no double insertions:
db.StoreObject(sog,region3);
sogs = db.LoadObjects(region3);
- Assert.That(sogs.Count, Is.EqualTo(1), "Assert.That(sogs.Count, Is.EqualTo(1))");
+ Assert.That(sogs.Count, Is.EqualTo(1), "Assert.That(sogs.Count, Is.EqualTo(1))");
// Tests if the parameters were inserted correctly
- SceneObjectPart p = sogs[0].RootPart;
+ SceneObjectPart p = sogs[0].RootPart;
Assert.That(regionh,Is.EqualTo(p.RegionHandle), "Assert.That(regionh,Is.EqualTo(p.RegionHandle))");
//Assert.That(localid,Is.EqualTo(p.LocalId), "Assert.That(localid,Is.EqualTo(p.LocalId))");
Assert.That(groupos,Is.EqualTo(p.GroupPosition), "Assert.That(groupos,Is.EqualTo(p.GroupPosition))");
@@ -402,7 +402,7 @@ namespace OpenSim.Data.Tests
random.NextBytes(partsys);
DateTime expires = new DateTime(2010, 12, 20);
DateTime rezzed = new DateTime(2005, 07, 15);
- Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
+ Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
Vector3 offset = new Vector3(random.Next(),random.Next(),random.Next());
Quaternion rotoff = new Quaternion(random.Next(),random.Next(),random.Next(),random.Next());
Vector3 velocity = new Vector3(random.Next(),random.Next(),random.Next());
@@ -418,7 +418,7 @@ namespace OpenSim.Data.Tests
PrimitiveBaseShape pbshap = new PrimitiveBaseShape();
pbshap = PrimitiveBaseShape.Default;
Vector3 scale = new Vector3(random.Next(),random.Next(),random.Next());
- byte updatef = (byte) random.Next(127);
+ byte updatef = (byte) random.Next(127);
// Updates the region with new values
SceneObjectGroup sog2 = FindSOG("Adam West", region3);
@@ -427,7 +427,7 @@ namespace OpenSim.Data.Tests
sog2.RootPart.Shape = pbshap;
sog2.RootPart.GroupPosition = groupos;
sog2.RootPart.RotationOffset = rotoff;
- sog2.RootPart.CreatorID = creator;
+ sog2.RootPart.CreatorID = creator;
sog2.RootPart.TaskInventory = dic;
sog2.RootPart.Name = name;
sog2.RootPart.Material = material;
@@ -492,12 +492,12 @@ namespace OpenSim.Data.Tests
{
UUID tmp = UUID.Random();
SceneObjectPart sop = NewSOP(("Test SOP " + i.ToString()),tmp);
- Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
+ Vector3 groupos = new Vector3(random.Next(),random.Next(),random.Next());
Vector3 offset = new Vector3(random.Next(),random.Next(),random.Next());
Quaternion rotoff = new Quaternion(random.Next(),random.Next(),random.Next(),random.Next());
Vector3 velocity = new Vector3(random.Next(),random.Next(),random.Next());
Vector3 angvelo = new Vector3(random.Next(),random.Next(),random.Next());
- Vector3 accel = new Vector3(random.Next(),random.Next(),random.Next());
+ Vector3 accel = new Vector3(random.Next(),random.Next(),random.Next());
sop.GroupPosition = groupos;
sop.RotationOffset = rotoff;
@@ -648,7 +648,7 @@ namespace OpenSim.Data.Tests
{
InventoryItemBase i = new InventoryItemBase();
UUID id = UUID.Random();
- i.ID = id;
+ i.ID = id;
UUID folder = UUID.Random();
i.Folder = folder;
UUID owner = UUID.Random();
@@ -666,13 +666,13 @@ namespace OpenSim.Data.Tests
i.NextPermissions = nextperm;
uint curperm = (uint) random.Next();
i.CurrentPermissions = curperm;
- uint baseperm = (uint) random.Next();
+ uint baseperm = (uint) random.Next();
i.BasePermissions = baseperm;
uint eoperm = (uint) random.Next();
i.EveryOnePermissions = eoperm;
int assettype = random.Next();
i.AssetType = assettype;
- UUID groupid = UUID.Random();
+ UUID groupid = UUID.Random();
i.GroupID = groupid;
bool groupown = true;
i.GroupOwned = groupown;
@@ -1010,7 +1010,7 @@ namespace OpenSim.Data.Tests
private SceneObjectPart NewSOP(string name, UUID uuid)
{
- SceneObjectPart sop = new SceneObjectPart();
+ SceneObjectPart sop = new SceneObjectPart();
sop.Name = name;
sop.Description = name;
sop.Text = RandomName();
@@ -1042,12 +1042,12 @@ namespace OpenSim.Data.Tests
int size = random.Next(5,12);
char ch ;
for (int i=0; i> 8);
- homeregy = ((homeregy << 8) >> 8);
+ homeregy = ((homeregy << 8) >> 8);
u.ID = id;
u.WebLoginKey = webloginkey;
@@ -299,7 +299,7 @@ namespace OpenSim.Data.Tests
uint homeregx = (uint) random.Next();
uint homeregy = (uint) random.Next();
Vector3 homeloc = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5));
- Vector3 homelookat = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5));
+ Vector3 homelookat = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5));
int created = random.Next();
int lastlogin = random.Next();
string userinvuri = RandomName();
@@ -359,7 +359,7 @@ namespace OpenSim.Data.Tests
Assert.That(email,Is.EqualTo(u1a.Email), "Assert.That(email,Is.EqualTo(u1a.Email))");
Assert.That(passhash,Is.EqualTo(u1a.PasswordHash), "Assert.That(passhash,Is.EqualTo(u1a.PasswordHash))");
Assert.That(passsalt,Is.EqualTo(u1a.PasswordSalt), "Assert.That(passsalt,Is.EqualTo(u1a.PasswordSalt))");
- Assert.That(homereg,Is.EqualTo(u1a.HomeRegion), "Assert.That(homereg,Is.EqualTo(u1a.HomeRegion))");
+ Assert.That(homereg,Is.EqualTo(u1a.HomeRegion), "Assert.That(homereg,Is.EqualTo(u1a.HomeRegion))");
Assert.That(homeregx,Is.EqualTo(u1a.HomeRegionX), "Assert.That(homeregx,Is.EqualTo(u1a.HomeRegionX))");
Assert.That(homeregy,Is.EqualTo(u1a.HomeRegionY), "Assert.That(homeregy,Is.EqualTo(u1a.HomeRegionY))");
Assert.That(homereg,Is.EqualTo(u1a.HomeRegion), "Assert.That(homereg,Is.EqualTo(u1a.HomeRegion))");
@@ -426,7 +426,7 @@ namespace OpenSim.Data.Tests
UserAgentData a2 = db.GetAgentByName(fname2,lname2);
UserAgentData a3 = db.GetAgentByName(name3);
Assert.That(user2,Is.EqualTo(a2.ProfileID), "Assert.That(user2,Is.EqualTo(a2.ProfileID))");
- Assert.That(user3,Is.EqualTo(a3.ProfileID), "Assert.That(user3,Is.EqualTo(a3.ProfileID))");
+ Assert.That(user3,Is.EqualTo(a3.ProfileID), "Assert.That(user3,Is.EqualTo(a3.ProfileID))");
}
[Test]
@@ -501,11 +501,11 @@ namespace OpenSim.Data.Tests
db.AddNewUserFriend(user1,user3, 2);
db.AddNewUserFriend(user1,user2, 4);
List fl1 = db.GetUserFriendList(user1);
- Assert.That(fl1.Count,Is.EqualTo(2), "Assert.That(fl1.Count,Is.EqualTo(2))");
+ Assert.That(fl1.Count,Is.EqualTo(2), "Assert.That(fl1.Count,Is.EqualTo(2))");
perms.Add(user2,1);
perms.Add(user3,2);
for (int i = 0; i < fl1.Count; i++)
- {
+ {
Assert.That(user1,Is.EqualTo(fl1[i].FriendListOwner), "Assert.That(user1,Is.EqualTo(fl1[i].FriendListOwner))");
friends.Add(fl1[i].Friend,1);
temp = perms[fl1[i].Friend];
@@ -544,7 +544,7 @@ namespace OpenSim.Data.Tests
db.UpdateUserFriendPerms(user1, user3, 4);
fl1 = db.GetUserFriendList(user1);
- Assert.That(fl1[0].FriendPerms,Is.EqualTo(4), "Assert.That(fl1[0].FriendPerms,Is.EqualTo(4))");
+ Assert.That(fl1[0].FriendPerms,Is.EqualTo(4), "Assert.That(fl1[0].FriendPerms,Is.EqualTo(4))");
}
[Test]
@@ -560,7 +560,7 @@ namespace OpenSim.Data.Tests
[Test]
public void T041_UserAppearancePersistency()
{
- AvatarAppearance appear = new AvatarAppearance();
+ AvatarAppearance appear = new AvatarAppearance();
UUID owner = UUID.Random();
int serial = random.Next();
byte[] visualp = new byte[218];
@@ -698,7 +698,7 @@ namespace OpenSim.Data.Tests
int size = random.Next(5,12);
char ch ;
for (int i=0; i
/// Capabilities utility methods
///
diff --git a/OpenSim/Framework/Client/IClientIM.cs b/OpenSim/Framework/Client/IClientIM.cs
index 81b1d9e1af..3df86d05b9 100644
--- a/OpenSim/Framework/Client/IClientIM.cs
+++ b/OpenSim/Framework/Client/IClientIM.cs
@@ -57,7 +57,7 @@ namespace OpenSim.Framework.Client
// Porting Guide from old IM
// SendIM(...)
// Loses FromAgentSession - this should be added by implementers manually.
- //
+ //
public interface IClientIM
{
diff --git a/OpenSim/Framework/ClientManager.cs b/OpenSim/Framework/ClientManager.cs
index db532e0de2..094a3ff9b2 100644
--- a/OpenSim/Framework/ClientManager.cs
+++ b/OpenSim/Framework/ClientManager.cs
@@ -177,9 +177,9 @@ namespace OpenSim.Framework
}
public void ViewerEffectHandler(IClientAPI sender, List args)
- {
+ {
// TODO: don't create new blocks if recycling an old packet
- List effectBlock = new List();
+ List effectBlock = new List();
for (int i = 0; i < args.Count; i++)
{
ViewerEffectPacket.EffectBlock effect = new ViewerEffectPacket.EffectBlock();
diff --git a/OpenSim/Framework/CnmMemoryCache.cs b/OpenSim/Framework/CnmMemoryCache.cs
index db91801684..92af331102 100644
--- a/OpenSim/Framework/CnmMemoryCache.cs
+++ b/OpenSim/Framework/CnmMemoryCache.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Framework
///
/// How many operations between time checks.
- ///
+ ///
private const int DefaultOperationsBetweenTimeChecks = 40;
///
@@ -168,7 +168,7 @@ namespace OpenSim.Framework
private int m_version;
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
public CnmMemoryCache()
: this(DefaultMaxSize)
@@ -277,7 +277,7 @@ namespace OpenSim.Framework
///
protected virtual void AddToNewGeneration(int bucketIndex, TKey key, TValue value, long size)
{
- // Add to newest generation
+ // Add to newest generation
if (!m_newGeneration.Set(bucketIndex, key, value, size))
{
// Failed to add new generation
@@ -311,7 +311,7 @@ namespace OpenSim.Framework
/// Bucket index is remainder when element key's hash value is divided by bucket count.
///
///
- /// For example: key's hash is 72, bucket count is 5, element's bucket index is 72 % 5 = 2.
+ /// For example: key's hash is 72, bucket count is 5, element's bucket index is 72 % 5 = 2.
///
///
protected virtual int GetBucketIndex(TKey key)
@@ -367,7 +367,7 @@ namespace OpenSim.Framework
///
private void RecycleGenerations()
{
- // Rotate old generation to new generation, new generation to old generation
+ // Rotate old generation to new generation, new generation to old generation
IGeneration temp = m_newGeneration;
m_newGeneration = m_oldGeneration;
m_newGeneration.Clear();
@@ -522,7 +522,7 @@ namespace OpenSim.Framework
///
/// Index of first element's in element chain.
///
- ///
+ ///
/// -1 if there is no element in bucket; otherwise first element's index in the element chain.
///
///
@@ -692,7 +692,7 @@ namespace OpenSim.Framework
///
///
/// 0 if element is free; otherwise larger than 0.
- ///
+ ///
public long Size;
///
@@ -771,7 +771,7 @@ namespace OpenSim.Framework
///
///
/// The enumerator has reach end of collection or is not called.
- ///
+ ///
public KeyValuePair Current
{
get
@@ -1405,10 +1405,10 @@ namespace OpenSim.Framework
/// When adding an new element to that is limiting total size of elements,
/// will remove less recently used elements until it can fit an new element.
///
- ///
+ ///
///
///
- ///
+ ///
///
///
public bool IsSizeLimited
@@ -1438,7 +1438,7 @@ namespace OpenSim.Framework
}
///
- /// Gets a value indicating whether elements stored to have limited inactivity time.
+ /// Gets a value indicating whether elements stored to have limited inactivity time.
///
///
/// if the has a fixed total size of elements;
@@ -1449,7 +1449,7 @@ namespace OpenSim.Framework
/// or methods in , then element is automatically removed from
/// the cache. Depending on implementation of the , some of the elements may
/// stay longer in cache.
- ///
+ ///
///
///
///
@@ -1503,7 +1503,7 @@ namespace OpenSim.Framework
///
///
///
- ///
+ ///
public long MaxElementSize
{
get { return m_maxElementSize; }
@@ -1517,7 +1517,7 @@ namespace OpenSim.Framework
///
/// Maximal allowed total size for elements stored to .
///
- ///
+ ///
///
/// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
///
@@ -1562,10 +1562,10 @@ namespace OpenSim.Framework
/// When adding an new element to that is limiting total size of elements,
/// will remove less recently used elements until it can fit an new element.
///
- ///
+ ///
///
///
- ///
+ ///
///
///
public long Size
@@ -1576,9 +1576,9 @@ namespace OpenSim.Framework
///
/// Gets an object that can be used to synchronize access to the .
///
- ///
+ ///
/// An object that can be used to synchronize access to the .
- ///
+ ///
///
///
/// To get synchronized (thread safe) access to , use
@@ -1630,7 +1630,7 @@ namespace OpenSim.Framework
///
///
/// Depending on implementation, some of expired elements
- /// may stay longer than in the cache.
+ /// may stay longer than in the cache.
///
///
///
@@ -1810,7 +1810,7 @@ namespace OpenSim.Framework
///
///
/// if the contains an element with
- /// the specified key; otherwise, .
+ /// the specified key; otherwise, .
///
///
/// The key whose to get.
diff --git a/OpenSim/Framework/CnmSynchronizedCache.cs b/OpenSim/Framework/CnmSynchronizedCache.cs
index c09900e82a..2bafbe98a7 100644
--- a/OpenSim/Framework/CnmSynchronizedCache.cs
+++ b/OpenSim/Framework/CnmSynchronizedCache.cs
@@ -142,7 +142,7 @@ namespace OpenSim.Framework
///
///
/// The enumerator has reach end of collection or is not called.
- ///
+ ///
public KeyValuePair Current
{
get { return m_enumerator.Current; }
@@ -327,10 +327,10 @@ namespace OpenSim.Framework
/// When adding an new element to that is limiting total size of elements,
/// will remove less recently used elements until it can fit an new element.
///
- ///
+ ///
///
///
- ///
+ ///
///
///
public bool IsSizeLimited
@@ -366,7 +366,7 @@ namespace OpenSim.Framework
}
///
- /// Gets a value indicating whether elements stored to have limited inactivity time.
+ /// Gets a value indicating whether elements stored to have limited inactivity time.
///
///
/// if the has a fixed total size of elements;
@@ -377,7 +377,7 @@ namespace OpenSim.Framework
/// or methods in , then element is automatically removed from
/// the cache. Depending on implementation of the , some of the elements may
/// stay longer in cache.
- ///
+ ///
///
///
///
@@ -440,7 +440,7 @@ namespace OpenSim.Framework
///
///
///
- ///
+ ///
public long MaxElementSize
{
get
@@ -458,7 +458,7 @@ namespace OpenSim.Framework
///
/// Maximal allowed total size for elements stored to .
///
- ///
+ ///
///
/// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
///
@@ -507,10 +507,10 @@ namespace OpenSim.Framework
/// When adding an new element to that is limiting total size of elements,
/// will remove less recently used elements until it can fit an new element.
///
- ///
+ ///
///
///
- ///
+ ///
///
///
public long Size
@@ -527,9 +527,9 @@ namespace OpenSim.Framework
///
/// Gets an object that can be used to synchronize access to the .
///
- ///
+ ///
/// An object that can be used to synchronize access to the .
- ///
+ ///
///
///
/// To get synchronized (thread safe) access to , use
@@ -584,7 +584,7 @@ namespace OpenSim.Framework
///
///
/// Depending on implementation, some of expired elements
- /// may stay longer than in the cache.
+ /// may stay longer than in the cache.
///
///
///
@@ -704,7 +704,7 @@ namespace OpenSim.Framework
///
///
/// if the contains an element with
- /// the specified key; otherwise, .
+ /// the specified key; otherwise, .
///
///
/// The key whose to get.
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
index 238810ab00..aa71536c6c 100644
--- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
+++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Framework.Communications.Cache
/// Stores user profile and inventory data received from backend services for a particular user.
///
public class CachedUserInfo
- {
+ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
////
@@ -190,7 +190,7 @@ namespace OpenSim.Framework.Communications.Cache
resolvedFolders.Add(folder);
resolvedFolderDictionary[folder.ID] = folder;
parentFolder.AddChildFolder(folder);
- }
+ }
}
} // foreach (folder in pendingCategorizationFolders[parentFolder.ID])
@@ -219,7 +219,7 @@ namespace OpenSim.Framework.Communications.Cache
///
/// Fetch inventory for this user.
///
- /// This has to be executed as a separate step once user information is retreived.
+ /// This has to be executed as a separate step once user information is retreived.
/// This will occur synchronously if the inventory service is in the same process as this class, and
/// asynchronously otherwise.
public void FetchInventory()
@@ -422,7 +422,7 @@ namespace OpenSim.Framework.Communications.Cache
///
/// FIXME: We call add new inventory folder because in the data layer, we happen to use an SQL REPLACE
/// so this will work to rename an existing folder. Needless to say, to rely on this is very confusing,
- /// and needs to be changed.
+ /// and needs to be changed.
///
///
///
@@ -500,7 +500,7 @@ namespace OpenSim.Framework.Communications.Cache
InventoryFolderImpl oldParentFolder = RootFolder.FindFolder(folder.ParentID);
if (oldParentFolder != null)
- {
+ {
oldParentFolder.RemoveChildFolder(folderID);
parentFolder.AddChildFolder(folder);
}
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
index 7f1c7e975b..9e12d94849 100644
--- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
+++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs
@@ -60,7 +60,7 @@ namespace OpenSim.Framework.Communications.Cache
/// User profiles indexed by name
///
private readonly Dictionary m_userProfilesByName
- = new Dictionary();
+ = new Dictionary();
///
/// The root library folder.
@@ -123,35 +123,35 @@ namespace OpenSim.Framework.Communications.Cache
///
/// Get details of the given user.
///
- /// If the user isn't in cache then the user is requested from the profile service.
+ /// If the user isn't in cache then the user is requested from the profile service.
///
- /// null if no user details are found
+ /// null if no user details are found
public CachedUserInfo GetUserDetails(string fname, string lname)
{
lock (m_userProfilesByName)
- {
+ {
CachedUserInfo userInfo;
- if (m_userProfilesByName.TryGetValue(string.Format(NAME_FORMAT, fname, lname), out userInfo))
+ if (m_userProfilesByName.TryGetValue(string.Format(NAME_FORMAT, fname, lname), out userInfo))
{
return userInfo;
- }
+ }
else
- {
+ {
UserProfileData userProfile = m_commsManager.UserService.GetUserProfile(fname, lname);
if (userProfile != null)
- return AddToCaches(userProfile);
+ return AddToCaches(userProfile);
else
return null;
- }
+ }
}
}
///
/// Get details of the given user.
///
- /// If the user isn't in cache then the user is requested from the profile service.
+ /// If the user isn't in cache then the user is requested from the profile service.
///
/// null if no user details are found
public CachedUserInfo GetUserDetails(UUID userID)
@@ -185,20 +185,20 @@ namespace OpenSim.Framework.Communications.Cache
// probably by making sure that the update doesn't use the UserCacheInfo.UserProfile directly (possibly via
// returning a read only class from the cache).
// public bool StoreProfile(UserProfileData userProfile)
-// {
+// {
// lock (m_userProfilesById)
-// {
+// {
// CachedUserInfo userInfo = GetUserDetails(userProfile.ID);
-//
+//
// if (userInfo != null)
// {
-// userInfo.m_userProfile = userProfile;
+// userInfo.m_userProfile = userProfile;
// m_commsManager.UserService.UpdateUserProfile(userProfile);
-//
+//
// return true;
// }
// }
-//
+//
// return false;
// }
@@ -220,7 +220,7 @@ namespace OpenSim.Framework.Communications.Cache
}
}
- return createdUserInfo;
+ return createdUserInfo;
}
///
@@ -234,7 +234,7 @@ namespace OpenSim.Framework.Communications.Cache
{
if (m_userProfilesById.ContainsKey(userId))
{
- CachedUserInfo userInfo = m_userProfilesById[userId];
+ CachedUserInfo userInfo = m_userProfilesById[userId];
m_userProfilesById.Remove(userId);
lock (m_userProfilesByName)
@@ -244,7 +244,7 @@ namespace OpenSim.Framework.Communications.Cache
return true;
}
- }
+ }
return false;
}
diff --git a/OpenSim/Framework/Communications/Clients/RegionClient.cs b/OpenSim/Framework/Communications/Clients/RegionClient.cs
index 73e2db0f9e..3419ce2650 100644
--- a/OpenSim/Framework/Communications/Clients/RegionClient.cs
+++ b/OpenSim/Framework/Communications/Clients/RegionClient.cs
@@ -35,6 +35,8 @@ using System.Text;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
+
using log4net;
namespace OpenSim.Framework.Communications.Clients
@@ -43,7 +45,7 @@ namespace OpenSim.Framework.Communications.Clients
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- public bool DoCreateChildAgentCall(RegionInfo region, AgentCircuitData aCircuit, string authKey, out string reason)
+ public bool DoCreateChildAgentCall(GridRegion region, AgentCircuitData aCircuit, string authKey, out string reason)
{
reason = String.Empty;
@@ -166,7 +168,7 @@ namespace OpenSim.Framework.Communications.Clients
}
- public bool DoChildAgentUpdateCall(RegionInfo region, IAgentData cAgentData)
+ public bool DoChildAgentUpdateCall(GridRegion region, IAgentData cAgentData)
{
// Eventually, we want to use a caps url instead of the agentID
string uri = string.Empty;
@@ -260,7 +262,7 @@ namespace OpenSim.Framework.Communications.Clients
return true;
}
- public bool DoRetrieveRootAgentCall(RegionInfo region, UUID id, out IAgentData agent)
+ public bool DoRetrieveRootAgentCall(GridRegion region, UUID id, out IAgentData agent)
{
agent = null;
// Eventually, we want to use a caps url instead of the agentID
@@ -348,7 +350,7 @@ namespace OpenSim.Framework.Communications.Clients
}
- public bool DoCloseAgentCall(RegionInfo region, UUID id)
+ public bool DoCloseAgentCall(GridRegion region, UUID id)
{
string uri = string.Empty;
try
@@ -391,7 +393,7 @@ namespace OpenSim.Framework.Communications.Clients
return true;
}
- public bool DoCreateObjectCall(RegionInfo region, ISceneObject sog, string sogXml2, bool allowScriptCrossing)
+ public bool DoCreateObjectCall(GridRegion region, ISceneObject sog, string sogXml2, bool allowScriptCrossing)
{
ulong regionHandle = GetRegionHandle(region.RegionHandle);
string uri
@@ -474,7 +476,7 @@ namespace OpenSim.Framework.Communications.Clients
}
- public bool DoCreateObjectCall(RegionInfo region, UUID userID, UUID itemID)
+ public bool DoCreateObjectCall(GridRegion region, UUID userID, UUID itemID)
{
ulong regionHandle = GetRegionHandle(region.RegionHandle);
string uri = "http://" + region.ExternalEndPoint.Address + ":" + region.HttpPort + "/object/" + UUID.Zero + "/" + regionHandle.ToString() + "/";
@@ -646,7 +648,7 @@ namespace OpenSim.Framework.Communications.Clients
return false;
}
- public virtual void SendUserInformation(RegionInfo regInfo, AgentCircuitData aCircuit)
+ public virtual void SendUserInformation(GridRegion regInfo, AgentCircuitData aCircuit)
{
}
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs
index e9a6adb095..2410f31901 100644
--- a/OpenSim/Framework/Communications/CommunicationsManager.cs
+++ b/OpenSim/Framework/Communications/CommunicationsManager.cs
@@ -59,11 +59,6 @@ namespace OpenSim.Framework.Communications
}
protected IMessagingService m_messageService;
- public IGridServices GridService
- {
- get { return m_gridService; }
- }
- protected IGridServices m_gridService;
public UserProfileCacheService UserProfileCacheService
{
@@ -95,8 +90,8 @@ namespace OpenSim.Framework.Communications
public IUserAdminService UserAdminService
{
get { return m_userAdminService; }
- }
- protected IUserAdminService m_userAdminService;
+ }
+ protected IUserAdminService m_userAdminService;
///
/// Constructor
diff --git a/OpenSim/Framework/Communications/IAvatarService.cs b/OpenSim/Framework/Communications/IAvatarService.cs
index 4afc58f9e0..760aa62016 100644
--- a/OpenSim/Framework/Communications/IAvatarService.cs
+++ b/OpenSim/Framework/Communications/IAvatarService.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Framework.Communications
/// Update avatar appearance information
///
///
- ///
+ ///
void UpdateUserAppearance(UUID user, AvatarAppearance appearance);
}
}
diff --git a/OpenSim/Framework/Communications/IGridServices.cs b/OpenSim/Framework/Communications/IGridServices.cs
deleted file mode 100644
index 6365919047..0000000000
--- a/OpenSim/Framework/Communications/IGridServices.cs
+++ /dev/null
@@ -1,92 +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.Framework.Communications
-{
- public interface IGridServices
- {
- string gdebugRegionName { get; set; }
-
- ///
- /// If true, then regions will accept logins from the user service. If false, then they will not.
- ///
- bool RegionLoginsEnabled { get; set; }
-
- ///
- /// Register a region with the grid service.
- ///
- ///
- ///
- /// Thrown if region registration failed
- RegionCommsListener RegisterRegion(RegionInfo regionInfos);
-
- ///
- /// Deregister a region with the grid service.
- ///
- ///
- ///
- /// Thrown if region deregistration failed
- bool DeregisterRegion(RegionInfo regionInfo);
-
- ///
- /// Get information about the regions neighbouring the given co-ordinates.
- ///
- ///
- ///
- ///
- List RequestNeighbours(uint x, uint y);
-
- RegionInfo RequestNeighbourInfo(ulong regionHandle);
- RegionInfo RequestNeighbourInfo(UUID regionID);
- RegionInfo RequestNeighbourInfo(string name);
- RegionInfo RequestNeighbourInfo(string host, uint port);
-
- RegionInfo RequestClosestRegion(string regionName);
- Dictionary GetGridSettings();
- List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY);
- // not complete yet, only contains the fields needed for ParcelInfoReqeust
- LandData RequestLandData(ulong regionHandle, uint x, uint y);
-
- ///
- /// Get information about regions starting with the provided name.
- ///
- ///
- /// The name to match against.
- ///
- ///
- /// The maximum number of results to return.
- ///
- ///
- /// A list of s of regions with matching name. If the
- /// grid-server couldn't be contacted or returned an error, return null.
- ///
- List RequestNamedRegions(string name, int maxNumber);
- }
-}
diff --git a/OpenSim/Framework/Communications/IUserAdminService.cs b/OpenSim/Framework/Communications/IUserAdminService.cs
index 15b989d8aa..423b49bb89 100644
--- a/OpenSim/Framework/Communications/IUserAdminService.cs
+++ b/OpenSim/Framework/Communications/IUserAdminService.cs
@@ -66,6 +66,6 @@ namespace OpenSim.Framework.Communications
///
///
/// true if the update was successful, false otherwise
- bool ResetUserPassword(string firstName, string lastName, string newPassword);
+ bool ResetUserPassword(string firstName, string lastName, string newPassword);
}
}
diff --git a/OpenSim/Framework/Communications/IUserService.cs b/OpenSim/Framework/Communications/IUserService.cs
index 15c5a961bb..dfa059d929 100644
--- a/OpenSim/Framework/Communications/IUserService.cs
+++ b/OpenSim/Framework/Communications/IUserService.cs
@@ -98,7 +98,7 @@ namespace OpenSim.Framework.Communications
/// The agent that who's friends list is being updated
/// The agent that is getting or loosing permissions
/// A uint bit vector for set perms that the friend being added has; 0 = none, 1=This friend can see when they sign on, 2 = map, 4 edit objects
- void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms);
+ void UpdateUserFriendPerms(UUID friendlistowner, UUID friend, uint perms);
///
/// Logs off a user on the user server
@@ -128,9 +128,9 @@ namespace OpenSim.Framework.Communications
///
/// The agent for whom we're retreiving the friends Data.
///
- /// A List of FriendListItems that contains info about the user's friends.
+ /// A List of FriendListItems that contains info about the user's friends.
/// Always returns a list even if the user has no friends
- ///
+ ///
List GetUserFriendList(UUID friendlistowner);
// This probably shouldn't be here, it belongs to IAuthentication
@@ -149,7 +149,7 @@ namespace OpenSim.Framework.Communications
///
///
///
- bool AuthenticateUserByPassword(UUID userID, string password);
+ bool AuthenticateUserByPassword(UUID userID, string password);
// Temporary Hack until we move everything to the new service model
void SetInventoryService(IInventoryService invService);
diff --git a/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs b/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs
index 98d0e0f227..e96c5e86c8 100644
--- a/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs
+++ b/OpenSim/Framework/Communications/Osp/OspInventoryWrapperPlugin.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Framework.Communications.Osp
public string Name { get { return "OspInventoryWrapperPlugin"; } }
public string Version { get { return "0.1"; } }
- public void Initialise() {}
+ public void Initialise() {}
public void Initialise(string connect) {}
public void Dispose() {}
@@ -80,9 +80,9 @@ namespace OpenSim.Framework.Communications.Osp
}
protected InventoryItemBase PostProcessItem(InventoryItemBase item)
- {
+ {
item.CreatorIdAsUuid = OspResolver.ResolveOspa(item.CreatorId, m_commsManager);
- return item;
+ return item;
}
public List getFolderHierarchy(UUID parentID) { return m_wrappedPlugin.getFolderHierarchy(parentID); }
diff --git a/OpenSim/Framework/Communications/Osp/OspResolver.cs b/OpenSim/Framework/Communications/Osp/OspResolver.cs
index e98317a3c0..32f0efce27 100644
--- a/OpenSim/Framework/Communications/Osp/OspResolver.cs
+++ b/OpenSim/Framework/Communications/Osp/OspResolver.cs
@@ -33,13 +33,13 @@ using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
namespace OpenSim.Framework.Communications.Osp
-{
+{
///
/// Resolves OpenSim Profile Anchors (OSPA). An OSPA is a string used to provide information for
/// identifying user profiles or supplying a simple name if no profile is available.
///
public class OspResolver
- {
+ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public const string OSPA_PREFIX = "ospa:";
@@ -73,7 +73,7 @@ namespace OpenSim.Framework.Communications.Osp
{
return
OSPA_PREFIX + OSPA_NAME_KEY + OSPA_PAIR_SEPARATOR + firstName + OSPA_NAME_VALUE_SEPARATOR + lastName;
- }
+ }
///
/// Resolve an osp string into the most suitable internal OpenSim identifier.
@@ -89,13 +89,13 @@ namespace OpenSim.Framework.Communications.Osp
/// is returned.
///
public static UUID ResolveOspa(string ospa, CommunicationsManager commsManager)
- {
+ {
if (!ospa.StartsWith(OSPA_PREFIX))
return UUID.Zero;
m_log.DebugFormat("[OSP RESOLVER]: Resolving {0}", ospa);
- string ospaMeat = ospa.Substring(OSPA_PREFIX.Length);
+ string ospaMeat = ospa.Substring(OSPA_PREFIX.Length);
string[] ospaTuples = ospaMeat.Split(OSPA_TUPLE_SEPARATOR_ARRAY);
foreach (string tuple in ospaTuples)
@@ -162,7 +162,7 @@ namespace OpenSim.Framework.Communications.Osp
tempUserProfile.ID = HashName(tempUserProfile.Name);
m_log.DebugFormat(
- "[OSP RESOLVER]: Adding temporary user profile for {0} {1}", tempUserProfile.Name, tempUserProfile.ID);
+ "[OSP RESOLVER]: Adding temporary user profile for {0} {1}", tempUserProfile.Name, tempUserProfile.ID);
commsManager.UserService.AddTemporaryUserProfile(tempUserProfile);
return tempUserProfile.ID;
diff --git a/OpenSim/Framework/Communications/Services/LoginService.cs b/OpenSim/Framework/Communications/Services/LoginService.cs
index a6cd918096..922cd4942f 100644
--- a/OpenSim/Framework/Communications/Services/LoginService.cs
+++ b/OpenSim/Framework/Communications/Services/LoginService.cs
@@ -1072,7 +1072,7 @@ namespace OpenSim.Framework.Communications.Services
///
///
///
- /// true if the region was successfully contacted, false otherwise
+ /// true if the region was successfully contacted, false otherwise
protected abstract bool PrepareLoginToRegion(
RegionInfo regionInfo, UserProfileData user, LoginResponse response, IPEndPoint client);
diff --git a/OpenSim/Framework/Communications/TemporaryUserProfilePlugin.cs b/OpenSim/Framework/Communications/TemporaryUserProfilePlugin.cs
index 43f14403d4..2413055542 100644
--- a/OpenSim/Framework/Communications/TemporaryUserProfilePlugin.cs
+++ b/OpenSim/Framework/Communications/TemporaryUserProfilePlugin.cs
@@ -33,9 +33,9 @@ using OpenMetaverse;
using OpenSim.Data;
namespace OpenSim.Framework.Communications
-{
+{
///
- /// Plugin for managing temporary user profiles.
+ /// Plugin for managing temporary user profiles.
///
public class TemporaryUserProfilePlugin : IUserDataPlugin
{
@@ -45,7 +45,7 @@ namespace OpenSim.Framework.Communications
public string Name { get { return "TemporaryUserProfilePlugin"; } }
public string Version { get { return "0.1"; } }
- public void Initialise() {}
+ public void Initialise() {}
public void Initialise(string connect) {}
public void Dispose() {}
diff --git a/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs b/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs
index a7572821af..caaebd7b0d 100644
--- a/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs
+++ b/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs
@@ -152,8 +152,8 @@ namespace OpenSim.Framework.Communications.Tests
public virtual bool AuthenticateUserByPassword(UUID userID, string password)
{
- throw new NotImplementedException();
- }
+ throw new NotImplementedException();
+ }
}
}
}
diff --git a/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs b/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs
index e5d8895d9d..830c877902 100644
--- a/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs
+++ b/OpenSim/Framework/Communications/Tests/Cache/UserProfileCacheServiceTests.cs
@@ -133,7 +133,7 @@ namespace OpenSim.Framework.Communications.Tests
timedOut = true;
lock (this)
- {
+ {
UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager, InventoryReceived);
Monitor.Wait(this, 60000);
}
@@ -150,7 +150,7 @@ namespace OpenSim.Framework.Communications.Tests
CachedUserInfo userInfo;
lock (this)
- {
+ {
userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager, InventoryReceived);
Monitor.Wait(this, 60000);
}
@@ -171,7 +171,7 @@ namespace OpenSim.Framework.Communications.Tests
CachedUserInfo userInfo;
lock (this)
- {
+ {
userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager, InventoryReceived);
Monitor.Wait(this, 60000);
}
@@ -206,7 +206,7 @@ namespace OpenSim.Framework.Communications.Tests
CachedUserInfo userInfo;
lock (this)
- {
+ {
userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager, InventoryReceived);
Monitor.Wait(this, 60000);
}
@@ -271,7 +271,7 @@ namespace OpenSim.Framework.Communications.Tests
CachedUserInfo userInfo;
lock (this)
- {
+ {
userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager, InventoryReceived);
Monitor.Wait(this, 60000);
}
@@ -311,7 +311,7 @@ namespace OpenSim.Framework.Communications.Tests
CachedUserInfo userInfo;
lock (this)
- {
+ {
userInfo = UserProfileTestUtils.CreateUserWithInventory(myScene.CommsManager, InventoryReceived);
Monitor.Wait(this, 60000);
}
diff --git a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
index 0a9d2aebba..e891d9c11d 100644
--- a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
+++ b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs
@@ -318,7 +318,7 @@ namespace OpenSim.Framework.Communications.Tests
{
TestHelper.InMethod();
- //Console.WriteLine("Starting T023_TestAuthenticatedLoginAlreadyLoggedIn()");
+ //Console.WriteLine("Starting T023_TestAuthenticatedLoginAlreadyLoggedIn()");
//log4net.Config.XmlConfigurator.Configure();
string error_already_logged = "You appear to be already logged in. " +
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs
index 1abd733a18..bf4f331e61 100644
--- a/OpenSim/Framework/Communications/UserManagerBase.cs
+++ b/OpenSim/Framework/Communications/UserManagerBase.cs
@@ -94,9 +94,9 @@ namespace OpenSim.Framework.Communications
public void AddPlugin(string provider, string connect)
{
m_plugins.AddRange(DataPluginFactory.LoadDataPlugins(provider, connect));
- }
+ }
- #region UserProfile
+ #region UserProfile
public virtual void AddTemporaryUserProfile(UserProfileData userProfile)
{
@@ -650,15 +650,17 @@ namespace OpenSim.Framework.Communications
public virtual UUID AddUser(
string firstName, string lastName, string password, string email, uint regX, uint regY, UUID SetUUID)
{
- string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + String.Empty);
UserProfileData user = new UserProfileData();
+
+ user.PasswordSalt = Util.Md5Hash(UUID.Random().ToString());
+ string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(password) + ":" + user.PasswordSalt);
+
user.HomeLocation = new Vector3(128, 128, 100);
user.ID = SetUUID;
user.FirstName = firstName;
user.SurName = lastName;
user.PasswordHash = md5PasswdHash;
- user.PasswordSalt = String.Empty;
user.Created = Util.UnixTimeSinceEpoch();
user.HomeLookAt = new Vector3(100, 100, 100);
user.HomeRegionX = regX;
@@ -922,8 +924,8 @@ namespace OpenSim.Framework.Communications
if (md5PasswordHash == userProfile.PasswordHash)
return true;
else
- return false;
- }
+ return false;
+ }
#endregion
}
diff --git a/OpenSim/Framework/Console/CommandConsole.cs b/OpenSim/Framework/Console/CommandConsole.cs
index 06136ffb7b..9671bc2375 100644
--- a/OpenSim/Framework/Console/CommandConsole.cs
+++ b/OpenSim/Framework/Console/CommandConsole.cs
@@ -88,7 +88,7 @@ namespace OpenSim.Framework.Console
/// Parsed parts of the help string. If empty then general help is returned.
///
public List GetHelp(string[] cmd)
- {
+ {
List help = new List();
List helpParts = new List(cmd);
@@ -115,7 +115,7 @@ namespace OpenSim.Framework.Console
///
///
private List CollectHelp(List helpParts)
- {
+ {
string originalHelpRequest = string.Join(" ", helpParts.ToArray());
List help = new List();
@@ -132,7 +132,7 @@ namespace OpenSim.Framework.Console
if (dict[helpPart] is Dictionary)
dict = (Dictionary)dict[helpPart];
- helpParts.RemoveAt(0);
+ helpParts.RemoveAt(0);
}
// There was a command for the given help string
@@ -149,7 +149,7 @@ namespace OpenSim.Framework.Console
}
return help;
- }
+ }
private List CollectHelp(Dictionary dict)
{
@@ -180,7 +180,7 @@ namespace OpenSim.Framework.Console
///
///
public void AddCommand(string module, bool shared, string command,
- string help, string longhelp, CommandDelegate fn)
+ string help, string longhelp, CommandDelegate fn)
{
AddCommand(module, shared, command, help, longhelp,
String.Empty, fn);
diff --git a/OpenSim/Framework/GridConfig.cs b/OpenSim/Framework/GridConfig.cs
index 9aa5d03b8c..3a43a14415 100644
--- a/OpenSim/Framework/GridConfig.cs
+++ b/OpenSim/Framework/GridConfig.cs
@@ -90,13 +90,13 @@ namespace OpenSim.Framework
m_configMember.addConfigurationOption("allow_forceful_banlines",
ConfigurationOption.ConfigurationTypes.TYPE_STRING,
- "Allow Forceful Banlines", "TRUE", true);
+ "Allow Forceful Banlines", "TRUE", true);
m_configMember.addConfigurationOption("allow_region_registration",
ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN,
"Allow regions to register immediately upon grid server startup? true/false",
"True",
- false);
+ false);
m_configMember.addConfigurationOption("console_user", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
"Remote console access user name [Default: disabled]", "", false);
@@ -147,7 +147,7 @@ namespace OpenSim.Framework
break;
case "allow_region_registration":
AllowRegionRegistration = (bool)configuration_result;
- break;
+ break;
case "console_user":
ConsoleUser = (string)configuration_result;
break;
diff --git a/OpenSim/Framework/IAssetCache.cs b/OpenSim/Framework/IAssetCache.cs
index 751fdd57fe..654180d42b 100644
--- a/OpenSim/Framework/IAssetCache.cs
+++ b/OpenSim/Framework/IAssetCache.cs
@@ -34,23 +34,23 @@ namespace OpenSim.Framework
///
/// Interface to the local asset cache. This is the mechanism through which assets can be added and requested.
- ///
+ ///
public interface IAssetCache : IPlugin
{
///
/// The 'server' from which assets can be requested and to which assets are persisted.
- ///
+ ///
- void Initialise(ConfigSettings cs);
+ void Initialise(ConfigSettings cs);
///
/// Report statistical data to the log.
- ///
+ ///
void ShowState();
///
/// Clear the asset cache.
- ///
+ ///
void Clear();
///
@@ -58,7 +58,7 @@ namespace OpenSim.Framework
///
///
///
- /// true if the asset was in the cache, false if it was not
+ /// true if the asset was in the cache, false if it was not
bool TryGetCachedAsset(UUID assetID, out AssetBase asset);
///
@@ -69,7 +69,7 @@ namespace OpenSim.Framework
///
/// A callback invoked when the asset has either been found or not found.
/// If the asset was found this is called with the asset UUID and the asset data
- /// If the asset was not found this is still called with the asset UUID but with a null asset data reference
+ /// If the asset was not found this is still called with the asset UUID but with a null asset data reference
void GetAsset(UUID assetID, AssetRequestCallback callback, bool isTexture);
///
@@ -84,13 +84,13 @@ namespace OpenSim.Framework
///
///
///
- /// null if the asset could not be retrieved
+ /// null if the asset could not be retrieved
AssetBase GetAsset(UUID assetID, bool isTexture);
///
/// Add an asset to both the persistent store and the cache.
///
- ///
+ ///
void AddAsset(AssetBase asset);
///
@@ -100,14 +100,14 @@ namespace OpenSim.Framework
/// of the asset cache. This is needed because the osdynamic
/// texture code grows the asset cache without bounds. The
/// real solution here is a much better cache archicture, but
- /// this is a stop gap measure until we have such a thing.
+ /// this is a stop gap measure until we have such a thing.
void ExpireAsset(UUID assetID);
///
/// Handle an asset request from the client. The result will be sent back asynchronously.
///
///
- ///
+ ///
void AddAssetRequest(IClientAPI userInfo, TransferRequestPacket transferRequest);
}
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 444adf9e8b..4bc35e6fa7 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -810,7 +810,7 @@ namespace OpenSim.Framework
///
void Start();
- void Stop();
+ void Stop();
// void ActivateGesture(UUID assetId, UUID gestureId);
@@ -824,7 +824,7 @@ namespace OpenSim.Framework
///
/// The id of the agent associated with the appearance
///
- ///
+ ///
void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry);
void SendStartPingCheck(byte seq);
@@ -833,7 +833,7 @@ namespace OpenSim.Framework
/// Tell the client that an object has been deleted
///
///
- ///
+ ///
void SendKillObject(ulong regionHandle, uint localID);
void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs);
diff --git a/OpenSim/Framework/ICnmCache.cs b/OpenSim/Framework/ICnmCache.cs
index a1ac3227c2..27b9c56318 100644
--- a/OpenSim/Framework/ICnmCache.cs
+++ b/OpenSim/Framework/ICnmCache.cs
@@ -180,16 +180,16 @@ namespace OpenSim.Framework
/// When adding an new element to that is limiting total size of elements,
/// will remove less recently used elements until it can fit an new element.
///
- ///
+ ///
///
///
- ///
+ ///
///
///
bool IsSizeLimited { get; }
///
- /// Gets a value indicating whether elements stored to have limited inactivity time.
+ /// Gets a value indicating whether elements stored to have limited inactivity time.
///
///
/// if the has a fixed total size of elements;
@@ -200,7 +200,7 @@ namespace OpenSim.Framework
/// or methods in , then element is automatically removed from
/// the cache. Depending on implementation of the , some of the elements may
/// stay longer in cache.
- ///
+ ///
///
///
///
@@ -237,7 +237,7 @@ namespace OpenSim.Framework
///
///
///
- ///
+ ///
long MaxElementSize { get; }
///
@@ -246,7 +246,7 @@ namespace OpenSim.Framework
///
/// Maximal allowed total size for elements stored to .
///
- ///
+ ///
///
/// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
///
@@ -278,10 +278,10 @@ namespace OpenSim.Framework
/// When adding an new element to that is limiting total size of elements,
/// will remove less recently used elements until it can fit an new element.
///
- ///
+ ///
///
///
- ///
+ ///
///
///
long Size { get; }
@@ -289,9 +289,9 @@ namespace OpenSim.Framework
///
/// Gets an object that can be used to synchronize access to the .
///
- ///
+ ///
/// An object that can be used to synchronize access to the .
- ///
+ ///
///
///
/// To get synchronized (thread safe) access to , use
@@ -322,7 +322,7 @@ namespace OpenSim.Framework
///
///
/// Depending on implementation, some of expired elements
- /// may stay longer than in the cache.
+ /// may stay longer than in the cache.
///
///
///
@@ -418,7 +418,7 @@ namespace OpenSim.Framework
///
///
/// if the contains an element with
- /// the specified key; otherwise, .
+ /// the specified key; otherwise, .
///
///
/// The key whose to get.
diff --git a/OpenSim/Framework/IRegionCommsListener.cs b/OpenSim/Framework/IRegionCommsListener.cs
index ba4c6167f6..307c6bc8b9 100644
--- a/OpenSim/Framework/IRegionCommsListener.cs
+++ b/OpenSim/Framework/IRegionCommsListener.cs
@@ -46,8 +46,6 @@ namespace OpenSim.Framework
public delegate bool CloseAgentConnection(UUID agentID);
- public delegate bool RegionUp(RegionInfo region);
-
public delegate bool ChildAgentUpdate(ChildAgentDataUpdate cAgentData);
public delegate void LogOffUser(UUID agentID, UUID regionSecret, string message);
@@ -65,7 +63,6 @@ namespace OpenSim.Framework
event AcknowledgePrimCross OnAcknowledgePrimCrossed;
event UpdateNeighbours OnNeighboursUpdate;
event CloseAgentConnection OnCloseAgentConnection;
- event RegionUp OnRegionUp;
event ChildAgentUpdate OnChildAgentUpdate;
event LogOffUser OnLogOffUser;
event GetLandData OnGetLandData;
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs
index 2e2c703e95..489653fe25 100644
--- a/OpenSim/Framework/IScene.cs
+++ b/OpenSim/Framework/IScene.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Framework
GodTakeCopy = 5,
Delete = 6,
Return = 9
- };
+ };
public interface IScene
{
@@ -74,7 +74,7 @@ namespace OpenSim.Framework
void CloseAllAgents(uint circuitcode);
void Restart(int seconds);
- bool OtherRegionUp(RegionInfo thisRegion);
+ //RegionInfo OtherRegionUp(RegionInfo thisRegion);
string GetSimulatorVersion();
diff --git a/OpenSim/Framework/ISceneObject.cs b/OpenSim/Framework/ISceneObject.cs
index db19527947..4fc3e01fcb 100644
--- a/OpenSim/Framework/ISceneObject.cs
+++ b/OpenSim/Framework/ISceneObject.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Framework
{
public interface ISceneObject
{
- UUID UUID { get; }
+ UUID UUID { get; }
ISceneObject CloneForNewScene();
string ToXml2();
string ExtraToXmlString();
diff --git a/OpenSim/Framework/InventoryFolderBase.cs b/OpenSim/Framework/InventoryFolderBase.cs
index 3eef6f64d6..a12183c535 100644
--- a/OpenSim/Framework/InventoryFolderBase.cs
+++ b/OpenSim/Framework/InventoryFolderBase.cs
@@ -89,7 +89,7 @@ namespace OpenSim.Framework
ID = id;
Name = name;
Owner = owner;
- ParentID = parent;
+ ParentID = parent;
}
public InventoryFolderBase(UUID id, string name, UUID owner, short type, UUID parent, ushort version)
diff --git a/OpenSim/Framework/InventoryFolderImpl.cs b/OpenSim/Framework/InventoryFolderImpl.cs
index 00462f918d..29c7682c2b 100644
--- a/OpenSim/Framework/InventoryFolderImpl.cs
+++ b/OpenSim/Framework/InventoryFolderImpl.cs
@@ -304,7 +304,7 @@ namespace OpenSim.Framework
///
/// Find a folder given a PATH_DELIMITER delimited path starting from this folder
- ///
+ ///
///
/// This method does not handle paths that contain multiple delimitors
///
@@ -314,7 +314,7 @@ namespace OpenSim.Framework
/// FIXME: Delimitors which occur in names themselves are not currently escapable.
///
///
- /// The path to the required folder.
+ /// The path to the required folder.
/// It this is empty or consists only of the PATH_DELIMTER then this folder itself is returned.
///
/// null if the folder is not found
diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs
index 7150c82a74..aeb01e2493 100644
--- a/OpenSim/Framework/InventoryItemBase.cs
+++ b/OpenSim/Framework/InventoryItemBase.cs
@@ -34,10 +34,10 @@ namespace OpenSim.Framework
/// Inventory Item - contains all the properties associated with an individual inventory piece.
///
public class InventoryItemBase : InventoryNodeBase, ICloneable
- {
+ {
///
/// The inventory type of the item. This is slightly different from the asset type in some situations.
- ///
+ ///
public int InvType
{
get
@@ -54,7 +54,7 @@ namespace OpenSim.Framework
///
/// The folder this item is contained in
- ///
+ ///
public UUID Folder
{
get
@@ -71,7 +71,7 @@ namespace OpenSim.Framework
///
/// The creator of this item
- ///
+ ///
public string CreatorId
{
get
@@ -114,7 +114,7 @@ namespace OpenSim.Framework
{
m_creatorIdAsUuid = value;
}
- }
+ }
protected UUID m_creatorIdAsUuid = UUID.Zero;
///
@@ -130,13 +130,13 @@ namespace OpenSim.Framework
set
{
m_description = value;
- }
+ }
}
protected string m_description = String.Empty;
///
///
- ///
+ ///
public uint NextPermissions
{
get
@@ -153,7 +153,7 @@ namespace OpenSim.Framework
///
/// A mask containing permissions for the current owner (cannot be enforced)
- ///
+ ///
public uint CurrentPermissions
{
get
@@ -170,7 +170,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public uint BasePermissions
{
get
@@ -187,7 +187,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public uint EveryOnePermissions
{
get
@@ -204,7 +204,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public uint GroupPermissions
{
get
@@ -221,7 +221,7 @@ namespace OpenSim.Framework
///
/// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
- ///
+ ///
public int AssetType
{
get
@@ -238,7 +238,7 @@ namespace OpenSim.Framework
///
/// The UUID of the associated asset on the asset server
- ///
+ ///
public UUID AssetID
{
get
@@ -255,7 +255,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public UUID GroupID
{
get
@@ -272,13 +272,13 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public bool GroupOwned
{
get
{
return m_groupOwned;
- }
+ }
set
{
@@ -289,7 +289,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public int SalePrice
{
get
@@ -306,7 +306,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public byte SaleType
{
get
@@ -323,7 +323,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public uint Flags
{
get
@@ -340,7 +340,7 @@ namespace OpenSim.Framework
///
///
- ///
+ ///
public int CreationDate
{
get
diff --git a/OpenSim/Framework/InventoryNodeBase.cs b/OpenSim/Framework/InventoryNodeBase.cs
index f49cce19fd..31c3fd1840 100644
--- a/OpenSim/Framework/InventoryNodeBase.cs
+++ b/OpenSim/Framework/InventoryNodeBase.cs
@@ -31,12 +31,12 @@ namespace OpenSim.Framework
{
///
/// Common base class for inventory nodes of different types (files, folders, etc.)
- ///
+ ///
public class InventoryNodeBase
- {
+ {
///
/// The name of the node (64 characters or less)
- ///
+ ///
public virtual string Name
{
get { return m_name; }
@@ -51,17 +51,17 @@ namespace OpenSim.Framework
{
get { return m_id; }
set { m_id = value; }
- }
+ }
private UUID m_id;
///
/// The agent who's inventory this is contained by
- ///
+ ///
public virtual UUID Owner
{
get { return m_owner; }
set { m_owner = value; }
}
- private UUID m_owner;
+ private UUID m_owner;
}
}
diff --git a/OpenSim/Framework/NetworkServersInfo.cs b/OpenSim/Framework/NetworkServersInfo.cs
index 3b00af3e3e..f7202226f9 100644
--- a/OpenSim/Framework/NetworkServersInfo.cs
+++ b/OpenSim/Framework/NetworkServersInfo.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Framework
{
public class NetworkServersInfo
{
- public string AssetSendKey = String.Empty;
+ public string AssetSendKey = String.Empty;
public string AssetURL = "http://127.0.0.1:" + ConfigSettings.DefaultAssetServerHttpPort.ToString() + "/";
public string GridRecvKey = String.Empty;
@@ -102,8 +102,7 @@ namespace OpenSim.Framework
ConfigSettings.DefaultInventoryServerHttpPort.ToString());
secureInventoryServer = config.Configs["Network"].GetBoolean("secure_inventory_server", true);
- MessagingURL = config.Configs["Network"].GetString("messaging_server_url",
- "http://127.0.0.1:" + ConfigSettings.DefaultMessageServerHttpPort);
+ MessagingURL = config.Configs["Network"].GetString("messaging_server_url", string.Empty);
}
}
}
diff --git a/OpenSim/Framework/RegionCommsListener.cs b/OpenSim/Framework/RegionCommsListener.cs
index 016c78ca63..90200d6e91 100644
--- a/OpenSim/Framework/RegionCommsListener.cs
+++ b/OpenSim/Framework/RegionCommsListener.cs
@@ -47,7 +47,6 @@ namespace OpenSim.Framework
private ExpectUserDelegate handlerExpectUser = null; // OnExpectUser
private UpdateNeighbours handlerNeighboursUpdate = null; // OnNeighboursUpdate;
private PrimCrossing handlerPrimCrossingIntoRegion = null; // OnPrimCrossingIntoRegion;
- private RegionUp handlerRegionUp = null; // OnRegionUp;
private LogOffUser handlerLogOffUser = null;
private GetLandData handlerGetLandData = null;
@@ -62,7 +61,6 @@ namespace OpenSim.Framework
public event AcknowledgeAgentCross OnAcknowledgeAgentCrossed;
public event AcknowledgePrimCross OnAcknowledgePrimCrossed;
public event CloseAgentConnection OnCloseAgentConnection;
- public event RegionUp OnRegionUp;
public event ChildAgentUpdate OnChildAgentUpdate;
public event LogOffUser OnLogOffUser;
public event GetLandData OnGetLandData;
@@ -108,17 +106,6 @@ namespace OpenSim.Framework
return false;
}
- public virtual bool TriggerRegionUp(RegionInfo region)
- {
- handlerRegionUp = OnRegionUp;
- if (handlerRegionUp != null)
- {
- handlerRegionUp(region);
- return true;
- }
- return false;
- }
-
public virtual bool TriggerChildAgentUpdate(ChildAgentDataUpdate cAgentData)
{
handlerChildAgentUpdate = OnChildAgentUpdate;
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index cee1d4b850..d3a5357e51 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -1040,7 +1040,7 @@ namespace OpenSim.Framework
public static RegionInfo Create(UUID regionID, string regionName, uint regX, uint regY, string externalHostName, uint httpPort, uint simPort, uint remotingPort, string serverURI)
{
RegionInfo regionInfo;
- IPEndPoint neighbourInternalEndPoint = new IPEndPoint(Util.GetHostFromDNS(externalHostName), (int)simPort);
+ IPEndPoint neighbourInternalEndPoint = new IPEndPoint(Util.GetHostFromDNS(externalHostName), (int)simPort);
regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, externalHostName);
regionInfo.RemotingPort = remotingPort;
regionInfo.RemotingAddress = externalHostName;
diff --git a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
new file mode 100644
index 0000000000..a3bc5d1153
--- /dev/null
+++ b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs
@@ -0,0 +1,191 @@
+/*
+ * 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.Text;
+using System.Xml;
+using OpenMetaverse;
+using OpenSim.Framework;
+
+namespace OpenSim.Framework.Serialization.External
+{
+ ///
+ /// Serialize and deserialize LandData as an external format.
+ ///
+ public class LandDataSerializer
+ {
+ protected static UTF8Encoding m_utf8Encoding = new UTF8Encoding();
+
+ ///
+ /// Reify/deserialize landData
+ ///
+ ///
+ ///
+ ///
+ public static LandData Deserialize(byte[] serializedLandData)
+ {
+ return Deserialize(m_utf8Encoding.GetString(serializedLandData, 0, serializedLandData.Length));
+ }
+
+ ///
+ /// Reify/deserialize landData
+ ///
+ ///
+ ///
+ ///
+ public static LandData Deserialize(string serializedLandData)
+ {
+ LandData landData = new LandData();
+
+ StringReader sr = new StringReader(serializedLandData);
+ XmlTextReader xtr = new XmlTextReader(sr);
+
+ xtr.ReadStartElement("LandData");
+
+ landData.Area = Convert.ToInt32( xtr.ReadElementString("Area"));
+ landData.AuctionID = Convert.ToUInt32( xtr.ReadElementString("AuctionID"));
+ landData.AuthBuyerID = UUID.Parse( xtr.ReadElementString("AuthBuyerID"));
+ landData.Category = (ParcelCategory)Convert.ToSByte( xtr.ReadElementString("Category"));
+ landData.ClaimDate = Convert.ToInt32( xtr.ReadElementString("ClaimDate"));
+ landData.ClaimPrice = Convert.ToInt32( xtr.ReadElementString("ClaimPrice"));
+ landData.GlobalID = UUID.Parse( xtr.ReadElementString("GlobalID"));
+ landData.GroupID = UUID.Parse( xtr.ReadElementString("GroupID"));
+ landData.IsGroupOwned = Convert.ToBoolean( xtr.ReadElementString("IsGroupOwned"));
+ landData.Bitmap = Convert.FromBase64String( xtr.ReadElementString("Bitmap"));
+ landData.Description = xtr.ReadElementString("Description");
+ landData.Flags = Convert.ToUInt32( xtr.ReadElementString("Flags"));
+ landData.LandingType = Convert.ToByte( xtr.ReadElementString("LandingType"));
+ landData.Name = xtr.ReadElementString("Name");
+ landData.Status = (ParcelStatus)Convert.ToSByte( xtr.ReadElementString("Status"));
+ landData.LocalID = Convert.ToInt32( xtr.ReadElementString("LocalID"));
+ landData.MediaAutoScale = Convert.ToByte( xtr.ReadElementString("MediaAutoScale"));
+ landData.MediaID = UUID.Parse( xtr.ReadElementString("MediaID"));
+ landData.MediaURL = xtr.ReadElementString("MediaURL");
+ landData.MusicURL = xtr.ReadElementString("MusicURL");
+ landData.OwnerID = UUID.Parse( xtr.ReadElementString("OwnerID"));
+
+ landData.ParcelAccessList = new List();
+ xtr.Read();
+ if (xtr.Name != "ParcelAccessList")
+ throw new XmlException(String.Format("Expected \"ParcelAccessList\" element but got \"{0}\"", xtr.Name));
+
+ if (!xtr.IsEmptyElement)
+ {
+ while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement)
+ {
+ ParcelManager.ParcelAccessEntry pae = new ParcelManager.ParcelAccessEntry();
+
+ xtr.ReadStartElement("ParcelAccessEntry");
+ pae.AgentID = UUID.Parse( xtr.ReadElementString("AgentID"));
+ pae.Time = Convert.ToDateTime( xtr.ReadElementString("Time"));
+ pae.Flags = (AccessList)Convert.ToUInt32( xtr.ReadElementString("AccessList"));
+ xtr.ReadEndElement();
+
+ landData.ParcelAccessList.Add(pae);
+ }
+ }
+ xtr.Read();
+
+ landData.PassHours = Convert.ToSingle( xtr.ReadElementString("PassHours"));
+ landData.PassPrice = Convert.ToInt32( xtr.ReadElementString("PassPrice"));
+ landData.SalePrice = Convert.ToInt32( xtr.ReadElementString("SalePrice"));
+ landData.SnapshotID = UUID.Parse( xtr.ReadElementString("SnapshotID"));
+ landData.UserLocation = Vector3.Parse( xtr.ReadElementString("UserLocation"));
+ landData.UserLookAt = Vector3.Parse( xtr.ReadElementString("UserLookAt"));
+ landData.Dwell = Convert.ToInt32( xtr.ReadElementString("Dwell"));
+ landData.OtherCleanTime = Convert.ToInt32( xtr.ReadElementString("OtherCleanTime"));
+
+ xtr.ReadEndElement();
+
+ xtr.Close();
+ sr.Close();
+
+ return landData;
+ }
+
+ public static string Serialize(LandData landData)
+ {
+ StringWriter sw = new StringWriter();
+ XmlTextWriter xtw = new XmlTextWriter(sw);
+ xtw.Formatting = Formatting.Indented;
+
+ xtw.WriteStartDocument();
+ xtw.WriteStartElement("LandData");
+
+ xtw.WriteElementString("Area", Convert.ToString(landData.Area));
+ xtw.WriteElementString("AuctionID", Convert.ToString(landData.AuctionID));
+ xtw.WriteElementString("AuthBuyerID", landData.AuthBuyerID.ToString());
+ xtw.WriteElementString("Category", Convert.ToString((sbyte)landData.Category));
+ xtw.WriteElementString("ClaimDate", Convert.ToString(landData.ClaimDate));
+ xtw.WriteElementString("ClaimPrice", Convert.ToString(landData.ClaimPrice));
+ xtw.WriteElementString("GlobalID", landData.GlobalID.ToString());
+ xtw.WriteElementString("GroupID", landData.GroupID.ToString());
+ xtw.WriteElementString("IsGroupOwned", Convert.ToString(landData.IsGroupOwned));
+ xtw.WriteElementString("Bitmap", Convert.ToBase64String(landData.Bitmap));
+ xtw.WriteElementString("Description", landData.Description);
+ xtw.WriteElementString("Flags", Convert.ToString((uint)landData.Flags));
+ xtw.WriteElementString("LandingType", Convert.ToString((byte)landData.LandingType));
+ xtw.WriteElementString("Name", landData.Name);
+ xtw.WriteElementString("Status", Convert.ToString((sbyte)landData.Status));
+ xtw.WriteElementString("LocalID", landData.LocalID.ToString());
+ xtw.WriteElementString("MediaAutoScale", Convert.ToString(landData.MediaAutoScale));
+ xtw.WriteElementString("MediaID", landData.MediaID.ToString());
+ xtw.WriteElementString("MediaURL", landData.MediaURL);
+ xtw.WriteElementString("MusicURL", landData.MusicURL);
+ xtw.WriteElementString("OwnerID", landData.OwnerID.ToString());
+
+ xtw.WriteStartElement("ParcelAccessList");
+ foreach (ParcelManager.ParcelAccessEntry pal in landData.ParcelAccessList)
+ {
+ xtw.WriteStartElement("ParcelAccessEntry");
+ xtw.WriteElementString("AgentID", pal.AgentID.ToString());
+ xtw.WriteElementString("Time", pal.Time.ToString("s"));
+ xtw.WriteElementString("AccessList", Convert.ToString((uint)pal.Flags));
+ xtw.WriteEndElement();
+ }
+ xtw.WriteEndElement();
+
+ xtw.WriteElementString("PassHours", Convert.ToString(landData.PassHours));
+ xtw.WriteElementString("PassPrice", Convert.ToString(landData.PassPrice));
+ xtw.WriteElementString("SalePrice", Convert.ToString(landData.SalePrice));
+ xtw.WriteElementString("SnapshotID", landData.SnapshotID.ToString());
+ xtw.WriteElementString("UserLocation", landData.UserLocation.ToString());
+ xtw.WriteElementString("UserLookAt", landData.UserLookAt.ToString());
+ xtw.WriteElementString("Dwell", Convert.ToString(landData.Dwell));
+ xtw.WriteElementString("OtherCleanTime", Convert.ToString(landData.OtherCleanTime));
+
+ xtw.WriteEndElement();
+
+ xtw.Close();
+ sw.Close();
+
+ return sw.ToString();
+ }
+ }
+}
diff --git a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
index 274f41f982..b5901e1bf8 100644
--- a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
@@ -158,7 +158,7 @@ namespace OpenSim.Framework.Serialization.External
settings.Elevation2NE = double.Parse(xtr.ReadElementContentAsString());
break;
}
- }
+ }
xtr.ReadEndElement();
xtr.ReadStartElement("Terrain");
@@ -200,8 +200,8 @@ namespace OpenSim.Framework.Serialization.External
xtw.WriteStartElement("RegionSettings");
- xtw.WriteStartElement("General");
- xtw.WriteElementString("AllowDamage", settings.AllowDamage.ToString());
+ xtw.WriteStartElement("General");
+ xtw.WriteElementString("AllowDamage", settings.AllowDamage.ToString());
xtw.WriteElementString("AllowLandResell", settings.AllowLandResell.ToString());
xtw.WriteElementString("AllowLandJoinDivide", settings.AllowLandJoinDivide.ToString());
xtw.WriteElementString("BlockFly", settings.BlockFly.ToString());
diff --git a/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs b/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs
index eb77e65bc8..fb269b7a6d 100644
--- a/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Framework.Serialization.External
/// Serialize and deserialize region settings as an external format.
///
public class UserProfileSerializer
- {
+ {
public const int MAJOR_VERSION = 0;
public const int MINOR_VERSION = 1;
@@ -65,6 +65,6 @@ namespace OpenSim.Framework.Serialization.External
sw.Close();
return sw.ToString();
- }
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs b/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
new file mode 100644
index 0000000000..14e04621a4
--- /dev/null
+++ b/OpenSim/Framework/Serialization/Tests/LandDataSerializerTests.cs
@@ -0,0 +1,131 @@
+/*
+ * 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;
+using OpenSim.Framework.Serialization.External;
+using OpenMetaverse;
+using OpenMetaverse.StructuredData;
+using NUnit.Framework;
+
+namespace OpenSim.Framework.Serialization.Tests
+{
+ [TestFixture]
+ public class LandDataSerializerTest
+ {
+ private LandData land;
+ private LandData landWithParcelAccessList;
+
+ private static string preSerialized = "\n\n 128\n 0\n 00000000-0000-0000-0000-000000000000\n 10\n 0\n 0\n 54ff9641-dd40-4a2c-b1f1-47dd3af24e50\n d740204e-bbbf-44aa-949d-02c7d739f6a5\n False\n AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\n land data to test LandDataSerializer\n 536870944\n 2\n LandDataSerializerTest Land\n 0\n 0\n 1\n d4452578-2f25-4b97-a81b-819af559cfd7\n http://videos.opensimulator.org/bumblebee.mp4\n \n 1b8eedf9-6d15-448b-8015-24286f1756bf\n \n 0\n 0\n 0\n 00000000-0000-0000-0000-000000000000\n <0, 0, 0>\n <0, 0, 0>\n 0\n 0\n";
+ private static string preSerializedWithParcelAccessList = "\n\n 128\n 0\n 00000000-0000-0000-0000-000000000000\n 10\n 0\n 0\n 54ff9641-dd40-4a2c-b1f1-47dd3af24e50\n d740204e-bbbf-44aa-949d-02c7d739f6a5\n False\n AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\n land data to test LandDataSerializer\n 536870944\n 2\n LandDataSerializerTest Land\n 0\n 0\n 1\n d4452578-2f25-4b97-a81b-819af559cfd7\n http://videos.opensimulator.org/bumblebee.mp4\n \n 1b8eedf9-6d15-448b-8015-24286f1756bf\n \n \n 62d65d45-c91a-4f77-862c-46557d978b6c\n \n 2\n \n \n ec2a8d18-2378-4fe0-8b68-2a31b57c481e\n \n 1\n \n \n 0\n 0\n 0\n 00000000-0000-0000-0000-000000000000\n <0, 0, 0>\n <0, 0, 0>\n 0\n 0\n";
+
+
+
+
+ [SetUp]
+ public void setup()
+ {
+ // setup LandData object
+ this.land = new LandData();
+ this.land.AABBMax = new Vector3(0, 0, 0);
+ this.land.AABBMin = new Vector3(128, 128, 128);
+ this.land.Area = 128;
+ this.land.AuctionID = 0;
+ this.land.AuthBuyerID = new UUID();
+ this.land.Category = ParcelCategory.Residential;
+ this.land.ClaimDate = 0;
+ this.land.ClaimPrice = 0;
+ this.land.GlobalID = new UUID("54ff9641-dd40-4a2c-b1f1-47dd3af24e50");
+ this.land.GroupID = new UUID("d740204e-bbbf-44aa-949d-02c7d739f6a5");
+ this.land.GroupPrims = 0;
+ this.land.Description = "land data to test LandDataSerializer";
+ this.land.Flags = (uint)(ParcelFlags.AllowDamage | ParcelFlags.AllowVoiceChat);
+ this.land.LandingType = (byte)LandingType.Direct;
+ this.land.Name = "LandDataSerializerTest Land";
+ this.land.Status = ParcelStatus.Leased;
+ this.land.LocalID = 0;
+ this.land.MediaAutoScale = (byte)0x01;
+ this.land.MediaID = new UUID("d4452578-2f25-4b97-a81b-819af559cfd7");
+ this.land.MediaURL = "http://videos.opensimulator.org/bumblebee.mp4";
+ this.land.OwnerID = new UUID("1b8eedf9-6d15-448b-8015-24286f1756bf");
+
+ this.landWithParcelAccessList = this.land.Copy();
+ this.landWithParcelAccessList.ParcelAccessList.Clear();
+
+ ParcelManager.ParcelAccessEntry pae0 = new ParcelManager.ParcelAccessEntry();
+ pae0.AgentID = new UUID("62d65d45-c91a-4f77-862c-46557d978b6c");
+ pae0.Flags = AccessList.Ban;
+ pae0.Time = new DateTime(2009, 10, 01);
+ this.landWithParcelAccessList.ParcelAccessList.Add(pae0);
+
+ ParcelManager.ParcelAccessEntry pae1 = new ParcelManager.ParcelAccessEntry();
+ pae1.AgentID = new UUID("ec2a8d18-2378-4fe0-8b68-2a31b57c481e");
+ pae1.Flags = AccessList.Access;
+ pae1.Time = new DateTime(2010, 10, 20);
+ this.landWithParcelAccessList.ParcelAccessList.Add(pae1);
+ }
+
+ ///
+ /// Test the LandDataSerializer.Serialize() method
+ ///
+ [Test]
+ public void LandDataSerializerSerializeTest()
+ {
+ string serialized = LandDataSerializer.Serialize(this.land);
+ Assert.That(serialized.Length > 0, "Serialize(LandData) returned empty string");
+ Assert.That(serialized == LandDataSerializerTest.preSerialized,
+ "result of Serialize(LandData) does not match expected result");
+
+ string serializedWithParcelAccessList = LandDataSerializer.Serialize(this.landWithParcelAccessList);
+ Assert.That(serializedWithParcelAccessList.Length > 0,
+ "Serialize(LandData) returned empty string for LandData object with ParcelAccessList");
+ Assert.That(serializedWithParcelAccessList == LandDataSerializerTest.preSerializedWithParcelAccessList,
+ "result of Serialize(LandData) does not match expected result (pre-serialized with parcel access list");
+ }
+
+ ///
+ /// Test the LandDataSerializer.Deserialize() method
+ ///
+ [Test]
+ public void TestLandDataSerializerDeserializeFromStringTest()
+ {
+ LandData reifiedLandData = LandDataSerializer.Deserialize(LandDataSerializerTest.preSerialized);
+ Assert.That(reifiedLandData != null, "Deserialize(string) returned null");
+ Assert.That(reifiedLandData.GlobalID == this.land.GlobalID, "Reified LandData.GlobalID != original LandData.GlobalID");
+ Assert.That(reifiedLandData.Name == this.land.Name, "Reified LandData.Name != original LandData.Name");
+
+ LandData reifiedLandDataWithParcelAccessList = LandDataSerializer.Deserialize(LandDataSerializerTest.preSerializedWithParcelAccessList);
+ Assert.That(reifiedLandDataWithParcelAccessList != null,
+ "Deserialize(string) returned null (pre-serialized with parcel access list)");
+ Assert.That(reifiedLandDataWithParcelAccessList.GlobalID == this.landWithParcelAccessList.GlobalID,
+ "Reified LandData.GlobalID != original LandData.GlobalID (pre-serialized with parcel access list)");
+ Assert.That(reifiedLandDataWithParcelAccessList.Name == this.landWithParcelAccessList.Name,
+ "Reified LandData.Name != original LandData.Name (pre-serialized with parcel access list)");
+ }
+ }
+}
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 7a244ff2ef..632b551f47 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -158,7 +158,7 @@ namespace OpenSim.Framework.Servers
m_consoleAppender.Threshold = Level.All;
Notice(String.Format("Console log level is {0}", m_consoleAppender.Threshold));
- }
+ }
m_console.Commands.AddCommand("base", false, "quit",
"quit",
@@ -196,7 +196,7 @@ namespace OpenSim.Framework.Servers
///
/// Should be overriden and referenced by descendents if they need to perform extra shutdown processing
- ///
+ ///
public virtual void ShutdownSpecific() {}
///
@@ -286,7 +286,7 @@ namespace OpenSim.Framework.Servers
///
public virtual void Startup()
{
- m_log.Info("[STARTUP]: Beginning startup processing");
+ m_log.Info("[STARTUP]: Beginning startup processing");
EnhanceVersionInformation();
@@ -301,7 +301,7 @@ namespace OpenSim.Framework.Servers
///
/// Should be overriden and referenced by descendents if they need to perform extra shutdown processing
- ///
+ ///
public virtual void Shutdown()
{
ShutdownSpecific();
@@ -367,7 +367,7 @@ namespace OpenSim.Framework.Servers
}
public virtual void HandleShow(string module, string[] cmd)
- {
+ {
List args = new List(cmd);
args.RemoveAt(0);
@@ -375,7 +375,7 @@ namespace OpenSim.Framework.Servers
string[] showParams = args.ToArray();
switch (showParams[0])
- {
+ {
case "info":
Notice("Version: " + m_version);
Notice("Startup directory: " + m_startupDirectory);
diff --git a/OpenSim/Framework/Servers/HttpServer/AsynchronousRestObjectRequester.cs b/OpenSim/Framework/Servers/HttpServer/AsynchronousRestObjectRequester.cs
index fe69ad35d8..5afa110cad 100644
--- a/OpenSim/Framework/Servers/HttpServer/AsynchronousRestObjectRequester.cs
+++ b/OpenSim/Framework/Servers/HttpServer/AsynchronousRestObjectRequester.cs
@@ -168,7 +168,7 @@ namespace OpenSim.Framework.Servers.HttpServer
"[ASYNC REQUEST]: Request {0} {1} callback failed with exception {2}", verb, requestUrl, e);
}
- }, null);
+ }, null);
}
}
}
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 01990fa0a4..6c63c6c807 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -110,7 +110,7 @@ namespace OpenSim.Framework.Servers.HttpServer
public BaseHttpServer(uint port, bool ssl) : this (port)
{
- m_ssl = ssl;
+ m_ssl = ssl;
}
public BaseHttpServer(uint port, bool ssl, uint sslport, string CN) : this (port, ssl)
@@ -156,7 +156,7 @@ namespace OpenSim.Framework.Servers.HttpServer
lock (m_rpcHandlers)
{
m_rpcHandlers[method] = handler;
- m_rpcHandlersKeepAlive[method] = keepAlive; // default
+ m_rpcHandlersKeepAlive[method] = keepAlive; // default
}
return true;
@@ -323,7 +323,7 @@ namespace OpenSim.Framework.Servers.HttpServer
OSHttpRequest request = objstate.oreq;
OSHttpResponse resp = objstate.oresp;
- HandleRequest(request,resp);
+ HandleRequest(request,resp);
}
public virtual void HandleRequest(OSHttpRequest request, OSHttpResponse response)
@@ -712,7 +712,7 @@ namespace OpenSim.Framework.Servers.HttpServer
lock (m_rpcHandlers)
{
methodWasFound = m_rpcHandlers.TryGetValue(methodName, out method);
- }
+ }
if (methodWasFound)
{
@@ -931,7 +931,7 @@ namespace OpenSim.Framework.Servers.HttpServer
}
catch (IOException e)
{
- m_log.DebugFormat("[BASE HTTP SERVER] LLSD IOException {0}.", e);
+ m_log.DebugFormat("[BASE HTTP SERVER] LLSD IOException {0}.", e);
}
catch (SocketException e)
{
@@ -1368,7 +1368,7 @@ namespace OpenSim.Framework.Servers.HttpServer
bestMatch = pattern;
}
}
- }
+ }
if (String.IsNullOrEmpty(bestMatch))
{
@@ -1480,7 +1480,7 @@ namespace OpenSim.Framework.Servers.HttpServer
{
m_log.Warn("[BASE HTTP SERVER] XmlRpcRequest issue: " + e.Message);
}
- }
+ }
}
public void SendHTML404(OSHttpResponse response, string host)
@@ -1589,7 +1589,7 @@ namespace OpenSim.Framework.Servers.HttpServer
// if you want more detailed trace information from the HttpServer
//m_httpListener2.UseTraceLogs = true;
- //m_httpListener2.DisconnectHandler = httpServerDisconnectMonitor;
+ //m_httpListener2.DisconnectHandler = httpServerDisconnectMonitor;
}
else
{
@@ -1624,7 +1624,7 @@ namespace OpenSim.Framework.Servers.HttpServer
}
public void httpServerDisconnectMonitor(IHttpClientContext source, SocketError err)
- {
+ {
switch (err)
{
case SocketError.NotSocket:
@@ -1635,7 +1635,7 @@ namespace OpenSim.Framework.Servers.HttpServer
}
public void httpServerException(object source, Exception exception)
- {
+ {
m_log.ErrorFormat("[HTTPSERVER]: {0} had an exception {1}", source.ToString(), exception.ToString());
/*
if (HTTPDRunning)// && NotSocketErrors > 5)
@@ -1662,7 +1662,7 @@ namespace OpenSim.Framework.Servers.HttpServer
}
catch (NullReferenceException)
{
- m_log.Warn("[BASEHTTPSERVER]: Null Reference when stopping HttpServer.");
+ m_log.Warn("[BASEHTTPSERVER]: Null Reference when stopping HttpServer.");
}
}
diff --git a/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs
index 1bdf4fa984..d13408de86 100644
--- a/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs
@@ -128,6 +128,6 @@ namespace OpenSim.Framework.Servers.HttpServer
string GetHTTP404(string host);
- string GetHTTP500();
+ string GetHTTP500();
}
}
diff --git a/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs b/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs
index ebb2691dfd..a0d40089f7 100644
--- a/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs
+++ b/OpenSim/Framework/Servers/HttpServer/SynchronousRestFormsRequester.cs
@@ -59,11 +59,11 @@ namespace OpenSim.Framework.Servers.HttpServer
int length = 0;
using (StreamWriter writer = new StreamWriter(buffer))
{
- writer.WriteLine(obj);
+ writer.Write(obj);
writer.Flush();
- length = (int)buffer.Length;
}
+ length = (int)obj.Length;
request.ContentLength = length;
Stream requestStream = request.GetRequestStream();
diff --git a/OpenSim/Framework/Servers/VersionInfo.cs b/OpenSim/Framework/Servers/VersionInfo.cs
index 376d221d60..62e7e92b29 100644
--- a/OpenSim/Framework/Servers/VersionInfo.cs
+++ b/OpenSim/Framework/Servers/VersionInfo.cs
@@ -56,7 +56,7 @@ namespace OpenSim
public const int VERSIONINFO_VERSION_LENGTH = 27;
///
- /// This is the external interface version. It is separate from the OpenSimulator project version.
+ /// This is the external interface version. It is separate from the OpenSimulator project version.
///
/// This version number should be
/// increased by 1 every time a code change makes the previous OpenSimulator revision incompatible
@@ -67,7 +67,7 @@ namespace OpenSim
///
/// Having this version number allows the grid service to reject connections from regions running a version
/// of the code that is too old.
- ///
+ ///
///
public readonly static int MajorInterfaceVersion = 6;
}
diff --git a/OpenSim/Framework/SimStats.cs b/OpenSim/Framework/SimStats.cs
index 084964d101..3d8f32f0d1 100644
--- a/OpenSim/Framework/SimStats.cs
+++ b/OpenSim/Framework/SimStats.cs
@@ -35,9 +35,9 @@ namespace OpenSim.Framework
///
/// TODO: This looks very much like the OpenMetaverse SimStatsPacket. It should be much more generic stats
/// storage.
- ///
+ ///
public class SimStats
- {
+ {
public uint RegionX
{
get { return m_regionX; }
@@ -47,25 +47,25 @@ namespace OpenSim.Framework
public uint RegionY
{
get { return m_regionY; }
- }
+ }
private uint m_regionY;
public SimStatsPacket.RegionBlock RegionBlock
{
get { return m_regionBlock; }
- }
+ }
private SimStatsPacket.RegionBlock m_regionBlock;
public SimStatsPacket.StatBlock[] StatsBlock
{
get { return m_statsBlock; }
- }
+ }
private SimStatsPacket.StatBlock[] m_statsBlock;
public uint RegionFlags
{
get { return m_regionFlags; }
- }
+ }
private uint m_regionFlags;
public uint ObjectCapacity
@@ -76,7 +76,7 @@ namespace OpenSim.Framework
public UUID RegionUUID
{
- get { return regionUUID;}
+ get { return regionUUID; }
}
private UUID regionUUID;
diff --git a/OpenSim/Framework/TaskInventoryDictionary.cs b/OpenSim/Framework/TaskInventoryDictionary.cs
index 946d7f577f..25ae6b05c6 100644
--- a/OpenSim/Framework/TaskInventoryDictionary.cs
+++ b/OpenSim/Framework/TaskInventoryDictionary.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Framework
/// A dictionary for task inventory.
///
/// This class is not thread safe. Callers must synchronize on Dictionary methods or Clone() this object before
- /// iterating over it.
+ /// iterating over it.
public class TaskInventoryDictionary : Dictionary,
ICloneable, IXmlSerializable
{
diff --git a/OpenSim/Framework/ThreadTracker.cs b/OpenSim/Framework/ThreadTracker.cs
index fa6f0b8d0f..d3a239de22 100644
--- a/OpenSim/Framework/ThreadTracker.cs
+++ b/OpenSim/Framework/ThreadTracker.cs
@@ -57,7 +57,7 @@ namespace OpenSim.Framework
}
private static void ThreadTrackerThreadLoop()
- {
+ {
try
{
while (true)
@@ -70,8 +70,8 @@ namespace OpenSim.Framework
{
m_log.ErrorFormat(
"[THREAD TRACKER]: Thread tracker cleanup thread terminating with exception. Please report this error. Exception is {0}",
- e);
- }
+ e);
+ }
}
public static void Add(Thread thread)
diff --git a/OpenSim/Framework/UserConfig.cs b/OpenSim/Framework/UserConfig.cs
index 16f265cf70..0fa82cf4c2 100644
--- a/OpenSim/Framework/UserConfig.cs
+++ b/OpenSim/Framework/UserConfig.cs
@@ -133,7 +133,7 @@ namespace OpenSim.Framework
m_configMember.addConfigurationOption("library_location",
ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY,
"Path to library control file",
- string.Format(".{0}inventory{0}Libraries.xml", Path.DirectorySeparatorChar), false);
+ string.Format(".{0}inventory{0}Libraries.xml", Path.DirectorySeparatorChar), false);
m_configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
"DLL for database provider", "OpenSim.Data.MySQL.dll", false);
diff --git a/OpenSim/Framework/UserProfileData.cs b/OpenSim/Framework/UserProfileData.cs
index f51a1997c4..413f152e4e 100644
--- a/OpenSim/Framework/UserProfileData.cs
+++ b/OpenSim/Framework/UserProfileData.cs
@@ -217,7 +217,7 @@ namespace OpenSim.Framework
public string Name
{
get { return String.Format("{0} {1}", m_firstname, m_surname); }
- }
+ }
public string Email
{
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 45b5a105fd..17fc58caa8 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -54,7 +54,7 @@ namespace OpenSim.Framework
///
public class Util
{
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static uint nextXferID = 5000;
private static Random randomClass = new Random();
@@ -136,7 +136,7 @@ namespace OpenSim.Framework
float dx = a.X - b.X;
float dy = a.Y - b.Y;
float dz = a.Z - b.Z;
- return (dx*dx + dy*dy + dz*dz) < (amount*amount);
+ return (dx*dx + dy*dy + dz*dz) < (amount*amount);
}
///
@@ -975,7 +975,7 @@ namespace OpenSim.Framework
else
{
os = ReadEtcIssue();
- }
+ }
if (os.Length > 45)
{
@@ -1203,6 +1203,32 @@ namespace OpenSim.Framework
return found.ToArray();
}
+ public static string ServerURI(string uri)
+ {
+ if (uri == string.Empty)
+ return string.Empty;
+
+ // Get rid of eventual slashes at the end
+ uri = uri.TrimEnd('/');
+
+ IPAddress ipaddr1 = null;
+ string port1 = "";
+ try
+ {
+ ipaddr1 = Util.GetHostFromURL(uri);
+ }
+ catch { }
+
+ try
+ {
+ port1 = uri.Split(new char[] { ':' })[2];
+ }
+ catch { }
+
+ // We tried our best to convert the domain names to IP addresses
+ return (ipaddr1 != null) ? "http://" + ipaddr1.ToString() + ":" + port1 : uri;
+ }
+
#region FireAndForget Threading Pattern
public static void FireAndForget(System.Threading.WaitCallback callback)
diff --git a/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs b/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs
index 8006119959..76c4899206 100644
--- a/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs
+++ b/OpenSim/Grid/MessagingServer.Modules/UserDataBaseService.cs
@@ -70,6 +70,6 @@ namespace OpenSim.Grid.MessagingServer.Modules
{
//throw new Exception("The method or operation is not implemented.");
return null;
- }
+ }
}
}
diff --git a/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs b/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs
index 9d31d813ba..77caf4726e 100644
--- a/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs
+++ b/OpenSim/Grid/UserServer.Modules/UserLoginAuthService.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Grid.UserServer.Modules
///
/// Hypergrid login service used in grid mode.
- ///
+ ///
public class UserLoginAuthService : HGLoginAuthService
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
diff --git a/OpenSim/Grid/UserServer.Modules/UserLoginService.cs b/OpenSim/Grid/UserServer.Modules/UserLoginService.cs
index 01d5537056..7d0e0de410 100644
--- a/OpenSim/Grid/UserServer.Modules/UserLoginService.cs
+++ b/OpenSim/Grid/UserServer.Modules/UserLoginService.cs
@@ -34,6 +34,7 @@ using System.Text.RegularExpressions;
using log4net;
using Nwc.XmlRpc;
using OpenMetaverse;
+using Nini.Config;
using OpenSim.Data;
using OpenSim.Framework;
using OpenSim.Framework.Communications;
@@ -42,6 +43,9 @@ 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
{
@@ -51,7 +55,7 @@ namespace OpenSim.Grid.UserServer.Modules
///
/// Login service used in grid mode.
- ///
+ ///
public class UserLoginService : LoginService
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -63,6 +67,8 @@ namespace OpenSim.Grid.UserServer.Modules
public UserConfig m_config;
private readonly IRegionProfileRouter m_regionProfileService;
+ private IGridService m_GridService;
+
protected BaseHttpServer m_httpServer;
public UserLoginService(
@@ -76,6 +82,8 @@ namespace OpenSim.Grid.UserServer.Modules
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)
@@ -203,47 +211,38 @@ namespace OpenSim.Grid.UserServer.Modules
protected override RegionInfo RequestClosestRegion(string region)
{
- RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(region,
- m_config.GridServerURL, m_config.GridSendKey, m_config.GridRecvKey);
-
- if (profileData != null)
- {
- return profileData.ToRegionInfo();
- }
- else
- {
- return null;
- }
+ return GridRegionToRegionInfo(m_GridService.GetRegionByName(UUID.Zero, region));
}
protected override RegionInfo GetRegionInfo(ulong homeRegionHandle)
{
- RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(homeRegionHandle,
- m_config.GridServerURL, m_config.GridSendKey,
- m_config.GridRecvKey);
- if (profileData != null)
- {
- return profileData.ToRegionInfo();
- }
- else
- {
- return null;
- }
+ 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)
{
- RegionProfileData profileData = m_regionProfileService.RequestSimProfileData(homeRegionId,
- m_config.GridServerURL, m_config.GridSendKey,
- m_config.GridRecvKey);
- if (profileData != null)
- {
- return profileData.ToRegionInfo();
- }
- else
- {
+ 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)
@@ -280,9 +279,8 @@ namespace OpenSim.Grid.UserServer.Modules
//response.SeedCapability = serverURI + CapsUtil.GetCapsSeedPath(capsPath);
// Take off trailing / so that the caps path isn't //CAPS/someUUID
- if (regionInfo.httpServerURI.EndsWith("/"))
- regionInfo.httpServerURI = regionInfo.httpServerURI.Substring(0, regionInfo.httpServerURI.Length - 1);
- response.SeedCapability = regionInfo.httpServerURI + CapsUtil.GetCapsSeedPath(capsPath);
+ string uri = regionInfo.httpServerURI.Trim(new char[] { '/' });
+ response.SeedCapability = uri + CapsUtil.GetCapsSeedPath(capsPath);
// Notify the target of an incoming user
diff --git a/OpenSim/Grid/UserServer.Modules/UserManager.cs b/OpenSim/Grid/UserServer.Modules/UserManager.cs
index efbf45ea91..36c6297440 100644
--- a/OpenSim/Grid/UserServer.Modules/UserManager.cs
+++ b/OpenSim/Grid/UserServer.Modules/UserManager.cs
@@ -229,7 +229,7 @@ namespace OpenSim.Grid.UserServer.Modules
UserProfileData userProfile = m_userDataBaseService.GetUserProfile(userUuid);
if (null == userProfile)
- return Util.CreateUnknownUserErrorResponse();
+ return Util.CreateUnknownUserErrorResponse();
string authed;
@@ -249,12 +249,12 @@ namespace OpenSim.Grid.UserServer.Modules
// "[USER MANAGER]: Authentication by password result from {0} for {1} is {2}",
// remoteClient, userUuid, authed);
- XmlRpcResponse response = new XmlRpcResponse();
- Hashtable responseData = new Hashtable();
+ XmlRpcResponse response = new XmlRpcResponse();
+ Hashtable responseData = new Hashtable();
responseData["auth_user"] = authed;
response.Value = responseData;
- return response;
+ return response;
}
public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request, IPEndPoint remoteClient)
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs
index a92226d429..286076d7dc 100644
--- a/OpenSim/Grid/UserServer/Main.cs
+++ b/OpenSim/Grid/UserServer/Main.cs
@@ -187,13 +187,13 @@ namespace OpenSim.Grid.UserServer
///
protected virtual void StartupUserServerModules()
{
- m_log.Info("[STARTUP]: Establishing data connection");
+ 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);
+ 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);
diff --git a/OpenSim/Grid/UserServer/UserServerCommsManager.cs b/OpenSim/Grid/UserServer/UserServerCommsManager.cs
index 7200836887..8ef693b0b2 100644
--- a/OpenSim/Grid/UserServer/UserServerCommsManager.cs
+++ b/OpenSim/Grid/UserServer/UserServerCommsManager.cs
@@ -28,9 +28,9 @@
using OpenSim.Framework.Communications;
namespace OpenSim.Grid.UserServer
-{
+{
public class UserServerCommsManager : CommunicationsManager
- {
+ {
public UserServerCommsManager(IInterServiceInventoryServices interServiceInventoryService)
: base(null, null)
{
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs
index 2fd26bf964..241af53da9 100644
--- a/OpenSim/Region/Application/Application.cs
+++ b/OpenSim/Region/Application/Application.cs
@@ -91,7 +91,7 @@ namespace OpenSim
m_log.Info("[OPENSIM MAIN]: configured log4net using default OpenSim.exe.config");
}
- // Check if the system is compatible with OpenSimulator.
+ // Check if the system is compatible with OpenSimulator.
// Ensures that the minimum system requirements are met
m_log.Info("Performing compatibility checks... ");
string supported = String.Empty;
diff --git a/OpenSim/Region/Application/HGCommands.cs b/OpenSim/Region/Application/HGCommands.cs
index 1786e54aec..f503db75c1 100644
--- a/OpenSim/Region/Application/HGCommands.cs
+++ b/OpenSim/Region/Application/HGCommands.cs
@@ -43,16 +43,11 @@ namespace OpenSim
public class HGCommands
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- public static IHyperlink HGServices = null;
-
- private static uint m_autoMappingX = 0;
- private static uint m_autoMappingY = 0;
- private static bool m_enableAutoMapping = false;
public static Scene CreateScene(RegionInfo regionInfo, AgentCircuitManager circuitManager, CommunicationsManager m_commsManager,
StorageManager storageManager, ModuleLoader m_moduleLoader, ConfigSettings m_configSettings, OpenSimConfigSource m_config, string m_version)
{
- HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager, HGServices);
+ HGSceneCommunicationService sceneGridService = new HGSceneCommunicationService(m_commsManager);
return
new HGScene(
@@ -61,213 +56,5 @@ namespace OpenSim
m_configSettings.See_into_region_from_neighbor, m_config.Source, m_version);
}
- public static void RunHGCommand(string command, string[] cmdparams, Scene scene)
- {
- if (command.Equals("link-mapping"))
- {
- if (cmdparams.Length == 2)
- {
- try
- {
- m_autoMappingX = Convert.ToUInt32(cmdparams[0]);
- m_autoMappingY = Convert.ToUInt32(cmdparams[1]);
- m_enableAutoMapping = true;
- }
- catch (Exception)
- {
- m_autoMappingX = 0;
- m_autoMappingY = 0;
- m_enableAutoMapping = false;
- }
- }
- }
- else if (command.Equals("link-region"))
- {
- if (cmdparams.Length < 3)
- {
- if ((cmdparams.Length == 1) || (cmdparams.Length == 2))
- {
- LoadXmlLinkFile(cmdparams, scene);
- }
- else
- {
- LinkRegionCmdUsage();
- }
- return;
- }
-
- if (cmdparams[2].Contains(":"))
- {
- // New format
- uint xloc, yloc;
- string mapName;
- try
- {
- xloc = Convert.ToUInt32(cmdparams[0]);
- yloc = Convert.ToUInt32(cmdparams[1]);
- mapName = cmdparams[2];
- if (cmdparams.Length > 3)
- for (int i = 3; i < cmdparams.Length; i++)
- mapName += " " + cmdparams[i];
-
- m_log.Info(">> MapName: " + mapName);
- //internalPort = Convert.ToUInt32(cmdparams[4]);
- //remotingPort = Convert.ToUInt32(cmdparams[5]);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message);
- LinkRegionCmdUsage();
- return;
- }
-
- HGHyperlink.TryLinkRegionToCoords(scene, null, mapName, xloc, yloc);
- }
- else
- {
- // old format
- RegionInfo regInfo;
- uint xloc, yloc;
- uint externalPort;
- string externalHostName;
- try
- {
- xloc = Convert.ToUInt32(cmdparams[0]);
- yloc = Convert.ToUInt32(cmdparams[1]);
- externalPort = Convert.ToUInt32(cmdparams[3]);
- externalHostName = cmdparams[2];
- //internalPort = Convert.ToUInt32(cmdparams[4]);
- //remotingPort = Convert.ToUInt32(cmdparams[5]);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid] Wrong format for link-region command: " + e.Message);
- LinkRegionCmdUsage();
- return;
- }
-
- //if (TryCreateLink(xloc, yloc, externalPort, externalHostName, out regInfo))
- if (HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort, externalHostName, out regInfo))
- {
- if (cmdparams.Length >= 5)
- {
- regInfo.RegionName = "";
- for (int i = 4; i < cmdparams.Length; i++)
- regInfo.RegionName += cmdparams[i] + " ";
- }
- }
- }
- return;
- }
- else if (command.Equals("unlink-region"))
- {
- if (cmdparams.Length < 1)
- {
- UnlinkRegionCmdUsage();
- return;
- }
- if (HGHyperlink.TryUnlinkRegion(scene, cmdparams[0]))
- m_log.InfoFormat("[HGrid]: Successfully unlinked {0}", cmdparams[0]);
- else
- m_log.InfoFormat("[HGrid]: Unable to unlink {0}, region not found", cmdparams[0]);
- }
- }
-
- private static void LoadXmlLinkFile(string[] cmdparams, Scene scene)
- {
- //use http://www.hgurl.com/hypergrid.xml for test
- try
- {
- XmlReader r = XmlReader.Create(cmdparams[0]);
- XmlConfigSource cs = new XmlConfigSource(r);
- string[] excludeSections = null;
-
- if (cmdparams.Length == 2)
- {
- if (cmdparams[1].ToLower().StartsWith("excludelist:"))
- {
- string excludeString = cmdparams[1].ToLower();
- excludeString = excludeString.Remove(0, 12);
- char[] splitter = {';'};
-
- excludeSections = excludeString.Split(splitter);
- }
- }
-
- for (int i = 0; i < cs.Configs.Count; i++)
- {
- bool skip = false;
- if ((excludeSections != null) && (excludeSections.Length > 0))
- {
- for (int n = 0; n < excludeSections.Length; n++)
- {
- if (excludeSections[n] == cs.Configs[i].Name.ToLower())
- {
- skip = true;
- break;
- }
- }
- }
- if (!skip)
- {
- ReadLinkFromConfig(cs.Configs[i], scene);
- }
- }
- }
- catch (Exception e)
- {
- m_log.Error(e.ToString());
- }
- }
-
-
- private static void ReadLinkFromConfig(IConfig config, Scene scene)
- {
- RegionInfo regInfo;
- uint xloc, yloc;
- uint externalPort;
- string externalHostName;
- uint realXLoc, realYLoc;
-
- xloc = Convert.ToUInt32(config.GetString("xloc", "0"));
- yloc = Convert.ToUInt32(config.GetString("yloc", "0"));
- externalPort = Convert.ToUInt32(config.GetString("externalPort", "0"));
- externalHostName = config.GetString("externalHostName", "");
- realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0"));
- realYLoc = Convert.ToUInt32(config.GetString("real-yloc", "0"));
-
- if (m_enableAutoMapping)
- {
- xloc = (uint) ((xloc%100) + m_autoMappingX);
- yloc = (uint) ((yloc%100) + m_autoMappingY);
- }
-
- if (((realXLoc == 0) && (realYLoc == 0)) ||
- (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) &&
- ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896))))
- {
- if (
- HGHyperlink.TryCreateLink(scene, null, xloc, yloc, "", externalPort,
- externalHostName, out regInfo))
- {
- regInfo.RegionName = config.GetString("localName", "");
- }
- }
- }
-
-
- private static void LinkRegionCmdUsage()
- {
- m_log.Info("Usage: link-region :[:]");
- m_log.Info("Usage: link-region []");
- m_log.Info("Usage: link-region []");
- }
-
- private static void UnlinkRegionCmdUsage()
- {
- m_log.Info("Usage: unlink-region :");
- m_log.Info("Usage: unlink-region ");
- }
-
}
}
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index e9c9dc1372..f0708124b5 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -497,7 +497,7 @@ namespace OpenSim
{
if (cmd.Length < 4)
{
- m_log.Error("Usage: create region ");
+ m_log.Error("Usage: create region ");
return;
}
if (cmd[3].EndsWith(".xml"))
@@ -524,7 +524,7 @@ namespace OpenSim
}
else
{
- m_log.Error("Usage: create region ");
+ m_log.Error("Usage: create region ");
return;
}
}
@@ -755,11 +755,6 @@ namespace OpenSim
}
break;
- case "link-region":
- case "unlink-region":
- case "link-mapping":
- HGCommands.RunHGCommand(command, cmdparams, m_sceneManager.CurrentOrFirstScene);
- break;
}
}
@@ -1250,20 +1245,20 @@ namespace OpenSim
protected void LoadOar(string module, string[] cmdparams)
{
try
- {
+ {
if (cmdparams.Length > 2)
{
- m_sceneManager.LoadArchiveToCurrentScene(cmdparams[2]);
+ m_sceneManager.LoadArchiveToCurrentScene(cmdparams[2]);
}
else
{
- m_sceneManager.LoadArchiveToCurrentScene(DEFAULT_OAR_BACKUP_FILENAME);
+ m_sceneManager.LoadArchiveToCurrentScene(DEFAULT_OAR_BACKUP_FILENAME);
}
}
catch (Exception e)
{
m_log.Error(e.Message);
- }
+ }
}
///
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 4d13e83ce0..468c5d746d 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -98,7 +98,7 @@ namespace OpenSim
///
/// The config information passed into the OpenSimulator region server.
- ///
+ ///
public OpenSimConfigSource ConfigSource
{
get { return m_config; }
@@ -383,14 +383,14 @@ namespace OpenSim
scene.SetModuleInterfaces();
- // Prims have to be loaded after module configuration since some modules may be invoked during the load
+ // Prims have to be loaded after module configuration since some modules may be invoked during the load
scene.LoadPrimsFromStorage(regionInfo.originRegionID);
// moved these here as the terrain texture has to be created after the modules are initialized
// and has to happen before the region is registered with the grid.
scene.CreateTerrainTexture(false);
- // TODO : Try setting resource for region xstats here on scene
+ // TODO : Try setting resource for region xstats here on scene
MainServer.Instance.AddStreamHandler(new Region.Framework.Scenes.RegionStatsHandler(regionInfo));
try
@@ -399,7 +399,7 @@ namespace OpenSim
}
catch (Exception e)
{
- m_log.ErrorFormat("[STARTUP]: Registration of region with grid failed, aborting startup - {0}", e);
+ m_log.ErrorFormat("[STARTUP]: Registration of region with grid failed, aborting startup - {0}", e.StackTrace);
// Carrying on now causes a lot of confusion down the
// line - we need to get the user's attention
@@ -507,7 +507,7 @@ namespace OpenSim
/// Remove a region from the simulator without deleting it permanently.
///
///
- ///
+ ///
public void CloseRegion(Scene scene)
{
// only need to check this if we are not at the
@@ -526,7 +526,7 @@ namespace OpenSim
/// Remove a region from the simulator without deleting it permanently.
///
///
- ///
+ ///
public void CloseRegion(string name)
{
Scene target;
@@ -539,7 +539,7 @@ namespace OpenSim
///
///
///
- ///
+ ///
protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer clientServer)
{
return SetupScene(regionInfo, 0, null, out clientServer);
@@ -750,7 +750,7 @@ namespace OpenSim
}
public string Path
- {
+ {
// This is for the OpenSimulator instance and is the osSecret hashed
get { return "/" + osXStatsURI + "/"; }
}
@@ -791,7 +791,7 @@ namespace OpenSim
}
public string Path
- {
+ {
// This is for the OpenSimulator instance and is the user provided URI
get { return "/" + osUXStatsURI + "/"; }
}
diff --git a/OpenSim/Region/ClientStack/ClientStackManager.cs b/OpenSim/Region/ClientStack/ClientStackManager.cs
index 5667d64c25..84ea0b34db 100644
--- a/OpenSim/Region/ClientStack/ClientStackManager.cs
+++ b/OpenSim/Region/ClientStack/ClientStackManager.cs
@@ -87,9 +87,9 @@ namespace OpenSim.Region.ClientStack
public IClientNetworkServer CreateServer(
IPAddress _listenIP, ref uint port, int proxyPortOffset, bool allow_alternate_port,
AgentCircuitManager authenticateClass)
- {
+ {
return CreateServer(
- _listenIP, ref port, proxyPortOffset, allow_alternate_port, null, authenticateClass);
+ _listenIP, ref port, proxyPortOffset, allow_alternate_port, null, authenticateClass);
}
///
@@ -104,11 +104,11 @@ namespace OpenSim.Region.ClientStack
///
///
///
- ///
+ ///
public IClientNetworkServer CreateServer(
IPAddress _listenIP, ref uint port, int proxyPortOffset, bool allow_alternate_port, IConfigSource configSource,
AgentCircuitManager authenticateClass)
- {
+ {
if (plugin != null)
{
IClientNetworkServer server =
diff --git a/OpenSim/Region/ClientStack/ClientStackUserSettings.cs b/OpenSim/Region/ClientStack/ClientStackUserSettings.cs
index a3c23ccea2..231b3aa2f5 100644
--- a/OpenSim/Region/ClientStack/ClientStackUserSettings.cs
+++ b/OpenSim/Region/ClientStack/ClientStackUserSettings.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Region.ClientStack
///
/// At the moment this is very incomplete - other tweakable settings could be added. This is also somewhat LL client
/// oriented right now.
- ///
+ ///
public class ClientStackUserSettings
{
///
diff --git a/OpenSim/Region/ClientStack/LindenUDP/ILLPacketHandler.cs b/OpenSim/Region/ClientStack/LindenUDP/ILLPacketHandler.cs
index 665c77381d..32a4ad41a6 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/ILLPacketHandler.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/ILLPacketHandler.cs
@@ -31,7 +31,7 @@ using OpenMetaverse.Packets;
using OpenSim.Framework;
namespace OpenSim.Region.ClientStack.LindenUDP
-{
+{
public delegate void PacketStats(int inPackets, int outPackets, int unAckedBytes);
public delegate void PacketDrop(Packet pack, Object id);
public delegate bool SynchronizeClientHandler(IScene scene, Packet packet, UUID agentID, ThrottleOutPacketType throttlePacketType);
@@ -61,7 +61,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
/// Take action depending on the type and contents of an received packet.
///
- ///
+ ///
void ProcessInPacket(LLQueItem item);
void ProcessOutPacket(LLQueItem item);
diff --git a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
index 6cffd706dd..638c765f93 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
@@ -127,7 +127,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
else
{
- m_asset = asset;
+ m_asset = asset;
}
RunUpdate();
}
@@ -198,7 +198,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
try
{
Buffer.BlockCopy(m_asset.Data, 0, firstImageData, 0, (int)cFirstPacketSize);
- client.SendImageFirstPart(TexturePacketCount(), m_requestedUUID, (uint)m_asset.Data.Length, firstImageData, 2);
+ client.SendImageFirstPart(TexturePacketCount(), m_requestedUUID, (uint)m_asset.Data.Length, firstImageData, 2);
}
catch (Exception)
{
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 912cbf1841..88ace6af05 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2332,7 +2332,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return itemBlock;
}
- public void SendBulkUpdateInventory(InventoryNodeBase node)
+ public void SendBulkUpdateInventory(InventoryNodeBase node)
{
if (node is InventoryItemBase)
SendBulkUpdateInventoryItem((InventoryItemBase)node);
@@ -2937,7 +2937,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
else if (m_avatarTerseUpdates.Count == 1)
{
lock (m_avatarTerseUpdateTimer)
- m_avatarTerseUpdateTimer.Start();
+ m_avatarTerseUpdateTimer.Start();
}
}
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs
index 798c1e7041..c4278705a4 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs
@@ -143,7 +143,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
TextureThrottle = new LLPacketThrottle(1000, throttleMaxBPS / 2, 4000, userSettings.ClientThrottleMultipler);
- // Total Throttle trumps all - it is the number of bits in total that are allowed to go out per second.
+ // Total Throttle trumps all - it is the number of bits in total that are allowed to go out per second.
ThrottleSettings totalThrottleSettings = userSettings.TotalThrottleSettings;
@@ -410,7 +410,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
LLQueItem qpack = ResendOutgoingPacketQueue.Dequeue();
- SendQueue.Enqueue(qpack);
+ SendQueue.Enqueue(qpack);
TotalThrottle.AddBytes(qpack.Length);
ResendThrottle.AddBytes(qpack.Length);
@@ -470,7 +470,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
LLQueItem qpack = TextureOutgoingPacketQueue.Dequeue();
- SendQueue.Enqueue(qpack);
+ SendQueue.Enqueue(qpack);
TotalThrottle.AddBytes(qpack.Length);
TextureThrottle.AddBytes(qpack.Length);
qchanged = true;
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketServer.cs
index 56219d1cd7..70d94e7777 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketServer.cs
@@ -48,11 +48,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
/// Tweakable user settings
///
- private ClientStackUserSettings m_userSettings;
+ private ClientStackUserSettings m_userSettings;
public LLPacketServer(ILLClientStackNetworkHandler networkHandler, ClientStackUserSettings userSettings)
{
- m_userSettings = userSettings;
+ m_userSettings = userSettings;
m_networkHandler = networkHandler;
m_networkHandler.RegisterPacketServer(this);
@@ -114,7 +114,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
sessionInfo = circuitManager.AuthenticateSession(sessionId, agentId, circuitCode);
if (!sessionInfo.Authorised)
- return false;
+ return false;
return true;
}
@@ -129,7 +129,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
///
/// true if a new circuit was created, false if a circuit with the given circuit code already existed
- ///
+ ///
public virtual bool AddNewClient(
EndPoint epSender, UseCircuitCodePacket useCircuit,
AuthenticateResponse sessionInfo, EndPoint proxyEP)
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs
index 01bff6da58..52effc5b6c 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketThrottle.cs
@@ -26,7 +26,7 @@
*/
namespace OpenSim.Region.ClientStack.LindenUDP
-{
+{
public class LLPacketThrottle
{
private readonly int m_maxAllowableThrottle;
@@ -49,7 +49,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public int Min
{
get { return m_minAllowableThrottle; }
- }
+ }
public int Current
{
@@ -105,13 +105,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public int Throttle
{
- get { return m_currentThrottle; }
+ get { return m_currentThrottle; }
set
{
if (value < m_minAllowableThrottle)
{
m_currentThrottle = m_minAllowableThrottle;
- }
+ }
else if (value > m_maxAllowableThrottle)
{
m_currentThrottle = m_maxAllowableThrottle;
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
index 9ee8df5bb9..c779b08fa7 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
@@ -166,7 +166,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
userSettings.ClientThrottleMultipler = config.GetFloat("client_throttle_multiplier");
if (config.Contains("client_socket_rcvbuf_size"))
m_clientSocketReceiveBuffer = config.GetInt("client_socket_rcvbuf_size");
- }
+ }
m_log.DebugFormat("[CLIENT]: client_throttle_multiplier = {0}", userSettings.ClientThrottleMultipler);
m_log.DebugFormat("[CLIENT]: client_socket_rcvbuf_size = {0}", (m_clientSocketReceiveBuffer != 0 ?
@@ -228,7 +228,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
m_log.Debug("[CLIENT]: " + e);
}
- }
+ }
if (proxyPortOffset != 0)
@@ -254,7 +254,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (packet != null)
{
if (packet.Type == PacketType.UseCircuitCode)
- AddNewClient((UseCircuitCodePacket)packet, epSender, epProxy);
+ AddNewClient((UseCircuitCodePacket)packet, epSender, epProxy);
else
ProcessInPacket(packet, epSender);
}
@@ -290,7 +290,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
catch (Exception e)
{
m_log.Error("[CLIENT]: Exception in processing packet - ignoring: ", e);
- }
+ }
}
///
@@ -299,7 +299,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected virtual void BeginReceive()
{
m_socket.BeginReceiveFrom(
- RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref reusedEpSender, ReceivedData, null);
+ RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref reusedEpSender, ReceivedData, null);
}
///
@@ -322,7 +322,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// ENDLESS LOOP ON PURPOSE!
// Reset connection and get next UDP packet off the buffer
// If the UDP packet is part of the same stream, this will happen several hundreds of times before
- // the next set of UDP data is for a valid client.
+ // the next set of UDP data is for a valid client.
try
{
@@ -347,7 +347,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_log.ErrorFormat("[CLIENT]: Exception thrown during BeginReceive(): {0}", ex);
}
}
- }
+ }
///
/// Close a client circuit. This is done in response to an exception on receive, and should not be called
@@ -363,12 +363,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
m_packetServer.CloseCircuit(circuit);
- if (e != null)
+ if (e != null)
m_log.ErrorFormat(
- "[CLIENT]: Closed circuit {0} {1} due to exception {2}", circuit, reusedEpSender, e);
+ "[CLIENT]: Closed circuit {0} {1} due to exception {2}", circuit, reusedEpSender, e);
}
}
- }
+ }
///
/// Finish the process of asynchronously receiving the next bit of raw data
@@ -410,7 +410,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
m_log.DebugFormat("[CLIENT]: ObjectDisposedException: Object {0} disposed.", e.ObjectName);
// Uhh, what object, and why? this needs better handling.
- }
+ }
return hasReceivedOkay;
}
@@ -422,10 +422,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
///
protected virtual void AddNewClient(UseCircuitCodePacket useCircuit, EndPoint epSender, EndPoint epProxy)
- {
+ {
//Slave regions don't accept new clients
if (m_localScene.RegionStatus != RegionStatus.SlaveScene)
- {
+ {
AuthenticateResponse sessionInfo;
bool isNewCircuit = false;
@@ -441,8 +441,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
lock (clientCircuits)
{
if (!clientCircuits.ContainsKey(epSender))
- {
- clientCircuits.Add(epSender, useCircuit.CircuitCode.Code);
+ {
+ clientCircuits.Add(epSender, useCircuit.CircuitCode.Code);
isNewCircuit = true;
}
}
@@ -461,9 +461,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
//m_log.DebugFormat(
// "[CONNECTION SUCCESS]: Incoming client {0} (circuit code {1}) received and authenticated for {2}",
- // useCircuit.CircuitCode.ID, useCircuit.CircuitCode.Code, m_localScene.RegionInfo.RegionName);
- }
- }
+ // useCircuit.CircuitCode.ID, useCircuit.CircuitCode.Code, m_localScene.RegionInfo.RegionName);
+ }
+ }
// Ack the UseCircuitCode packet
PacketAckPacket ack_it = (PacketAckPacket)PacketPool.Instance.GetPacket(PacketType.PacketAck);
@@ -605,7 +605,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
useCircuit.CircuitCode.ID, useCircuit.CircuitCode.Code);
return;
- }
+ }
lock (clientCircuits)
{
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUtil.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUtil.cs
index f2a8bd2d0d..c45d11fb11 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUtil.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUtil.cs
@@ -28,7 +28,7 @@
using OpenMetaverse;
namespace OpenSim.Region.ClientStack.LindenUDP
-{
+{
public class LLUtil
{
///
diff --git a/OpenSim/Region/ClientStack/LindenUDP/Tests/BasicCircuitTests.cs b/OpenSim/Region/ClientStack/LindenUDP/Tests/BasicCircuitTests.cs
index 9fb1041b39..daab84f423 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/Tests/BasicCircuitTests.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/Tests/BasicCircuitTests.cs
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
catch
{
// I don't care, just leave log4net off
- }
+ }
}
///
@@ -63,20 +63,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
///
///
///
- /// Agent circuit manager used in setting up the stack
+ /// Agent circuit manager used in setting up the stack
protected void SetupStack(
IScene scene, out TestLLUDPServer testLLUDPServer, out TestLLPacketServer testPacketServer,
out AgentCircuitManager acm)
{
IConfigSource configSource = new IniConfigSource();
ClientStackUserSettings userSettings = new ClientStackUserSettings();
- testLLUDPServer = new TestLLUDPServer();
+ testLLUDPServer = new TestLLUDPServer();
acm = new AgentCircuitManager();
- uint port = 666;
+ uint port = 666;
testLLUDPServer.Initialise(null, ref port, 0, false, configSource, acm);
testPacketServer = new TestLLPacketServer(testLLUDPServer, userSettings);
- testLLUDPServer.LocalScene = scene;
+ testLLUDPServer.LocalScene = scene;
}
///
@@ -124,7 +124,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
acm.AddNewCircuit(circuitCode, acd);
- testLLUDPServer.LoadReceive(uccp, epSender);
+ testLLUDPServer.LoadReceive(uccp, epSender);
testLLUDPServer.ReceiveData(null);
}
@@ -142,15 +142,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
onp.ObjectData = new ObjectNamePacket.ObjectDataBlock[] { odb };
onp.Header.Zerocoded = false;
- return onp;
+ return onp;
}
///
/// Test adding a client to the stack
///
- [Test, LongRunning]
+ [Test, LongRunning]
public void TestAddClient()
- {
+ {
TestHelper.InMethod();
uint myCircuitCode = 123456;
@@ -177,7 +177,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
EndPoint testEp = new IPEndPoint(IPAddress.Loopback, 999);
- testLLUDPServer.LoadReceive(uccp, testEp);
+ testLLUDPServer.LoadReceive(uccp, testEp);
testLLUDPServer.ReceiveData(null);
// Circuit shouildn't exist since the circuit manager doesn't know about this circuit for authentication yet
@@ -185,8 +185,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
acm.AddNewCircuit(myCircuitCode, acd);
- testLLUDPServer.LoadReceive(uccp, testEp);
- testLLUDPServer.ReceiveData(null);
+ testLLUDPServer.LoadReceive(uccp, testEp);
+ testLLUDPServer.ReceiveData(null);
// Should succeed now
Assert.IsTrue(testLLUDPServer.HasCircuit(myCircuitCode));
@@ -196,24 +196,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
///
/// Test removing a client from the stack
///
- [Test]
+ [Test]
public void TestRemoveClient()
{
TestHelper.InMethod();
- uint myCircuitCode = 123457;
+ uint myCircuitCode = 123457;
TestLLUDPServer testLLUDPServer;
TestLLPacketServer testLLPacketServer;
AgentCircuitManager acm;
- SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm);
+ SetupStack(new MockScene(), out testLLUDPServer, out testLLPacketServer, out acm);
AddClient(myCircuitCode, new IPEndPoint(IPAddress.Loopback, 1000), testLLUDPServer, acm);
- testLLUDPServer.RemoveClientCircuit(myCircuitCode);
+ testLLUDPServer.RemoveClientCircuit(myCircuitCode);
Assert.IsFalse(testLLUDPServer.HasCircuit(myCircuitCode));
// Check that removing a non-existant circuit doesn't have any bad effects
- testLLUDPServer.RemoveClientCircuit(101);
+ testLLUDPServer.RemoveClientCircuit(101);
Assert.IsFalse(testLLUDPServer.HasCircuit(101));
}
@@ -232,8 +232,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
TestLLUDPServer testLLUDPServer;
TestLLPacketServer testLLPacketServer;
AgentCircuitManager acm;
- SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm);
- AddClient(myCircuitCode, testEp, testLLUDPServer, acm);
+ SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm);
+ AddClient(myCircuitCode, testEp, testLLUDPServer, acm);
byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 };
@@ -252,7 +252,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
testLLUDPServer.LoadReceive(BuildTestObjectNamePacket(1, "helloooo"), testEp);
testLLUDPServer.ReceiveData(null);
- Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(1));
+ Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(1));
Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(1));
}
@@ -270,17 +270,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
uint circuitCodeA = 130000;
EndPoint epA = new IPEndPoint(IPAddress.Loopback, 1300);
UUID agentIdA = UUID.Parse("00000000-0000-0000-0000-000000001300");
- UUID sessionIdA = UUID.Parse("00000000-0000-0000-0000-000000002300");
+ UUID sessionIdA = UUID.Parse("00000000-0000-0000-0000-000000002300");
uint circuitCodeB = 130001;
EndPoint epB = new IPEndPoint(IPAddress.Loopback, 1301);
UUID agentIdB = UUID.Parse("00000000-0000-0000-0000-000000001301");
- UUID sessionIdB = UUID.Parse("00000000-0000-0000-0000-000000002301");
+ UUID sessionIdB = UUID.Parse("00000000-0000-0000-0000-000000002301");
TestLLUDPServer testLLUDPServer;
TestLLPacketServer testLLPacketServer;
AgentCircuitManager acm;
- SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm);
+ SetupStack(scene, out testLLUDPServer, out testLLPacketServer, out acm);
AddClient(circuitCodeA, epA, agentIdA, sessionIdA, testLLUDPServer, acm);
AddClient(circuitCodeB, epB, agentIdB, sessionIdB, testLLUDPServer, acm);
@@ -292,8 +292,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
Assert.IsFalse(testLLUDPServer.HasCircuit(circuitCodeA));
- Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(3));
- Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(3));
- }
+ Assert.That(testLLPacketServer.GetTotalPacketsReceived(), Is.EqualTo(3));
+ Assert.That(testLLPacketServer.GetPacketsReceivedFor(PacketType.ObjectName), Is.EqualTo(3));
+ }
}
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/Tests/MockScene.cs b/OpenSim/Region/ClientStack/LindenUDP/Tests/MockScene.cs
index c831f68fa1..34c21aaba7 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/Tests/MockScene.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/Tests/MockScene.cs
@@ -28,6 +28,7 @@
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.ClientStack.LindenUDP.Tests
{
@@ -58,7 +59,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
public override void RemoveClient(UUID agentID) {}
public override void CloseAllAgents(uint circuitcode) {}
- public override bool OtherRegionUp(RegionInfo thisRegion) { return false; }
+ public override void OtherRegionUp(GridRegion otherRegion) { }
///
/// Doesn't really matter what the call is - we're using this to test that a packet has actually been received
diff --git a/OpenSim/Region/ClientStack/LindenUDP/Tests/PacketHandlerTests.cs b/OpenSim/Region/ClientStack/LindenUDP/Tests/PacketHandlerTests.cs
index 8b11ccc795..cde155b2e1 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/Tests/PacketHandlerTests.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/Tests/PacketHandlerTests.cs
@@ -45,7 +45,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
[Test]
///
/// More a placeholder, really
- ///
+ ///
public void InPacketTest()
{
TestHelper.InMethod();
@@ -87,20 +87,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
///
///
///
- /// Agent circuit manager used in setting up the stack
+ /// Agent circuit manager used in setting up the stack
protected void SetupStack(
IScene scene, out TestLLUDPServer testLLUDPServer, out TestLLPacketServer testPacketServer,
out AgentCircuitManager acm)
{
IConfigSource configSource = new IniConfigSource();
ClientStackUserSettings userSettings = new ClientStackUserSettings();
- testLLUDPServer = new TestLLUDPServer();
+ testLLUDPServer = new TestLLUDPServer();
acm = new AgentCircuitManager();
- uint port = 666;
+ uint port = 666;
testLLUDPServer.Initialise(null, ref port, 0, false, configSource, acm);
testPacketServer = new TestLLPacketServer(testLLUDPServer, userSettings);
- testLLUDPServer.LocalScene = scene;
- }
+ testLLUDPServer.LocalScene = scene;
+ }
}
}
diff --git a/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLPacketServer.cs b/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLPacketServer.cs
index d05596999a..1fba8472ef 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLPacketServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLPacketServer.cs
@@ -31,7 +31,7 @@ using OpenMetaverse.Packets;
namespace OpenSim.Region.ClientStack.LindenUDP.Tests
{
public class TestLLPacketServer : LLPacketServer
- {
+ {
///
/// Record counts of packets received
///
@@ -49,7 +49,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
m_packetsReceived[packet.Type]++;
else
m_packetsReceived[packet.Type] = 1;
- }
+ }
public int GetTotalPacketsReceived()
{
diff --git a/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs
index 1dffefb8f8..f98586d845 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/Tests/TestLLUDPServer.cs
@@ -66,7 +66,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
ChunkSenderTuple tuple = m_chunksToLoad.Dequeue();
RecvBuffer = tuple.Data;
numBytes = tuple.Data.Length;
- epSender = tuple.Sender;
+ epSender = tuple.Sender;
return true;
}
@@ -114,7 +114,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
{
while (m_chunksToLoad.Count > 0)
OnReceivedData(result);
- }
+ }
///
/// Has a circuit with the given code been established?
@@ -134,7 +134,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
/// Record the data and sender tuple
///
public class ChunkSenderTuple
- {
+ {
public byte[] Data;
public EndPoint Sender;
public bool BeginReceiveException;
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index a266a40bb6..c7aeca14e3 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -61,7 +61,7 @@ namespace OpenSim.Region.ClientStack
get { return m_commsManager; }
set { m_commsManager = value; }
}
- protected CommunicationsManager m_commsManager;
+ protected CommunicationsManager m_commsManager;
protected StorageManager m_storageManager;
@@ -80,15 +80,15 @@ namespace OpenSim.Region.ClientStack
///
///
///
- /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
+ /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
///
- ///
+ ///
protected abstract PhysicsScene GetPhysicsScene(string osSceneIdentifier);
protected abstract StorageManager CreateStorageManager();
protected abstract ClientStackManager CreateClientStackManager();
protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager,
- AgentCircuitManager circuitManager);
+ AgentCircuitManager circuitManager);
protected override void StartupSpecific()
{
@@ -121,7 +121,7 @@ namespace OpenSim.Region.ClientStack
/// The name of the mesh engine to use
/// The configuration data to pass to the physics and mesh engines
///
- /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
+ /// The name of the OpenSim scene this physics scene is serving. This will be used in log messages.
///
///
protected PhysicsScene GetPhysicsScene(
diff --git a/OpenSim/Region/ClientStack/ThrottleSettings.cs b/OpenSim/Region/ClientStack/ThrottleSettings.cs
index 5dcb7065db..fe4718cec8 100644
--- a/OpenSim/Region/ClientStack/ThrottleSettings.cs
+++ b/OpenSim/Region/ClientStack/ThrottleSettings.cs
@@ -26,12 +26,12 @@
*/
namespace OpenSim.Region.ClientStack
-{
+{
///
/// Represent throttle settings for a client stack. These settings are in bytes per second
///
public class ThrottleSettings
- {
+ {
///
/// Minimum bytes per second that the throttle can be set to.
///
@@ -39,13 +39,13 @@ namespace OpenSim.Region.ClientStack
///
/// Maximum bytes per second that the throttle can be set to.
- ///
- public int Max;
+ ///
+ public int Max;
///
/// Current bytes per second that the throttle should be set to.
- ///
- public int Current;
+ ///
+ public int Current;
public ThrottleSettings(int min, int max, int current)
{
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs
index 80f2e79418..e80f6abe92 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsGridMode.cs
@@ -40,30 +40,21 @@ namespace OpenSim.Region.Communications.Hypergrid
{
public class HGCommunicationsGridMode : CommunicationsManager // CommunicationsOGS1
{
- IHyperlink m_osw = null;
- public IHyperlink HGServices
- {
- get { return m_osw; }
- }
public HGCommunicationsGridMode(
NetworkServersInfo serversInfo,
SceneManager sman, LibraryRootFolder libraryRootFolder)
: base(serversInfo, libraryRootFolder)
{
- // From constructor at CommunicationsOGS1
- HGGridServices gridInterComms = new HGGridServicesGridMode(serversInfo, sman, m_userProfileCacheService);
- m_gridService = gridInterComms;
- m_osw = gridInterComms;
HGUserServices userServices = new HGUserServices(this);
// This plugin arrangement could eventually be configurable rather than hardcoded here.
userServices.AddPlugin(new TemporaryUserProfilePlugin());
- userServices.AddPlugin(new HGUserDataPlugin(this, userServices));
+ userServices.AddPlugin(new HGUserDataPlugin(this, userServices));
m_userService = userServices;
m_messageService = userServices;
- m_avatarService = userServices;
+ m_avatarService = userServices;
}
}
}
diff --git a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs
index e4e12d4b7a..4e3f5a1b01 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGCommunicationsStandalone.cs
@@ -41,14 +41,13 @@ namespace OpenSim.Region.Communications.Hypergrid
public class HGCommunicationsStandalone : CommunicationsManager
{
public HGCommunicationsStandalone(
- ConfigSettings configSettings,
+ ConfigSettings configSettings,
NetworkServersInfo serversInfo,
BaseHttpServer httpServer,
- HGGridServices gridService,
LibraryRootFolder libraryRootFolder,
bool dumpAssetsToFile)
: base(serversInfo, libraryRootFolder)
- {
+ {
LocalUserServices localUserService =
new LocalUserServices(
serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this);
@@ -59,13 +58,11 @@ namespace OpenSim.Region.Communications.Hypergrid
hgUserService.AddPlugin(new TemporaryUserProfilePlugin());
hgUserService.AddPlugin(new HGUserDataPlugin(this, hgUserService));
- m_userService = hgUserService;
- m_userAdminService = hgUserService;
+ m_userService = hgUserService;
+ m_userAdminService = hgUserService;
m_avatarService = hgUserService;
m_messageService = hgUserService;
- gridService.UserProfileCache = m_userProfileCacheService;
- m_gridService = gridService;
}
}
}
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs
deleted file mode 100644
index 54cde0f54b..0000000000
--- a/OpenSim/Region/Communications/Hypergrid/HGGridServices.cs
+++ /dev/null
@@ -1,1024 +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.Drawing;
-using System.Net;
-using System.Net.Sockets;
-using System.Reflection;
-using System.Runtime.Remoting;
-using System.Security.Authentication;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenMetaverse.Imaging;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Region.Communications.OGS1;
-using OpenSim.Region.Framework.Scenes;
-using OpenSim.Services.Interfaces;
-// using OpenSim.Region.Environment.Modules.Framework;
-
-namespace OpenSim.Region.Communications.Hypergrid
-{
- ///
- /// This class encapsulates the main hypergrid functions related to creating and managing
- /// hyperlinks, as well as processing all the inter-region comms between a region and
- /// an hyperlinked region.
- ///
- public class HGGridServices : IGridServices, IHyperlink
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
-
- public BaseHttpServer httpListener;
- public NetworkServersInfo serversInfo;
-
- protected List m_regionsOnInstance = new List();
-
- // Hyperlink regions are hyperlinks on the map
- protected List m_hyperlinkRegions = new List();
-
- // Known regions are home regions of visiting foreign users.
- // They are not on the map as static hyperlinks. They are dynamic hyperlinks, they go away when
- // the visitor goes away. They are mapped to X=0 on the map.
- // This is key-ed on agent ID
- protected Dictionary m_knownRegions = new Dictionary();
-
- protected UserProfileCacheService m_userProfileCache;
- protected SceneManager m_sceneman;
-
- private Dictionary m_queuedGridSettings = new Dictionary();
-
- public virtual string gdebugRegionName
- {
- get { return "Override me"; }
- set { ; }
- }
-
- public string rdebugRegionName
- {
- get { return _rdebugRegionName; }
- set { _rdebugRegionName = value; }
- }
- private string _rdebugRegionName = String.Empty;
-
- public virtual bool RegionLoginsEnabled
- {
- get { return true; }
- set { ; }
- }
-
- public UserProfileCacheService UserProfileCache
- {
- set { m_userProfileCache = value; }
- }
-
- private Random random;
-
- ///
- /// Contructor. Adds "expect_hg_user" and "check" xmlrpc method handlers
- ///
- ///
- public HGGridServices(NetworkServersInfo servers_info, SceneManager sman)
- {
- serversInfo = servers_info;
- m_sceneman = sman;
-
- random = new Random();
-
- MainServer.Instance.AddXmlRPCHandler("link_region", LinkRegionRequest);
- MainServer.Instance.AddXmlRPCHandler("expect_hg_user", ExpectHGUser);
-
- HGNetworkServersInfo.Init(servers_info.AssetURL, servers_info.InventoryURL, servers_info.UserURL);
- }
-
- // see IGridServices
- public virtual RegionCommsListener RegisterRegion(RegionInfo regionInfo)
- {
- // Region doesn't exist here. Trying to link remote region
-
- m_log.Info("[HGrid]: Linking remote region " + regionInfo.ExternalHostName + ":" + regionInfo.HttpPort);
- regionInfo.RegionID = LinkRegion(regionInfo); // UUID.Random();
- if (!regionInfo.RegionID.Equals(UUID.Zero))
- {
- m_hyperlinkRegions.Add(regionInfo);
- m_log.Info("[HGrid]: Successfully linked to region_uuid " + regionInfo.RegionID);
-
- //Try get the map image
- GetMapImage(regionInfo);
- }
- else
- {
- m_log.Info("[HGrid]: No such region " + regionInfo.ExternalHostName + ":" + regionInfo.HttpPort + "(" + regionInfo.InternalEndPoint.Port + ")");
- }
- // Note that these remote regions aren't registered in localBackend, so return null, no local listeners
- return null;
- }
-
- // see IGridServices
- public virtual bool DeregisterRegion(RegionInfo regionInfo)
- {
- if (m_hyperlinkRegions.Contains(regionInfo))
- {
- m_hyperlinkRegions.Remove(regionInfo);
- return true;
- }
- foreach (KeyValuePair kvp in m_knownRegions)
- {
- if (kvp.Value == regionInfo)
- {
- m_knownRegions.Remove(kvp.Key);
- return true;
- }
- }
- return false;
- }
-
- public virtual Dictionary GetGridSettings()
- {
- Dictionary returnGridSettings = new Dictionary();
- lock (m_queuedGridSettings)
- {
- foreach (string Dictkey in m_queuedGridSettings.Keys)
- {
- returnGridSettings.Add(Dictkey, m_queuedGridSettings[Dictkey]);
- }
-
- m_queuedGridSettings.Clear();
- }
-
- return returnGridSettings;
- }
-
- // see IGridServices
- public virtual List RequestNeighbours(uint x, uint y)
- {
- List neighbours = new List();
- foreach (RegionInfo reg in m_hyperlinkRegions)
- {
- if (reg.RegionLocX != x || reg.RegionLocY != y)
- {
- //m_log.Debug("CommsManager- RequestNeighbours() - found a different region in list, checking location");
- if ((reg.RegionLocX > (x - 2)) && (reg.RegionLocX < (x + 2)))
- {
- if ((reg.RegionLocY > (y - 2)) && (reg.RegionLocY < (y + 2)))
- {
- neighbours.Add(reg);
- }
- }
- }
- }
-
- return neighbours;
- }
-
- ///
- /// Request information about a region.
- ///
- ///
- ///
- /// null on a failure to contact or get a response from the grid server
- /// FIXME: Might be nicer to return a proper exception here since we could inform the client more about the
- /// nature of the faiulre.
- ///
- public virtual RegionInfo RequestNeighbourInfo(UUID Region_UUID)
- {
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- if (info.RegionID == Region_UUID) return info;
- }
-
- // I don't trust region uuids to be unique...
- //foreach (RegionInfo info in m_knownRegions.Values)
- //{
- // if (info.RegionID == Region_UUID) return info;
- //}
-
- return null;
- }
-
- ///
- /// Request information about a region.
- ///
- ///
- ///
- public virtual RegionInfo RequestNeighbourInfo(ulong regionHandle)
- {
- //m_log.Debug(" >> RequestNeighbourInfo for " + regionHandle);
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- //m_log.Debug(" .. " + info.RegionHandle);
- if (info.RegionHandle == regionHandle) return info;
- }
-
- foreach (RegionInfo info in m_knownRegions.Values)
- {
- if (info.RegionHandle == regionHandle)
- {
- //m_log.Debug("XXX------ known region " + info.RegionHandle);
- return info;
- }
- }
-
- return null;
- }
-
- public virtual RegionInfo RequestNeighbourInfo(string name)
- {
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- //m_log.Debug(" .. " + info.RegionHandle);
- if (info.RegionName == name) return info;
- }
-
- foreach (RegionInfo info in m_knownRegions.Values)
- {
- if (info.RegionName == name)
- {
- //m_log.Debug("XXX------ known region " + info.RegionHandle);
- return info;
- }
- }
-
- return null;
- }
-
- public virtual RegionInfo RequestNeighbourInfo(string hostName, uint port)
- {
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- //m_log.Debug(" .. " + info.RegionHandle);
- if ((info.ExternalHostName == hostName) && (info.HttpPort == port))
- return info;
- }
-
- foreach (RegionInfo info in m_knownRegions.Values)
- {
- if ((info.ExternalHostName == hostName) && (info.HttpPort == port))
- {
- //m_log.Debug("XXX------ known region " + info.RegionHandle);
- return info;
- }
- }
-
- return null;
- }
-
- public virtual RegionInfo RequestClosestRegion(string regionName)
- {
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- if (info.RegionName == regionName) return info;
- }
-
- return null;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public virtual List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY)
- {
- List neighbours = new List();
-
- foreach (RegionInfo regInfo in m_hyperlinkRegions)
- {
- if (((regInfo.RegionLocX >= minX) && (regInfo.RegionLocX <= maxX)) &&
- ((regInfo.RegionLocY >= minY) && (regInfo.RegionLocY <= maxY)))
- {
- MapBlockData map = new MapBlockData();
- map.Name = regInfo.RegionName;
- map.X = (ushort)regInfo.RegionLocX;
- map.Y = (ushort)regInfo.RegionLocY;
- map.WaterHeight = (byte)regInfo.RegionSettings.WaterHeight;
- map.MapImageId = regInfo.RegionSettings.TerrainImageID;
- // m_log.Debug("ImgID: " + map.MapImageId);
- map.Agents = 1;
- map.RegionFlags = 72458694;
- map.Access = regInfo.AccessLevel;
- neighbours.Add(map);
- }
- }
-
- return neighbours;
- }
-
-
- protected virtual void GetMapImage(RegionInfo info)
- {
- try
- {
- string regionimage = "regionImage" + info.RegionID.ToString();
- regionimage = regionimage.Replace("-", "");
-
- WebClient c = new WebClient();
- string uri = "http://" + info.ExternalHostName + ":" + info.HttpPort + "/index.php?method=" + regionimage;
- //m_log.Debug("JPEG: " + uri);
- c.DownloadFile(uri, info.RegionID.ToString() + ".jpg");
- Bitmap m = new Bitmap(info.RegionID.ToString() + ".jpg");
- //m_log.Debug("Size: " + m.PhysicalDimension.Height + "-" + m.PhysicalDimension.Width);
- byte[] imageData = OpenJPEG.EncodeFromImage(m, true);
- AssetBase ass = new AssetBase(UUID.Random(), "region " + info.RegionID.ToString());
- info.RegionSettings.TerrainImageID = ass.FullID;
- ass.Type = (int)AssetType.Texture;
- ass.Temporary = false;
- ass.Local = true;
- ass.Data = imageData;
-
- m_sceneman.CurrentOrFirstScene.AssetService.Store(ass);
-
- }
- catch // LEGIT: Catching problems caused by OpenJPEG p/invoke
- {
- m_log.Warn("[HGrid]: Failed getting/storing map image, because it is probably already in the cache");
- }
- }
-
- // A little ugly, since this code is exactly the same as OSG1's, and we're already
- // calling that for when the region in in grid mode... (for the grid regions)
- //
- public virtual LandData RequestLandData (ulong regionHandle, uint x, uint y)
- {
- m_log.DebugFormat("[HGrid]: requests land data in {0}, at {1}, {2}",
- regionHandle, x, y);
-
- // Remote region
-
- Hashtable hash = new Hashtable();
- hash["region_handle"] = regionHandle.ToString();
- hash["x"] = x.ToString();
- hash["y"] = y.ToString();
-
- IList paramList = new ArrayList();
- paramList.Add(hash);
- LandData landData = null;
-
- try
- {
- RegionInfo info = RequestNeighbourInfo(regionHandle);
- if (info != null) // just to be sure
- {
- XmlRpcRequest request = new XmlRpcRequest("land_data", paramList);
- string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/";
- XmlRpcResponse response = request.Send(uri, 10000);
- if (response.IsFault)
- {
- m_log.ErrorFormat("[HGrid]: remote call returned an error: {0}", response.FaultString);
- }
- else
- {
- hash = (Hashtable)response.Value;
- try
- {
- landData = new LandData();
- landData.AABBMax = Vector3.Parse((string)hash["AABBMax"]);
- landData.AABBMin = Vector3.Parse((string)hash["AABBMin"]);
- landData.Area = Convert.ToInt32(hash["Area"]);
- landData.AuctionID = Convert.ToUInt32(hash["AuctionID"]);
- landData.Description = (string)hash["Description"];
- landData.Flags = Convert.ToUInt32(hash["Flags"]);
- landData.GlobalID = new UUID((string)hash["GlobalID"]);
- landData.Name = (string)hash["Name"];
- landData.OwnerID = new UUID((string)hash["OwnerID"]);
- landData.SalePrice = Convert.ToInt32(hash["SalePrice"]);
- landData.SnapshotID = new UUID((string)hash["SnapshotID"]);
- landData.UserLocation = Vector3.Parse((string)hash["UserLocation"]);
- m_log.DebugFormat("[HGrid]: Got land data for parcel {0}", landData.Name);
- }
- catch (Exception e)
- {
- m_log.Error("[HGrid]: Got exception while parsing land-data:", e);
- }
- }
- }
- else m_log.WarnFormat("[HGrid]: Couldn't find region with handle {0}", regionHandle);
- }
- catch (Exception e)
- {
- m_log.ErrorFormat("[HGrid]: Couldn't contact region {0}: {1}", regionHandle, e);
- }
-
- return landData;
- }
-
- // Grid Request Processing
- public virtual List RequestNamedRegions (string name, int maxNumber)
- {
- List infos = new List();
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- if (info.RegionName.ToLower().Contains(name))
- {
- infos.Add(info);
- }
- }
- return infos;
- }
-
-
- private UUID LinkRegion(RegionInfo info)
- {
- UUID uuid = UUID.Zero;
-
- Hashtable hash = new Hashtable();
- hash["region_name"] = info.RegionName;
-
- IList paramList = new ArrayList();
- paramList.Add(hash);
-
- XmlRpcRequest request = new XmlRpcRequest("link_region", paramList);
- string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/";
- m_log.Debug("[HGrid]: Linking to " + uri);
- XmlRpcResponse response = request.Send(uri, 10000);
- if (response.IsFault)
- {
- m_log.ErrorFormat("[HGrid]: remote call returned an error: {0}", response.FaultString);
- }
- else
- {
- hash = (Hashtable)response.Value;
- //foreach (Object o in hash)
- // m_log.Debug(">> " + ((DictionaryEntry)o).Key + ":" + ((DictionaryEntry)o).Value);
- try
- {
- UUID.TryParse((string)hash["uuid"], out uuid);
- info.RegionID = uuid;
- if ((string)hash["handle"] != null)
- {
- info.regionSecret = (string)hash["handle"];
- //m_log.Debug(">> HERE: " + info.regionSecret);
- }
- if (hash["region_image"] != null)
- {
- UUID img = UUID.Zero;
- UUID.TryParse((string)hash["region_image"], out img);
- info.RegionSettings.TerrainImageID = img;
- }
- if (hash["region_name"] != null)
- {
- info.RegionName = (string)hash["region_name"];
- //m_log.Debug(">> " + info.RegionName);
- }
- if (hash["internal_port"] != null)
- {
- int port = Convert.ToInt32((string)hash["internal_port"]);
- info.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), port);
- //m_log.Debug(">> " + info.InternalEndPoint.ToString());
- }
- if (hash["remoting_port"] != null)
- {
- info.RemotingPort = Convert.ToUInt32(hash["remoting_port"]);
- //m_log.Debug(">> " + info.RemotingPort);
- }
-
- }
- catch (Exception e)
- {
- m_log.Error("[HGrid]: Got exception while parsing hyperlink response " + e.StackTrace);
- }
- }
- return uuid;
- }
-
- ///
- /// Someone wants to link to us
- ///
- ///
- ///
- public XmlRpcResponse LinkRegionRequest(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- //string host = (string)requestData["host"];
- //string portstr = (string)requestData["port"];
- string name = (string)requestData["region_name"];
-
- m_log.DebugFormat("[HGrid]: Hyperlink request");
-
-
- RegionInfo regInfo = null;
- foreach (RegionInfo r in m_regionsOnInstance)
- {
- if ((r.RegionName != null) && (name != null) && (r.RegionName.ToLower() == name.ToLower()))
- {
- regInfo = r;
- break;
- }
- }
-
- if (regInfo == null)
- regInfo = m_regionsOnInstance[0]; // Send out the first region
-
- Hashtable hash = new Hashtable();
- hash["uuid"] = regInfo.RegionID.ToString();
- hash["handle"] = regInfo.RegionHandle.ToString();
- //m_log.Debug(">> Here " + regInfo.RegionHandle);
- hash["region_image"] = regInfo.RegionSettings.TerrainImageID.ToString();
- hash["region_name"] = regInfo.RegionName;
- hash["internal_port"] = regInfo.InternalEndPoint.Port.ToString();
- hash["remoting_port"] = ConfigSettings.DefaultRegionRemotingPort.ToString();
- //m_log.Debug(">> Here: " + regInfo.InternalEndPoint.Port);
-
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = hash;
- return response;
- }
-
- public bool InformRegionOfUser(RegionInfo regInfo, AgentCircuitData agentData)
- {
- //ulong regionHandle = regInfo.RegionHandle;
- try
- {
- //regionHandle = Convert.ToUInt64(regInfo.regionSecret);
- m_log.Info("[HGrid]: InformRegionOfUser: Remote hyperlinked region " + regInfo.regionSecret);
- }
- catch
- {
- m_log.Info("[HGrid]: InformRegionOfUser: Local grid region " + regInfo.regionSecret);
- }
-
- string capsPath = agentData.CapsPath;
- Hashtable loginParams = new Hashtable();
- loginParams["session_id"] = agentData.SessionID.ToString();
- loginParams["secure_session_id"] = agentData.SecureSessionID.ToString();
-
- loginParams["firstname"] = agentData.firstname;
- loginParams["lastname"] = agentData.lastname;
-
- loginParams["agent_id"] = agentData.AgentID.ToString();
- loginParams["circuit_code"] = agentData.circuitcode.ToString();
- loginParams["startpos_x"] = agentData.startpos.X.ToString();
- loginParams["startpos_y"] = agentData.startpos.Y.ToString();
- loginParams["startpos_z"] = agentData.startpos.Z.ToString();
- loginParams["caps_path"] = capsPath;
-
- CachedUserInfo u = m_userProfileCache.GetUserDetails(agentData.AgentID);
- if (u != null && u.UserProfile != null)
- {
- loginParams["region_uuid"] = u.UserProfile.HomeRegionID.ToString(); // This seems to be always Zero
- //m_log.Debug(" --------- Home Region UUID -------");
- //m_log.Debug(" >> " + loginParams["region_uuid"] + " <<");
- //m_log.Debug(" --------- ---------------- -------");
-
- string serverURI = "";
- if (u.UserProfile is ForeignUserProfileData)
- serverURI = HGNetworkServersInfo.ServerURI(((ForeignUserProfileData)u.UserProfile).UserServerURI);
- loginParams["userserver_id"] = (serverURI == "") || (serverURI == null) ? HGNetworkServersInfo.Singleton.LocalUserServerURI : serverURI;
-
- serverURI = HGNetworkServersInfo.ServerURI(u.UserProfile.UserAssetURI);
- loginParams["assetserver_id"] = (serverURI == "") || (serverURI == null) ? HGNetworkServersInfo.Singleton.LocalAssetServerURI : serverURI;
-
- serverURI = HGNetworkServersInfo.ServerURI(u.UserProfile.UserInventoryURI);
- loginParams["inventoryserver_id"] = (serverURI == "") || (serverURI == null) ? HGNetworkServersInfo.Singleton.LocalInventoryServerURI : serverURI;
-
- loginParams["root_folder_id"] = u.UserProfile.RootInventoryFolderID;
-
- RegionInfo rinfo = RequestNeighbourInfo(u.UserProfile.HomeRegion);
- if (rinfo != null)
- {
- loginParams["internal_port"] = rinfo.InternalEndPoint.Port.ToString();
- if (!IsLocalUser(u))
- {
- loginParams["regionhandle"] = rinfo.regionSecret; // user.CurrentAgent.Handle.ToString();
- //m_log.Debug("XXX--- informregionofuser (foreign user) here handle: " + rinfo.regionSecret);
-
- loginParams["home_address"] = ((ForeignUserProfileData)(u.UserProfile)).UserHomeAddress;
- loginParams["home_port"] = ((ForeignUserProfileData)(u.UserProfile)).UserHomePort;
- loginParams["home_remoting"] = ((ForeignUserProfileData)(u.UserProfile)).UserHomeRemotingPort;
- }
- else
- {
- //m_log.Debug("XXX--- informregionofuser (local user) here handle: " + rinfo.regionSecret);
-
- //// local user about to jump out, let's process the name
- // On second thoughts, let's not do this for the *user*; let's only do it for the *agent*
- //loginParams["firstname"] = agentData.firstname + "." + agentData.lastname;
- //loginParams["lastname"] = serversInfo.UserURL;
-
- // local user, first time out. let's ask the grid about this user's home region
- loginParams["regionhandle"] = u.UserProfile.HomeRegion.ToString(); // user.CurrentAgent.Handle.ToString();
-
- loginParams["home_address"] = rinfo.ExternalHostName;
- m_log.Debug(" --------- Home Address -------");
- m_log.Debug(" >> " + loginParams["home_address"] + " <<");
- m_log.Debug(" --------- ------------ -------");
- loginParams["home_port"] = rinfo.HttpPort.ToString();
- loginParams["home_remoting"] = ConfigSettings.DefaultRegionRemotingPort.ToString(); ;
- }
- }
- else
- {
- m_log.Warn("[HGrid]: User's home region info not found: " + u.UserProfile.HomeRegionX + ", " + u.UserProfile.HomeRegionY);
- }
- }
-
- ArrayList SendParams = new ArrayList();
- SendParams.Add(loginParams);
-
- // Send
- string uri = "http://" + regInfo.ExternalHostName + ":" + regInfo.HttpPort + "/";
- //m_log.Debug("XXX uri: " + uri);
- XmlRpcRequest request = new XmlRpcRequest("expect_hg_user", SendParams);
- XmlRpcResponse reply;
- try
- {
- reply = request.Send(uri, 6000);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid]: Failed to notify region about user. Reason: " + e.Message);
- return false;
- }
-
- if (!reply.IsFault)
- {
- bool responseSuccess = true;
- if (reply.Value != null)
- {
- Hashtable resp = (Hashtable)reply.Value;
- if (resp.ContainsKey("success"))
- {
- if ((string)resp["success"] == "FALSE")
- {
- responseSuccess = false;
- }
- }
- }
- if (responseSuccess)
- {
- m_log.Info("[HGrid]: Successfully informed remote region about user " + agentData.AgentID);
- return true;
- }
- else
- {
- m_log.ErrorFormat("[HGrid]: Region responded that it is not available to receive clients");
- return false;
- }
- }
- else
- {
- m_log.ErrorFormat("[HGrid]: XmlRpc request to region failed with message {0}, code {1} ", reply.FaultString, reply.FaultCode);
- return false;
- }
- }
-
-
- ///
- /// Received from other HGrid nodes when a user wants to teleport here. This call allows
- /// the region to prepare for direct communication from the client. Sends back an empty
- /// xmlrpc response on completion.
- /// This is somewhat similar to OGS1's ExpectUser, but with the additional task of
- /// registering the user in the local user cache.
- ///
- ///
- ///
- public XmlRpcResponse ExpectHGUser(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- ForeignUserProfileData userData = new ForeignUserProfileData();
-
- userData.FirstName = (string)requestData["firstname"];
- userData.SurName = (string)requestData["lastname"];
- userData.ID = new UUID((string)requestData["agent_id"]);
- userData.HomeLocation = new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
- (float)Convert.ToDecimal((string)requestData["startpos_y"]),
- (float)Convert.ToDecimal((string)requestData["startpos_z"]));
-
- userData.UserServerURI = (string)requestData["userserver_id"];
- userData.UserAssetURI = (string)requestData["assetserver_id"];
- userData.UserInventoryURI = (string)requestData["inventoryserver_id"];
-
- UUID rootID = UUID.Zero;
- UUID.TryParse((string)requestData["root_folder_id"], out rootID);
- userData.RootInventoryFolderID = rootID;
-
- UUID uuid = UUID.Zero;
- UUID.TryParse((string)requestData["region_uuid"], out uuid);
- userData.HomeRegionID = uuid; // not quite comfortable about this...
- ulong userRegionHandle = Convert.ToUInt64((string)requestData["regionhandle"]);
- //userData.HomeRegion = userRegionHandle;
- userData.UserHomeAddress = (string)requestData["home_address"];
- userData.UserHomePort = (string)requestData["home_port"];
- int userhomeinternalport = Convert.ToInt32((string)requestData["internal_port"]);
- userData.UserHomeRemotingPort = (string)requestData["home_remoting"];
-
-
- m_log.DebugFormat("[HGrid]: Prepare for connection from {0} {1} (@{2}) UUID={3}",
- userData.FirstName, userData.SurName, userData.UserServerURI, userData.ID);
- m_log.Debug("[HGrid]: home_address: " + userData.UserHomeAddress +
- "; home_port: " + userData.UserHomePort + "; remoting: " + userData.UserHomeRemotingPort);
-
- XmlRpcResponse resp = new XmlRpcResponse();
-
- // Let's check if someone is trying to get in with a stolen local identity.
- // The need for this test is a consequence of not having truly global names :-/
- CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(userData.ID);
- if ((uinfo != null) && !(uinfo.UserProfile is ForeignUserProfileData))
- {
- m_log.WarnFormat("[HGrid]: Foreign user trying to get in with local identity. Access denied.");
- Hashtable respdata = new Hashtable();
- respdata["success"] = "FALSE";
- respdata["reason"] = "Foreign user has the same ID as a local user.";
- resp.Value = respdata;
- return resp;
- }
-
- if (!RegionLoginsEnabled)
- {
- m_log.InfoFormat(
- "[HGrid]: Denying access for user {0} {1} because region login is currently disabled",
- userData.FirstName, userData.SurName);
-
- Hashtable respdata = new Hashtable();
- respdata["success"] = "FALSE";
- respdata["reason"] = "region login currently disabled";
- resp.Value = respdata;
- }
- else
- {
- // Finally, everything looks ok
- //m_log.Debug("XXX---- EVERYTHING OK ---XXX");
-
- // 1 - Preload the user data
- m_userProfileCache.PreloadUserCache(userData);
-
- if (m_knownRegions.ContainsKey(userData.ID))
- {
- // This was left here when the user departed
- m_knownRegions.Remove(userData.ID);
- }
-
- // 2 - Load the region info into list of known regions
- RegionInfo rinfo = new RegionInfo();
- rinfo.RegionID = userData.HomeRegionID;
- rinfo.ExternalHostName = userData.UserHomeAddress;
- rinfo.HttpPort = Convert.ToUInt32(userData.UserHomePort);
- rinfo.RemotingPort = Convert.ToUInt32(userData.UserHomeRemotingPort);
- rinfo.RegionID = userData.HomeRegionID;
- // X=0 on the map
- rinfo.RegionLocX = 0;
- rinfo.RegionLocY = (uint)(random.Next(0, Int32.MaxValue)); //(uint)m_knownRegions.Count;
- rinfo.regionSecret = userRegionHandle.ToString();
- //m_log.Debug("XXX--- Here: handle = " + rinfo.regionSecret);
- try
- {
- rinfo.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)userhomeinternalport);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid]: Exception while constructing internal endpoint: " + e);
- }
- rinfo.RemotingAddress = rinfo.ExternalEndPoint.Address.ToString(); //userData.UserHomeAddress;
-
- if (!IsComingHome(userData))
- {
- // Change the user's home region here!!!
- userData.HomeRegion = rinfo.RegionHandle;
- }
-
- if (!m_knownRegions.ContainsKey(userData.ID))
- m_knownRegions.Add(userData.ID, rinfo);
-
- // 3 - Send the reply
- Hashtable respdata = new Hashtable();
- respdata["success"] = "TRUE";
- resp.Value = respdata;
-
- DumpUserData(userData);
- DumpRegionData(rinfo);
-
- }
-
- return resp;
- }
-
- public bool SendUserInformation(RegionInfo regInfo, AgentCircuitData agentData)
- {
- CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID);
-
- if ((IsLocalUser(uinfo) && IsHyperlinkRegion(regInfo.RegionHandle)) ||
- (!IsLocalUser(uinfo) && !IsGoingHome(uinfo, regInfo)))
- {
- m_log.Info("[HGrid]: Local user is going to foreign region or foreign user is going elsewhere");
- if (!InformRegionOfUser(regInfo, agentData))
- {
- m_log.Warn("[HGrid]: Could not inform remote region of transferring user.");
- return false;
- }
- }
- //if ((uinfo == null) || !IsGoingHome(uinfo, regInfo))
- //{
- // m_log.Info("[HGrid]: User seems to be going to foreign region.");
- // if (!InformRegionOfUser(regInfo, agentData))
- // {
- // m_log.Warn("[HGrid]: Could not inform remote region of transferring user.");
- // return false;
- // }
- //}
- //else
- // m_log.Info("[HGrid]: User seems to be going home " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName);
-
- // May need to change agent's name
- if (IsLocalUser(uinfo) && IsHyperlinkRegion(regInfo.RegionHandle))
- {
- agentData.firstname = agentData.firstname + "." + agentData.lastname;
- agentData.lastname = "@" + serversInfo.UserURL.Replace("http://", ""); ; //HGNetworkServersInfo.Singleton.LocalUserServerURI;
- }
-
- return true;
- }
-
-
- #region Methods triggered by calls from external instances
-
- ///
- ///
- ///
- ///
- ///
- ///
- public void AdjustUserInformation(AgentCircuitData agentData)
- {
- CachedUserInfo uinfo = m_userProfileCache.GetUserDetails(agentData.AgentID);
- if ((uinfo != null) && (uinfo.UserProfile != null) &&
- (IsLocalUser(uinfo) || !(uinfo.UserProfile is ForeignUserProfileData)))
- {
- //m_log.Debug("---------------> Local User!");
- string[] parts = agentData.firstname.Split(new char[] { '.' });
- if (parts.Length == 2)
- {
- agentData.firstname = parts[0];
- agentData.lastname = parts[1];
- }
- }
- //else
- // m_log.Debug("---------------> Foreign User!");
- }
- #endregion
-
-
- #region IHyperGrid interface
-
- public virtual bool IsHyperlinkRegion(ulong ihandle)
- {
- if (GetHyperlinkRegion(ihandle) == null)
- return false;
- else
- return true;
- }
-
- public virtual RegionInfo GetHyperlinkRegion(ulong ihandle)
- {
- foreach (RegionInfo info in m_hyperlinkRegions)
- {
- if (info.RegionHandle == ihandle)
- return info;
- }
-
- foreach (RegionInfo info in m_knownRegions.Values)
- {
- if (info.RegionHandle == ihandle)
- return info;
- }
-
- return null;
- }
-
- public virtual ulong FindRegionHandle(ulong ihandle)
- {
- long ohandle = -1;
- List rlist = new List(m_hyperlinkRegions);
- rlist.AddRange(m_knownRegions.Values);
- foreach (RegionInfo info in rlist)
- {
- if (info.RegionHandle == ihandle)
- {
- try
- {
- ohandle = Convert.ToInt64(info.regionSecret);
- m_log.Info("[HGrid] remote region " + ohandle);
- }
- catch
- {
- m_log.Error("[HGrid] Could not convert secret for " + ihandle + " (" + info.regionSecret + ")");
- }
- break;
- }
- }
- return ohandle < 0 ? ihandle : (ulong)ohandle;
- }
- #endregion
-
- #region Misc
-
- protected bool IsComingHome(ForeignUserProfileData userData)
- {
- return (userData.UserServerURI == HGNetworkServersInfo.Singleton.LocalUserServerURI);
- }
-
- protected bool IsGoingHome(CachedUserInfo uinfo, RegionInfo rinfo)
- {
- if (uinfo.UserProfile == null)
- return false;
-
- string userUserServerURI = String.Empty;
- if (uinfo.UserProfile is ForeignUserProfileData)
- {
- userUserServerURI = HGNetworkServersInfo.ServerURI(((ForeignUserProfileData)uinfo.UserProfile).UserServerURI);
- }
-
- return ((uinfo.UserProfile.HomeRegionID == rinfo.RegionID) &&
- (userUserServerURI != HGNetworkServersInfo.Singleton.LocalUserServerURI));
- }
-
- protected bool IsLocalUser(CachedUserInfo uinfo)
- {
- if (uinfo == null)
- return true;
-
- if (uinfo.UserProfile is ForeignUserProfileData)
- return HGNetworkServersInfo.Singleton.IsLocalUser(((ForeignUserProfileData)uinfo.UserProfile).UserServerURI);
- else
- return true;
-
- }
-
- protected bool IsLocalRegion(ulong handle)
- {
- foreach (RegionInfo reg in m_regionsOnInstance)
- if (reg.RegionHandle == handle)
- return true;
- return false;
- }
-
- private void DumpUserData(ForeignUserProfileData userData)
- {
- m_log.Info(" ------------ User Data Dump ----------");
- m_log.Info(" >> Name: " + userData.FirstName + " " + userData.SurName);
- m_log.Info(" >> HomeID: " + userData.HomeRegionID);
- m_log.Info(" >> HomeHandle: " + userData.HomeRegion);
- m_log.Info(" >> HomeX: " + userData.HomeRegionX);
- m_log.Info(" >> HomeY: " + userData.HomeRegionY);
- m_log.Info(" >> UserServer: " + userData.UserServerURI);
- m_log.Info(" >> InvServer: " + userData.UserInventoryURI);
- m_log.Info(" >> AssetServer: " + userData.UserAssetURI);
- m_log.Info(" ------------ -------------- ----------");
- }
-
- private void DumpRegionData(RegionInfo rinfo)
- {
- m_log.Info(" ------------ Region Data Dump ----------");
- m_log.Info(" >> handle: " + rinfo.RegionHandle);
- m_log.Info(" >> coords: " + rinfo.RegionLocX + ", " + rinfo.RegionLocY);
- m_log.Info(" >> secret: " + rinfo.regionSecret);
- m_log.Info(" >> remoting address: " + rinfo.RemotingAddress);
- m_log.Info(" >> remoting port: " + rinfo.RemotingPort);
- m_log.Info(" >> external host name: " + rinfo.ExternalHostName);
- m_log.Info(" >> http port: " + rinfo.HttpPort);
- m_log.Info(" >> external EP address: " + rinfo.ExternalEndPoint.Address);
- m_log.Info(" >> external EP port: " + rinfo.ExternalEndPoint.Port);
- m_log.Info(" ------------ -------------- ----------");
- }
-
-
- #endregion
-
-
- }
-}
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs
deleted file mode 100644
index 5ce1e79c71..0000000000
--- a/OpenSim/Region/Communications/Hypergrid/HGGridServicesGridMode.cs
+++ /dev/null
@@ -1,159 +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 log4net;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Region.Communications.OGS1;
-using OpenSim.Region.Framework.Scenes;
-
-namespace OpenSim.Region.Communications.Hypergrid
-{
- public class HGGridServicesGridMode : HGGridServices
- {
- //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- ///
- /// Encapsulate remote backend services for manipulation of grid regions
- ///
- private OGS1GridServices m_remoteBackend = null;
-
- public OGS1GridServices RemoteBackend
- {
- get { return m_remoteBackend; }
- }
-
-
- public override string gdebugRegionName
- {
- get { return m_remoteBackend.gdebugRegionName; }
- set { m_remoteBackend.gdebugRegionName = value; }
- }
-
- public override bool RegionLoginsEnabled
- {
- get { return m_remoteBackend.RegionLoginsEnabled; }
- set { m_remoteBackend.RegionLoginsEnabled = value; }
- }
-
- public HGGridServicesGridMode(NetworkServersInfo servers_info,
- SceneManager sman, UserProfileCacheService userv)
- : base(servers_info, sman)
- {
- m_remoteBackend = new OGS1GridServices(servers_info);
- m_userProfileCache = userv;
- }
-
- #region IGridServices interface
-
- public override RegionCommsListener RegisterRegion(RegionInfo regionInfo)
- {
- if (!regionInfo.RegionID.Equals(UUID.Zero))
- {
- m_regionsOnInstance.Add(regionInfo);
- return m_remoteBackend.RegisterRegion(regionInfo);
- }
- else
- return base.RegisterRegion(regionInfo);
- }
-
- public override bool DeregisterRegion(RegionInfo regionInfo)
- {
- bool success = base.DeregisterRegion(regionInfo);
- if (!success)
- success = m_remoteBackend.DeregisterRegion(regionInfo);
- return success;
- }
-
- public override List RequestNeighbours(uint x, uint y)
- {
- List neighbours = m_remoteBackend.RequestNeighbours(x, y);
- //List remotes = base.RequestNeighbours(x, y);
- //neighbours.AddRange(remotes);
-
- return neighbours;
- }
-
- public override RegionInfo RequestNeighbourInfo(UUID Region_UUID)
- {
- RegionInfo info = m_remoteBackend.RequestNeighbourInfo(Region_UUID);
- if (info == null)
- info = base.RequestNeighbourInfo(Region_UUID);
- return info;
- }
-
- public override RegionInfo RequestNeighbourInfo(ulong regionHandle)
- {
- RegionInfo info = base.RequestNeighbourInfo(regionHandle);
- if (info == null)
- info = m_remoteBackend.RequestNeighbourInfo(regionHandle);
- return info;
- }
-
- public override RegionInfo RequestClosestRegion(string regionName)
- {
- RegionInfo info = m_remoteBackend.RequestClosestRegion(regionName);
- if (info == null)
- info = base.RequestClosestRegion(regionName);
- return info;
- }
-
- public override List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY)
- {
- List neighbours = m_remoteBackend.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
- List remotes = base.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
- neighbours.AddRange(remotes);
-
- return neighbours;
- }
-
- public override LandData RequestLandData(ulong regionHandle, uint x, uint y)
- {
- LandData land = m_remoteBackend.RequestLandData(regionHandle, x, y);
- if (land == null)
- land = base.RequestLandData(regionHandle, x, y);
- return land;
- }
-
- public override List RequestNamedRegions(string name, int maxNumber)
- {
- List infos = m_remoteBackend.RequestNamedRegions(name, maxNumber);
- List remotes = base.RequestNamedRegions(name, maxNumber);
- infos.AddRange(remotes);
- return infos;
- }
-
- #endregion
-
-
- }
-}
diff --git a/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs b/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs
deleted file mode 100644
index 94cfc496bb..0000000000
--- a/OpenSim/Region/Communications/Hypergrid/HGGridServicesStandalone.cs
+++ /dev/null
@@ -1,259 +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.Net.Sockets;
-using System.Reflection;
-using System.Runtime.Remoting;
-using System.Runtime.Remoting.Channels;
-using System.Runtime.Remoting.Channels.Tcp;
-using System.Security.Authentication;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Region.Communications.Local;
-using OpenSim.Region.Communications.OGS1;
-using OpenSim.Region.Framework.Scenes;
-
-namespace OpenSim.Region.Communications.Hypergrid
-{
- public class HGGridServicesStandalone : HGGridServices
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- ///
- /// Encapsulate local backend services for manipulation of local regions
- ///
- protected LocalBackEndServices m_localBackend = new LocalBackEndServices();
-
- //private Dictionary m_deadRegionCache = new Dictionary();
-
- public LocalBackEndServices LocalBackend
- {
- get { return m_localBackend; }
- }
-
- public override string gdebugRegionName
- {
- get { return m_localBackend.gdebugRegionName; }
- set { m_localBackend.gdebugRegionName = value; }
- }
-
- public override bool RegionLoginsEnabled
- {
- get { return m_localBackend.RegionLoginsEnabled; }
- set { m_localBackend.RegionLoginsEnabled = value; }
- }
-
-
- public HGGridServicesStandalone(NetworkServersInfo servers_info, BaseHttpServer httpServe, SceneManager sman)
- : base(servers_info, sman)
- {
- //Respond to Grid Services requests
- MainServer.Instance.AddXmlRPCHandler("logoff_user", LogOffUser);
- MainServer.Instance.AddXmlRPCHandler("check", PingCheckReply);
- MainServer.Instance.AddXmlRPCHandler("land_data", LandData);
-
- }
-
- #region IGridServices interface
-
- public override RegionCommsListener RegisterRegion(RegionInfo regionInfo)
- {
- if (!regionInfo.RegionID.Equals(UUID.Zero))
- {
- m_regionsOnInstance.Add(regionInfo);
- return m_localBackend.RegisterRegion(regionInfo);
- }
- else
- return base.RegisterRegion(regionInfo);
-
- }
-
- public override bool DeregisterRegion(RegionInfo regionInfo)
- {
- bool success = m_localBackend.DeregisterRegion(regionInfo);
- if (!success)
- success = base.DeregisterRegion(regionInfo);
- return success;
- }
-
- public override List RequestNeighbours(uint x, uint y)
- {
- List neighbours = m_localBackend.RequestNeighbours(x, y);
- //List remotes = base.RequestNeighbours(x, y);
- //neighbours.AddRange(remotes);
-
- return neighbours;
- }
-
- public override RegionInfo RequestNeighbourInfo(UUID Region_UUID)
- {
- RegionInfo info = m_localBackend.RequestNeighbourInfo(Region_UUID);
- if (info == null)
- info = base.RequestNeighbourInfo(Region_UUID);
- return info;
- }
-
- public override RegionInfo RequestNeighbourInfo(ulong regionHandle)
- {
- RegionInfo info = m_localBackend.RequestNeighbourInfo(regionHandle);
- //m_log.Info("[HGrid] Request neighbor info, local backend returned " + info);
- if (info == null)
- info = base.RequestNeighbourInfo(regionHandle);
- return info;
- }
-
- public override RegionInfo RequestClosestRegion(string regionName)
- {
- RegionInfo info = m_localBackend.RequestClosestRegion(regionName);
- if (info == null)
- info = base.RequestClosestRegion(regionName);
- return info;
- }
-
- public override List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY)
- {
- //m_log.Info("[HGrid] Request map blocks " + minX + "-" + minY + "-" + maxX + "-" + maxY);
- List neighbours = m_localBackend.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
- List remotes = base.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
- neighbours.AddRange(remotes);
-
- return neighbours;
- }
-
- public override LandData RequestLandData(ulong regionHandle, uint x, uint y)
- {
- LandData land = m_localBackend.RequestLandData(regionHandle, x, y);
- if (land == null)
- land = base.RequestLandData(regionHandle, x, y);
- return land;
- }
-
- public override List RequestNamedRegions(string name, int maxNumber)
- {
- List infos = m_localBackend.RequestNamedRegions(name, maxNumber);
- List remotes = base.RequestNamedRegions(name, maxNumber);
- infos.AddRange(remotes);
- return infos;
- }
-
- #endregion
-
- #region XML Request Handlers
-
- ///
- /// A ping / version check
- ///
- ///
- ///
- public virtual XmlRpcResponse PingCheckReply(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
-
- Hashtable respData = new Hashtable();
- respData["online"] = "true";
-
- m_localBackend.PingCheckReply(respData);
-
- response.Value = respData;
-
- return response;
- }
-
-
- // Grid Request Processing
- ///
- /// Ooops, our Agent must be dead if we're getting this request!
- ///
- ///
- ///
- public XmlRpcResponse LogOffUser(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- m_log.Debug("[HGrid]: LogOff User Called");
-
- Hashtable requestData = (Hashtable)request.Params[0];
- string message = (string)requestData["message"];
- UUID agentID = UUID.Zero;
- UUID RegionSecret = UUID.Zero;
- UUID.TryParse((string)requestData["agent_id"], out agentID);
- UUID.TryParse((string)requestData["region_secret"], out RegionSecret);
-
- ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]);
-
- m_localBackend.TriggerLogOffUser(regionHandle, agentID, RegionSecret, message);
-
- return new XmlRpcResponse();
- }
-
- ///
- /// Someone asked us about parcel-information
- ///
- ///
- ///
- public XmlRpcResponse LandData(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- ulong regionHandle = Convert.ToUInt64(requestData["region_handle"]);
- uint x = Convert.ToUInt32(requestData["x"]);
- uint y = Convert.ToUInt32(requestData["y"]);
- m_log.DebugFormat("[HGrid]: Got XML reqeuest for land data at {0}, {1} in region {2}", x, y, regionHandle);
-
- LandData landData = m_localBackend.RequestLandData(regionHandle, x, y);
- Hashtable hash = new Hashtable();
- if (landData != null)
- {
- // for now, only push out the data we need for answering a ParcelInfoReqeust
- hash["AABBMax"] = landData.AABBMax.ToString();
- hash["AABBMin"] = landData.AABBMin.ToString();
- hash["Area"] = landData.Area.ToString();
- hash["AuctionID"] = landData.AuctionID.ToString();
- hash["Description"] = landData.Description;
- hash["Flags"] = landData.Flags.ToString();
- hash["GlobalID"] = landData.GlobalID.ToString();
- hash["Name"] = landData.Name;
- hash["OwnerID"] = landData.OwnerID.ToString();
- hash["SalePrice"] = landData.SalePrice.ToString();
- hash["SnapshotID"] = landData.SnapshotID.ToString();
- hash["UserLocation"] = landData.UserLocation.ToString();
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = hash;
- return response;
- }
-
- #endregion
-
- }
-}
diff --git a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
index f1a56ef64c..49a2261577 100644
--- a/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
+++ b/OpenSim/Region/Communications/Hypergrid/HGUserServices.cs
@@ -87,7 +87,7 @@ namespace OpenSim.Region.Communications.Hypergrid
return m_localUserServices.AddUserAgent(agentdata);
return base.AddUserAgent(agentdata);
- }
+ }
public override UserAgentData GetAgentByUUID(UUID userId)
{
diff --git a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs
index a658416ce0..eaf996d015 100644
--- a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs
+++ b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs
@@ -37,7 +37,7 @@ namespace OpenSim.Region.Communications.Local
public class CommunicationsLocal : CommunicationsManager
{
public CommunicationsLocal(
- ConfigSettings configSettings,
+ ConfigSettings configSettings,
NetworkServersInfo serversInfo,
LibraryRootFolder libraryRootFolder)
: base(serversInfo, libraryRootFolder)
@@ -47,15 +47,13 @@ namespace OpenSim.Region.Communications.Local
= new LocalUserServices(
serversInfo.DefaultHomeLocX, serversInfo.DefaultHomeLocY, this);
lus.AddPlugin(new TemporaryUserProfilePlugin());
- lus.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource);
+ lus.AddPlugin(configSettings.StandaloneUserPlugin, configSettings.StandaloneUserSource);
m_userService = lus;
- m_userAdminService = lus;
+ m_userAdminService = lus;
m_avatarService = lus;
m_messageService = lus;
- m_gridService = new LocalBackEndServices();
-
- //LocalLoginService loginService = CreateLoginService(libraryRootFolder, inventoryService, userService, backendService);
+ //LocalLoginService loginService = CreateLoginService(libraryRootFolder, inventoryService, userService, backendService);
}
}
}
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
deleted file mode 100644
index 0ab9374789..0000000000
--- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
+++ /dev/null
@@ -1,410 +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 OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-
-namespace OpenSim.Region.Communications.Local
-{
- public class LocalBackEndServices : IGridServices
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- protected Dictionary m_regions = new Dictionary();
-
- protected Dictionary m_regionListeners =
- new Dictionary();
-
- // private Dictionary m_remoteRegionInfoCache = new Dictionary();
-
- private Dictionary m_queuedGridSettings = new Dictionary();
-
- public string _gdebugRegionName = String.Empty;
-
- public bool RegionLoginsEnabled
- {
- get { return m_regionLoginsEnabled; }
- set { m_regionLoginsEnabled = value; }
- }
- private bool m_regionLoginsEnabled;
-
- public bool CheckRegion(string address, uint port)
- {
- return true;
- }
-
- public string gdebugRegionName
- {
- get { return _gdebugRegionName; }
- set { _gdebugRegionName = value; }
- }
-
- public string _rdebugRegionName = String.Empty;
-
- public string rdebugRegionName
- {
- get { return _rdebugRegionName; }
- set { _rdebugRegionName = value; }
- }
-
- ///
- /// Register a region method with the BackEnd Services.
- ///
- ///
- ///
- public RegionCommsListener RegisterRegion(RegionInfo regionInfo)
- {
- //m_log.Debug("CommsManager - Region " + regionInfo.RegionHandle + " , " + regionInfo.RegionLocX + " , "+ regionInfo.RegionLocY +" is registering");
- if (!m_regions.ContainsKey(regionInfo.RegionHandle))
- {
- //m_log.Debug("CommsManager - Adding Region " + regionInfo.RegionHandle);
- m_regions.Add(regionInfo.RegionHandle, regionInfo);
-
- RegionCommsListener regionHost = new RegionCommsListener();
- if (m_regionListeners.ContainsKey(regionInfo.RegionHandle))
- {
- m_log.Error("[INTERREGION STANDALONE]: " +
- "Error:Region registered twice as an Events listener for Interregion Communications but not as a listed region. " +
- "In Standalone mode this will cause BIG issues. In grid mode, it means a region went down and came back up.");
- m_regionListeners.Remove(regionInfo.RegionHandle);
- }
- m_regionListeners.Add(regionInfo.RegionHandle, regionHost);
-
- return regionHost;
- }
- else
- {
- // Already in our list, so the region went dead and restarted.
- // don't replace the old regioninfo.. this might be a locking issue.. however we need to
- // remove it and let it add normally below or we get extremely strange and intermittant
- // connectivity errors.
- // Don't change this line below to 'm_regions[regionInfo.RegionHandle] = regionInfo' unless you
- // *REALLY* know what you are doing here.
- m_regions[regionInfo.RegionHandle] = regionInfo;
-
- m_log.Warn("[INTERREGION STANDALONE]: Region registered twice. Region went down and came back up.");
-
- RegionCommsListener regionHost = new RegionCommsListener();
- if (m_regionListeners.ContainsKey(regionInfo.RegionHandle))
- {
- m_regionListeners.Remove(regionInfo.RegionHandle);
- }
- m_regionListeners.Add(regionInfo.RegionHandle, regionHost);
-
- return regionHost;
- }
- }
-
- public bool DeregisterRegion(RegionInfo regionInfo)
- {
- if (m_regions.ContainsKey(regionInfo.RegionHandle))
- {
- m_regions.Remove(regionInfo.RegionHandle);
- if (m_regionListeners.ContainsKey(regionInfo.RegionHandle))
- {
- m_regionListeners.Remove(regionInfo.RegionHandle);
- }
- return true;
- }
- return false;
- }
-
- ///
- ///
- ///
- ///
- public List RequestNeighbours(uint x, uint y)
- {
- // m_log.Debug("Finding Neighbours to " + regionInfo.RegionHandle);
- List neighbours = new List();
-
- foreach (RegionInfo reg in m_regions.Values)
- {
- // m_log.Debug("CommsManager- RequestNeighbours() checking region " + reg.RegionLocX + " , "+ reg.RegionLocY);
- if (reg.RegionLocX != x || reg.RegionLocY != y)
- {
- //m_log.Debug("CommsManager- RequestNeighbours() - found a different region in list, checking location");
- if ((reg.RegionLocX > (x - 2)) && (reg.RegionLocX < (x + 2)))
- {
- if ((reg.RegionLocY > (y - 2)) && (reg.RegionLocY < (y + 2)))
- {
- neighbours.Add(reg);
- }
- }
- }
- }
- return neighbours;
- }
-
- ///
- /// Get information about a neighbouring region
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(ulong regionHandle)
- {
- if (m_regions.ContainsKey(regionHandle))
- {
- return m_regions[regionHandle];
- }
-
- return null;
- }
-
- ///
- /// Get information about a neighbouring region
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(UUID regionID)
- {
- // TODO add a dictionary for faster lookup
- foreach (RegionInfo info in m_regions.Values)
- {
- if (info.RegionID == regionID)
- return info;
- }
-
- return null;
- }
-
- ///
- /// Get information about a neighbouring region
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(string name)
- {
- foreach (RegionInfo info in m_regions.Values)
- {
- if (info.RegionName == name)
- return info;
- }
-
- return null;
- }
-
- ///
- /// Get information about a neighbouring region
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(string host, uint port)
- {
- foreach (RegionInfo info in m_regions.Values)
- {
- if ((info.ExternalHostName == host) && (info.HttpPort == port))
- return info;
- }
-
- return null;
- }
-
- ///
- /// Get information about the closet region given a region name.
- ///
- ///
- ///
- public RegionInfo RequestClosestRegion(string regionName)
- {
- foreach (RegionInfo regInfo in m_regions.Values)
- {
- if (regInfo.RegionName == regionName)
- return regInfo;
- }
- return null;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY)
- {
- List mapBlocks = new List();
- foreach (RegionInfo regInfo in m_regions.Values)
- {
- if (((regInfo.RegionLocX >= minX) && (regInfo.RegionLocX <= maxX)) &&
- ((regInfo.RegionLocY >= minY) && (regInfo.RegionLocY <= maxY)))
- {
- MapBlockData map = new MapBlockData();
- map.Name = regInfo.RegionName;
- map.X = (ushort) regInfo.RegionLocX;
- map.Y = (ushort) regInfo.RegionLocY;
- map.WaterHeight = (byte) regInfo.RegionSettings.WaterHeight;
- map.MapImageId = regInfo.RegionSettings.TerrainImageID;
- map.Agents = 1;
- map.RegionFlags = 72458694;
- map.Access = regInfo.AccessLevel;
- mapBlocks.Add(map);
- }
- }
- return mapBlocks;
- }
-
- // This function is only here to keep this class in line with the Grid Interface.
- // It never gets called.
- public virtual Dictionary GetGridSettings()
- {
- Dictionary returnGridSettings = new Dictionary();
- lock (m_queuedGridSettings)
- {
- returnGridSettings = m_queuedGridSettings;
- m_queuedGridSettings.Clear();
- }
-
- return returnGridSettings;
- }
-
- public virtual void SetForcefulBanlistsDisallowed()
- {
- m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE");
- }
-
-
- ///
- /// Is a Sandbox mode method, used by the local Login server to inform a region of a connection user/session
- ///
- ///
- ///
- ///
- public void AddNewSession(ulong regionHandle, Login loginData)
- {
- AgentCircuitData agent = new AgentCircuitData();
- agent.AgentID = loginData.Agent;
- agent.firstname = loginData.First;
- agent.lastname = loginData.Last;
- agent.SessionID = loginData.Session;
- agent.SecureSessionID = loginData.SecureSession;
- agent.circuitcode = loginData.CircuitCode;
- agent.BaseFolder = loginData.BaseFolder;
- agent.InventoryFolder = loginData.InventoryFolder;
- agent.startpos = loginData.StartPos;
- agent.CapsPath = loginData.CapsPath;
- if (loginData.Appearance != null)
- agent.Appearance = loginData.Appearance;
- else
- {
- m_log.WarnFormat("[INTER]: Appearance not found for {0} {1}. Creating default.", agent.firstname, agent.lastname);
- agent.Appearance = new AvatarAppearance(agent.AgentID);
- }
-
- TriggerExpectUser(regionHandle, agent);
- }
-
- public void TriggerExpectUser(ulong regionHandle, AgentCircuitData agent)
- {
- //m_log.Info("[INTER]: " + rdebugRegionName + ":Local BackEnd: Other region is sending child agent our way: " + agent.firstname + " " + agent.lastname);
-
- if (m_regionListeners.ContainsKey(regionHandle))
- {
- //m_log.Info("[INTER]: " + rdebugRegionName + ":Local BackEnd: FoundLocalRegion To send it to: " + agent.firstname + " " + agent.lastname);
-
- m_regionListeners[regionHandle].TriggerExpectUser(agent);
- }
- }
-
- public void TriggerLogOffUser(ulong regionHandle, UUID agentID, UUID RegionSecret, string message)
- {
- if (m_regionListeners.ContainsKey(regionHandle))
- {
- //m_log.Info("[INTER]: " + rdebugRegionName + ":Local BackEnd: FoundLocalRegion To send it to: " + agent.firstname + " " + agent.lastname);
-
- m_regionListeners[regionHandle].TriggerLogOffUser(agentID, RegionSecret, message);
- }
- }
-
- public void PingCheckReply(Hashtable respData)
- {
- foreach (ulong region in m_regions.Keys)
- {
- Hashtable regData = new Hashtable();
- RegionInfo reg = m_regions[region];
- regData["status"] = "active";
- regData["handle"] = region.ToString();
-
- respData[reg.RegionID.ToString()] = regData;
- }
- }
-
-
- public LandData RequestLandData (ulong regionHandle, uint x, uint y)
- {
- m_log.DebugFormat("[INTERREGION STANDALONE] requests land data in {0}, at {1}, {2}",
- regionHandle, x, y);
-
- if (m_regionListeners.ContainsKey(regionHandle))
- {
- LandData land = m_regionListeners[regionHandle].TriggerGetLandData(x, y);
- return land;
- }
-
- m_log.Debug("[INTERREGION STANDALONE] didn't find land data locally.");
- return null;
- }
-
- public List RequestNamedRegions (string name, int maxNumber)
- {
- List lowercase_regions = new List();
- List regions = new List();
- foreach (RegionInfo info in m_regions.Values)
- {
- // Prioritizes exact match
- if (info.RegionName.StartsWith(name))
- {
- regions.Add(info);
- if (regions.Count >= maxNumber) break;
- }
- // But still saves lower case matches
- else if (info.RegionName.ToLower().StartsWith(name))
- {
- if (lowercase_regions.Count < maxNumber)
- {
- lowercase_regions.Add(info);
- }
- }
- }
-
- // If no exact matches found, return lowercase matches (libOMV compatiblity)
- if (regions.Count == 0 && lowercase_regions.Count != 0)
- {
- return lowercase_regions;
- }
- return regions;
- }
- }
-}
diff --git a/OpenSim/Region/Communications/Local/LocalUserServices.cs b/OpenSim/Region/Communications/Local/LocalUserServices.cs
index d18937e327..89b55c4742 100644
--- a/OpenSim/Region/Communications/Local/LocalUserServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalUserServices.cs
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Communications.Local
if (md5PasswordHash == userProfile.PasswordHash)
return true;
else
- return false;
- }
+ return false;
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs b/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs
index 8b5779feb4..94e4ed2ae0 100644
--- a/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs
+++ b/OpenSim/Region/Communications/OGS1/CommunicationsOGS1.cs
@@ -39,10 +39,8 @@ namespace OpenSim.Region.Communications.OGS1
LibraryRootFolder libraryRootFolder)
: base(serversInfo, libraryRootFolder)
{
- OGS1GridServices gridInterComms = new OGS1GridServices(serversInfo);
- m_gridService = gridInterComms;
- // This plugin arrangement could eventually be configurable rather than hardcoded here.
+ // This plugin arrangement could eventually be configurable rather than hardcoded here.
OGS1UserServices userServices = new OGS1UserServices(this);
userServices.AddPlugin(new TemporaryUserProfilePlugin());
userServices.AddPlugin(new OGS1UserDataPlugin(this));
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
deleted file mode 100644
index 47c7fe4057..0000000000
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ /dev/null
@@ -1,937 +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.Net.Sockets;
-using System.Reflection;
-using log4net;
-using Nwc.XmlRpc;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Region.Communications.Local;
-
-namespace OpenSim.Region.Communications.OGS1
-{
- public class OGS1GridServices : IGridServices
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- private bool m_useRemoteRegionCache = true;
- ///
- /// Encapsulate local backend services for manipulation of local regions
- ///
- private LocalBackEndServices m_localBackend = new LocalBackEndServices();
-
- private Dictionary m_remoteRegionInfoCache = new Dictionary();
- // private List m_knownRegions = new List();
- private Dictionary m_deadRegionCache = new Dictionary();
- private Dictionary m_queuedGridSettings = new Dictionary();
- private List m_regionsOnInstance = new List();
-
- public BaseHttpServer httpListener;
- public NetworkServersInfo serversInfo;
-
- public string gdebugRegionName
- {
- get { return m_localBackend.gdebugRegionName; }
- set { m_localBackend.gdebugRegionName = value; }
- }
-
- public string rdebugRegionName
- {
- get { return _rdebugRegionName; }
- set { _rdebugRegionName = value; }
- }
- private string _rdebugRegionName = String.Empty;
-
- public bool RegionLoginsEnabled
- {
- get { return m_localBackend.RegionLoginsEnabled; }
- set { m_localBackend.RegionLoginsEnabled = value; }
- }
-
- ///
- /// Contructor. Adds "expect_user" and "check" xmlrpc method handlers
- ///
- ///
- ///
- public OGS1GridServices(NetworkServersInfo servers_info)
- {
- serversInfo = servers_info;
-
- //Respond to Grid Services requests
- MainServer.Instance.AddXmlRPCHandler("check", PingCheckReply);
- }
-
- // see IGridServices
- public RegionCommsListener RegisterRegion(RegionInfo regionInfo)
- {
- if (m_regionsOnInstance.Contains(regionInfo))
- {
- m_log.Error("[OGS1 GRID SERVICES]: Foobar! Caller is confused, region already registered " + regionInfo.RegionName);
- Exception e = new Exception(String.Format("Unable to register region"));
-
- throw e;
- }
-
- m_log.InfoFormat(
- "[OGS1 GRID SERVICES]: Registering region {0} with grid at {1}",
- regionInfo.RegionName, serversInfo.GridURL);
-
- m_regionsOnInstance.Add(regionInfo);
-
- Hashtable GridParams = new Hashtable();
- // Login / Authentication
-
- GridParams["authkey"] = serversInfo.GridSendKey;
- GridParams["recvkey"] = serversInfo.GridRecvKey;
- GridParams["UUID"] = regionInfo.RegionID.ToString();
- GridParams["sim_ip"] = regionInfo.ExternalHostName;
- GridParams["sim_port"] = regionInfo.InternalEndPoint.Port.ToString();
- GridParams["region_locx"] = regionInfo.RegionLocX.ToString();
- GridParams["region_locy"] = regionInfo.RegionLocY.ToString();
- GridParams["sim_name"] = regionInfo.RegionName;
- GridParams["http_port"] = serversInfo.HttpListenerPort.ToString();
- GridParams["remoting_port"] = ConfigSettings.DefaultRegionRemotingPort.ToString();
- GridParams["map-image-id"] = regionInfo.RegionSettings.TerrainImageID.ToString();
- GridParams["originUUID"] = regionInfo.originRegionID.ToString();
- GridParams["server_uri"] = regionInfo.ServerURI;
- GridParams["region_secret"] = regionInfo.regionSecret;
- GridParams["major_interface_version"] = VersionInfo.MajorInterfaceVersion.ToString();
-
- if (regionInfo.MasterAvatarAssignedUUID != UUID.Zero)
- GridParams["master_avatar_uuid"] = regionInfo.MasterAvatarAssignedUUID.ToString();
- else
- GridParams["master_avatar_uuid"] = regionInfo.EstateSettings.EstateOwner.ToString();
-
- GridParams["maturity"] = regionInfo.RegionSettings.Maturity.ToString();
-
- // Package into an XMLRPC Request
- ArrayList SendParams = new ArrayList();
- SendParams.Add(GridParams);
-
- // Send Request
- XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams);
- XmlRpcResponse GridResp;
-
- try
- {
- // The timeout should always be significantly larger than the timeout for the grid server to request
- // the initial status of the region before confirming registration.
- GridResp = GridReq.Send(serversInfo.GridURL, 9999999);
- }
- catch (Exception e)
- {
- Exception e2
- = new Exception(
- String.Format(
- "Unable to register region with grid at {0}. Grid service not running?",
- serversInfo.GridURL),
- e);
-
- throw e2;
- }
-
- Hashtable GridRespData = (Hashtable)GridResp.Value;
- // Hashtable griddatahash = GridRespData;
-
- // Process Response
- if (GridRespData.ContainsKey("error"))
- {
- string errorstring = (string) GridRespData["error"];
-
- Exception e = new Exception(
- String.Format("Unable to connect to grid at {0}: {1}", serversInfo.GridURL, errorstring));
-
- throw e;
- }
- else
- {
- // m_knownRegions = RequestNeighbours(regionInfo.RegionLocX, regionInfo.RegionLocY);
- if (GridRespData.ContainsKey("allow_forceful_banlines"))
- {
- if ((string) GridRespData["allow_forceful_banlines"] != "TRUE")
- {
- //m_localBackend.SetForcefulBanlistsDisallowed(regionInfo.RegionHandle);
- if (!m_queuedGridSettings.ContainsKey("allow_forceful_banlines"))
- m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE");
- }
- }
-
- m_log.InfoFormat(
- "[OGS1 GRID SERVICES]: Region {0} successfully registered with grid at {1}",
- regionInfo.RegionName, serversInfo.GridURL);
- }
-
- return m_localBackend.RegisterRegion(regionInfo);
- }
-
- // see IGridServices
- public bool DeregisterRegion(RegionInfo regionInfo)
- {
- Hashtable GridParams = new Hashtable();
-
- GridParams["UUID"] = regionInfo.RegionID.ToString();
-
- // Package into an XMLRPC Request
- ArrayList SendParams = new ArrayList();
- SendParams.Add(GridParams);
-
- // Send Request
- XmlRpcRequest GridReq = new XmlRpcRequest("simulator_after_region_moved", SendParams);
- XmlRpcResponse GridResp = null;
-
- try
- {
- GridResp = GridReq.Send(serversInfo.GridURL, 10000);
- }
- catch (Exception e)
- {
- Exception e2
- = new Exception(
- String.Format(
- "Unable to deregister region with grid at {0}. Grid service not running?",
- serversInfo.GridURL),
- e);
-
- throw e2;
- }
-
- Hashtable GridRespData = (Hashtable) GridResp.Value;
-
- // Hashtable griddatahash = GridRespData;
-
- // Process Response
- if (GridRespData != null && GridRespData.ContainsKey("error"))
- {
- string errorstring = (string)GridRespData["error"];
- m_log.Error("Unable to connect to grid: " + errorstring);
- return false;
- }
-
- return m_localBackend.DeregisterRegion(regionInfo);
- }
-
- public virtual Dictionary GetGridSettings()
- {
- Dictionary returnGridSettings = new Dictionary();
- lock (m_queuedGridSettings)
- {
- foreach (string Dictkey in m_queuedGridSettings.Keys)
- {
- returnGridSettings.Add(Dictkey, m_queuedGridSettings[Dictkey]);
- }
-
- m_queuedGridSettings.Clear();
- }
-
- return returnGridSettings;
- }
-
- // see IGridServices
- public List RequestNeighbours(uint x, uint y)
- {
- Hashtable respData = MapBlockQuery((int) x - 1, (int) y - 1, (int) x + 1, (int) y + 1);
-
- List neighbours = new List();
-
- foreach (ArrayList neighboursList in respData.Values)
- {
- foreach (Hashtable neighbourData in neighboursList)
- {
- uint regX = Convert.ToUInt32(neighbourData["x"]);
- uint regY = Convert.ToUInt32(neighbourData["y"]);
- if ((x != regX) || (y != regY))
- {
- string simIp = (string) neighbourData["sim_ip"];
-
- uint port = Convert.ToUInt32(neighbourData["sim_port"]);
- // string externalUri = (string) neighbourData["sim_uri"];
-
- // string externalIpStr = String.Empty;
- try
- {
- // externalIpStr = Util.GetHostFromDNS(simIp).ToString();
- Util.GetHostFromDNS(simIp).ToString();
- }
- catch (SocketException e)
- {
- m_log.WarnFormat(
- "[OGS1 GRID SERVICES]: RequestNeighbours(): Lookup of neighbour {0} failed! Not including in neighbours list. {1}",
- simIp, e);
-
- continue;
- }
-
- SimpleRegionInfo sri = new SimpleRegionInfo(regX, regY, simIp, port);
-
- sri.RemotingPort = Convert.ToUInt32(neighbourData["remoting_port"]);
-
- if (neighbourData.ContainsKey("http_port"))
- {
- sri.HttpPort = Convert.ToUInt32(neighbourData["http_port"]);
- }
- else
- {
- m_log.Error("[OGS1 GRID SERVICES]: Couldn't find httpPort, using default 9000; please upgrade your grid-server to r7621 or later");
- sri.HttpPort = 9000; // that's the default and will probably be wrong
- }
-
- sri.RegionID = new UUID((string) neighbourData["uuid"]);
-
- neighbours.Add(sri);
- }
- }
- }
-
- return neighbours;
- }
-
- ///
- /// Request information about a region.
- ///
- ///
- ///
- /// null on a failure to contact or get a response from the grid server
- /// FIXME: Might be nicer to return a proper exception here since we could inform the client more about the
- /// nature of the faiulre.
- ///
- public RegionInfo RequestNeighbourInfo(UUID Region_UUID)
- {
- // don't ask the gridserver about regions on this instance...
- foreach (RegionInfo info in m_regionsOnInstance)
- {
- if (info.RegionID == Region_UUID) return info;
- }
-
- // didn't find it so far, we have to go the long way
- RegionInfo regionInfo;
- Hashtable requestData = new Hashtable();
- requestData["region_UUID"] = Region_UUID.ToString();
- requestData["authkey"] = serversInfo.GridSendKey;
- ArrayList SendParams = new ArrayList();
- SendParams.Add(requestData);
- XmlRpcRequest gridReq = new XmlRpcRequest("simulator_data_request", SendParams);
- XmlRpcResponse gridResp = null;
-
- try
- {
- gridResp = gridReq.Send(serversInfo.GridURL, 3000);
- }
- catch (Exception e)
- {
- m_log.ErrorFormat(
- "[OGS1 GRID SERVICES]: Communication with the grid server at {0} failed, {1}",
- serversInfo.GridURL, e);
-
- return null;
- }
-
- Hashtable responseData = (Hashtable)gridResp.Value;
-
- if (responseData.ContainsKey("error"))
- {
- m_log.WarnFormat("[OGS1 GRID SERVICES]: Error received from grid server: {0}", responseData["error"]);
- return null;
- }
-
- regionInfo = buildRegionInfo(responseData, String.Empty);
- if ((m_useRemoteRegionCache) && (requestData.ContainsKey("regionHandle")))
- {
- m_remoteRegionInfoCache.Add(Convert.ToUInt64((string) requestData["regionHandle"]), regionInfo);
- }
-
- return regionInfo;
- }
-
- ///
- /// Request information about a region.
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(ulong regionHandle)
- {
- RegionInfo regionInfo = m_localBackend.RequestNeighbourInfo(regionHandle);
-
- if (regionInfo != null)
- {
- return regionInfo;
- }
-
- if ((!m_useRemoteRegionCache) || (!m_remoteRegionInfoCache.TryGetValue(regionHandle, out regionInfo)))
- {
- try
- {
- Hashtable requestData = new Hashtable();
- requestData["region_handle"] = regionHandle.ToString();
- requestData["authkey"] = serversInfo.GridSendKey;
- ArrayList SendParams = new ArrayList();
- SendParams.Add(requestData);
- XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams);
- XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000);
-
- Hashtable responseData = (Hashtable) GridResp.Value;
-
- if (responseData.ContainsKey("error"))
- {
- m_log.Error("[OGS1 GRID SERVICES]: Error received from grid server: " + responseData["error"]);
- return null;
- }
-
- uint regX = Convert.ToUInt32((string) responseData["region_locx"]);
- uint regY = Convert.ToUInt32((string) responseData["region_locy"]);
- string externalHostName = (string) responseData["sim_ip"];
- uint simPort = Convert.ToUInt32(responseData["sim_port"]);
- string regionName = (string)responseData["region_name"];
- UUID regionID = new UUID((string)responseData["region_UUID"]);
- uint remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
-
- uint httpPort = 9000;
- if (responseData.ContainsKey("http_port"))
- {
- httpPort = Convert.ToUInt32((string)responseData["http_port"]);
- }
-
- // Ok, so this is definitively the wrong place to do this, way too hard coded, but it doesn't seem we GET this info?
-
- string simURI = "http://" + externalHostName + ":" + simPort;
-
- // string externalUri = (string) responseData["sim_uri"];
-
- //IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port);
- regionInfo = RegionInfo.Create(regionID, regionName, regX, regY, externalHostName, httpPort, simPort, remotingPort, simURI);
-
- if (m_useRemoteRegionCache)
- {
- lock (m_remoteRegionInfoCache)
- {
- if (!m_remoteRegionInfoCache.ContainsKey(regionHandle))
- {
- m_remoteRegionInfoCache.Add(regionHandle, regionInfo);
- }
- }
- }
- }
- catch (Exception e)
- {
- m_log.Error("[OGS1 GRID SERVICES]: " +
- "Region lookup failed for: " + regionHandle.ToString() +
- " - Is the GridServer down?" + e.ToString());
- return null;
- }
- }
-
- return regionInfo;
- }
-
- ///
- /// Get information about a neighbouring region
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(string name)
- {
- // Not implemented yet
- return null;
- }
-
- ///
- /// Get information about a neighbouring region
- ///
- ///
- ///
- public RegionInfo RequestNeighbourInfo(string host, uint port)
- {
- // Not implemented yet
- return null;
- }
-
- public RegionInfo RequestClosestRegion(string regionName)
- {
- if (m_useRemoteRegionCache)
- {
- foreach (RegionInfo ri in m_remoteRegionInfoCache.Values)
- {
- if (ri.RegionName == regionName)
- return ri;
- }
- }
-
- RegionInfo regionInfo = null;
- try
- {
- Hashtable requestData = new Hashtable();
- requestData["region_name_search"] = regionName;
- requestData["authkey"] = serversInfo.GridSendKey;
- ArrayList SendParams = new ArrayList();
- SendParams.Add(requestData);
- XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams);
- XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000);
-
- Hashtable responseData = (Hashtable) GridResp.Value;
-
- if (responseData.ContainsKey("error"))
- {
- m_log.ErrorFormat("[OGS1 GRID SERVICES]: Error received from grid server: ", responseData["error"]);
- return null;
- }
-
- regionInfo = buildRegionInfo(responseData, "");
-
- if ((m_useRemoteRegionCache) && (!m_remoteRegionInfoCache.ContainsKey(regionInfo.RegionHandle)))
- m_remoteRegionInfoCache.Add(regionInfo.RegionHandle, regionInfo);
- }
- catch
- {
- m_log.Error("[OGS1 GRID SERVICES]: " +
- "Region lookup failed for: " + regionName +
- " - Is the GridServer down?");
- }
-
- return regionInfo;
- }
-
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY)
- {
- int temp = 0;
-
- if (minX > maxX)
- {
- temp = minX;
- minX = maxX;
- maxX = temp;
- }
- if (minY > maxY)
- {
- temp = minY;
- minY = maxY;
- maxY = temp;
- }
-
- Hashtable respData = MapBlockQuery(minX, minY, maxX, maxY);
-
- List neighbours = new List();
-
- foreach (ArrayList a in respData.Values)
- {
- foreach (Hashtable n in a)
- {
- MapBlockData neighbour = new MapBlockData();
-
- neighbour.X = Convert.ToUInt16(n["x"]);
- neighbour.Y = Convert.ToUInt16(n["y"]);
-
- neighbour.Name = (string) n["name"];
- neighbour.Access = Convert.ToByte(n["access"]);
- neighbour.RegionFlags = Convert.ToUInt32(n["region-flags"]);
- neighbour.WaterHeight = Convert.ToByte(n["water-height"]);
- neighbour.MapImageId = new UUID((string) n["map-image-id"]);
-
- neighbours.Add(neighbour);
- }
- }
-
- return neighbours;
- }
-
- ///
- /// Performs a XML-RPC query against the grid server returning mapblock information in the specified coordinates
- ///
- /// REDUNDANT - OGS1 is to be phased out in favour of OGS2
- /// Minimum X value
- /// Minimum Y value
- /// Maximum X value
- /// Maximum Y value
- /// Hashtable of hashtables containing map data elements
- private Hashtable MapBlockQuery(int minX, int minY, int maxX, int maxY)
- {
- Hashtable param = new Hashtable();
- param["xmin"] = minX;
- param["ymin"] = minY;
- param["xmax"] = maxX;
- param["ymax"] = maxY;
- IList parameters = new ArrayList();
- parameters.Add(param);
-
- try
- {
- XmlRpcRequest req = new XmlRpcRequest("map_block", parameters);
- XmlRpcResponse resp = req.Send(serversInfo.GridURL, 10000);
- Hashtable respData = (Hashtable) resp.Value;
- return respData;
- }
- catch (Exception e)
- {
- m_log.Error("MapBlockQuery XMLRPC failure: " + e);
- return new Hashtable();
- }
- }
-
- ///
- /// A ping / version check
- ///
- ///
- ///
- public XmlRpcResponse PingCheckReply(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- XmlRpcResponse response = new XmlRpcResponse();
-
- Hashtable respData = new Hashtable();
- respData["online"] = "true";
-
- m_localBackend.PingCheckReply(respData);
-
- response.Value = respData;
-
- return response;
- }
-
- ///
- /// Received from the user server when a user starts logging in. This call allows
- /// the region to prepare for direct communication from the client. Sends back an empty
- /// xmlrpc response on completion.
- ///
- ///
- ///
- public XmlRpcResponse ExpectUser(XmlRpcRequest request)
- {
- Hashtable requestData = (Hashtable) request.Params[0];
- AgentCircuitData agentData = new AgentCircuitData();
- agentData.SessionID = new UUID((string) requestData["session_id"]);
- 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["agent_id"]);
- agentData.circuitcode = Convert.ToUInt32(requestData["circuit_code"]);
- agentData.CapsPath = (string)requestData["caps_path"];
- ulong regionHandle = Convert.ToUInt64((string) requestData["regionhandle"]);
-
- // Appearance
- if (requestData["appearance"] != null)
- agentData.Appearance = new AvatarAppearance((Hashtable)requestData["appearance"]);
-
- m_log.DebugFormat(
- "[CLIENT]: Told by user service to prepare for a connection from {0} {1} {2}, circuit {3}",
- agentData.firstname, agentData.lastname, agentData.AgentID, agentData.circuitcode);
-
- if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1"))
- {
- //m_log.Debug("[CLIENT]: Child agent detected");
- agentData.child = true;
- }
- else
- {
- //m_log.Debug("[CLIENT]: Main agent detected");
- agentData.startpos =
- new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
- (float)Convert.ToDecimal((string)requestData["startpos_y"]),
- (float)Convert.ToDecimal((string)requestData["startpos_z"]));
- agentData.child = false;
- }
-
- XmlRpcResponse resp = new XmlRpcResponse();
-
- if (!RegionLoginsEnabled)
- {
- m_log.InfoFormat(
- "[CLIENT]: Denying access for user {0} {1} because region login is currently disabled",
- agentData.firstname, agentData.lastname);
-
- Hashtable respdata = new Hashtable();
- respdata["success"] = "FALSE";
- respdata["reason"] = "region login currently disabled";
- resp.Value = respdata;
- }
- else
- {
- RegionInfo[] regions = m_regionsOnInstance.ToArray();
- bool banned = false;
-
- for (int i = 0; i < regions.Length; i++)
- {
- if (regions[i] != null)
- {
- if (regions[i].RegionHandle == regionHandle)
- {
- if (regions[i].EstateSettings.IsBanned(agentData.AgentID))
- {
- banned = true;
- break;
- }
- }
- }
- }
-
- if (banned)
- {
- m_log.InfoFormat(
- "[CLIENT]: Denying access for user {0} {1} because user is banned",
- agentData.firstname, agentData.lastname);
-
- Hashtable respdata = new Hashtable();
- respdata["success"] = "FALSE";
- respdata["reason"] = "banned";
- resp.Value = respdata;
- }
- else
- {
- m_localBackend.TriggerExpectUser(regionHandle, agentData);
- Hashtable respdata = new Hashtable();
- respdata["success"] = "TRUE";
- resp.Value = respdata;
- }
- }
-
- return resp;
- }
-
- // Grid Request Processing
- ///
- /// Ooops, our Agent must be dead if we're getting this request!
- ///
- ///
- ///
- public XmlRpcResponse LogOffUser(XmlRpcRequest request)
- {
- m_log.Debug("[CONNECTION DEBUGGING]: LogOff User Called");
-
- Hashtable requestData = (Hashtable)request.Params[0];
- string message = (string)requestData["message"];
- UUID agentID = UUID.Zero;
- UUID RegionSecret = UUID.Zero;
- UUID.TryParse((string)requestData["agent_id"], out agentID);
- UUID.TryParse((string)requestData["region_secret"], out RegionSecret);
-
- ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]);
-
- m_localBackend.TriggerLogOffUser(regionHandle, agentID, RegionSecret,message);
-
- return new XmlRpcResponse();
- }
-
- public void NoteDeadRegion(ulong regionhandle)
- {
- lock (m_deadRegionCache)
- {
- if (m_deadRegionCache.ContainsKey(regionhandle))
- {
- m_deadRegionCache[regionhandle] = m_deadRegionCache[regionhandle] + 1;
- }
- else
- {
- m_deadRegionCache.Add(regionhandle, 1);
- }
- }
- }
-
- public LandData RequestLandData (ulong regionHandle, uint x, uint y)
- {
- m_log.DebugFormat("[OGS1 GRID SERVICES] requests land data in {0}, at {1}, {2}",
- regionHandle, x, y);
- LandData landData = m_localBackend.RequestLandData(regionHandle, x, y);
- if (landData == null)
- {
- Hashtable hash = new Hashtable();
- hash["region_handle"] = regionHandle.ToString();
- hash["x"] = x.ToString();
- hash["y"] = y.ToString();
-
- IList paramList = new ArrayList();
- paramList.Add(hash);
-
- try
- {
- // this might be cached, as we probably requested it just a moment ago...
- RegionInfo info = RequestNeighbourInfo(regionHandle);
- if (info != null) // just to be sure
- {
- XmlRpcRequest request = new XmlRpcRequest("land_data", paramList);
- string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/";
- XmlRpcResponse response = request.Send(uri, 10000);
- if (response.IsFault)
- {
- m_log.ErrorFormat("[OGS1 GRID SERVICES] remote call returned an error: {0}", response.FaultString);
- }
- else
- {
- hash = (Hashtable)response.Value;
- try
- {
- landData = new LandData();
- landData.AABBMax = Vector3.Parse((string)hash["AABBMax"]);
- landData.AABBMin = Vector3.Parse((string)hash["AABBMin"]);
- landData.Area = Convert.ToInt32(hash["Area"]);
- landData.AuctionID = Convert.ToUInt32(hash["AuctionID"]);
- landData.Description = (string)hash["Description"];
- landData.Flags = Convert.ToUInt32(hash["Flags"]);
- landData.GlobalID = new UUID((string)hash["GlobalID"]);
- landData.Name = (string)hash["Name"];
- landData.OwnerID = new UUID((string)hash["OwnerID"]);
- landData.SalePrice = Convert.ToInt32(hash["SalePrice"]);
- landData.SnapshotID = new UUID((string)hash["SnapshotID"]);
- landData.UserLocation = Vector3.Parse((string)hash["UserLocation"]);
- m_log.DebugFormat("[OGS1 GRID SERVICES] Got land data for parcel {0}", landData.Name);
- }
- catch (Exception e)
- {
- m_log.Error("[OGS1 GRID SERVICES] Got exception while parsing land-data:", e);
- }
- }
- }
- else m_log.WarnFormat("[OGS1 GRID SERVICES] Couldn't find region with handle {0}", regionHandle);
- }
- catch (Exception e)
- {
- m_log.ErrorFormat("[OGS1 GRID SERVICES] Couldn't contact region {0}: {1}", regionHandle, e);
- }
- }
- return landData;
- }
-
- // Grid Request Processing
- ///
- /// Someone asked us about parcel-information
- ///
- ///
- ///
- public XmlRpcResponse LandData(XmlRpcRequest request, IPEndPoint remoteClient)
- {
- Hashtable requestData = (Hashtable)request.Params[0];
- ulong regionHandle = Convert.ToUInt64(requestData["region_handle"]);
- uint x = Convert.ToUInt32(requestData["x"]);
- uint y = Convert.ToUInt32(requestData["y"]);
- m_log.DebugFormat("[OGS1 GRID SERVICES]: Got XML reqeuest for land data at {0}, {1} in region {2}", x, y, regionHandle);
-
- LandData landData = m_localBackend.RequestLandData(regionHandle, x, y);
- Hashtable hash = new Hashtable();
- if (landData != null)
- {
- // for now, only push out the data we need for answering a ParcelInfoReqeust
- hash["AABBMax"] = landData.AABBMax.ToString();
- hash["AABBMin"] = landData.AABBMin.ToString();
- hash["Area"] = landData.Area.ToString();
- hash["AuctionID"] = landData.AuctionID.ToString();
- hash["Description"] = landData.Description;
- hash["Flags"] = landData.Flags.ToString();
- hash["GlobalID"] = landData.GlobalID.ToString();
- hash["Name"] = landData.Name;
- hash["OwnerID"] = landData.OwnerID.ToString();
- hash["SalePrice"] = landData.SalePrice.ToString();
- hash["SnapshotID"] = landData.SnapshotID.ToString();
- hash["UserLocation"] = landData.UserLocation.ToString();
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = hash;
- return response;
- }
-
- public List RequestNamedRegions (string name, int maxNumber)
- {
- // no asking of the local backend first, here, as we have to ask the gridserver anyway.
- Hashtable hash = new Hashtable();
- hash["name"] = name;
- hash["maxNumber"] = maxNumber.ToString();
-
- IList paramList = new ArrayList();
- paramList.Add(hash);
-
- Hashtable result = XmlRpcSearchForRegionByName(paramList);
- if (result == null) return null;
-
- uint numberFound = Convert.ToUInt32(result["numFound"]);
- List infos = new List();
- for (int i = 0; i < numberFound; ++i)
- {
- string prefix = "region" + i + ".";
- RegionInfo info = buildRegionInfo(result, prefix);
- infos.Add(info);
- }
- return infos;
- }
-
- private RegionInfo buildRegionInfo(Hashtable responseData, string prefix)
- {
- uint regX = Convert.ToUInt32((string) responseData[prefix + "region_locx"]);
- uint regY = Convert.ToUInt32((string) responseData[prefix + "region_locy"]);
- string internalIpStr = (string) responseData[prefix + "sim_ip"];
- uint port = Convert.ToUInt32(responseData[prefix + "sim_port"]);
-
- IPEndPoint neighbourInternalEndPoint = new IPEndPoint(Util.GetHostFromDNS(internalIpStr), (int) port);
-
- RegionInfo regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr);
- regionInfo.RemotingPort = Convert.ToUInt32((string) responseData[prefix + "remoting_port"]);
- regionInfo.RemotingAddress = internalIpStr;
-
- if (responseData.ContainsKey(prefix + "http_port"))
- {
- regionInfo.HttpPort = Convert.ToUInt32((string) responseData[prefix + "http_port"]);
- }
-
- regionInfo.RegionID = new UUID((string) responseData[prefix + "region_UUID"]);
- regionInfo.RegionName = (string) responseData[prefix + "region_name"];
-
- regionInfo.RegionSettings.TerrainImageID = new UUID((string) responseData[prefix + "map_UUID"]);
- return regionInfo;
- }
-
- private Hashtable XmlRpcSearchForRegionByName(IList parameters)
- {
- try
- {
- XmlRpcRequest request = new XmlRpcRequest("search_for_region_by_name", parameters);
- XmlRpcResponse resp = request.Send(serversInfo.GridURL, 10000);
- Hashtable respData = (Hashtable) resp.Value;
- if (respData != null && respData.Contains("faultCode"))
- {
- m_log.WarnFormat("[OGS1 GRID SERVICES]: Got an error while contacting GridServer: {0}", respData["faultString"]);
- return null;
- }
-
- return respData;
- }
- catch (Exception e)
- {
- m_log.Error("[OGS1 GRID SERVICES]: MapBlockQuery XMLRPC failure: ", e);
- return null;
- }
- }
- }
-}
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs b/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
index 01d6ec8ad5..2f9a45f3d8 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserDataPlugin.cs
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Communications.OGS1
public virtual void AddTemporaryUserProfile(UserProfileData userProfile)
{
// Not interested
- }
+ }
public UserProfileData GetUserByUri(Uri uri)
{
@@ -695,7 +695,7 @@ namespace OpenSim.Region.Communications.OGS1
userData.Partner = UUID.Zero;
return userData;
- }
+ }
protected AvatarAppearance ConvertXMLRPCDataToAvatarAppearance(Hashtable data)
{
@@ -766,6 +766,6 @@ namespace OpenSim.Region.Communications.OGS1
}
return buddylist;
- }
+ }
}
}
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
index 51ba2e97dd..ed3526dc64 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs
@@ -41,7 +41,7 @@ using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Clients;
namespace OpenSim.Region.Communications.OGS1
-{
+{
public class OGS1UserServices : UserManagerBase
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Communications.OGS1
catch (WebException)
{
m_log.Warn("[LOGOFF]: Unable to notify grid server of user logoff");
- }
+ }
}
///
@@ -150,10 +150,10 @@ namespace OpenSim.Region.Communications.OGS1
IList parameters = new ArrayList();
parameters.Add(param);
XmlRpcRequest req = new XmlRpcRequest("authenticate_user_by_password", parameters);
- XmlRpcResponse resp = req.Send(m_commsManager.NetworkServersInfo.UserURL, 30000);
+ XmlRpcResponse resp = req.Send(m_commsManager.NetworkServersInfo.UserURL, 30000);
// Temporary measure to deal with older services
- if (resp.IsFault && resp.FaultCode == XmlRpcErrorCodes.SERVER_ERROR_METHOD)
+ if (resp.IsFault && resp.FaultCode == XmlRpcErrorCodes.SERVER_ERROR_METHOD)
{
throw new Exception(
String.Format(
@@ -170,7 +170,7 @@ namespace OpenSim.Region.Communications.OGS1
else
{
return false;
- }
+ }
}
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs
index addc36b3dc..9c646b65de 100644
--- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs
+++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetTransactionsManager.cs
@@ -162,7 +162,7 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction
AgentAssetTransactions transactions = GetUserTransactions(remoteClient.AgentId);
transactions.RequestUpdateTaskInventoryItem(remoteClient, part, transactionID, item);
- }
+ }
///
/// Request that a client (agent) begin an asset transfer.
diff --git a/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs b/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs
index 0c6900d8b8..2a1355b9ef 100644
--- a/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs
+++ b/OpenSim/Region/CoreModules/Agent/Capabilities/CapabilitiesModule.cs
@@ -49,9 +49,9 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities
///
protected Dictionary m_capsHandlers = new Dictionary();
- protected Dictionary capsPaths = new Dictionary();
+ protected Dictionary capsPaths = new Dictionary();
protected Dictionary> childrenSeeds
- = new Dictionary>();
+ = new Dictionary>();
public void Initialise(IConfigSource source)
{
@@ -147,7 +147,7 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities
agentId, m_scene.RegionInfo.RegionName);
}
}
- }
+ }
public Caps GetCapsHandlerForUser(UUID agentId)
{
@@ -177,7 +177,7 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities
}
return null;
- }
+ }
public Dictionary GetChildrenSeeds(UUID agentID)
{
@@ -225,6 +225,6 @@ namespace OpenSim.Region.CoreModules.Agent.Capabilities
y = y / Constants.RegionSize;
m_log.Info(" >> "+x+", "+y+": "+kvp.Value);
}
- }
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs b/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs
index 394b1bbfca..8502006cd7 100644
--- a/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs
+++ b/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Region.CoreModules.Agent.IPBan
{
// Only need to run through all this if there are entries in the ban list
if (bans.Count > 0)
- {
+ {
IClientIPEndpoint ipEndpoint;
if (client.TryGet(out ipEndpoint))
{
diff --git a/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs b/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs
index 937f76bb72..1fdb00371d 100644
--- a/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs
+++ b/OpenSim/Region/CoreModules/Agent/TextureSender/J2KDecoderModule.cs
@@ -361,7 +361,7 @@ namespace OpenSim.Region.CoreModules.Agent.TextureSender
m_cacheddecode.Remove(AssetId);
m_cacheddecode.Add(AssetId, layers);
- }
+ }
// Notify Interested Parties
lock (m_notifyList)
diff --git a/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs b/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs
index a1e27f1e88..5a5ad7e493 100644
--- a/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs
+++ b/OpenSim/Region/CoreModules/Asset/CenomeAssetCache.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Region.CoreModules.Asset
///
/// Cache is enabled by setting "AssetCaching" configuration to value "CenomeMemoryAssetCache".
/// When cache is successfully enable log should have message
- /// "[ASSET CACHE]: Cenome asset cache enabled (MaxSize = XXX bytes, MaxCount = XXX, ExpirationTime = XXX)".
+ /// "[ASSET CACHE]: Cenome asset cache enabled (MaxSize = XXX bytes, MaxCount = XXX, ExpirationTime = XXX)".
///
///
/// Cache's size is limited by two parameters:
@@ -113,7 +113,7 @@ namespace OpenSim.Region.CoreModules.Asset
///
/// Asset's default expiration time in the cache.
- ///
+ ///
public static readonly TimeSpan DefaultExpirationTime = TimeSpan.FromMinutes(30.0);
///
diff --git a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs
index 37cccc83e2..817e0d487d 100644
--- a/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs
+++ b/OpenSim/Region/CoreModules/Asset/FlotsamAssetCache.cs
@@ -470,7 +470,7 @@ namespace Flotsam.RegionModules.AssetCache
else if (dirSize >= m_CacheWarnAt)
{
m_log.WarnFormat("[FLOTSAM ASSET CACHE]: Cache folder exceeded CacheWarnAt limit {0} {1}. Suggest increasing tiers, tier length, or reducing cache expiration", dir, dirSize);
- }
+ }
}
private string GetFileName(string id)
diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
index fcc2673128..66a9b5a540 100644
--- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs
@@ -114,7 +114,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat
scene.EventManager.OnChatBroadcast -= OnChatBroadcast;
m_scenes.Remove(scene);
}
- }
+ }
}
public virtual void Close()
diff --git a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
index 046fc4a855..ebebaf9e65 100644
--- a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs
@@ -52,7 +52,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
this, "alert", "alert ", "Send an alert to a user", HandleAlertConsoleCommand);
m_scene.AddCommand(
- this, "alert general", "alert general ", "Send an alert to everyone", HandleAlertConsoleCommand);
+ this, "alert general", "alert general ", "Send an alert to everyone", HandleAlertConsoleCommand);
}
public void PostInitialise() {}
@@ -63,7 +63,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
public void SendAlertToUser(IClientAPI client, string message)
{
SendAlertToUser(client, message, false);
- }
+ }
public void SendAlertToUser(IClientAPI client, string message, bool modal)
{
@@ -73,7 +73,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
public void SendAlertToUser(UUID agentID, string message)
{
SendAlertToUser(agentID, message, false);
- }
+ }
public void SendAlertToUser(UUID agentID, string message, bool modal)
{
@@ -81,7 +81,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
if (sp != null)
sp.ControllingClient.SendAgentAlertMessage(message, modal);
- }
+ }
public void SendAlertToUser(string firstName, string lastName, string message, bool modal)
{
@@ -95,7 +95,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
break;
}
}
- }
+ }
public void SendGeneralAlert(string message)
{
@@ -106,7 +106,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
if (!presence.IsChildAgent)
presence.ControllingClient.SendAlertMessage(message);
}
- }
+ }
public void SendDialogToUser(
UUID avatarID, string objectName, UUID objectID, UUID ownerID,
@@ -135,9 +135,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
{
ScenePresence sp = m_scene.GetScenePresence(avatarID);
- if (sp != null)
+ if (sp != null)
sp.ControllingClient.SendLoadURL(objectName, objectID, ownerID, groupOwned, message, url);
- }
+ }
public void SendNotificationToUsersInEstate(
UUID fromAvatarID, string fromAvatarName, string message)
@@ -145,11 +145,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
// TODO: This does not yet do what it says on the tin - it only sends the message to users in the same
// region as the sending avatar.
SendNotificationToUsersInRegion(fromAvatarID, fromAvatarName, message);
- }
+ }
public void SendNotificationToUsersInRegion(
UUID fromAvatarID, string fromAvatarName, string message)
- {
+ {
List presenceList = m_scene.GetScenePresences();
foreach (ScenePresence presence in presenceList)
@@ -185,7 +185,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
m_log.InfoFormat(
"[DIALOG]: Sending alert in region {0} to {1} {2} with message {3}",
- m_scene.RegionInfo.RegionName, firstName, lastName, message);
+ m_scene.RegionInfo.RegionName, firstName, lastName, message);
SendAlertToUser(firstName, lastName, message, false);
}
}
@@ -199,6 +199,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
}
return result;
- }
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index 49b2b5c804..fc7d63aa06 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -40,6 +40,7 @@ using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Avatar.Friends
{
@@ -108,7 +109,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
private Dictionary m_scenes = new Dictionary();
private IMessageTransferModule m_TransferModule = null;
- private IGridServices m_gridServices = null;
+ private IGridService m_gridServices = null;
#region IRegionModule Members
@@ -142,7 +143,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
if (m_scenes.Count > 0)
{
m_TransferModule = m_initialScene.RequestModuleInterface();
- m_gridServices = m_initialScene.CommsManager.GridService;
+ m_gridServices = m_initialScene.GridService;
}
if (m_TransferModule == null)
m_log.Error("[FRIENDS]: Unable to find a message transfer module, friendship offers will not work");
@@ -171,7 +172,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
List tpdAway = new List();
// destRegionHandle is a region on another server
- RegionInfo info = m_gridServices.RequestNeighbourInfo(destRegionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(destRegionHandle, out x, out y);
+ GridRegion info = m_gridServices.GetRegionByPosition(m_initialScene.RegionInfo.ScopeID, (int)x, (int)y);
if (info != null)
{
string httpServer = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/presence_update_bulk";
@@ -223,7 +226,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
public bool TriggerTerminateFriend(ulong destRegionHandle, UUID agentID, UUID exFriendID)
{
// destRegionHandle is a region on another server
- RegionInfo info = m_gridServices.RequestNeighbourInfo(destRegionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(destRegionHandle, out x, out y);
+ GridRegion info = m_gridServices.GetRegionByPosition(m_initialScene.RegionInfo.ScopeID, (int)x, (int)y);
if (info == null)
{
m_log.WarnFormat("[OGS1 GRID SERVICES]: Couldn't find region {0}", destRegionHandle);
@@ -492,7 +497,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
{
m_log.ErrorFormat("[FRIENDS]: No user found for id {0} in OfferFriendship()", fromUserId);
}
- }
+ }
#region FriendRequestHandling
@@ -503,7 +508,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
if (im.dialog == (byte)InstantMessageDialog.FriendshipOffered) // 38
{
- // fromAgentName is the *destination* name (the friend we offer friendship to)
+ // fromAgentName is the *destination* name (the friend we offer friendship to)
ScenePresence initiator = GetAnyPresenceFromAgentID(new UUID(im.fromAgentID));
im.fromAgentName = initiator != null ? initiator.Name : "(hippo)";
@@ -523,13 +528,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
/// Invoked when a user offers a friendship.
///
///
- ///
+ ///
///
private void FriendshipOffered(GridInstantMessage im)
{
// this is triggered by the initiating agent:
// A local agent offers friendship to some possibly remote friend.
- // A IM is triggered, processed here and sent to the friend (possibly in a remote region).
+ // A IM is triggered, processed here and sent to the friend (possibly in a remote region).
m_log.DebugFormat("[FRIEND]: Offer(38) - From: {0}, FromName: {1} To: {2}, Session: {3}, Message: {4}, Offline {5}",
im.fromAgentID, im.fromAgentName, im.toAgentID, im.imSessionID, im.message, im.offline);
@@ -554,7 +559,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
m_log.DebugFormat("[FRIEND]: sending IM success = {0}", success);
}
);
- }
+ }
}
///
@@ -565,7 +570,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
private void FriendshipAccepted(IClientAPI client, GridInstantMessage im)
{
m_log.DebugFormat("[FRIEND]: 39 - from client {0}, agent {2} {3}, imsession {4} to {5}: {6} (dialog {7})",
- client.AgentId, im.fromAgentID, im.fromAgentName, im.imSessionID, im.toAgentID, im.message, im.dialog);
+ client.AgentId, im.fromAgentID, im.fromAgentName, im.imSessionID, im.toAgentID, im.message, im.dialog);
}
///
@@ -597,7 +602,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
delegate(bool success) {
m_log.DebugFormat("[FRIEND]: sending IM success = {0}", success);
}
- );
+ );
}
private void OnGridInstantMessage(GridInstantMessage msg)
diff --git a/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs b/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs
index ff1236104a..8ce509239d 100644
--- a/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Gestures/GesturesModule.cs
@@ -91,6 +91,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Gestures
else
m_log.ErrorFormat(
"[GESTURES]: Unable to find gesture to deactivate {0} for {1}", gestureId, client.Name);
- }
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
index 8926527ca1..f94172883a 100644
--- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs
@@ -43,7 +43,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
{
m_scene = scene;
m_dialogModule = m_scene.RequestModuleInterface();
- m_scene.RegisterModuleInterface(this);
+ m_scene.RegisterModuleInterface(this);
}
public void PostInitialise() {}
@@ -84,7 +84,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
m_dialogModule.SendAlertToUser(agentID, "Request for god powers denied");
}
}
- }
+ }
///
/// Kicks User specified from the simulator. This logs them off of the grid
@@ -142,7 +142,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods
}
}
else
- {
+ {
m_dialogModule.SendAlertToUser(godID, "Kick request denied");
}
}
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
index 66f1e14aeb..9a6874909b 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/InstantMessageModule.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{
public class InstantMessageModule : IRegionModule
{
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
///
/// Is this module enabled?
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
index 4495303038..e5159b3817 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MessageTransferModule.cs
@@ -36,6 +36,7 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{
@@ -497,7 +498,10 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{
if (upd.AgentOnline)
{
- RegionInfo reginfo = m_Scenes[0].SceneGridService.RequestNeighbouringRegionInfo(upd.Handle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(upd.Handle, out x, out y);
+ GridRegion reginfo = m_Scenes[0].GridService.GetRegionByPosition(m_Scenes[0].RegionInfo.ScopeID,
+ (int)x, (int)y);
if (reginfo != null)
{
Hashtable msgdata = ConvertGridInstantMessageToXMLRPC(im);
@@ -559,7 +563,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
/// RegionInfo we pull the data out of to send the request to
/// The Instant Message data Hashtable
/// Bool if the message was successfully delivered at the other side.
- protected virtual bool doIMSending(RegionInfo reginfo, Hashtable xmlrpcdata)
+ protected virtual bool doIMSending(GridRegion reginfo, Hashtable xmlrpcdata)
{
ArrayList SendParams = new ArrayList();
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs
index ebd9a72d85..ad05babec3 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/PresenceModule.cs
@@ -35,6 +35,7 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{
@@ -171,7 +172,10 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
{
// TODO this is the old messaging-server protocol; only the regionHandle is available.
// Fetch region-info to get the id
- RegionInfo regionInfo = m_initialScene.RequestNeighbouringRegionInfo(info.regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(info.regionHandle, out x, out y);
+ GridRegion regionInfo = m_initialScene.GridService.GetRegionByPosition(m_initialScene.RegionInfo.ScopeID,
+ (int)x, (int)y);
regionID = regionInfo.RegionID;
}
result[indices[i]] = new PresenceInfo(uuids[i], regionID);
@@ -349,6 +353,9 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
private void NotifyMessageServerOfShutdown(Scene scene)
{
+ if (m_Scenes[0].CommsManager.NetworkServersInfo.MessagingURL == string.Empty)
+ return;
+
Hashtable xmlrpcdata = new Hashtable();
xmlrpcdata["RegionUUID"] = scene.RegionInfo.RegionID.ToString();
ArrayList SendParams = new ArrayList();
@@ -372,6 +379,9 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
private void NotifyMessageServerOfAgentLocation(UUID agentID, UUID region, ulong regionHandle)
{
+ if (m_Scenes[0].CommsManager.NetworkServersInfo.MessagingURL == string.Empty)
+ return;
+
Hashtable xmlrpcdata = new Hashtable();
xmlrpcdata["AgentID"] = agentID.ToString();
xmlrpcdata["RegionUUID"] = region.ToString();
@@ -397,6 +407,9 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
private void NotifyMessageServerOfAgentLeaving(UUID agentID, UUID region, ulong regionHandle)
{
+ if (m_Scenes[0].CommsManager.NetworkServersInfo.MessagingURL == string.Empty)
+ return;
+
Hashtable xmlrpcdata = new Hashtable();
xmlrpcdata["AgentID"] = agentID.ToString();
xmlrpcdata["RegionUUID"] = region.ToString();
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
index 907e2d4b67..f761bf0c53 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
@@ -59,7 +59,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
/// We only use this to request modules
///
- protected Scene m_scene;
+ protected Scene m_scene;
///
/// The stream from which the inventory archive will be loaded.
@@ -186,7 +186,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
item.Folder = foundFolder.ID;
//m_userInfo.AddItem(item);
- m_scene.InventoryService.AddItem(item);
+ m_scene.InventoryService.AddItem(item);
successfulItemRestores++;
// If we're loading an item directly into the given destination folder then we need to record
@@ -299,14 +299,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
= new InventoryFolderBase(
newFolderId, newFolderName, m_userInfo.UserProfile.ID,
(short)AssetType.Unknown, destFolder.ID, 1);
- m_scene.InventoryService.AddFolder(destFolder);
+ m_scene.InventoryService.AddFolder(destFolder);
// UUID newFolderId = UUID.Random();
// m_scene.InventoryService.AddFolder(
// m_userInfo.CreateFolder(
// folderName, newFolderId, (ushort)AssetType.Folder, foundFolder.ID);
-// m_log.DebugFormat("[INVENTORY ARCHIVER]: Retrieving newly created folder {0}", folderName);
+// m_log.DebugFormat("[INVENTORY ARCHIVER]: Retrieving newly created folder {0}", folderName);
// foundFolder = foundFolder.GetChildFolder(newFolderId);
// m_log.DebugFormat(
// "[INVENTORY ARCHIVER]: Retrieved newly created folder {0} with ID {1}",
@@ -321,7 +321,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
nodesLoaded.Add(destFolder);
i++;
- }
+ }
return destFolder;
@@ -357,7 +357,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
rawFolders[i++], newFolderId, (ushort)AssetType.Folder, foundFolder.ID);
foundFolder = foundFolder.GetChildFolder(newFolderId);
}
- */
+ */
}
///
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs
index 5ebf2faf9a..a822d104cc 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs
@@ -42,7 +42,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
/// Find a folder given a PATH_DELIMITER delimited path starting from a user's root folder
- ///
+ ///
///
/// This method does not handle paths that contain multiple delimitors
///
@@ -58,7 +58,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
/// User id to search
///
///
- /// The path to the required folder.
+ /// The path to the required folder.
/// It this is empty or consists only of the PATH_DELIMTER then this folder itself is returned.
///
/// null if the folder is not found
@@ -71,11 +71,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
return null;
return FindFolderByPath(inventoryService, rootFolder, path);
- }
+ }
///
/// Find a folder given a PATH_DELIMITER delimited path starting from this folder
- ///
+ ///
///
/// This method does not handle paths that contain multiple delimitors
///
@@ -91,7 +91,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
/// The folder from which the path starts
///
///
- /// The path to the required folder.
+ /// The path to the required folder.
/// It this is empty or consists only of the PATH_DELIMTER then this folder itself is returned.
///
/// null if the folder is not found
@@ -154,7 +154,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
return null;
return FindItemByPath(inventoryService, rootFolder, path);
- }
+ }
///
/// Find an item given a PATH_DELIMITOR delimited path starting from this folder.
@@ -194,7 +194,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
}
else
{
- InventoryCollection contents = inventoryService.GetFolderContent(startFolder.Owner, startFolder.ID);
+ InventoryCollection contents = inventoryService.GetFolderContent(startFolder.Owner, startFolder.ID);
foreach (InventoryFolderBase folder in contents.Folders)
{
@@ -205,6 +205,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
// We didn't find an item or intermediate folder with the given name
return null;
- }
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
index c6ebb24c34..499c552a4a 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
private InventoryArchiverModule m_module;
private CachedUserInfo m_userInfo;
- private string m_invPath;
+ private string m_invPath;
protected TarArchiveWriter m_archiveWriter;
protected UuidGatherer m_assetGatherer;
@@ -168,7 +168,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
path += CreateArchiveFolderName(inventoryFolder);
- // We need to make sure that we record empty folders
+ // We need to make sure that we record empty folders
m_archiveWriter.WriteDir(path);
}
@@ -262,7 +262,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
if (maxComponentIndex >= 0 && components[maxComponentIndex] == STAR_WILDCARD)
{
foundStar = true;
- maxComponentIndex--;
+ maxComponentIndex--;
}
m_invPath = String.Empty;
@@ -369,8 +369,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
public static string CreateArchiveFolderName(InventoryFolderBase folder)
{
- return CreateArchiveFolderName(folder.Name, folder.ID);
- }
+ return CreateArchiveFolderName(folder.Name, folder.ID);
+ }
///
/// Create the archive name for a particular item.
@@ -383,7 +383,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
public static string CreateArchiveItemName(InventoryItemBase item)
{
- return CreateArchiveItemName(item.Name, item.ID);
+ return CreateArchiveItemName(item.Name, item.ID);
}
///
@@ -398,7 +398,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
"{0}{1}{2}/",
name,
ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR,
- id);
+ id);
}
///
@@ -406,14 +406,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
///
///
- ///
+ ///
public static string CreateArchiveItemName(string name, UUID id)
{
return string.Format(
"{0}{1}{2}.xml",
name,
ArchiveConstants.INVENTORY_NODE_NAME_COMPONENT_SEPARATOR,
- id);
+ id);
}
///
@@ -438,6 +438,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
sw.Close();
return s;
- }
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
index 55dce05454..1228eb11c9 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
@@ -40,12 +40,12 @@ using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
-{
+{
///
/// This module loads and saves OpenSimulator inventory archives
- ///
+ ///
public class InventoryArchiverModule : IRegionModule, IInventoryArchiverModule
- {
+ {
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
public string Name { get { return "Inventory Archiver Module"; } }
@@ -57,7 +57,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
public bool DisablePresenceChecks { get; set; }
- public event InventoryArchiveSaved OnInventoryArchiveSaved;
+ public event InventoryArchiveSaved OnInventoryArchiveSaved;
///
/// The file to load and save inventory if no filename has been specified
@@ -83,7 +83,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
}
public void Initialise(Scene scene, IConfigSource source)
- {
+ {
if (m_scenes.Count == 0)
{
scene.RegisterModuleInterface(this);
@@ -102,7 +102,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
m_aScene = scene;
}
- m_scenes[scene.RegionInfo.RegionID] = scene;
+ m_scenes[scene.RegionInfo.RegionID] = scene;
}
public void PostInitialise() {}
@@ -119,7 +119,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
InventoryArchiveSaved handlerInventoryArchiveSaved = OnInventoryArchiveSaved;
if (handlerInventoryArchiveSaved != null)
handlerInventoryArchiveSaved(id, succeeded, userInfo, invPath, saveStream, reportedException);
- }
+ }
public bool ArchiveInventory(Guid id, string firstName, string lastName, string invPath, string pass, Stream saveStream)
{
@@ -174,7 +174,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
public bool DearchiveInventory(string firstName, string lastName, string invPath, string pass, Stream loadStream)
{
if (m_scenes.Count > 0)
- {
+ {
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
if (userInfo != null)
@@ -182,7 +182,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
if (CheckPresence(userInfo.UserProfile.ID))
{
InventoryArchiveReadRequest request =
- new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadStream);
+ new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadStream);
UpdateClientWithLoadedNodes(userInfo, request.Execute());
return true;
@@ -197,12 +197,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
}
return false;
- }
+ }
public bool DearchiveInventory(string firstName, string lastName, string invPath, string pass, string loadPath)
{
if (m_scenes.Count > 0)
- {
+ {
CachedUserInfo userInfo = GetUserInfo(firstName, lastName, pass);
if (userInfo != null)
@@ -210,7 +210,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
if (CheckPresence(userInfo.UserProfile.ID))
{
InventoryArchiveReadRequest request =
- new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadPath);
+ new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadPath);
UpdateClientWithLoadedNodes(userInfo, request.Execute());
return true;
@@ -221,11 +221,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
"[INVENTORY ARCHIVER]: User {0} {1} not logged in to this region simulator",
userInfo.UserProfile.Name, userInfo.UserProfile.ID);
}
- }
+ }
}
return false;
- }
+ }
///
/// Load inventory from an inventory file archive
@@ -252,7 +252,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
"[INVENTORY ARCHIVER]: Loading archive {0} to inventory path {1} for {2} {3}",
loadPath, invPath, firstName, lastName);
- if (DearchiveInventory(firstName, lastName, invPath, pass, loadPath))
+ if (DearchiveInventory(firstName, lastName, invPath, pass, loadPath))
m_log.InfoFormat(
"[INVENTORY ARCHIVER]: Loaded archive {0} for {1} {2}",
loadPath, firstName, lastName);
@@ -288,7 +288,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
lock (m_pendingConsoleSaves)
m_pendingConsoleSaves.Add(id);
- }
+ }
private void SaveInvConsoleCommandCompleted(
Guid id, bool succeeded, CachedUserInfo userInfo, string invPath, Stream saveStream,
@@ -322,7 +322,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
/// User password
///
protected CachedUserInfo GetUserInfo(string firstName, string lastName, string pass)
- {
+ {
CachedUserInfo userInfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(firstName, lastName);
//m_aScene.CommsManager.UserService.GetUserProfile(firstName, lastName);
if (null == userInfo)
@@ -334,7 +334,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
}
try
- {
+ {
if (m_aScene.CommsManager.UserService.AuthenticateUserByPassword(userInfo.UserProfile.ID, pass))
{
return userInfo;
@@ -343,7 +343,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
m_log.ErrorFormat(
"[INVENTORY ARCHIVER]: Password for user {0} {1} incorrect. Please try again.",
- firstName, lastName);
+ firstName, lastName);
return null;
}
}
@@ -359,7 +359,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
///
/// Can be empty. In which case, nothing happens
private void UpdateClientWithLoadedNodes(CachedUserInfo userInfo, List loadedNodes)
- {
+ {
if (loadedNodes.Count == 0)
return;
@@ -368,7 +368,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
ScenePresence user = scene.GetScenePresence(userInfo.UserProfile.ID);
if (user != null && !user.IsChildAgent)
- {
+ {
foreach (InventoryNodeBase node in loadedNodes)
{
// m_log.DebugFormat(
@@ -379,8 +379,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
}
break;
- }
- }
+ }
+ }
}
///
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index ed293cd6d3..b0fdcd6f33 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -37,7 +37,7 @@ using OpenMetaverse;
using OpenSim.Data;
using OpenSim.Framework;
using OpenSim.Framework.Serialization;
-using OpenSim.Framework.Serialization.External;
+using OpenSim.Framework.Serialization.External;
using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Osp;
@@ -70,7 +70,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
Exception reportedException)
{
mre.Set();
- }
+ }
///
/// Test saving a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet).
@@ -157,7 +157,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
string expectedObject1FilePath = string.Format(
"{0}{1}{2}",
ArchiveConstants.INVENTORY_PATH,
- InventoryArchiveWriteRequest.CreateArchiveFolderName(objsFolder),
+ InventoryArchiveWriteRequest.CreateArchiveFolderName(objsFolder),
expectedObject1FileName);
string filePath;
@@ -195,7 +195,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
Assert.That(gotObject1File, Is.True, "No item1 file in archive");
// Assert.That(gotObject2File, Is.True, "No object2 file in archive");
- // TODO: Test presence of more files and contents of files.
+ // TODO: Test presence of more files and contents of files.
}
///
@@ -206,7 +206,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
/// This test also does some deeper probing of loading into nested inventory structures
[Test]
public void TestLoadIarV0_1ExistingUsers()
- {
+ {
TestHelper.InMethod();
//log4net.Config.XmlConfigurator.Configure();
@@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
tar.Close();
- MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
SerialiserModule serialiserModule = new SerialiserModule();
InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
@@ -271,9 +271,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
Assert.That(foundItem1.Owner, Is.EqualTo(userUuid),
"Loaded item owner doesn't match inventory reciever");
- // Now try loading to a root child folder
+ // Now try loading to a root child folder
UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, userInfo.UserProfile.ID, "xA");
- archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
+ archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
archiverModule.DearchiveInventory(userFirstName, userLastName, "xA", "meowfood", archiveReadStream);
InventoryItemBase foundItem2
@@ -282,12 +282,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
// Now try loading to a more deeply nested folder
UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, userInfo.UserProfile.ID, "xB/xC");
- archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
+ archiveReadStream = new MemoryStream(archiveReadStream.ToArray());
archiverModule.DearchiveInventory(userFirstName, userLastName, "xB/xC", "meowfood", archiveReadStream);
InventoryItemBase foundItem3
= InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userInfo.UserProfile.ID, "xB/xC/" + itemName);
- Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3");
+ Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3");
}
///
@@ -299,7 +299,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
/// (as tested in the a later commented out test)
[Test]
public void TestLoadIarV0_1AbsentUsers()
- {
+ {
TestHelper.InMethod();
log4net.Config.XmlConfigurator.Configure();
@@ -331,7 +331,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
tar.Close();
- MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
SerialiserModule serialiserModule = new SerialiserModule();
InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
@@ -357,8 +357,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
// "Loaded item non-uuid creator doesn't match that of the loading user");
Assert.That(
foundItem1.CreatorIdAsUuid, Is.EqualTo(userUuid),
- "Loaded item uuid creator doesn't match that of the loading user");
- }
+ "Loaded item uuid creator doesn't match that of the loading user");
+ }
///
/// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where
@@ -367,7 +367,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
/// Disabled since temporary profiles have not yet been implemented.
//[Test]
public void TestLoadIarV0_1TempProfiles()
- {
+ {
TestHelper.InMethod();
log4net.Config.XmlConfigurator.Configure();
@@ -396,7 +396,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
tar.Close();
- MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
+ MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
SerialiserModule serialiserModule = new SerialiserModule();
InventoryArchiverModule archiverModule = new InventoryArchiverModule(true);
@@ -436,7 +436,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
Assert.That(foundItem.Owner, Is.EqualTo(userUuid));
Console.WriteLine("### Successfully completed {0} ###", MethodBase.GetCurrentMethod());
- }
+ }
///
/// Test replication of an archive path to the user's inventory.
@@ -474,7 +474,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
string itemArchivePath
= string.Format(
"{0}{1}{2}{3}",
- ArchiveConstants.INVENTORY_PATH, folder1ArchiveName, folder2ArchiveName, itemArchiveName);
+ ArchiveConstants.INVENTORY_PATH, folder1ArchiveName, folder2ArchiveName, itemArchiveName);
//Console.WriteLine("userInfo.RootFolder 2: {0}", userInfo.RootFolder);
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
index 75976e2fb4..d9a021fc02 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
@@ -169,12 +169,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
byte[] copyIDBytes = copyID.GetBytes();
im.binaryBucket = new byte[1 + copyIDBytes.Length];
im.binaryBucket[0] = (byte)AssetType.Folder;
- Array.Copy(copyIDBytes, 0, im.binaryBucket, 1, copyIDBytes.Length);
+ Array.Copy(copyIDBytes, 0, im.binaryBucket, 1, copyIDBytes.Length);
if (user != null && !user.IsChildAgent)
- {
+ {
user.ControllingClient.SendBulkUpdateInventory(folderCopy);
- }
+ }
}
else
{
@@ -199,10 +199,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
}
copyID = itemCopy.ID;
- Array.Copy(copyID.GetBytes(), 0, im.binaryBucket, 1, 16);
+ Array.Copy(copyID.GetBytes(), 0, im.binaryBucket, 1, 16);
if (user != null && !user.IsChildAgent)
- {
+ {
user.ControllingClient.SendBulkUpdateInventory(itemCopy);
}
}
@@ -241,7 +241,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
}
}
else if (im.dialog == (byte) InstantMessageDialog.InventoryDeclined)
- {
+ {
// Here, the recipient is local and we can assume that the
// inventory is loaded. Courtesy of the above bulk update,
// It will have been pushed to the client, too
@@ -284,7 +284,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
}
if ((null == item && null == folder) | null == trashFolder)
- {
+ {
string reason = String.Empty;
if (trashFolder == null)
diff --git a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs
index 0cdd9a8e31..1b23d923ff 100644
--- a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueGetModule.cs
@@ -454,7 +454,7 @@ namespace OpenSim.Region.CoreModules.Framework.EventQueue
responsedata["error_status_text"] = "Upstream error:";
responsedata["http_protocol_version"] = "HTTP/1.0";
return responsedata;
- }
+ }
OSDArray array = new OSDArray();
if (element == null) // didn't have an event in 15s
diff --git a/OpenSim/Region/CoreModules/Framework/Services/RegionMapService.cs b/OpenSim/Region/CoreModules/Framework/Services/RegionMapService.cs
deleted file mode 100644
index 8c92727041..0000000000
--- a/OpenSim/Region/CoreModules/Framework/Services/RegionMapService.cs
+++ /dev/null
@@ -1,208 +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 Nini.Config;
-using OpenMetaverse;
-using OpenSim.Data;
-using OpenSim.Framework;
-using OpenSim.Framework.Communications;
-using OpenSim.Framework.Communications.Cache;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Region.Framework.Interfaces;
-using OpenSim.Region.Framework.Scenes;
-
-using Nwc.XmlRpc;
-
-
-namespace OpenSim.Region.CoreModules.Framework.Services
-{
- public class RegionMapService : IRegionModule
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private static bool initialized = false;
- private static bool enabled = false;
-
- Scene m_scene;
- //AssetService m_assetService;
-
- #region IRegionModule interface
-
- public void Initialise(Scene scene, IConfigSource config)
- {
- if (!initialized)
- {
- initialized = true;
- m_scene = scene;
-
- // This module is only on for hypergrid mode
- enabled = config.Configs["Startup"].GetBoolean("hypergrid", false);
- }
- }
-
- public void PostInitialise()
- {
- if (enabled)
- {
- m_log.Info("[RegionMapService]: Starting...");
-
- //m_assetService = new AssetService(m_scene);
- new GridService(m_scene);
- }
- }
-
- public void Close()
- {
- }
-
- public string Name
- {
- get { return "RegionMapService"; }
- }
-
- public bool IsSharedModule
- {
- get { return true; }
- }
-
- #endregion
-
- }
-
- public class GridService
- {
-// private IUserService m_userService;
- private IGridServices m_gridService;
- private bool m_doLookup = false;
-
- public bool DoLookup
- {
- get { return m_doLookup; }
- set { m_doLookup = value; }
- }
- private static readonly ILog m_log
- = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- public GridService(Scene m_scene)
- {
- AddHandlers(m_scene);
-// m_userService = m_scene.CommsManager.UserService;
- m_gridService = m_scene.CommsManager.GridService;
- }
-
- protected void AddHandlers(Scene m_scene)
- {
-// IAssetDataPlugin m_assetProvider
-// = ((AssetServerBase)m_scene.CommsManager.AssetCache.AssetServer).AssetProviderPlugin;
-
- IHttpServer httpServer = MainServer.Instance;
- httpServer.AddXmlRPCHandler("simulator_data_request", XmlRpcSimulatorDataRequestMethod);
- //m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod);
- //m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod);
-
- }
-
- ///
- /// 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();
- RegionInfo simData = null;
- if (requestData.ContainsKey("region_UUID"))
- {
- UUID regionID = new UUID((string)requestData["region_UUID"]);
- simData = m_gridService.RequestNeighbourInfo(regionID); //.GetRegion(regionID);
- if (simData == null)
- {
- m_log.WarnFormat("[HGGridService] 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_gridService.RequestNeighbourInfo(regionHandle); //m_gridDBService.GetRegion(regionHandle);
- if (simData == null)
- {
- m_log.WarnFormat("[HGGridService] 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"];
- List regInfos = m_gridService.RequestNamedRegions(regionName, 1);//m_gridDBService.GetRegion(regionName);
- if (regInfos != null)
- simData = regInfos[0];
-
- if (simData == null)
- {
- m_log.WarnFormat("[HGGridService] didn't find region for regionName {0} from {1}",
- regionName, request.Params.Count > 1 ? request.Params[1] : "unknwon source");
- }
- }
- else m_log.Warn("[HGGridService] regionlookup without regionID, regionHandle or regionHame");
-
- if (simData == null)
- {
- //Sim does not exist
- responseData["error"] = "Sim does not exist";
- }
- else
- {
- m_log.Debug("[HGGridService]: found " + (string)simData.RegionName + " regionHandle = " +
- (string)requestData["region_handle"]);
- responseData["sim_ip"] = simData.ExternalEndPoint.Address.ToString();
- responseData["sim_port"] = simData.ExternalEndPoint.Port.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.RegionID.ToString();
- responseData["region_name"] = simData.RegionName;
- responseData["region_secret"] = simData.regionSecret;
- }
-
- XmlRpcResponse response = new XmlRpcResponse();
- response.Value = responseData;
- return response;
- }
-
- }
-}
diff --git a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs
index 677406052b..a0ccdc7276 100644
--- a/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/Hypergrid/HGWorldMapModule.cs
@@ -34,6 +34,7 @@ using OpenSim.Framework;
using OpenSim.Region.CoreModules.World.WorldMap;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.Hypergrid
{
@@ -59,7 +60,17 @@ namespace OpenSim.Region.CoreModules.Hypergrid
protected override void GetAndSendBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag)
{
- List mapBlocks = m_scene.SceneGridService.RequestNeighbourMapBlocks(minX - 4, minY - 4, maxX + 4, maxY + 4);
+ List mapBlocks = new List();
+ List regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
+ (minX - 4) * (int)Constants.RegionSize, (maxX + 4) * (int)Constants.RegionSize,
+ (minY - 4) * (int)Constants.RegionSize, (maxY + 4) * (int)Constants.RegionSize);
+
+ foreach (GridRegion r in regions)
+ {
+ MapBlockData block = new MapBlockData();
+ MapBlockFromGridRegion(block, r);
+ mapBlocks.Add(block);
+ }
// Different from super
FillInMap(mapBlocks, minX, minY, maxX, maxY);
diff --git a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
index e9c1e9d3fd..7d6f1509a3 100644
--- a/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
+++ b/OpenSim/Region/CoreModules/InterGrid/OpenGridProtocolModule.cs
@@ -353,11 +353,11 @@ namespace OpenSim.Region.CoreModules.InterGrid
return responseMap;
}
- // Using OpenSim.Framework.Capabilities.Caps here one time..
+ // Using OpenSim.Framework.Capabilities.Caps here one time..
// so the long name is probably better then a using statement
public void OnRegisterCaps(UUID agentID, Caps caps)
{
- /* If we ever want to register our own caps here....
+ /* If we ever want to register our own caps here....
*
string capsBase = "/CAPS/" + caps.CapsObjectPath;
caps.RegisterHandler("CAPNAME",
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
index bea6222625..d57a8e5979 100644
--- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
@@ -184,7 +184,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
string value = "";
if (nvp[0] != null)
- {
+ {
name = nvp[0].Trim();
}
@@ -291,10 +291,10 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
temp = 128;
width = temp;
- height = temp;
+ height = temp;
}
}
- break;
+ break;
}
}
@@ -410,7 +410,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
Font myFont = new Font(fontName, fontSize);
SolidBrush myBrush = new SolidBrush(Color.Black);
- char[] lineDelimiter = {dataDelim};
+ char[] lineDelimiter = {dataDelim};
char[] partsDelimiter = {','};
string[] lines = data.Split(lineDelimiter);
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/HypergridServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/HypergridServiceInConnectorModule.cs
index 4fbee7f4c8..92db15bc38 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/HypergridServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Grid/HypergridServiceInConnectorModule.cs
@@ -37,6 +37,8 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Server.Base;
using OpenSim.Server.Handlers.Base;
using OpenSim.Server.Handlers.Grid;
+using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
{
@@ -90,6 +92,22 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
}
public void AddRegion(Scene scene)
+ {
+ if (!m_Enabled)
+ return;
+
+ }
+
+ public void RemoveRegion(Scene scene)
+ {
+ if (!m_Enabled)
+ return;
+
+ GridRegion rinfo = new GridRegion(scene.RegionInfo);
+ m_HypergridHandler.RemoveRegion(rinfo);
+ }
+
+ public void RegionLoaded(Scene scene)
{
if (!m_Enabled)
return;
@@ -102,27 +120,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
Object[] args = new Object[] { m_Config, MainServer.Instance };
- m_HypergridHandler = new HypergridServiceInConnector(m_Config, MainServer.Instance);
- //ServerUtils.LoadPlugin("OpenSim.Server.Handlers.dll:HypergridServiceInConnector", args);
+ m_HypergridHandler = new HypergridServiceInConnector(m_Config, MainServer.Instance, scene.RequestModuleInterface());
+ //ServerUtils.LoadPlugin("OpenSim.Server.Handlers.dll:HypergridServiceInConnector", args);
}
- SimpleRegionInfo rinfo = new SimpleRegionInfo(scene.RegionInfo);
+ GridRegion rinfo = new GridRegion(scene.RegionInfo);
m_HypergridHandler.AddRegion(rinfo);
}
- public void RemoveRegion(Scene scene)
- {
- if (!m_Enabled)
- return;
-
- SimpleRegionInfo rinfo = new SimpleRegionInfo(scene.RegionInfo);
- m_HypergridHandler.RemoveRegion(rinfo);
- }
-
- public void RegionLoaded(Scene scene)
- {
- }
-
#endregion
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs
index a31ce8e59f..8a903701fa 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Neighbour/NeighbourServiceInConnectorModule.cs
@@ -121,7 +121,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour
#region INeighbourService
- public bool HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
+ public GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
{
m_log.DebugFormat("[NEIGHBOUR IN CONNECTOR]: HelloNeighbour from {0}, to {1}. Count = {2}",
thisRegion.RegionName, regionHandle, m_Scenes.Count);
@@ -134,7 +134,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour
}
}
m_log.DebugFormat("[NEIGHBOUR IN CONNECTOR]: region handle {0} not found", regionHandle);
- return false;
+ return null;
}
#endregion INeighbourService
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs
index e69613a57a..85a1ac3b64 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/LocalAuthorizationServiceConnector.cs
@@ -134,7 +134,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
public bool IsAuthorizedForRegion(string userID, string regionID, out string message)
{
- return m_AuthorizationService.IsAuthorizedForRegion(userID, regionID, out message);
+ return m_AuthorizationService.IsAuthorizedForRegion(userID, regionID, out message);
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs
index a672f4fdc4..fca2df2766 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Authorization/RemoteAuthorizationServiceConnector.cs
@@ -146,7 +146,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Authorization
else
{
m_log.ErrorFormat("[REMOTE AUTHORIZATION CONNECTOR] IsAuthorizedForRegion, can't find scene to match region id of {0} ",regionID);
- }
+ }
return isAuthorized;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGCommands.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGCommands.cs
index 36915effb5..0974372cd4 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGCommands.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGCommands.cs
@@ -86,7 +86,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
private void RunHGCommand(string command, string[] cmdparams)
{
- if (command.Equals("linkk-mapping"))
+ if (command.Equals("link-mapping"))
{
if (cmdparams.Length == 2)
{
@@ -104,7 +104,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
}
}
}
- else if (command.Equals("linkk-region"))
+ else if (command.Equals("link-region"))
{
if (cmdparams.Length < 3)
{
@@ -187,7 +187,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
}
return;
}
- else if (command.Equals("unlinkk-region"))
+ else if (command.Equals("unlink-region"))
{
if (cmdparams.Length < 1)
{
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGGridConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGGridConnector.cs
index 0c2a835c13..148331b8c1 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGGridConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/HGGridConnector.cs
@@ -31,6 +31,7 @@ using System.Net;
using System.Reflection;
using System.Xml;
+using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
@@ -47,15 +48,19 @@ using Nini.Config;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
{
- public class HGGridConnector : ISharedRegionModule, IGridService
+ public class HGGridConnector : ISharedRegionModule, IGridService, IHyperlinkService
{
private static readonly ILog m_log =
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
+ private static string LocalAssetServerURI, LocalInventoryServerURI, LocalUserServerURI;
private bool m_Enabled = false;
private bool m_Initialized = false;
+ private Scene m_aScene;
+ private Dictionary m_LocalScenes = new Dictionary();
+
private IGridService m_GridServiceConnector;
private HypergridServiceConnector m_HypergridServiceConnector;
@@ -130,6 +135,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public void PostInitialise()
{
+ if (m_Enabled)
+ ((ISharedRegionModule)m_GridServiceConnector).PostInitialise();
}
public void Close()
@@ -141,12 +148,21 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
if (!m_Enabled)
return;
+ m_LocalScenes[scene.RegionInfo.RegionHandle] = scene;
scene.RegisterModuleInterface(this);
+ scene.RegisterModuleInterface(this);
+
+ ((ISharedRegionModule)m_GridServiceConnector).AddRegion(scene);
}
public void RemoveRegion(Scene scene)
{
+ if (m_Enabled)
+ {
+ m_LocalScenes.Remove(scene.RegionInfo.RegionHandle);
+ ((ISharedRegionModule)m_GridServiceConnector).RemoveRegion(scene);
+ }
}
public void RegionLoaded(Scene scene)
@@ -156,29 +172,28 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
if (!m_Initialized)
{
+ m_aScene = scene;
+ LocalAssetServerURI = m_aScene.CommsManager.NetworkServersInfo.UserURL;
+ LocalInventoryServerURI = m_aScene.CommsManager.NetworkServersInfo.InventoryURL;
+ LocalUserServerURI = m_aScene.CommsManager.NetworkServersInfo.UserURL;
+
m_HypergridServiceConnector = new HypergridServiceConnector(scene.AssetService);
+
HGCommands hgCommands = new HGCommands(this, scene);
- MainConsole.Instance.Commands.AddCommand("HGGridServicesConnector", false, "linkk-region",
+ MainConsole.Instance.Commands.AddCommand("HGGridServicesConnector", false, "link-region",
"link-region :[:] ",
"Link a hypergrid region", hgCommands.RunCommand);
- MainConsole.Instance.Commands.AddCommand("HGGridServicesConnector", false, "unlinkk-region",
+ MainConsole.Instance.Commands.AddCommand("HGGridServicesConnector", false, "unlink-region",
"unlink-region or : ",
"Unlink a hypergrid region", hgCommands.RunCommand);
- MainConsole.Instance.Commands.AddCommand("HGGridServicesConnector", false, "linkk-mapping", "link-mapping [ ] ",
+ MainConsole.Instance.Commands.AddCommand("HGGridServicesConnector", false, "link-mapping", "link-mapping [ ] ",
"Set local coordinate to map HG regions to", hgCommands.RunCommand);
+
+ // Yikes!! Remove this as soon as user services get refactored
+ HGNetworkServersInfo.Init(LocalAssetServerURI, LocalInventoryServerURI, LocalUserServerURI);
+
m_Initialized = true;
}
-
-
- //scene.AddCommand("HGGridServicesConnector", "linkk-region",
- // "link-region :[:] ",
- // "Link a hypergrid region", hgCommands.RunCommand);
- //scene.AddCommand("HGGridServicesConnector", "unlinkk-region",
- // "unlink-region or : ",
- // "Unlink a hypergrid region", hgCommands.RunCommand);
- //scene.AddCommand("HGGridServicesConnector", "linkk-mapping", "link-mapping [ ] ",
- // "Set local coordinate to map HG regions to", hgCommands.RunCommand);
-
}
#endregion
@@ -250,7 +265,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
// Try the foreign users home collection
foreach (GridRegion r in m_knownRegions.Values)
if (r.RegionID == regionID)
- return m_knownRegions[regionID];
+ return r;
// Finally, try the normal route
return m_GridServiceConnector.GetRegionByUUID(scopeID, regionID);
@@ -271,7 +286,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
foreach (GridRegion r in m_knownRegions.Values)
{
if ((r.RegionLocX == snapX) && (r.RegionLocY == snapY))
+ {
return r;
+ }
}
// Finally, try the normal route
@@ -338,8 +355,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
private void AddHyperlinkRegion(GridRegion regionInfo, ulong regionHandle)
{
- m_HyperlinkRegions.Add(regionInfo.RegionID, regionInfo);
- m_HyperlinkHandles.Add(regionInfo.RegionID, regionHandle);
+ m_HyperlinkRegions[regionInfo.RegionID] = regionInfo;
+ m_HyperlinkHandles[regionInfo.RegionID] = regionHandle;
}
private void RemoveHyperlinkRegion(UUID regionID)
@@ -350,8 +367,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
private void AddHyperlinkHomeRegion(UUID userID, GridRegion regionInfo, ulong regionHandle)
{
- m_knownRegions.Add(userID, regionInfo);
- m_HyperlinkHandles.Add(regionInfo.RegionID, regionHandle);
+ m_knownRegions[userID] = regionInfo;
+ m_HyperlinkHandles[regionInfo.RegionID] = regionHandle;
}
private void RemoveHyperlinkHomeRegion(UUID regionID)
@@ -367,10 +384,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
}
#endregion
- #region Hyperlinks
+ #region IHyperlinkService
private static Random random = new Random();
+
public GridRegion TryLinkRegionToCoords(Scene m_scene, IClientAPI client, string mapName, int xloc, int yloc)
{
string host = "127.0.0.1";
@@ -417,10 +435,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
return null;
}
+
// From the map search and secondlife://blah
public GridRegion TryLinkRegion(Scene m_scene, IClientAPI client, string mapName)
{
- int xloc = random.Next(0, Int16.MaxValue);
+ int xloc = random.Next(0, Int16.MaxValue) * (int) Constants.RegionSize;
return TryLinkRegionToCoords(m_scene, client, mapName, xloc, 0);
}
@@ -447,15 +466,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
}
// Finally, link it
- try
- {
- RegisterRegion(UUID.Zero, regInfo);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid]: Unable to link region: " + e.Message);
- return false;
- }
+ if (!RegisterRegion(UUID.Zero, regInfo))
+ {
+ m_log.Warn("[HGrid]: Unable to link region");
+ return false;
+ }
int x, y;
if (!Check4096(m_scene, regInfo, out x, out y))
@@ -539,8 +554,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
x = (int)(ux / Constants.RegionSize);
y = (int)(uy / Constants.RegionSize);
- if ((Math.Abs((int)(m_scene.RegionInfo.RegionLocX / Constants.RegionSize) - x) >= 4096) ||
- (Math.Abs((int)(m_scene.RegionInfo.RegionLocY / Constants.RegionSize) - y) >= 4096))
+ if ((Math.Abs((int)m_scene.RegionInfo.RegionLocX - x) >= 4096) ||
+ (Math.Abs((int)m_scene.RegionInfo.RegionLocY - y) >= 4096))
{
return false;
}
@@ -554,7 +569,227 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
return true;
}
+ public GridRegion TryLinkRegion(IClientAPI client, string regionDescriptor)
+ {
+ return TryLinkRegion((Scene)client.Scene, client, regionDescriptor);
+ }
+
+ public GridRegion GetHyperlinkRegion(ulong handle)
+ {
+ foreach (GridRegion r in m_HyperlinkRegions.Values)
+ if (r.RegionHandle == handle)
+ return r;
+ foreach (GridRegion r in m_knownRegions.Values)
+ if (r.RegionHandle == handle)
+ return r;
+ return null;
+ }
+
+ public ulong FindRegionHandle(ulong handle)
+ {
+ foreach (GridRegion r in m_HyperlinkRegions.Values)
+ if ((r.RegionHandle == handle) && (m_HyperlinkHandles.ContainsKey(r.RegionID)))
+ return m_HyperlinkHandles[r.RegionID];
+
+ foreach (GridRegion r in m_knownRegions.Values)
+ if ((r.RegionHandle == handle) && (m_HyperlinkHandles.ContainsKey(r.RegionID)))
+ return m_HyperlinkHandles[r.RegionID];
+
+ return handle;
+ }
+
+ public bool SendUserInformation(GridRegion regInfo, AgentCircuitData agentData)
+ {
+ CachedUserInfo uinfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(agentData.AgentID);
+
+ if ((IsLocalUser(uinfo) && (GetHyperlinkRegion(regInfo.RegionHandle) != null)) ||
+ (!IsLocalUser(uinfo) && !IsGoingHome(uinfo, regInfo)))
+ {
+ m_log.Info("[HGrid]: Local user is going to foreign region or foreign user is going elsewhere");
+
+ // Set the position of the region on the remote grid
+ ulong realHandle = FindRegionHandle(regInfo.RegionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regInfo.RegionHandle, out x, out y);
+ GridRegion clonedRegion = new GridRegion(regInfo);
+ clonedRegion.RegionLocX = (int)x;
+ clonedRegion.RegionLocY = (int)y;
+
+ // Get the user's home region information
+ GridRegion home = m_aScene.GridService.GetRegionByUUID(m_aScene.RegionInfo.ScopeID, uinfo.UserProfile.HomeRegionID);
+
+ // Get the user's service URLs
+ string serverURI = "";
+ if (uinfo.UserProfile is ForeignUserProfileData)
+ serverURI = Util.ServerURI(((ForeignUserProfileData)uinfo.UserProfile).UserServerURI);
+ string userServer = (serverURI == "") || (serverURI == null) ? LocalUserServerURI : serverURI;
+
+ string assetServer = Util.ServerURI(uinfo.UserProfile.UserAssetURI);
+ if ((assetServer == null) || (assetServer == ""))
+ assetServer = LocalAssetServerURI;
+
+ string inventoryServer = Util.ServerURI(uinfo.UserProfile.UserInventoryURI);
+ if ((inventoryServer == null) || (inventoryServer == ""))
+ inventoryServer = LocalInventoryServerURI;
+
+ if (!m_HypergridServiceConnector.InformRegionOfUser(clonedRegion, agentData, home, userServer, assetServer, inventoryServer))
+ {
+ m_log.Warn("[HGrid]: Could not inform remote region of transferring user.");
+ return false;
+ }
+ }
+ //if ((uinfo == null) || !IsGoingHome(uinfo, regInfo))
+ //{
+ // m_log.Info("[HGrid]: User seems to be going to foreign region.");
+ // if (!InformRegionOfUser(regInfo, agentData))
+ // {
+ // m_log.Warn("[HGrid]: Could not inform remote region of transferring user.");
+ // return false;
+ // }
+ //}
+ //else
+ // m_log.Info("[HGrid]: User seems to be going home " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName);
+
+ // May need to change agent's name
+ if (IsLocalUser(uinfo) && (GetHyperlinkRegion(regInfo.RegionHandle) != null))
+ {
+ agentData.firstname = agentData.firstname + "." + agentData.lastname;
+ agentData.lastname = "@" + LocalUserServerURI.Replace("http://", ""); ; //HGNetworkServersInfo.Singleton.LocalUserServerURI;
+ }
+
+ return true;
+ }
+
+ public void AdjustUserInformation(AgentCircuitData agentData)
+ {
+ CachedUserInfo uinfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(agentData.AgentID);
+ if ((uinfo != null) && (uinfo.UserProfile != null) &&
+ (IsLocalUser(uinfo) || !(uinfo.UserProfile is ForeignUserProfileData)))
+ {
+ //m_log.Debug("---------------> Local User!");
+ string[] parts = agentData.firstname.Split(new char[] { '.' });
+ if (parts.Length == 2)
+ {
+ agentData.firstname = parts[0];
+ agentData.lastname = parts[1];
+ }
+ }
+ //else
+ // m_log.Debug("---------------> Foreign User!");
+ }
+
+ // Check if a local user exists with the same UUID as the incoming foreign user
+ public bool CheckUserAtEntry(UUID userID, UUID sessionID, out bool comingHome)
+ {
+ comingHome = false;
+ if (!m_aScene.SceneGridService.RegionLoginsEnabled)
+ return false;
+
+ CachedUserInfo uinfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(userID);
+ if (uinfo != null)
+ {
+ // uh-oh we have a potential intruder
+ if (uinfo.SessionID != sessionID)
+ // can't have a foreigner with a local UUID
+ return false;
+ else
+ // oh, so it's you! welcome back
+ comingHome = true;
+ }
+
+ // OK, user can come in
+ return true;
+ }
+
+ public void AcceptUser(ForeignUserProfileData user, GridRegion home)
+ {
+ m_aScene.CommsManager.UserProfileCacheService.PreloadUserCache(user);
+ ulong realHandle = home.RegionHandle;
+ // Change the local coordinates
+ // X=0 on the map
+ home.RegionLocX = 0;
+ home.RegionLocY = random.Next(0, 10000) * (int)Constants.RegionSize;
+
+ AddHyperlinkHomeRegion(user.ID, home, realHandle);
+
+ DumpUserData(user);
+ DumpRegionData(home);
+
+ }
+
+ public bool IsLocalUser(UUID userID)
+ {
+ CachedUserInfo uinfo = m_aScene.CommsManager.UserProfileCacheService.GetUserDetails(userID);
+ return IsLocalUser(uinfo);
+ }
+
#endregion
+ #region IHyperlink Misc
+
+ protected bool IsComingHome(ForeignUserProfileData userData)
+ {
+ return (userData.UserServerURI == LocalUserServerURI);
+ }
+
+ // Is the user going back to the home region or the home grid?
+ protected bool IsGoingHome(CachedUserInfo uinfo, GridRegion rinfo)
+ {
+ if (uinfo.UserProfile == null)
+ return false;
+
+ if (!(uinfo.UserProfile is ForeignUserProfileData))
+ // it's a home user, can't be outside to return home
+ return false;
+
+ // OK, it's a foreign user with a ForeignUserProfileData
+ // and is going back to exactly the home region.
+ // We can't check if it's going back to a non-home region
+ // of the home grid. That will be dealt with in the
+ // receiving end
+ return (uinfo.UserProfile.HomeRegionID == rinfo.RegionID);
+ }
+
+ protected bool IsLocalUser(CachedUserInfo uinfo)
+ {
+ if (uinfo == null)
+ return false;
+
+ return !(uinfo.UserProfile is ForeignUserProfileData);
+
+ }
+
+ protected bool IsLocalRegion(ulong handle)
+ {
+ return m_LocalScenes.ContainsKey(handle);
+ }
+
+ private void DumpUserData(ForeignUserProfileData userData)
+ {
+ m_log.Info(" ------------ User Data Dump ----------");
+ m_log.Info(" >> Name: " + userData.FirstName + " " + userData.SurName);
+ m_log.Info(" >> HomeID: " + userData.HomeRegionID);
+ m_log.Info(" >> UserServer: " + userData.UserServerURI);
+ m_log.Info(" >> InvServer: " + userData.UserInventoryURI);
+ m_log.Info(" >> AssetServer: " + userData.UserAssetURI);
+ m_log.Info(" ------------ -------------- ----------");
+ }
+
+ private void DumpRegionData(GridRegion rinfo)
+ {
+ m_log.Info(" ------------ Region Data Dump ----------");
+ m_log.Info(" >> handle: " + rinfo.RegionHandle);
+ m_log.Info(" >> coords: " + rinfo.RegionLocX + ", " + rinfo.RegionLocY);
+ m_log.Info(" >> external host name: " + rinfo.ExternalHostName);
+ m_log.Info(" >> http port: " + rinfo.HttpPort);
+ m_log.Info(" >> external EP address: " + rinfo.ExternalEndPoint.Address);
+ m_log.Info(" >> external EP port: " + rinfo.ExternalEndPoint.Port);
+ m_log.Info(" ------------ -------------- ----------");
+ }
+
+
+ #endregion
+
+
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs
index 743d3b9a66..3ca4882327 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/LocalGridServiceConnector.cs
@@ -31,6 +31,7 @@ using System;
using System.Collections.Generic;
using System.Reflection;
using OpenSim.Framework;
+using OpenSim.Framework.Console;
using OpenSim.Server.Base;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
@@ -47,7 +48,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
+ private static LocalGridServicesConnector m_MainInstance;
+
private IGridService m_GridService;
+ private Dictionary m_LocalCache = new Dictionary();
private bool m_Enabled = false;
@@ -58,6 +62,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public LocalGridServicesConnector(IConfigSource source)
{
m_log.Debug("[LOCAL GRID CONNECTOR]: LocalGridServicesConnector instantiated");
+ m_MainInstance = this;
InitialiseService(source);
}
@@ -82,6 +87,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
if (name == Name)
{
InitialiseService(source);
+ m_MainInstance = this;
m_Enabled = true;
m_log.Info("[LOCAL GRID CONNECTOR]: Local grid connector enabled");
}
@@ -120,6 +126,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public void PostInitialise()
{
+ if (m_MainInstance == this)
+ {
+ MainConsole.Instance.Commands.AddCommand("LocalGridConnector", false, "show neighbours",
+ "show neighbours",
+ "Shows the local regions' neighbours", NeighboursCommand);
+ }
}
public void Close()
@@ -128,14 +140,25 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public void AddRegion(Scene scene)
{
- if (!m_Enabled)
- return;
+ if (m_Enabled)
+ scene.RegisterModuleInterface(this);
- scene.RegisterModuleInterface(this);
+ if (m_MainInstance == this)
+ {
+ if (m_LocalCache.ContainsKey(scene.RegionInfo.RegionID))
+ m_log.ErrorFormat("[LOCAL GRID CONNECTOR]: simulator seems to have more than one region with the same UUID. Please correct this!");
+ else
+ m_LocalCache.Add(scene.RegionInfo.RegionID, new RegionCache(scene));
+ }
}
public void RemoveRegion(Scene scene)
{
+ if (m_MainInstance == this)
+ {
+ m_LocalCache[scene.RegionInfo.RegionID].Clear();
+ m_LocalCache.Remove(scene.RegionInfo.RegionID);
+ }
}
public void RegionLoaded(Scene scene)
@@ -158,7 +181,22 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public List GetNeighbours(UUID scopeID, UUID regionID)
{
- return m_GridService.GetNeighbours(scopeID, regionID);
+ if (m_LocalCache.ContainsKey(regionID))
+ {
+ List neighbours = m_LocalCache[regionID].GetNeighbours();
+ if (neighbours.Count == 0)
+ // try the DB
+ neighbours = m_GridService.GetNeighbours(scopeID, regionID);
+ return neighbours;
+ }
+ else
+ {
+ m_log.WarnFormat("[LOCAL GRID CONNECTOR]: GetNeighbours: Requested region {0} is not on this sim", regionID);
+ return new List();
+ }
+
+ // Don't go to the DB
+ //return m_GridService.GetNeighbours(scopeID, regionID);
}
public GridRegion GetRegionByUUID(UUID scopeID, UUID regionID)
@@ -187,5 +225,16 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
}
#endregion
+
+ public void NeighboursCommand(string module, string[] cmdparams)
+ {
+ foreach (KeyValuePair kvp in m_LocalCache)
+ {
+ m_log.InfoFormat("*** Neighbours of {0} {1} ***", kvp.Key, kvp.Value.RegionName);
+ List regions = kvp.Value.GetNeighbours();
+ foreach (GridRegion r in regions)
+ m_log.InfoFormat(" {0} @ {1}={2}", r.RegionName, r.RegionLocX / Constants.RegionSize, r.RegionLocY / Constants.RegionSize);
+ }
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs
new file mode 100644
index 0000000000..2b336bb0a2
--- /dev/null
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RegionCache.cs
@@ -0,0 +1,79 @@
+/*
+ * 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 OpenSim.Region.Framework.Scenes;
+using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
+
+using log4net;
+
+namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
+{
+ public class RegionCache
+ {
+ private static readonly ILog m_log =
+ LogManager.GetLogger(
+ MethodBase.GetCurrentMethod().DeclaringType);
+
+ private Scene m_scene;
+ private Dictionary m_neighbours = new Dictionary();
+
+ public string RegionName
+ {
+ get { return m_scene.RegionInfo.RegionName; }
+ }
+
+ public RegionCache(Scene s)
+ {
+ m_scene = s;
+ m_scene.EventManager.OnRegionUp += OnRegionUp;
+ }
+
+ private void OnRegionUp(GridRegion otherRegion)
+ {
+ m_log.DebugFormat("[REGION CACHE]: (on region {0}) Region {1} is up @ {2}-{3}",
+ m_scene.RegionInfo.RegionName, otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY);
+
+ m_neighbours[otherRegion.RegionHandle] = otherRegion;
+ }
+
+ public void Clear()
+ {
+ m_scene.EventManager.OnRegionUp -= OnRegionUp;
+ m_neighbours.Clear();
+ }
+
+ public List GetNeighbours()
+ {
+ return new List(m_neighbours.Values);
+ }
+ }
+}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
index 91a808b21f..72c00fc02d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/RemoteGridServiceConnector.cs
@@ -104,6 +104,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public void PostInitialise()
{
+ if (m_LocalGridService != null)
+ ((ISharedRegionModule)m_LocalGridService).PostInitialise();
}
public void Close()
@@ -112,14 +114,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public void AddRegion(Scene scene)
{
- if (!m_Enabled)
- return;
+ if (m_Enabled)
+ scene.RegisterModuleInterface(this);
- scene.RegisterModuleInterface(this);
+ if (m_LocalGridService != null)
+ ((ISharedRegionModule)m_LocalGridService).AddRegion(scene);
}
public void RemoveRegion(Scene scene)
{
+ if (m_LocalGridService != null)
+ ((ISharedRegionModule)m_LocalGridService).RemoveRegion(scene);
}
public void RegionLoaded(Scene scene)
@@ -146,7 +151,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
return false;
}
- // Let's not override GetNeighbours -- let's get them all from the grid server
+ // Let's override GetNeighbours completely -- never go to the grid server
+ // Neighbours are/should be cached locally
+ // For retrieval from the DB, caller should call GetRegionByPosition
+ public override List GetNeighbours(UUID scopeID, UUID regionID)
+ {
+ return m_LocalGridService.GetNeighbours(scopeID, regionID);
+ }
public override GridRegion GetRegionByUUID(UUID scopeID, UUID regionID)
{
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs
index be32d6ba5f..2ca90f8229 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs
@@ -78,6 +78,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r1.ExternalHostName = "127.0.0.1";
r1.HttpPort = 9001;
r1.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
+ Scene s = new Scene(new RegionInfo());
+ s.RegionInfo.RegionID = r1.RegionID;
+ m_LocalConnector.AddRegion(s);
+
GridRegion r2 = new GridRegion();
r2.RegionName = "Test Region 2";
@@ -87,6 +91,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r2.ExternalHostName = "127.0.0.1";
r2.HttpPort = 9002;
r2.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
+ s = new Scene(new RegionInfo());
+ s.RegionInfo.RegionID = r1.RegionID;
+ m_LocalConnector.AddRegion(s);
GridRegion r3 = new GridRegion();
r3.RegionName = "Test Region 3";
@@ -96,6 +103,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid.Tests
r3.ExternalHostName = "127.0.0.1";
r3.HttpPort = 9003;
r3.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 0);
+ s = new Scene(new RegionInfo());
+ s.RegionInfo.RegionID = r1.RegionID;
+ m_LocalConnector.AddRegion(s);
m_LocalConnector.RegisterRegion(UUID.Zero, r1);
GridRegion result = m_LocalConnector.GetRegionByName(UUID.Zero, "Test");
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs
index 9519e23375..696225cddc 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs
@@ -42,6 +42,8 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Framework.Scenes.Hypergrid;
using OpenSim.Region.Framework.Scenes.Serialization;
+using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
{
@@ -59,6 +61,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
protected RegionToRegionClient m_regionClient;
+ protected IHyperlinkService m_hyperlinkService;
+
protected bool m_safemode;
protected IPAddress m_thisIP;
@@ -134,7 +138,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
m_localBackend = new LocalInterregionComms();
m_commsManager = scene.CommsManager;
m_aScene = scene;
- m_regionClient = new RegionToRegionClient(m_aScene);
+ m_hyperlinkService = m_aScene.RequestModuleInterface();
+ m_regionClient = new RegionToRegionClient(m_aScene, m_hyperlinkService);
m_thisIP = Util.GetHostFromDNS(scene.RegionInfo.ExternalHostName);
}
@@ -161,7 +166,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
// else do the remote thing
if (!m_localBackend.IsLocalRegion(regionHandle))
{
- RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_aScene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regInfo != null)
{
m_regionClient.SendUserInformation(regInfo, aCircuit);
@@ -183,7 +190,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
// else do the remote thing
if (!m_localBackend.IsLocalRegion(regionHandle))
{
- RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_aScene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regInfo != null)
{
return m_regionClient.DoChildAgentUpdateCall(regInfo, cAgentData);
@@ -204,7 +213,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
// else do the remote thing
if (!m_localBackend.IsLocalRegion(regionHandle))
{
- RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_aScene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regInfo != null)
{
return m_regionClient.DoChildAgentUpdateCall(regInfo, cAgentData);
@@ -225,7 +236,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
// else do the remote thing
if (!m_localBackend.IsLocalRegion(regionHandle))
{
- RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_aScene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regInfo != null)
{
return m_regionClient.DoRetrieveRootAgentCall(regInfo, id, out agent);
@@ -257,7 +270,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
// else do the remote thing
if (!m_localBackend.IsLocalRegion(regionHandle))
{
- RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_aScene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regInfo != null)
{
return m_regionClient.DoCloseAgentCall(regInfo, id);
@@ -284,7 +299,9 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
// else do the remote thing
if (!m_localBackend.IsLocalRegion(regionHandle))
{
- RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_aScene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regInfo != null)
{
return m_regionClient.DoCreateObjectCall(
@@ -776,16 +793,21 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
protected class RegionToRegionClient : RegionClient
{
Scene m_aScene = null;
+ IHyperlinkService m_hyperlinkService;
- public RegionToRegionClient(Scene s)
+ public RegionToRegionClient(Scene s, IHyperlinkService hyperService)
{
m_aScene = s;
+ m_hyperlinkService = hyperService;
}
public override ulong GetRegionHandle(ulong handle)
{
if (m_aScene.SceneGridService is HGSceneCommunicationService)
- return ((HGSceneCommunicationService)(m_aScene.SceneGridService)).m_hg.FindRegionHandle(handle);
+ {
+ if (m_hyperlinkService != null)
+ return m_hyperlinkService.FindRegionHandle(handle);
+ }
return handle;
}
@@ -793,29 +815,24 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
public override bool IsHyperlink(ulong handle)
{
if (m_aScene.SceneGridService is HGSceneCommunicationService)
- return ((HGSceneCommunicationService)(m_aScene.SceneGridService)).m_hg.IsHyperlinkRegion(handle);
-
+ {
+ if ((m_hyperlinkService != null) && (m_hyperlinkService.GetHyperlinkRegion(handle) != null))
+ return true;
+ }
return false;
}
- public override void SendUserInformation(RegionInfo regInfo, AgentCircuitData aCircuit)
+ public override void SendUserInformation(GridRegion regInfo, AgentCircuitData aCircuit)
{
- try
- {
- if (m_aScene.SceneGridService is HGSceneCommunicationService)
- {
- ((HGSceneCommunicationService)(m_aScene.SceneGridService)).m_hg.SendUserInformation(regInfo, aCircuit);
- }
- }
- catch // Bad cast
- { }
+ if (m_hyperlinkService != null)
+ m_hyperlinkService.SendUserInformation(regInfo, aCircuit);
}
public override void AdjustUserInformation(AgentCircuitData aCircuit)
{
- if (m_aScene.SceneGridService is HGSceneCommunicationService)
- ((HGSceneCommunicationService)(m_aScene.SceneGridService)).m_hg.AdjustUserInformation(aCircuit);
+ if (m_hyperlinkService != null)
+ m_hyperlinkService.AdjustUserInformation(aCircuit);
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
index 1c66254aca..fd1a75926a 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
@@ -525,7 +525,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return true;
}
- string userInventoryServerURI = HGNetworkServersInfo.ServerURI(uinfo.UserProfile.UserInventoryURI);
+ if ((uinfo.UserProfile.UserInventoryURI == null) || (uinfo.UserProfile.UserInventoryURI == ""))
+ // this happens in standalone profiles, apparently
+ return true;
+
+ string userInventoryServerURI = Util.ServerURI(uinfo.UserProfile.UserInventoryURI);
+
string uri = m_LocalGridInventoryURI.TrimEnd('/');
if ((userInventoryServerURI == uri) || (userInventoryServerURI == ""))
@@ -544,7 +549,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if ((uinfo == null) || (uinfo.UserProfile == null))
return invURI;
- string userInventoryServerURI = HGNetworkServersInfo.ServerURI(uinfo.UserProfile.UserInventoryURI);
+ string userInventoryServerURI = Util.ServerURI(uinfo.UserProfile.UserInventoryURI);
if ((userInventoryServerURI != null) &&
(userInventoryServerURI != ""))
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
index 0d32c77859..69504df265 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteInventoryServiceConnector.cs
@@ -107,7 +107,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public void AddRegion(Scene scene)
{
m_Scene = scene;
- m_log.Debug("[XXXX] Adding scene " + m_Scene.RegionInfo.RegionName);
+ //m_log.Debug("[XXXX] Adding scene " + m_Scene.RegionInfo.RegionName);
if (!m_Enabled)
return;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs
index a52c70be55..b0ace3959d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Land/RemoteLandServiceConnector.cs
@@ -37,6 +37,7 @@ using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using OpenSim.Server.Base;
+
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
{
public class RemoteLandServicesConnector :
@@ -89,7 +90,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Land
if (!m_Enabled)
return;
- m_MapService = scene.CommsManager.GridService;
+ m_GridService = scene.GridService;
m_LocalService.AddRegion(scene);
scene.RegisterModuleInterface(this);
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs
index 61bf481984..daba0b3bb4 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/LocalNeighbourServiceConnector.cs
@@ -119,7 +119,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
#region INeighbourService
- public bool HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
+ public GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
{
m_log.DebugFormat("[NEIGHBOUR CONNECTOR]: HelloNeighbour from {0}, to {1}. Count = {2}",
thisRegion.RegionName, regionHandle, m_Scenes.Count);
@@ -132,7 +132,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
}
}
m_log.DebugFormat("[NEIGHBOUR CONNECTOR]: region handle {0} not found", regionHandle);
- return false;
+ return null;
}
#endregion INeighbourService
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs
index c5bc03b0ed..c6fc2a1475 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Neighbour/RemoteNeighourServiceConnector.cs
@@ -118,7 +118,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
if (!m_Enabled)
return;
- m_MapService = scene.CommsManager.GridService;
m_LocalService.AddRegion(scene);
scene.RegisterModuleInterface(this);
}
@@ -134,16 +133,19 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
if (!m_Enabled)
return;
+ m_GridService = scene.GridService;
+
m_log.InfoFormat("[NEIGHBOUR CONNECTOR]: Enabled remote neighbours for region {0}", scene.RegionInfo.RegionName);
}
#region INeighbourService
- public override bool HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
+ public override GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
{
- if (m_LocalService.HelloNeighbour(regionHandle, thisRegion))
- return true;
+ GridRegion region = m_LocalService.HelloNeighbour(regionHandle, thisRegion);
+ if (region != null)
+ return region;
return base.HelloNeighbour(regionHandle, thisRegion);
}
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index 376ea8ae6a..65f83fdfbb 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -110,12 +110,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
TarArchiveReader.TarEntryType entryType;
while ((data = archive.ReadEntry(out filePath, out entryType)) != null)
- {
+ {
//m_log.DebugFormat(
// "[ARCHIVER]: Successfully read {0} ({1} bytes)", filePath, data.Length);
if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType)
- continue;
+ continue;
if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH))
{
@@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count);
IRegionSerialiserModule serialiser = m_scene.RequestModuleInterface();
- int sceneObjectsLoadedCount = 0;
+ int sceneObjectsLoadedCount = 0;
foreach (string serialisedSceneObject in serialisedSceneObjects)
{
@@ -499,7 +499,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);
XmlTextReader xtr
- = new XmlTextReader(m_asciiEncoding.GetString(data), XmlNodeType.Document, context);
+ = new XmlTextReader(m_asciiEncoding.GetString(data), XmlNodeType.Document, context);
RegionSettings currentRegionSettings = m_scene.RegionInfo.RegionSettings;
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
index 63608a81f6..9e4fbbe2f8 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
@@ -74,14 +74,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_scene = scene;
m_saveStream = saveStream;
m_requestId = requestId;
- }
+ }
///
/// Archive the region requested.
///
/// if there was an io problem with creating the file
public void ArchiveRegion()
- {
+ {
Dictionary assetUuids = new Dictionary();
List entities = m_scene.GetEntities();
@@ -137,7 +137,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_scene.RequestModuleInterface(),
m_scene,
archiveWriter,
- m_requestId);
+ m_requestId);
new AssetsRequest(
new AssetsArchiver(archiveWriter), assetUuids.Keys,
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
index 5c58b6924e..8d4f91b159 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
@@ -78,7 +78,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
public void Close()
{
- }
+ }
public void ArchiveRegion(string savePath)
{
@@ -90,7 +90,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_log.InfoFormat(
"[ARCHIVER]: Writing archive for region {0} to {1}", m_scene.RegionInfo.RegionName, savePath);
- new ArchiveWriteRequestPreparation(m_scene, savePath, requestId).ArchiveRegion();
+ new ArchiveWriteRequestPreparation(m_scene, savePath, requestId).ArchiveRegion();
}
public void ArchiveRegion(Stream saveStream)
@@ -101,7 +101,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
public void ArchiveRegion(Stream saveStream, Guid requestId)
{
new ArchiveWriteRequestPreparation(m_scene, saveStream, requestId).ArchiveRegion();
- }
+ }
public void DearchiveRegion(string loadPath)
{
@@ -114,7 +114,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
"[ARCHIVER]: Loading archive to region {0} from {1}", m_scene.RegionInfo.RegionName, loadPath);
new ArchiveReadRequest(m_scene, loadPath, merge, requestId).DearchiveRegion();
- }
+ }
public void DearchiveRegion(Stream loadStream)
{
@@ -124,6 +124,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver
public void DearchiveRegion(Stream loadStream, bool merge, Guid requestId)
{
new ArchiveReadRequest(m_scene, loadStream, merge, requestId).DearchiveRegion();
- }
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs
index 330fa3f019..95d109c5a0 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsArchiver.cs
@@ -65,7 +65,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
///
///
public void WriteAsset(AssetBase asset)
- {
+ {
//WriteMetadata(archive);
WriteData(asset);
}
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
index 82803bfbe6..fe9c8d91a5 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
@@ -115,7 +115,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_requestCallbackTimer = new System.Timers.Timer(TIMEOUT);
m_requestCallbackTimer.AutoReset = false;
- m_requestCallbackTimer.Elapsed += new ElapsedEventHandler(OnRequestCallbackTimeout);
+ m_requestCallbackTimer.Elapsed += new ElapsedEventHandler(OnRequestCallbackTimeout);
}
protected internal void Execute()
@@ -143,7 +143,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
protected void OnRequestCallbackTimeout(object source, ElapsedEventArgs args)
{
try
- {
+ {
lock (this)
{
// Take care of the possibilty that this thread started but was paused just outside the lock before
@@ -155,7 +155,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
}
// Calculate which uuids were not found. This is an expensive way of doing it, but this is a failure
- // case anyway.
+ // case anyway.
List uuids = new List();
foreach (UUID uuid in m_uuids)
{
@@ -188,7 +188,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
m_log.ErrorFormat(
"[ARCHIVER]: (... {0} more not shown)", uuids.Count - MAX_UUID_DISPLAY_ON_TIMEOUT);
- m_log.Error("[ARCHIVER]: OAR save aborted.");
+ m_log.Error("[ARCHIVER]: OAR save aborted.");
}
catch (Exception e)
{
@@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
{
//m_log.DebugFormat("[ARCHIVER]: Received callback for asset {0}", id);
- m_requestCallbackTimer.Stop();
+ m_requestCallbackTimer.Stop();
if (m_requestState == RequestState.Aborted)
{
@@ -258,7 +258,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
}
catch (Exception e)
{
- m_log.ErrorFormat("[ARCHIVER]: AssetRequestCallback failed with {0}", e);
+ m_log.ErrorFormat("[ARCHIVER]: AssetRequestCallback failed with {0}", e);
}
}
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 5c42e946a1..edac4a4e8b 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -59,7 +59,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
m_lastErrorMessage = errorMessage;
Console.WriteLine("About to pulse ArchiverTests on LoadCompleted");
- Monitor.PulseAll(this);
+ Monitor.PulseAll(this);
}
}
@@ -138,7 +138,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
archiverModule.ArchiveRegion(archiveWriteStream, requestId);
//AssetServerBase assetServer = (AssetServerBase)scene.CommsManager.AssetCache.AssetServer;
//while (assetServer.HasWaitingRequests())
- // assetServer.ProcessNextRequest();
+ // assetServer.ProcessNextRequest();
Monitor.Wait(this, 60000);
}
@@ -213,7 +213,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
// Also check that direct entries which will also have a file entry containing that directory doesn't
// upset load
- tar.WriteDir(ArchiveConstants.TERRAINS_PATH);
+ tar.WriteDir(ArchiveConstants.TERRAINS_PATH);
tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile());
@@ -251,7 +251,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
{
scene.EventManager.OnOarFileLoaded += LoadCompleted;
archiverModule.DearchiveRegion(archiveReadStream);
- }
+ }
Assert.That(m_lastErrorMessage, Is.Null);
@@ -271,7 +271,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
///
/// Test merging a V0.2 OpenSim Region Archive into an existing scene
- ///
+ ///
//[Test]
public void TestMergeOarV0_2()
{
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index 76ff6da969..fdff61e187 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -36,10 +36,12 @@ using OpenSim.Framework;
using OpenSim.Framework.Capabilities;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
+using OpenSim.Services.Interfaces;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Physics.Manager;
using Caps=OpenSim.Framework.Capabilities.Caps;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.World.Land
{
@@ -1301,7 +1303,7 @@ namespace OpenSim.Region.CoreModules.World.Land
else
{
// a parcel request for a parcel in another region. Ask the grid about the region
- RegionInfo info = m_scene.CommsManager.GridService.RequestNeighbourInfo(regionID);
+ GridRegion info = m_scene.GridService.GetRegionByUUID(UUID.Zero, regionID);
if (info != null)
parcelID = Util.BuildFakeParcelID(info.RegionHandle, x, y);
}
@@ -1359,9 +1361,10 @@ namespace OpenSim.Region.CoreModules.World.Land
}
else
{
- extLandData.landData = m_scene.CommsManager.GridService.RequestLandData(extLandData.regionHandle,
- extLandData.x,
- extLandData.y);
+ ILandService landService = m_scene.RequestModuleInterface();
+ extLandData.landData = landService.GetLandData(extLandData.regionHandle,
+ extLandData.x,
+ extLandData.y);
if (extLandData.landData == null)
{
// we didn't find the region/land => don't cache
@@ -1373,20 +1376,27 @@ namespace OpenSim.Region.CoreModules.World.Land
if (data != null) // if we found some data, send it
{
- RegionInfo info;
+ GridRegion info;
if (data.regionHandle == m_scene.RegionInfo.RegionHandle)
{
- info = m_scene.RegionInfo;
+ info = new GridRegion(m_scene.RegionInfo);
}
else
{
// most likely still cached from building the extLandData entry
- info = m_scene.CommsManager.GridService.RequestNeighbourInfo(data.regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(data.regionHandle, out x, out y);
+ info = m_scene.GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
}
// we need to transfer the fake parcelID, not the one in landData, so the viewer can match it to the landmark.
m_log.DebugFormat("[LAND] got parcelinfo for parcel {0} in region {1}; sending...",
data.landData.Name, data.regionHandle);
- remoteClient.SendParcelInfo(info, data.landData, parcelID, data.x, data.y);
+ // HACK for now
+ RegionInfo r = new RegionInfo();
+ r.RegionName = info.RegionName;
+ r.RegionLocX = (uint)info.RegionLocX;
+ r.RegionLocY = (uint)info.RegionLocY;
+ remoteClient.SendParcelInfo(r, data.landData, parcelID, data.x, data.y);
}
else
m_log.Debug("[LAND] got no parcelinfo; not sending");
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 2701f607ba..3be5f4599b 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -954,7 +954,7 @@ namespace OpenSim.Region.CoreModules.World.Land
public void SetMediaUrl(string url)
{
landData.MediaURL = url;
- sendLandUpdateToAvatarsOverMe();
+ sendLandUpdateToAvatarsOverMe();
}
///
@@ -964,7 +964,7 @@ namespace OpenSim.Region.CoreModules.World.Land
public void SetMusicUrl(string url)
{
landData.MusicURL = url;
- sendLandUpdateToAvatarsOverMe();
+ sendLandUpdateToAvatarsOverMe();
}
}
}
diff --git a/OpenSim/Region/CoreModules/World/Land/RegionCombinerIndividualEventForwarder.cs b/OpenSim/Region/CoreModules/World/Land/RegionCombinerIndividualEventForwarder.cs
index 65f22b11b0..2cbaf96356 100644
--- a/OpenSim/Region/CoreModules/World/Land/RegionCombinerIndividualEventForwarder.cs
+++ b/OpenSim/Region/CoreModules/World/Land/RegionCombinerIndividualEventForwarder.cs
@@ -85,7 +85,7 @@ namespace OpenSim.Region.CoreModules.World.Land
private void LocalRezObject(IClientAPI remoteclient, UUID itemid, Vector3 rayend, Vector3 raystart,
UUID raytargetid, byte bypassraycast, bool rayendisintersection, bool rezselected, bool removeitem,
UUID fromtaskid)
- {
+ {
int differenceX = (int)m_virtScene.RegionInfo.RegionLocX - (int)m_rootScene.RegionInfo.RegionLocX;
int differenceY = (int)m_virtScene.RegionInfo.RegionLocY - (int)m_rootScene.RegionInfo.RegionLocY;
rayend.X += differenceX * (int)Constants.RegionSize;
diff --git a/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs b/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs
index 181c5ae3e4..05d19a2c4a 100644
--- a/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/RegionCombinerModule.cs
@@ -35,6 +35,7 @@ using OpenSim.Framework;
using OpenSim.Framework.Client;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
+using OpenSim.Framework.Console;
namespace OpenSim.Region.CoreModules.World.Land
{
@@ -61,7 +62,10 @@ namespace OpenSim.Region.CoreModules.World.Land
IConfig myConfig = source.Configs["Startup"];
enabledYN = myConfig.GetBoolean("CombineContiguousRegions", false);
//enabledYN = true;
- }
+ if (enabledYN)
+ MainConsole.Instance.Commands.AddCommand("RegionCombinerModule", false, "fix-phantoms",
+ "Fix phantom objects", "Fixes phantom objects after an import to megaregions", FixPhantoms);
+ }
public void Close()
{
@@ -504,7 +508,7 @@ namespace OpenSim.Region.CoreModules.World.Land
scene.WestBorders[0].TriggerRegionY = conn.RegionScene.RegionInfo.RegionLocY;
}
- /*
+ /*
else
{
conn.RegionScene.NorthBorders[0].BorderLine.Z += (int)Constants.RegionSize;
@@ -876,7 +880,7 @@ namespace OpenSim.Region.CoreModules.World.Land
VirtualRegion.Permissions.OnDuplicateObject += BigRegion.PermissionModule.CanDuplicateObject;
VirtualRegion.Permissions.OnDeleteObject += BigRegion.PermissionModule.CanDeleteObject; //MAYBE FULLY IMPLEMENTED
VirtualRegion.Permissions.OnEditObject += BigRegion.PermissionModule.CanEditObject; //MAYBE FULLY IMPLEMENTED
- VirtualRegion.Permissions.OnEditParcel += BigRegion.PermissionModule.CanEditParcel; //MAYBE FULLY IMPLEMENTED
+ VirtualRegion.Permissions.OnEditParcel += BigRegion.PermissionModule.CanEditParcel; //MAYBE FULLY IMPLEMENTED
VirtualRegion.Permissions.OnInstantMessage += BigRegion.PermissionModule.CanInstantMessage;
VirtualRegion.Permissions.OnInventoryTransfer += BigRegion.PermissionModule.CanInventoryTransfer; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnIssueEstateCommand += BigRegion.PermissionModule.CanIssueEstateCommand; //FULLY IMPLEMENTED
@@ -895,11 +899,11 @@ namespace OpenSim.Region.CoreModules.World.Land
VirtualRegion.Permissions.OnDelinkObject += BigRegion.PermissionModule.CanDelinkObject; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnBuyLand += BigRegion.PermissionModule.CanBuyLand; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnViewNotecard += BigRegion.PermissionModule.CanViewNotecard; //NOT YET IMPLEMENTED
- VirtualRegion.Permissions.OnViewScript += BigRegion.PermissionModule.CanViewScript; //NOT YET IMPLEMENTED
- VirtualRegion.Permissions.OnEditNotecard += BigRegion.PermissionModule.CanEditNotecard; //NOT YET IMPLEMENTED
- VirtualRegion.Permissions.OnEditScript += BigRegion.PermissionModule.CanEditScript; //NOT YET IMPLEMENTED
+ VirtualRegion.Permissions.OnViewScript += BigRegion.PermissionModule.CanViewScript; //NOT YET IMPLEMENTED
+ VirtualRegion.Permissions.OnEditNotecard += BigRegion.PermissionModule.CanEditNotecard; //NOT YET IMPLEMENTED
+ VirtualRegion.Permissions.OnEditScript += BigRegion.PermissionModule.CanEditScript; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnCreateObjectInventory += BigRegion.PermissionModule.CanCreateObjectInventory; //NOT IMPLEMENTED HERE
- VirtualRegion.Permissions.OnEditObjectInventory += BigRegion.PermissionModule.CanEditObjectInventory;//MAYBE FULLY IMPLEMENTED
+ VirtualRegion.Permissions.OnEditObjectInventory += BigRegion.PermissionModule.CanEditObjectInventory;//MAYBE FULLY IMPLEMENTED
VirtualRegion.Permissions.OnCopyObjectInventory += BigRegion.PermissionModule.CanCopyObjectInventory; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnDeleteObjectInventory += BigRegion.PermissionModule.CanDeleteObjectInventory; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnResetScript += BigRegion.PermissionModule.CanResetScript;
@@ -910,5 +914,20 @@ namespace OpenSim.Region.CoreModules.World.Land
VirtualRegion.Permissions.OnTeleport += BigRegion.PermissionModule.CanTeleport; //NOT YET IMPLEMENTED
VirtualRegion.Permissions.OnUseObjectReturn += BigRegion.PermissionModule.CanUseObjectReturn; //NOT YET IMPLEMENTED
}
+
+ #region console commands
+ public void FixPhantoms(string module, string[] cmdparams)
+ {
+ List scenes = new List(m_startingScenes.Values);
+ foreach (Scene s in scenes)
+ {
+ s.ForEachSOG(delegate(SceneObjectGroup e)
+ {
+ e.AbsolutePosition = e.AbsolutePosition;
+ }
+ );
+ }
+ }
+ #endregion
}
}
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index f3605779f9..a9e0b7fd76 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -103,7 +103,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
//private uint PERM_MODIFY = (uint)16384;
private uint PERM_MOVE = (uint)524288;
private uint PERM_TRANS = (uint)8192;
- private uint PERM_LOCKED = (uint)540672;
+ private uint PERM_LOCKED = (uint)540672;
///
/// Different user set names that come in from the configuration file.
@@ -114,7 +114,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
Administrators
};
- #endregion
+ #endregion
#region Bypass Permissions / Debug Permissions Stuff
@@ -136,7 +136,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
/// The set of users that are allowed to edit (save) scripts. This is only active if
/// permissions are not being bypassed. This overrides normal permissions.-
- ///
+ ///
private UserSet m_allowedScriptEditors = UserSet.All;
private Dictionary GrantLSL = new Dictionary();
@@ -190,7 +190,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_scene.Permissions.OnDuplicateObject += CanDuplicateObject;
m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED
m_scene.Permissions.OnEditObject += CanEditObject; //MAYBE FULLY IMPLEMENTED
- m_scene.Permissions.OnEditParcel += CanEditParcel; //MAYBE FULLY IMPLEMENTED
+ m_scene.Permissions.OnEditParcel += CanEditParcel; //MAYBE FULLY IMPLEMENTED
m_scene.Permissions.OnInstantMessage += CanInstantMessage;
m_scene.Permissions.OnInventoryTransfer += CanInventoryTransfer; //NOT YET IMPLEMENTED
m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; //FULLY IMPLEMENTED
@@ -210,12 +210,12 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_scene.Permissions.OnBuyLand += CanBuyLand; //NOT YET IMPLEMENTED
m_scene.Permissions.OnViewNotecard += CanViewNotecard; //NOT YET IMPLEMENTED
- m_scene.Permissions.OnViewScript += CanViewScript; //NOT YET IMPLEMENTED
- m_scene.Permissions.OnEditNotecard += CanEditNotecard; //NOT YET IMPLEMENTED
- m_scene.Permissions.OnEditScript += CanEditScript; //NOT YET IMPLEMENTED
+ m_scene.Permissions.OnViewScript += CanViewScript; //NOT YET IMPLEMENTED
+ m_scene.Permissions.OnEditNotecard += CanEditNotecard; //NOT YET IMPLEMENTED
+ m_scene.Permissions.OnEditScript += CanEditScript; //NOT YET IMPLEMENTED
m_scene.Permissions.OnCreateObjectInventory += CanCreateObjectInventory; //NOT IMPLEMENTED HERE
- m_scene.Permissions.OnEditObjectInventory += CanEditObjectInventory;//MAYBE FULLY IMPLEMENTED
+ m_scene.Permissions.OnEditObjectInventory += CanEditObjectInventory;//MAYBE FULLY IMPLEMENTED
m_scene.Permissions.OnCopyObjectInventory += CanCopyObjectInventory; //NOT YET IMPLEMENTED
m_scene.Permissions.OnDeleteObjectInventory += CanDeleteObjectInventory; //NOT YET IMPLEMENTED
m_scene.Permissions.OnResetScript += CanResetScript;
@@ -249,7 +249,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
foreach (string uuidl in grant.Split(',')) {
string uuid = uuidl.Trim(" \t".ToCharArray());
GrantLSL.Add(uuid, true);
- }
+ }
}
grant = myConfig.GetString("GrantCS","");
@@ -431,7 +431,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_log.ErrorFormat(
"[PERMISSIONS]: {0} is not a valid {1} value, setting to {2}",
rawSetting, settingName, userSet);
- }
+ }
m_log.DebugFormat("[PERMISSIONS]: {0} {1}", settingName, userSet);
@@ -942,7 +942,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
if (m_bypassPermissions) return m_bypassPermissionsValue;
if (m_allowedScriptEditors == UserSet.Administrators && !IsAdministrator(user))
- return false;
+ return false;
// Ordinarily, if you can view it, you can edit it
// There is no viewing a no mod script
@@ -957,7 +957,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
///
///
- ///
+ ///
private bool CanEditNotecard(UUID notecard, UUID objectID, UUID user, Scene scene)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
@@ -1377,11 +1377,11 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
///
///
- ///
+ ///
private bool CanViewScript(UUID script, UUID objectID, UUID user, Scene scene)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
- if (m_bypassPermissions) return m_bypassPermissionsValue;
+ if (m_bypassPermissions) return m_bypassPermissionsValue;
if (objectID == UUID.Zero) // User inventory
{
@@ -1472,7 +1472,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
///
///
- ///
+ ///
private bool CanViewNotecard(UUID notecard, UUID objectID, UUID user, Scene scene)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
@@ -1609,7 +1609,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
///
///
- ///
+ ///
private bool CanCreateUserInventory(int invType, UUID userID)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
@@ -1619,7 +1619,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
if (m_allowedScriptCreators == UserSet.Administrators && !IsAdministrator(userID))
return false;
- return true;
+ return true;
}
///
@@ -1627,27 +1627,27 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
///
///
- ///
+ ///
private bool CanCopyUserInventory(UUID itemID, UUID userID)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
- return true;
- }
+ return true;
+ }
///
/// Check whether the specified user is allowed to edit the given inventory item within their own inventory.
///
///
///
- ///
+ ///
private bool CanEditUserInventory(UUID itemID, UUID userID)
- {
+ {
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
- return true;
+ return true;
}
///
@@ -1655,14 +1655,14 @@ namespace OpenSim.Region.CoreModules.World.Permissions
///
///
///
- ///
+ ///
private bool CanDeleteUserInventory(UUID itemID, UUID userID)
{
DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
if (m_bypassPermissions) return m_bypassPermissionsValue;
- return true;
- }
+ return true;
+ }
private bool CanTeleport(UUID userID, Scene scene)
{
diff --git a/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs b/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs
index e0331d39f4..58e42619c7 100644
--- a/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs
+++ b/OpenSim/Region/CoreModules/World/Serialiser/SerialiserModule.cs
@@ -153,7 +153,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser
public void SaveNamedPrimsToXml2(Scene scene, string primName, string fileName)
{
SceneXmlLoader.SaveNamedPrimsToXml2(scene, primName, fileName);
- }
+ }
public SceneObjectGroup DeserializeGroupFromXml2(string xmlString)
{
diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
index 373b6ab3f3..799a4481f8 100644
--- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
+++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
@@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
{
m_serialiserModule = new SerialiserModule();
m_scene = SceneSetupHelpers.SetupScene("");
- SceneSetupHelpers.SetupSceneModules(m_scene, m_serialiserModule);
+ SceneSetupHelpers.SetupSceneModules(m_scene, m_serialiserModule);
}
[Test]
@@ -299,7 +299,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
continue;
switch (xtr.Name)
- {
+ {
case "UUID":
xtr.ReadStartElement("UUID");
uuid = UUID.Parse(xtr.ReadElementString("Guid"));
@@ -311,7 +311,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
case "CreatorID":
xtr.ReadStartElement("CreatorID");
creatorId = UUID.Parse(xtr.ReadElementString("Guid"));
- xtr.ReadEndElement();
+ xtr.ReadEndElement();
break;
}
}
@@ -325,8 +325,8 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
// TODO: More checks
Assert.That(uuid, Is.EqualTo(rpUuid));
Assert.That(name, Is.EqualTo(rpName));
- Assert.That(creatorId, Is.EqualTo(rpCreatorId));
- }
+ Assert.That(creatorId, Is.EqualTo(rpCreatorId));
+ }
[Test]
public void TestDeserializeXml2()
@@ -372,7 +372,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
string xml2 = m_serialiserModule.SerializeGroupToXml2(so);
XmlTextReader xtr = new XmlTextReader(new StringReader(xml2));
- xtr.ReadStartElement("SceneObjectGroup");
+ xtr.ReadStartElement("SceneObjectGroup");
xtr.ReadStartElement("SceneObjectPart");
UUID uuid = UUID.Zero;
@@ -385,7 +385,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
continue;
switch (xtr.Name)
- {
+ {
case "UUID":
xtr.ReadStartElement("UUID");
uuid = UUID.Parse(xtr.ReadElementString("Guid"));
@@ -397,7 +397,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
case "CreatorID":
xtr.ReadStartElement("CreatorID");
creatorId = UUID.Parse(xtr.ReadElementString("Guid"));
- xtr.ReadEndElement();
+ xtr.ReadEndElement();
break;
}
}
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
index 6cc0ed907a..37f1f2eb9f 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
@@ -33,9 +33,9 @@ using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.CoreModules.World.Sound
-{
+{
public class SoundModule : IRegionModule, ISoundModule
- {
+ {
//private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected Scene m_scene;
@@ -68,11 +68,11 @@ namespace OpenSim.Region.CoreModules.World.Sound
if (dis > 100.0) // Max audio distance
continue;
- // Scale by distance
+ // Scale by distance
gain = (float)((double)gain*((100.0 - dis) / 100.0));
p.ControllingClient.SendPlayAttachedSound(soundID, objectID, ownerID, (float)gain, flags);
- }
+ }
}
public virtual void TriggerSound(
@@ -84,12 +84,12 @@ namespace OpenSim.Region.CoreModules.World.Sound
if (dis > 100.0) // Max audio distance
continue;
- // Scale by distance
+ // Scale by distance
gain = (float)((double)gain*((100.0 - dis) / 100.0));
p.ControllingClient.SendTriggeredSound(
soundId, ownerID, objectID, parentID, handle, position, (float)gain);
- }
- }
+ }
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
index aa38c09c5f..0712a7fabc 100644
--- a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs
@@ -322,7 +322,7 @@ namespace OpenSim.Region.CoreModules
m_DayLengthHours = config.Configs["Sun"].GetDouble("day_length", d_day_length);
// Horizon shift, this is used to shift the sun's orbit, this affects the day / night ratio
- // must hard code to ~.5 to match sun position in LL based viewers
+ // must hard code to ~.5 to match sun position in LL based viewers
m_HorizonShift = config.Configs["Sun"].GetDouble("day_night_offset", d_day_night);
@@ -494,7 +494,7 @@ namespace OpenSim.Region.CoreModules
receivedEstateToolsSunUpdate = true;
// Generate shared values
- GenSunPos();
+ GenSunPos();
// When sun settings are updated, we should update all clients with new settings.
SunUpdateToAllClients();
diff --git a/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs b/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs
index a09315a17b..c2ad7b8c38 100644
--- a/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs
+++ b/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs
@@ -43,7 +43,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Vegetation
protected Scene m_scene;
protected static readonly PCode[] creationCapabilities = new PCode[] { PCode.Grass, PCode.NewTree, PCode.Tree };
- public PCode[] CreationCapabilities { get { return creationCapabilities; } }
+ public PCode[] CreationCapabilities { get { return creationCapabilities; } }
public void Initialise(Scene scene, IConfigSource source)
{
@@ -73,7 +73,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Vegetation
UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape)
{
if (Array.IndexOf(creationCapabilities, (PCode)shape.PCode) < 0)
- {
+ {
m_log.DebugFormat("[VEGETATION]: PCode {0} not handled by {1}", shape.PCode, Name);
return null;
}
@@ -111,6 +111,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Vegetation
tree.Scale = new Vector3(4, 4, 4);
break;
}
- }
+ }
}
}
diff --git a/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs b/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs
index 41d207152e..9d47e19439 100644
--- a/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs
+++ b/OpenSim/Region/CoreModules/World/Wind/Plugins/ConfigurableWind.cs
@@ -46,7 +46,7 @@ namespace OpenSim.Region.CoreModules.World.Wind.Plugins
private float m_avgStrength = 5.0f; // Average magnitude of the wind vector
private float m_avgDirection = 0.0f; // Average direction of the wind in degrees
- private float m_varStrength = 5.0f; // Max Strength Variance
+ private float m_varStrength = 5.0f; // Max Strength Variance
private float m_varDirection = 30.0f;// Max Direction Variance
private float m_rateChange = 1.0f; //
@@ -141,7 +141,7 @@ namespace OpenSim.Region.CoreModules.World.Wind.Plugins
{
m_windSpeeds[y * 16 + x] = m_curPredominateWind;
}
- }
+ }
}
public Vector3 WindSpeed(float fX, float fY, float fZ)
diff --git a/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs b/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs
index 2c371da0c5..071e20bb3b 100644
--- a/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs
+++ b/OpenSim/Region/CoreModules/World/Wind/Plugins/SimpleRandomWind.cs
@@ -95,7 +95,7 @@ namespace OpenSim.Region.CoreModules.World.Wind.Plugins
m_windSpeeds[y * 16 + x].Y *= m_strength;
}
}
- }
+ }
}
public Vector3 WindSpeed(float fX, float fY, float fZ)
diff --git a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
index b442f6f3eb..3283c1ffa7 100644
--- a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
+++ b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs
@@ -418,7 +418,7 @@ namespace OpenSim.Region.CoreModules
}
avatar.ControllingClient.SendWindData(windSpeeds);
- }
+ }
}
private void SendWindAllClients()
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
index 4783b3525e..436f332f1d 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs
@@ -33,6 +33,8 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Framework.Scenes.Hypergrid;
+using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.World.WorldMap
{
@@ -92,13 +94,13 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
}
// try to fetch from GridServer
- List regionInfos = m_scene.SceneGridService.RequestNamedRegions(mapName, 20);
+ List regionInfos = m_scene.GridService.GetRegionsByName(UUID.Zero, mapName, 20);
if (regionInfos == null)
{
m_log.Warn("[MAPSEARCHMODULE]: RequestNamedRegions returned null. Old gridserver?");
// service wasn't available; maybe still an old GridServer. Try the old API, though it will return only one region
- regionInfos = new List();
- RegionInfo info = m_scene.SceneGridService.RequestClosestRegion(mapName);
+ regionInfos = new List();
+ GridRegion info = m_scene.GridService.GetRegionByName(UUID.Zero, mapName);
if (info != null) regionInfos.Add(info);
}
@@ -109,11 +111,15 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
if (mapName.Contains(".") && mapName.Contains(":"))
{
// It probably is a domain name. Try to link to it.
- RegionInfo regInfo;
+ GridRegion regInfo;
Scene cScene = GetClientScene(remoteClient);
- regInfo = HGHyperlink.TryLinkRegion(cScene, remoteClient, mapName);
- if (regInfo != null)
- regionInfos.Add(regInfo);
+ IHyperlinkService hyperService = cScene.RequestModuleInterface();
+ if (hyperService != null)
+ {
+ regInfo = hyperService.TryLinkRegion(remoteClient, mapName);
+ if (regInfo != null)
+ regionInfos.Add(regInfo);
+ }
}
}
@@ -122,17 +128,17 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
MapBlockData data;
if (regionInfos.Count > 0)
{
- foreach (RegionInfo info in regionInfos)
+ foreach (GridRegion info in regionInfos)
{
data = new MapBlockData();
data.Agents = 0;
- data.Access = info.AccessLevel;
- data.MapImageId = info.RegionSettings.TerrainImageID;
+ data.Access = info.Access;
+ data.MapImageId = info.TerrainImage;
data.Name = info.RegionName;
data.RegionFlags = 0; // TODO not used?
data.WaterHeight = 0; // not used
- data.X = (ushort)info.RegionLocX;
- data.Y = (ushort)info.RegionLocY;
+ data.X = (ushort)(info.RegionLocX / Constants.RegionSize);
+ data.Y = (ushort)(info.RegionLocY / Constants.RegionSize);
blocks.Add(data);
}
}
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index 1f25f28f9c..05ed70a15d 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -48,6 +48,7 @@ using OpenSim.Region.Framework.Scenes;
using Caps=OpenSim.Framework.Capabilities.Caps;
using OSDArray=OpenMetaverse.StructuredData.OSDArray;
using OSDMap=OpenMetaverse.StructuredData.OSDMap;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.CoreModules.World.WorldMap
{
@@ -232,10 +233,20 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
}
if (lookup)
{
- List mapBlocks;
+ List mapBlocks = new List(); ;
- mapBlocks = m_scene.SceneGridService.RequestNeighbourMapBlocks((int)m_scene.RegionInfo.RegionLocX - 8, (int)m_scene.RegionInfo.RegionLocY - 8, (int)m_scene.RegionInfo.RegionLocX + 8, (int)m_scene.RegionInfo.RegionLocY + 8);
- avatarPresence.ControllingClient.SendMapBlock(mapBlocks,0);
+ List regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
+ (int)(m_scene.RegionInfo.RegionLocX - 8) * (int)Constants.RegionSize,
+ (int)(m_scene.RegionInfo.RegionLocX + 8) * (int)Constants.RegionSize,
+ (int)(m_scene.RegionInfo.RegionLocY - 8) * (int)Constants.RegionSize,
+ (int)(m_scene.RegionInfo.RegionLocY + 8) * (int)Constants.RegionSize);
+ foreach (GridRegion r in regions)
+ {
+ MapBlockData block = new MapBlockData();
+ MapBlockFromGridRegion(block, r);
+ mapBlocks.Add(block);
+ }
+ avatarPresence.ControllingClient.SendMapBlock(mapBlocks, 0);
lock (cachedMapBlocks)
cachedMapBlocks = mapBlocks;
@@ -579,7 +590,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
}
if (httpserver.Length == 0)
{
- RegionInfo mreg = m_scene.SceneGridService.RequestNeighbouringRegionInfo(regionhandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionhandle, out x, out y);
+ GridRegion mreg = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y);
if (mreg != null)
{
@@ -719,15 +732,25 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
{
List response = new List();
- // this should return one mapblock at most. But make sure: Look whether the one we requested is in there
- List mapBlocks = m_scene.SceneGridService.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
- if (mapBlocks != null)
+ // this should return one mapblock at most.
+ // (diva note: why?? in that case we should GetRegionByPosition)
+ // But make sure: Look whether the one we requested is in there
+ List regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
+ minX * (int)Constants.RegionSize,
+ maxX * (int)Constants.RegionSize,
+ minY * (int)Constants.RegionSize,
+ maxY * (int)Constants.RegionSize);
+
+ if (regions != null)
{
- foreach (MapBlockData block in mapBlocks)
+ foreach (GridRegion r in regions)
{
- if (block.X == minX && block.Y == minY)
+ if ((r.RegionLocX == minX * (int)Constants.RegionSize) &&
+ (r.RegionLocY == minY * (int)Constants.RegionSize))
{
// found it => add it to response
+ MapBlockData block = new MapBlockData();
+ MapBlockFromGridRegion(block, r);
response.Add(block);
break;
}
@@ -754,10 +777,30 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
protected virtual void GetAndSendBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY, uint flag)
{
- List mapBlocks = m_scene.SceneGridService.RequestNeighbourMapBlocks(minX - 4, minY - 4, maxX + 4, maxY + 4);
+ List mapBlocks = new List();
+ List regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
+ (minX - 4) * (int)Constants.RegionSize,
+ (maxX + 4) * (int)Constants.RegionSize,
+ (minY - 4) * (int)Constants.RegionSize,
+ (maxY + 4) * (int)Constants.RegionSize);
+ foreach (GridRegion r in regions)
+ {
+ MapBlockData block = new MapBlockData();
+ MapBlockFromGridRegion(block, r);
+ mapBlocks.Add(block);
+ }
remoteClient.SendMapBlock(mapBlocks, flag);
}
+ protected void MapBlockFromGridRegion(MapBlockData block, GridRegion r)
+ {
+ block.Access = r.Access;
+ block.MapImageId = r.TerrainImage;
+ block.Name = r.RegionName;
+ block.X = (ushort)(r.RegionLocX / Constants.RegionSize);
+ block.Y = (ushort)(r.RegionLocY / Constants.RegionSize);
+ }
+
public Hashtable OnHTTPGetMapImage(Hashtable keysvals)
{
m_log.Debug("[WORLD MAP]: Sending map image jpeg");
@@ -874,31 +917,34 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
m_log.InfoFormat(
"[WORLD MAP]: Exporting world map for {0} to {1}", m_scene.RegionInfo.RegionName, exportPath);
- List mapBlocks =
- m_scene.CommsManager.GridService.RequestNeighbourMapBlocks(
- (int)(m_scene.RegionInfo.RegionLocX - 9),
- (int)(m_scene.RegionInfo.RegionLocY - 9),
- (int)(m_scene.RegionInfo.RegionLocX + 9),
- (int)(m_scene.RegionInfo.RegionLocY + 9));
+ List mapBlocks = new List();
+ List regions = m_scene.GridService.GetRegionRange(m_scene.RegionInfo.ScopeID,
+ (int)(m_scene.RegionInfo.RegionLocX - 9) * (int)Constants.RegionSize,
+ (int)(m_scene.RegionInfo.RegionLocX + 9) * (int)Constants.RegionSize,
+ (int)(m_scene.RegionInfo.RegionLocY - 9) * (int)Constants.RegionSize,
+ (int)(m_scene.RegionInfo.RegionLocY + 9) * (int)Constants.RegionSize);
List textures = new List();
List bitImages = new List();
- foreach (MapBlockData mapBlock in mapBlocks)
+ foreach (GridRegion r in regions)
{
+ MapBlockData mapBlock = new MapBlockData();
+ MapBlockFromGridRegion(mapBlock, r);
AssetBase texAsset = m_scene.AssetService.Get(mapBlock.MapImageId.ToString());
if (texAsset != null)
{
textures.Add(texAsset);
}
- else
- {
- texAsset = m_scene.AssetService.Get(mapBlock.MapImageId.ToString());
- if (texAsset != null)
- {
- textures.Add(texAsset);
- }
- }
+ //else
+ //{
+ // // WHAT?!? This doesn't seem right. Commenting (diva)
+ // texAsset = m_scene.AssetService.Get(mapBlock.MapImageId.ToString());
+ // if (texAsset != null)
+ // {
+ // textures.Add(texAsset);
+ // }
+ //}
}
foreach (AssetBase asset in textures)
diff --git a/OpenSim/Region/DataSnapshot/EstateSnapshot.cs b/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
index b45b923d5f..5fff89f732 100644
--- a/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
+++ b/OpenSim/Region/DataSnapshot/EstateSnapshot.cs
@@ -67,7 +67,7 @@ namespace OpenSim.Region.DataSnapshot.Providers
if (userInfo != null)
{
- UserProfileData userProfile = userInfo.UserProfile;
+ UserProfileData userProfile = userInfo.UserProfile;
firstname = userProfile.FirstName;
lastname = userProfile.SurName;
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
index e9c35e9fca..f4526ae044 100644
--- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
@@ -789,7 +789,7 @@ namespace OpenSim.Region.Examples.SimpleModule
public void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks)
{
- }
+ }
public void SendViewerTime(int phase)
{
diff --git a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs
index c1ed1ac3b3..0cc8fb6acd 100644
--- a/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs
+++ b/OpenSim/Region/Framework/Interfaces/IAgentAssetTransactions.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Interfaces
sbyte type, byte wearableType, uint nextOwnerMask);
void HandleTaskItemUpdateFromTransaction(
- IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item);
+ IClientAPI remoteClient, SceneObjectPart part, UUID transactionID, TaskInventoryItem item);
void RemoveAgentAssetTransactions(UUID userID);
}
diff --git a/OpenSim/Region/Framework/Interfaces/ICommander.cs b/OpenSim/Region/Framework/Interfaces/ICommander.cs
index 9371bea045..6b872c1395 100644
--- a/OpenSim/Region/Framework/Interfaces/ICommander.cs
+++ b/OpenSim/Region/Framework/Interfaces/ICommander.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Region.Framework.Interfaces
{
///
/// The name of this commander
- ///
+ ///
string Name { get; }
///
@@ -44,7 +44,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// The commands available for this commander
///
- Dictionary Commands { get; }
+ Dictionary Commands { get; }
void ProcessConsoleCommand(string function, string[] args);
void RegisterCommand(string commandName, ICommand command);
diff --git a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
index a6ca7f1307..ce57c44202 100644
--- a/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IDialogModule.cs
@@ -37,15 +37,15 @@ namespace OpenSim.Region.Framework.Interfaces
/// small interval.
///
///
- ///
- void SendAlertToUser(IClientAPI client, string message);
+ ///
+ void SendAlertToUser(IClientAPI client, string message);
///
/// Send an alert message to a particular user.
///
///
///
- ///
+ ///
void SendAlertToUser(IClientAPI client, string message, bool modal);
///
@@ -73,7 +73,7 @@ namespace OpenSim.Region.Framework.Interfaces
void SendAlertToUser(string firstName, string lastName, string message, bool modal);
///
- /// Send an alert message to all users in the scene.
+ /// Send an alert message to all users in the scene.
///
///
void SendGeneralAlert(string message);
@@ -104,7 +104,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
///
void SendUrlToUser(
- UUID avatarID, string objectName, UUID objectID, UUID ownerID, bool groupOwned, string message, string url);
+ UUID avatarID, string objectName, UUID objectID, UUID ownerID, bool groupOwned, string message, string url);
///
/// Send a notification to all users in the scene. This notification should remain around until the
@@ -116,7 +116,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// The user sending the message
/// The name of the user doing the sending
- /// The message being sent to the user
+ /// The message being sent to the user
void SendNotificationToUsersInRegion(UUID fromAvatarID, string fromAvatarName, string message);
///
@@ -129,7 +129,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// The user sending the message
/// The name of the user doing the sending
- /// The message being sent to the user
+ /// The message being sent to the user
void SendNotificationToUsersInEstate(UUID fromAvatarID, string fromAvatarName, string message);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs
index f3a3747984..c39627cae2 100644
--- a/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEntityCreator.cs
@@ -29,13 +29,13 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Scenes;
-namespace OpenSim.Region.Framework.Interfaces
+namespace OpenSim.Region.Framework.Interfaces
{
///
/// Interface to a class that is capable of creating entities
- ///
+ ///
public interface IEntityCreator
- {
+ {
///
/// The entities that this class is capable of creating. These match the PCode format.
///
@@ -51,6 +51,6 @@ namespace OpenSim.Region.Framework.Interfaces
///
///
/// The entity created, or null if the creation failed
- SceneObjectGroup CreateEntity(UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape);
+ SceneObjectGroup CreateEntity(UUID ownerID, UUID groupID, Vector3 pos, Quaternion rot, PrimitiveBaseShape shape);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
index 1ed92fb409..2c906a28f8 100644
--- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
+++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs
@@ -64,7 +64,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// Change every item in this inventory to a new group.
///
- ///
+ ///
void ChangeInventoryGroup(UUID groupID);
///
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
///
///
- ///
+ ///
void CreateScriptInstance(UUID itemId, int startParam, bool postOnRez, string engine, int stateSource);
///
@@ -150,7 +150,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// Return the name with which a client can request a xfer of this prim's inventory metadata
- ///
+ ///
string GetInventoryFileName();
bool GetInventoryFileName(IClientAPI client, uint localID);
diff --git a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
index af54c760cb..7a8aba23e4 100644
--- a/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IFriendsModule.cs
@@ -29,7 +29,7 @@ using OpenMetaverse;
using OpenSim.Framework;
namespace OpenSim.Region.Framework.Interfaces
-{
+{
public interface IFriendsModule
{
///
@@ -43,7 +43,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// FIXME: This is somewhat too tightly coupled - it should arguably be possible to offer friendships even if the
/// receiving user is not currently online.
///
- ///
- void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage);
+ ///
+ void OfferFriendship(UUID fromUserId, IClientAPI toUserClient, string offerMessage);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs
index 02abb05902..552ce01199 100644
--- a/OpenSim/Region/Framework/Interfaces/IGodsModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IGodsModule.cs
@@ -29,7 +29,7 @@ using OpenMetaverse;
using OpenSim.Framework;
namespace OpenSim.Region.Framework.Interfaces
-{
+{
///
/// This interface provides god related methods
///
@@ -53,6 +53,6 @@ namespace OpenSim.Region.Framework.Interfaces
/// the person that is being kicked
/// This isn't used apparently
/// The message to send to the user after it's been turned into a field
- void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason);
+ void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs
index 162256401f..2d038ce93a 100644
--- a/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IInventoryArchiverModule.cs
@@ -30,7 +30,7 @@ using System.IO;
using OpenSim.Framework.Communications.Cache;
namespace OpenSim.Region.Framework.Interfaces
-{
+{
///
/// Used for the OnInventoryArchiveSaved event.
///
@@ -43,11 +43,11 @@ namespace OpenSim.Region.Framework.Interfaces
public delegate void InventoryArchiveSaved(
Guid id, bool succeeded, CachedUserInfo userInfo, string invPath, Stream saveStream, Exception reportedException);
- public interface IInventoryArchiverModule
+ public interface IInventoryArchiverModule
{
///
/// Fired when an archive inventory save has been completed.
- ///
+ ///
event InventoryArchiveSaved OnInventoryArchiveSaved;
///
@@ -69,6 +69,6 @@ namespace OpenSim.Region.Framework.Interfaces
/// The inventory path from which the inventory should be saved.
/// The stream to which the inventory archive will be saved
/// true if the first stage of the operation succeeded, false otherwise
- bool ArchiveInventory(Guid id, string firstName, string lastName, string invPath, string pass, Stream saveStream);
+ bool ArchiveInventory(Guid id, string firstName, string lastName, string invPath, string pass, Stream saveStream);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs
index 19b8574711..74f404fc6b 100644
--- a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs
+++ b/OpenSim/Region/Framework/Interfaces/ILandChannel.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// Value between 0 - 256 on the x axis of the point
/// Value between 0 - 256 on the y axis of the point
- /// Land object at the point supplied
+ /// Land object at the point supplied
ILandObject GetLandObject(int x, int y);
ILandObject GetLandObject(int localID);
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// Value between 0 - 256 on the x axis of the point
/// Value between 0 - 256 on the y axis of the point
- /// Land object at the point supplied
+ /// Land object at the point supplied
ILandObject GetLandObject(float x, float y);
bool IsLandPrimCountTainted();
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
index 78b53221a0..9ad2036ff1 100644
--- a/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IRegionArchiverModule.cs
@@ -52,9 +52,9 @@ namespace OpenSim.Region.Framework.Interfaces
/// This method occurs asynchronously. If you want notification of when it has completed then subscribe to
/// the EventManager.OnOarFileSaved event.
///
- ///
+ ///
/// If supplied, this request Id is later returned in the saved event
- void ArchiveRegion(string savePath, Guid requestId);
+ void ArchiveRegion(string savePath, Guid requestId);
///
/// Archive the region to a stream.
@@ -88,7 +88,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// settings in the archive will be ignored.
///
/// If supplied, this request Id is later returned in the saved event
- void DearchiveRegion(string loadPath, bool merge, Guid requestId);
+ void DearchiveRegion(string loadPath, bool merge, Guid requestId);
///
/// Dearchive a region from a stream. This replaces the existing scene.
@@ -109,8 +109,8 @@ namespace OpenSim.Region.Framework.Interfaces
///
/// If true, the loaded region merges with the existing one rather than replacing it. Any terrain or region
/// settings in the archive will be ignored.
- ///
+ ///
/// If supplied, this request Id is later returned in the saved event
- void DearchiveRegion(Stream loadStream, bool merge, Guid requestId);
+ void DearchiveRegion(Stream loadStream, bool merge, Guid requestId);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs
index 41a1e51f33..78bd622fdd 100644
--- a/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs
+++ b/OpenSim/Region/Framework/Interfaces/IRegionDataStore.cs
@@ -71,21 +71,21 @@ namespace OpenSim.Region.Framework.Interfaces
/// Load persisted objects from region storage.
///
/// the Region UUID
- /// List of loaded groups
+ /// List of loaded groups
List LoadObjects(UUID regionUUID);
///
/// Store a terrain revision in region storage
///
/// HeightField data
- /// region UUID
+ /// region UUID
void StoreTerrain(double[,] terrain, UUID regionID);
///
/// Load the latest terrain revision from region storage
///
/// the region UUID
- /// Heightfield data
+ /// Heightfield data
double[,] LoadTerrain(UUID regionID);
void StoreLandObject(ILandObject Parcel);
@@ -96,7 +96,7 @@ namespace OpenSim.Region.Framework.Interfaces
/// - delete from landaccesslist where LandUUID=globalID
///
///
- ///
+ ///
void RemoveLandObject(UUID globalID);
List LoadLandObjects(UUID regionUUID);
diff --git a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs
index bfd25d3537..e7562a55c9 100644
--- a/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IRegionSerialiserModule.cs
@@ -117,6 +117,6 @@ namespace OpenSim.Region.Framework.Interfaces
///
///
///
- string SerializeGroupToXml2(SceneObjectGroup grp);
+ string SerializeGroupToXml2(SceneObjectGroup grp);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
index 3d803ee344..379fabdf03 100644
--- a/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/ISoundModule.cs
@@ -29,12 +29,12 @@ using System;
using OpenMetaverse;
namespace OpenSim.Region.Framework.Interfaces
-{
+{
public interface ISoundModule
{
void PlayAttachedSound(UUID soundID, UUID ownerID, UUID objectID, double gain, Vector3 position, byte flags);
void TriggerSound(
- UUID soundId, UUID ownerID, UUID objectID, UUID parentID, double gain, Vector3 position, UInt64 handle);
+ UUID soundId, UUID ownerID, UUID objectID, UUID parentID, double gain, Vector3 position, UInt64 handle);
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs
index 344601f5db..403d542dd6 100644
--- a/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IVegetationModule.cs
@@ -29,7 +29,7 @@ using OpenMetaverse;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Region.Framework.Interfaces
-{
+{
public interface IVegetationModule : IEntityCreator
{
///
@@ -44,6 +44,6 @@ namespace OpenSim.Region.Framework.Interfaces
///
///
SceneObjectGroup AddTree(
- UUID uuid, UUID groupID, Vector3 scale, Quaternion rotation, Vector3 position, Tree treeType, bool newTree);
+ UUID uuid, UUID groupID, Vector3 scale, Quaternion rotation, Vector3 position, Tree treeType, bool newTree);
}
}
diff --git a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
index a0b08885cf..de1bcd4382 100644
--- a/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/IWorldMapModule.cs
@@ -26,9 +26,9 @@
*/
namespace OpenSim.Region.Framework.Interfaces
-{
+{
public interface IWorldMapModule
{
- void LazySaveGeneratedMaptile(byte[] data, bool temporary);
+ void LazySaveGeneratedMaptile(byte[] data, bool temporary);
}
}
diff --git a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs
index 7ac1e7e375..5b571c7227 100644
--- a/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs
+++ b/OpenSim/Region/Framework/Scenes/AsyncSceneObjectGroupDeleter.cs
@@ -34,7 +34,7 @@ using OpenMetaverse;
using OpenSim.Framework;
namespace OpenSim.Region.Framework.Scenes
-{
+{
class DeleteToInventoryHolder
{
public DeRezAction action;
@@ -49,7 +49,7 @@ namespace OpenSim.Region.Framework.Scenes
/// up the main client thread.
///
public class AsyncSceneObjectGroupDeleter
- {
+ {
private static readonly ILog m_log
= LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -58,16 +58,16 @@ namespace OpenSim.Region.Framework.Scenes
///
public bool Enabled;
- private Timer m_inventoryTicker = new Timer(2000);
- private readonly Queue m_inventoryDeletes = new Queue();
- private Scene m_scene;
+ private Timer m_inventoryTicker = new Timer(2000);
+ private readonly Queue m_inventoryDeletes = new Queue();
+ private Scene m_scene;
public AsyncSceneObjectGroupDeleter(Scene scene)
{
m_scene = scene;
m_inventoryTicker.AutoReset = false;
- m_inventoryTicker.Elapsed += InventoryRunDeleteTimer;
+ m_inventoryTicker.Elapsed += InventoryRunDeleteTimer;
}
///
@@ -113,7 +113,7 @@ namespace OpenSim.Region.Framework.Scenes
{
//m_log.Debug("[SCENE]: Sent item successfully to inventory, continuing...");
}
- }
+ }
///
/// Move the next object in the queue to inventory. Then delete it properly from the scene.
@@ -121,7 +121,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public bool InventoryDeQueueAndDelete()
{
- DeleteToInventoryHolder x = null;
+ DeleteToInventoryHolder x = null;
try
{
@@ -142,9 +142,9 @@ namespace OpenSim.Region.Framework.Scenes
try
{
- m_scene.DeleteToInventory(x.action, x.folderID, x.objectGroup, x.remoteClient);
+ m_scene.DeleteToInventory(x.action, x.folderID, x.objectGroup, x.remoteClient);
if (x.permissionToDelete)
- m_scene.DeleteSceneObject(x.objectGroup, false);
+ m_scene.DeleteSceneObject(x.objectGroup, false);
}
catch (Exception e)
{
@@ -166,6 +166,6 @@ namespace OpenSim.Region.Framework.Scenes
m_log.Debug("[SCENE]: No objects left in inventory send queue.");
return false;
- }
+ }
}
}
diff --git a/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs b/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs
index 06b1d22ffb..72d599aa49 100644
--- a/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs
+++ b/OpenSim/Region/Framework/Scenes/AvatarAnimations.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (nod.Attributes["name"] != null)
{
- string name = (string)nod.Attributes["name"].Value;
+ string name = (string)nod.Attributes["name"].Value;
UUID id = (UUID)nod.InnerText;
string animState = (string)nod.Attributes["state"].Value;
diff --git a/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs b/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs
index 1dd961333f..5f2eb0df1e 100644
--- a/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs
+++ b/OpenSim/Region/Framework/Scenes/BinBVHAnimation.cs
@@ -234,7 +234,7 @@ namespace OpenSim.Region.Framework.Scenes
///
- /// Variable length strings seem to be null terminated in the animation asset.. but..
+ /// Variable length strings seem to be null terminated in the animation asset.. but..
/// use with caution, home grown.
/// advances the index.
///
@@ -273,7 +273,7 @@ namespace OpenSim.Region.Framework.Scenes
byte[] interm = new byte[endpos-i];
for (; iZXY
t = y;
y = z;
diff --git a/OpenSim/Region/Framework/Scenes/Border.cs b/OpenSim/Region/Framework/Scenes/Border.cs
index 1488c5b61f..c6a6511046 100644
--- a/OpenSim/Region/Framework/Scenes/Border.cs
+++ b/OpenSim/Region/Framework/Scenes/Border.cs
@@ -55,11 +55,11 @@ namespace OpenSim.Region.Framework.Scenes
/// Creates a Border. The line is perpendicular to the direction cardinal.
/// IE: if the direction cardinal is South, the line is West->East
///
- /// The starting point for the line of the border.
- /// The position of an object must be greater then this for this border to trigger.
+ /// The starting point for the line of the border.
+ /// The position of an object must be greater then this for this border to trigger.
/// Perpendicular to the direction cardinal
- /// The ending point for the line of the border.
- /// The position of an object must be less then this for this border to trigger.
+ /// The ending point for the line of the border.
+ /// The position of an object must be less then this for this border to trigger.
/// Perpendicular to the direction cardinal
/// The position that triggers border the border
/// cross parallel to the direction cardinal. On the North cardinal, this
diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs
index 00c99c5bbc..27a0785656 100644
--- a/OpenSim/Region/Framework/Scenes/EntityBase.cs
+++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Framework.Scenes
set { m_velocity = value; }
}
- protected Quaternion m_rotation = new Quaternion(0f, 0f, 1f, 0f);
+ protected Quaternion m_rotation;
public virtual Quaternion Rotation
{
@@ -102,6 +102,14 @@ namespace OpenSim.Region.Framework.Scenes
set { m_rotation = value; }
}
+ protected Vector3 m_scale;
+
+ public virtual Vector3 Scale
+ {
+ get { return m_scale; }
+ set { m_scale = value; }
+ }
+
protected uint m_localId;
public virtual uint LocalId
@@ -115,13 +123,9 @@ namespace OpenSim.Region.Framework.Scenes
///
public EntityBase()
{
- m_uuid = UUID.Zero;
-
- m_pos = Vector3.Zero;
- m_velocity = Vector3.Zero;
- Rotation = Quaternion.Identity;
+ m_rotation = Quaternion.Identity;
+ m_scale = Vector3.One;
m_name = "(basic entity)";
- m_rotationalvelocity = Vector3.Zero;
}
///
@@ -130,7 +134,7 @@ namespace OpenSim.Region.Framework.Scenes
public abstract void UpdateMovement();
///
- /// Performs any updates that need to be done at each frame, as opposed to immediately.
+ /// Performs any updates that need to be done at each frame, as opposed to immediately.
/// These included scheduled updates and updates that occur due to physics processing.
///
public abstract void Update();
diff --git a/OpenSim/Region/Framework/Scenes/EntityManager.cs b/OpenSim/Region/Framework/Scenes/EntityManager.cs
index 504b90a64b..0ceef3911a 100644
--- a/OpenSim/Region/Framework/Scenes/EntityManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EntityManager.cs
@@ -144,7 +144,7 @@ namespace OpenSim.Region.Framework.Scenes
{
m_log.ErrorFormat("Remove Entity failed for {0}", localID, e);
return false;
- }
+ }
}
}
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 287d8d9f7a..753344d1a0 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -32,6 +32,7 @@ using OpenSim.Framework;
using OpenSim.Framework.Client;
using OpenSim.Region.Framework.Interfaces;
using Caps=OpenSim.Framework.Capabilities.Caps;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes
{
@@ -289,7 +290,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Guid.Empty is returned.
///
public delegate void OarFileSaved(Guid guid, string message);
- public event OarFileSaved OnOarFileSaved;
+ public event OarFileSaved OnOarFileSaved;
///
/// Called when the script compile queue becomes empty
@@ -305,6 +306,9 @@ namespace OpenSim.Region.Framework.Scenes
public delegate void Attach(uint localID, UUID itemID, UUID avatarID);
public event Attach OnAttach;
+ public delegate void RegionUp(GridRegion region);
+ public event RegionUp OnRegionUp;
+
public class MoneyTransferArgs : EventArgs
{
public UUID sender;
@@ -446,6 +450,7 @@ namespace OpenSim.Region.Framework.Scenes
private EmptyScriptCompileQueue handlerEmptyScriptCompileQueue = null;
private Attach handlerOnAttach = null;
+ private RegionUp handlerOnRegionUp = null;
public void TriggerOnAttach(uint localID, UUID itemID, UUID avatarID)
{
@@ -999,7 +1004,7 @@ namespace OpenSim.Region.Framework.Scenes
handlerOarFileSaved = OnOarFileSaved;
if (handlerOarFileSaved != null)
handlerOarFileSaved(requestId, message);
- }
+ }
public void TriggerEmptyScriptCompileQueue(int numScriptsFailed, string message)
{
@@ -1035,5 +1040,13 @@ namespace OpenSim.Region.Framework.Scenes
if (handlerSetRootAgentScene != null)
handlerSetRootAgentScene(agentID, scene);
}
+
+ public void TriggerOnRegionUp(GridRegion otherRegion)
+ {
+ handlerOnRegionUp = OnRegionUp;
+ if (handlerOnRegionUp != null)
+ handlerOnRegionUp(otherRegion);
+ }
+
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs
index 62efd60506..b6fa41de6a 100644
--- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs
+++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGAssetMapper.cs
@@ -35,6 +35,7 @@ using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Communications.Clients;
using OpenSim.Region.Framework.Scenes.Serialization;
+using OpenSim.Services.Interfaces;
//using HyperGrid.Framework;
//using OpenSim.Region.Communications.Hypergrid;
@@ -50,6 +51,18 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
// private Dictionary m_inventoryServers = new Dictionary();
private Scene m_scene;
+
+ private IHyperlinkService m_hyper;
+ IHyperlinkService HyperlinkService
+ {
+ get
+ {
+ if (m_hyper == null)
+ m_hyper = m_scene.RequestModuleInterface();
+ return m_hyper;
+ }
+ }
+
#endregion
#region Constructor
@@ -79,22 +92,6 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
// return null;
// }
- private bool IsLocalUser(UUID userID)
- {
- CachedUserInfo uinfo = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(userID);
-
- if (uinfo != null)
- {
- if (HGNetworkServersInfo.Singleton.IsLocalUser(uinfo.UserProfile))
- {
- m_log.Debug("[HGScene]: Home user " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName);
- return true;
- }
- }
-
- m_log.Debug("[HGScene]: Foreign user " + uinfo.UserProfile.FirstName + " " + uinfo.UserProfile.SurName);
- return false;
- }
public AssetBase FetchAsset(string url, UUID assetID)
{
@@ -170,7 +167,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
public void Get(UUID assetID, UUID ownerID)
{
- if (!IsLocalUser(ownerID))
+ if (!HyperlinkService.IsLocalUser(ownerID))
{
// Get the item from the remote asset server onto the local AssetCache
// and place an entry in m_assetMap
@@ -228,7 +225,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
public void Post(UUID assetID, UUID ownerID)
{
- if (!IsLocalUser(ownerID))
+ if (!HyperlinkService.IsLocalUser(ownerID))
{
// Post the item from the local AssetCache onto the remote asset server
// and place an entry in m_assetMap
diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs
deleted file mode 100644
index a576febf1b..0000000000
--- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGHyperlink.cs
+++ /dev/null
@@ -1,232 +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.Net;
-using System.Reflection;
-using log4net;
-using OpenMetaverse;
-using OpenSim.Framework;
-
-namespace OpenSim.Region.Framework.Scenes.Hypergrid
-{
- public class HGHyperlink
- {
- private static readonly ILog m_log =
- LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- private static Random random = new Random();
-
- public static RegionInfo TryLinkRegionToCoords(Scene m_scene, IClientAPI client, string mapName, uint xloc, uint yloc)
- {
- string host = "127.0.0.1";
- string portstr;
- string regionName = "";
- uint port = 9000;
- string[] parts = mapName.Split(new char[] { ':' });
- if (parts.Length >= 1)
- {
- host = parts[0];
- }
- if (parts.Length >= 2)
- {
- portstr = parts[1];
- if (!UInt32.TryParse(portstr, out port))
- regionName = parts[1];
- }
- // always take the last one
- if (parts.Length >= 3)
- {
- regionName = parts[2];
- }
-
- // Sanity check. Don't ever link to this sim.
- IPAddress ipaddr = null;
- try
- {
- ipaddr = Util.GetHostFromDNS(host);
- }
- catch { }
-
- if ((ipaddr != null) &&
- !((m_scene.RegionInfo.ExternalEndPoint.Address.Equals(ipaddr)) && (m_scene.RegionInfo.HttpPort == port)))
- {
- RegionInfo regInfo;
- bool success = TryCreateLink(m_scene, client, xloc, yloc, regionName, port, host, out regInfo);
- if (success)
- {
- regInfo.RegionName = mapName;
- return regInfo;
- }
- }
-
- return null;
- }
-
- public static RegionInfo TryLinkRegion(Scene m_scene, IClientAPI client, string mapName)
- {
- uint xloc = (uint)(random.Next(0, Int16.MaxValue));
- return TryLinkRegionToCoords(m_scene, client, mapName, xloc, 0);
- }
-
- public static bool TryCreateLink(Scene m_scene, IClientAPI client, uint xloc, uint yloc,
- string externalRegionName, uint externalPort, string externalHostName, out RegionInfo regInfo)
- {
- m_log.DebugFormat("[HGrid]: Link to {0}:{1}, in {2}-{3}", externalHostName, externalPort, xloc, yloc);
-
- regInfo = new RegionInfo();
- regInfo.RegionName = externalRegionName;
- regInfo.HttpPort = externalPort;
- regInfo.ExternalHostName = externalHostName;
- regInfo.RegionLocX = xloc;
- regInfo.RegionLocY = yloc;
-
- try
- {
- regInfo.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)0);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid]: Wrong format for link-region: " + e.Message);
- return false;
- }
- regInfo.RemotingAddress = regInfo.ExternalEndPoint.Address.ToString();
-
- // Finally, link it
- try
- {
- m_scene.CommsManager.GridService.RegisterRegion(regInfo);
- }
- catch (Exception e)
- {
- m_log.Warn("[HGrid]: Unable to link region: " + e.Message);
- return false;
- }
-
- uint x, y;
- if (!Check4096(m_scene, regInfo, out x, out y))
- {
- m_scene.CommsManager.GridService.DeregisterRegion(regInfo);
- if (client != null)
- client.SendAlertMessage("Region is too far (" + x + ", " + y + ")");
- m_log.Info("[HGrid]: Unable to link, region is too far (" + x + ", " + y + ")");
- return false;
- }
-
- if (!CheckCoords(m_scene.RegionInfo.RegionLocX, m_scene.RegionInfo.RegionLocY, x, y))
- {
- m_scene.CommsManager.GridService.DeregisterRegion(regInfo);
- if (client != null)
- client.SendAlertMessage("Region has incompatible coordinates (" + x + ", " + y + ")");
- m_log.Info("[HGrid]: Unable to link, region has incompatible coordinates (" + x + ", " + y + ")");
- return false;
- }
-
- m_log.Debug("[HGrid]: link region succeeded");
- return true;
- }
-
- public static bool TryUnlinkRegion(Scene m_scene, string mapName)
- {
- RegionInfo regInfo = null;
- if (mapName.Contains(":"))
- {
- string host = "127.0.0.1";
- //string portstr;
- //string regionName = "";
- uint port = 9000;
- string[] parts = mapName.Split(new char[] { ':' });
- if (parts.Length >= 1)
- {
- host = parts[0];
- }
-// if (parts.Length >= 2)
-// {
-// portstr = parts[1];
-// if (!UInt32.TryParse(portstr, out port))
-// regionName = parts[1];
-// }
- // always take the last one
-// if (parts.Length >= 3)
-// {
-// regionName = parts[2];
-// }
- regInfo = m_scene.CommsManager.GridService.RequestNeighbourInfo(host, port);
- }
- else
- {
- regInfo = m_scene.CommsManager.GridService.RequestNeighbourInfo(mapName);
- }
- if (regInfo != null)
- {
- return m_scene.CommsManager.GridService.DeregisterRegion(regInfo);
- }
- else
- {
- m_log.InfoFormat("[HGrid]: Region {0} not found", mapName);
- return false;
- }
- }
-
- ///
- /// Cope with this viewer limitation.
- ///
- ///
- ///
- public static bool Check4096(Scene m_scene, RegionInfo regInfo, out uint x, out uint y)
- {
- ulong realHandle;
- if (UInt64.TryParse(regInfo.regionSecret, out realHandle))
- {
- Utils.LongToUInts(realHandle, out x, out y);
- x = x / Constants.RegionSize;
- y = y / Constants.RegionSize;
-
- if ((Math.Abs((int)m_scene.RegionInfo.RegionLocX - (int)x) >= 4096) ||
- (Math.Abs((int)m_scene.RegionInfo.RegionLocY - (int)y) >= 4096))
- {
- return false;
- }
- return true;
- }
- else
- {
- m_scene.CommsManager.GridService.RegisterRegion(regInfo);
- m_log.Debug("[HGrid]: Gnomes. Region deregistered.");
- x = y = 0;
- return false;
- }
- }
-
- public static bool CheckCoords(uint thisx, uint thisy, uint x, uint y)
- {
- if ((thisx == x) && (thisy == y))
- return false;
- return true;
- }
-
- }
-}
diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs
index bf55df7c42..b1981b6536 100644
--- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs
+++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGScene.cs
@@ -29,6 +29,7 @@ using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using TPFlags = OpenSim.Framework.Constants.TeleportFlags;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes.Hypergrid
{
@@ -50,7 +51,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
if (UserProfile != null)
{
- RegionInfo regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegion);
+ GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, UserProfile.HomeRegionID);
//if (regionInfo != null)
//{
// UserProfile.HomeRegionID = regionInfo.RegionID;
diff --git a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs
index efc644dbd4..d7e62a8af5 100644
--- a/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/Hypergrid/HGSceneCommunicationService.cs
@@ -38,6 +38,8 @@ using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Capabilities;
using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes.Hypergrid
{
@@ -45,11 +47,19 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
- public readonly IHyperlink m_hg;
-
- public HGSceneCommunicationService(CommunicationsManager commsMan, IHyperlink hg) : base(commsMan)
+ private IHyperlinkService m_hg;
+ IHyperlinkService HyperlinkService
+ {
+ get
+ {
+ if (m_hg == null)
+ m_hg = m_scene.RequestModuleInterface();
+ return m_hg;
+ }
+ }
+
+ public HGSceneCommunicationService(CommunicationsManager commsMan) : base(commsMan)
{
- m_hg = hg;
}
@@ -112,7 +122,10 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
}
else
{
- RegionInfo reg = RequestNeighbouringRegionInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion reg = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y);
+
if (reg != null)
{
@@ -125,13 +138,13 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
/// Hypergrid mod start
///
///
- bool isHyperLink = m_hg.IsHyperlinkRegion(reg.RegionHandle);
+ bool isHyperLink = (HyperlinkService.GetHyperlinkRegion(reg.RegionHandle) != null);
bool isHomeUser = true;
ulong realHandle = regionHandle;
CachedUserInfo uinfo = m_commsProvider.UserProfileCacheService.GetUserDetails(avatar.UUID);
if (uinfo != null)
{
- isHomeUser = HGNetworkServersInfo.Singleton.IsLocalUser(uinfo.UserProfile);
+ isHomeUser = HyperlinkService.IsLocalUser(uinfo.UserProfile.ID);
realHandle = m_hg.FindRegionHandle(regionHandle);
m_log.Debug("XXX ---- home user? " + isHomeUser + " --- hyperlink? " + isHyperLink + " --- real handle: " + realHandle.ToString());
}
@@ -344,7 +357,7 @@ namespace OpenSim.Region.Framework.Scenes.Hypergrid
m_commsProvider.UserProfileCacheService.RemoveUser(avatar.UUID);
m_log.DebugFormat(
"[HGSceneCommService]: User {0} is going to another region, profile cache removed",
- avatar.UUID);
+ avatar.UUID);
}
}
else
diff --git a/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs b/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs
index 7c02f9ab6b..73f918ef1b 100644
--- a/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs
+++ b/OpenSim/Region/Framework/Scenes/RegionStatsHandler.cs
@@ -53,7 +53,7 @@ namespace OpenSim.Region.Framework.Scenes
public class RegionStatsHandler : IStreamedRequestHandler
- {
+ {
private string osRXStatsURI = String.Empty;
private string osXStatsURI = String.Empty;
//private string osSecret = String.Empty;
@@ -87,13 +87,13 @@ namespace OpenSim.Region.Framework.Scenes
}
public string Path
- {
+ {
// This is for the region and is the regionSecret hashed
get { return "/" + osRXStatsURI + "/"; }
}
private string Report()
- {
+ {
OSDMap args = new OSDMap(30);
//int time = Util.ToUnixTime(DateTime.Now);
args["OSStatsURI"] = OSD.FromString("http://" + regionInfo.ExternalHostName + ":" + regionInfo.HttpPort + "/" + osXStatsURI + "/");
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index a6e137d581..41141e09b3 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1015,7 +1015,7 @@ namespace OpenSim.Region.Framework.Scenes
return MoveTaskInventoryItem(avatar.ControllingClient, folderId, part, itemId);
}
else
- {
+ {
InventoryItemBase agentItem = CreateAgentInventoryItemFromTask(avatarId, part, itemId);
if (agentItem == null)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index fddba86cbe..e561efbff0 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -413,7 +413,7 @@ namespace OpenSim.Region.Framework.Scenes
remoteClient.SendInventoryItemDetails(ownerID, item);
}
// else shouldn't we send an alert message?
- }
+ }
///
/// Tell the client about the various child items and folders contained in the requested folder.
@@ -485,7 +485,7 @@ namespace OpenSim.Region.Framework.Scenes
// TODO: This code for looking in the folder for the library should be folded back into the
// CachedUserInfo so that this class doesn't have to know the details (and so that multiple libraries, etc.
- // can be handled transparently).
+ // can be handled transparently).
InventoryFolderImpl fold;
if ((fold = CommsManager.UserProfileCacheService.LibraryRoot.FindFolder(folderID)) != null)
{
@@ -515,7 +515,7 @@ namespace OpenSim.Region.Framework.Scenes
return contents;
- }
+ }
///
/// Handle an inventory folder creation request from the client.
@@ -535,7 +535,7 @@ namespace OpenSim.Region.Framework.Scenes
"[AGENT INVENTORY]: Failed to move create folder for user {0} {1}",
remoteClient.Name, remoteClient.AgentId);
}
- }
+ }
///
/// Handle a client request to update the inventory folder
@@ -544,7 +544,7 @@ namespace OpenSim.Region.Framework.Scenes
/// FIXME: We call add new inventory folder because in the data layer, we happen to use an SQL REPLACE
/// so this will work to rename an existing folder. Needless to say, to rely on this is very confusing,
/// and needs to be changed.
- ///
+ ///
///
///
///
@@ -570,7 +570,7 @@ namespace OpenSim.Region.Framework.Scenes
remoteClient.Name, remoteClient.AgentId);
}
}
- }
+ }
public void HandleMoveInventoryFolder(IClientAPI remoteClient, UUID folderID, UUID parentID)
{
@@ -588,7 +588,7 @@ namespace OpenSim.Region.Framework.Scenes
{
m_log.WarnFormat("[AGENT INVENTORY]: request to move folder {0} but folder not found", folderID);
}
- }
+ }
///
/// This should delete all the items and folders in the given directory.
@@ -609,7 +609,7 @@ namespace OpenSim.Region.Framework.Scenes
{
m_log.WarnFormat("[AGENT INVENTORY]: Exception on purge folder for user {0}: {1}", remoteClient.AgentId, e.Message);
}
- }
+ }
private void PurgeFolderAsync(UUID userID, UUID folderID)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index 226ec157fb..d01cef7bcf 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -805,7 +805,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
///
- ///
+ ///
public bool CanCreateObjectInventory(int invType, UUID objectID, UUID userID)
{
CreateObjectInventoryHandler handler = OnCreateObjectInventory;
@@ -856,7 +856,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
///
- ///
+ ///
public bool CanCreateUserInventory(int invType, UUID userID)
{
CreateUserInventoryHandler handler = OnCreateUserInventory;
@@ -877,7 +877,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
///
- ///
+ ///
public bool CanEditUserInventory(UUID itemID, UUID userID)
{
EditUserInventoryHandler handler = OnEditUserInventory;
@@ -891,14 +891,14 @@ namespace OpenSim.Region.Framework.Scenes
}
}
return true;
- }
+ }
///
/// Check whether the specified user is allowed to copy the given inventory item from their own inventory.
///
///
///
- ///
+ ///
public bool CanCopyUserInventory(UUID itemID, UUID userID)
{
CopyUserInventoryHandler handler = OnCopyUserInventory;
@@ -912,14 +912,14 @@ namespace OpenSim.Region.Framework.Scenes
}
}
return true;
- }
+ }
///
/// Check whether the specified user is allowed to edit the given inventory item within their own inventory.
///
///
///
- ///
+ ///
public bool CanDeleteUserInventory(UUID itemID, UUID userID)
{
DeleteUserInventoryHandler handler = OnDeleteUserInventory;
@@ -933,7 +933,7 @@ namespace OpenSim.Region.Framework.Scenes
}
}
return true;
- }
+ }
public bool CanTeleport(UUID userID)
{
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index db107a91a7..55ec281a9d 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -49,6 +49,7 @@ using OpenSim.Region.Framework.Scenes.Serialization;
using OpenSim.Region.Physics.Manager;
using Timer=System.Timers.Timer;
using TPFlags = OpenSim.Framework.Constants.TeleportFlags;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes
{
@@ -193,6 +194,26 @@ namespace OpenSim.Region.Framework.Scenes
}
}
+ protected IGridService m_GridService = null;
+
+ public IGridService GridService
+ {
+ get
+ {
+ if (m_GridService == null)
+ {
+ m_GridService = RequestModuleInterface();
+
+ if (m_GridService == null)
+ {
+ throw new Exception("No IGridService available. This could happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. Please also check that you have the correct version of your inventory service dll. Sometimes old versions of this dll will still exist. Do a clean checkout and re-create the opensim.ini from the opensim.ini.example.");
+ }
+ }
+
+ return m_GridService;
+ }
+ }
+
protected IXMLRPC m_xmlrpcModule;
protected IWorldComm m_worldCommModule;
protected IAvatarFactory m_AvatarFactory;
@@ -566,10 +587,7 @@ namespace OpenSim.Region.Framework.Scenes
}
///
- /// Another region is up. Gets called from Grid Comms:
- /// (OGS1 -> LocalBackEnd -> RegionListened -> SceneCommunicationService)
- /// We have to tell all our ScenePresences about it, and add it to the
- /// neighbor list.
+ /// Another region is up.
///
/// We only add it to the neighbor list if it's within 1 region from here.
/// Agents may have draw distance values that cross two regions though, so
@@ -578,47 +596,30 @@ namespace OpenSim.Region.Framework.Scenes
///
/// RegionInfo handle for the new region.
/// True after all operations complete, throws exceptions otherwise.
- public override bool OtherRegionUp(RegionInfo otherRegion)
+ public override void OtherRegionUp(GridRegion otherRegion)
{
- m_log.InfoFormat("[SCENE]: Region {0} up in coords {1}-{2}", otherRegion.RegionName, otherRegion.RegionLocX, otherRegion.RegionLocY);
+ uint xcell = (uint)((int)otherRegion.RegionLocX / (int)Constants.RegionSize);
+ uint ycell = (uint)((int)otherRegion.RegionLocY / (int)Constants.RegionSize);
+ m_log.InfoFormat("[SCENE]: (on region {0}): Region {1} up in coords {2}-{3}",
+ RegionInfo.RegionName, otherRegion.RegionName, xcell, ycell);
if (RegionInfo.RegionHandle != otherRegion.RegionHandle)
{
- for (int i = 0; i < m_neighbours.Count; i++)
- {
- // The purpose of this loop is to re-update the known neighbors
- // when another region comes up on top of another one.
- // The latest region in that location ends up in the
- // 'known neighbors list'
- // Additionally, the commFailTF property gets reset to false.
- if (m_neighbours[i].RegionHandle == otherRegion.RegionHandle)
- {
- lock (m_neighbours)
- {
- m_neighbours[i] = otherRegion;
-
- }
- }
- }
-
- // If the value isn't in the neighbours, add it.
- // If the RegionInfo isn't exact but is for the same XY World location,
- // then the above loop will fix that.
-
- if (!(CheckNeighborRegion(otherRegion)))
- {
- lock (m_neighbours)
- {
- m_neighbours.Add(otherRegion);
- //m_log.Info("[UP]: " + otherRegion.RegionHandle.ToString());
- }
- }
// If these are cast to INT because long + negative values + abs returns invalid data
- int resultX = Math.Abs((int)otherRegion.RegionLocX - (int)RegionInfo.RegionLocX);
- int resultY = Math.Abs((int)otherRegion.RegionLocY - (int)RegionInfo.RegionLocY);
+ int resultX = Math.Abs((int)xcell - (int)RegionInfo.RegionLocX);
+ int resultY = Math.Abs((int)ycell - (int)RegionInfo.RegionLocY);
if (resultX <= 1 && resultY <= 1)
{
+ // Let the grid service module know, so this can be cached
+ m_eventManager.TriggerOnRegionUp(otherRegion);
+
+ RegionInfo regInfo = new RegionInfo(xcell, ycell, otherRegion.InternalEndPoint, otherRegion.ExternalHostName);
+ regInfo.RegionID = otherRegion.RegionID;
+ regInfo.RegionName = otherRegion.RegionName;
+ regInfo.ScopeID = otherRegion.ScopeID;
+ regInfo.ExternalHostName = otherRegion.ExternalHostName;
+
try
{
ForEachScenePresence(delegate(ScenePresence agent)
@@ -632,7 +633,7 @@ namespace OpenSim.Region.Framework.Scenes
List old = new List();
old.Add(otherRegion.RegionHandle);
agent.DropOldNeighbours(old);
- InformClientOfNeighbor(agent, otherRegion);
+ InformClientOfNeighbor(agent, regInfo);
}
}
);
@@ -643,6 +644,7 @@ namespace OpenSim.Region.Framework.Scenes
// This shouldn't happen too often anymore.
m_log.Error("[SCENE]: Couldn't inform client of regionup because we got a null reference exception");
}
+
}
else
{
@@ -651,7 +653,6 @@ namespace OpenSim.Region.Framework.Scenes
otherRegion.RegionLocY.ToString() + ")");
}
}
- return true;
}
public void AddNeighborRegion(RegionInfo region)
@@ -683,9 +684,10 @@ namespace OpenSim.Region.Framework.Scenes
}
// Alias IncomingHelloNeighbour OtherRegionUp, for now
- public bool IncomingHelloNeighbour(RegionInfo neighbour)
+ public GridRegion IncomingHelloNeighbour(RegionInfo neighbour)
{
- return OtherRegionUp(neighbour);
+ OtherRegionUp(new GridRegion(neighbour));
+ return new GridRegion(RegionInfo);
}
///
@@ -994,7 +996,7 @@ namespace OpenSim.Region.Framework.Scenes
// Loop it
if (m_frame == Int32.MaxValue)
- m_frame = 0;
+ m_frame = 0;
otherMS = Environment.TickCount;
// run through all entities looking for updates (slow)
@@ -1336,24 +1338,31 @@ namespace OpenSim.Region.Framework.Scenes
RegisterCommsEvents();
// These two 'commands' *must be* next to each other or sim rebooting fails.
- m_sceneGridService.RegisterRegion(m_interregionCommsOut, RegionInfo);
+ //m_sceneGridService.RegisterRegion(m_interregionCommsOut, RegionInfo);
+
+ GridRegion region = new GridRegion(RegionInfo);
+ bool success = GridService.RegisterRegion(RegionInfo.ScopeID, region);
+ if (!success)
+ throw new Exception("Can't register with grid");
+
+ m_sceneGridService.SetScene(this);
m_sceneGridService.InformNeighborsThatRegionisUp(RequestModuleInterface(), RegionInfo);
- Dictionary dGridSettings = m_sceneGridService.GetGridSettings();
+ //Dictionary dGridSettings = m_sceneGridService.GetGridSettings();
- if (dGridSettings.ContainsKey("allow_forceful_banlines"))
- {
- if (dGridSettings["allow_forceful_banlines"] != "TRUE")
- {
- m_log.Info("[GRID]: Grid is disabling forceful parcel banlists");
- EventManager.TriggerSetAllowForcefulBan(false);
- }
- else
- {
- m_log.Info("[GRID]: Grid is allowing forceful parcel banlists");
- EventManager.TriggerSetAllowForcefulBan(true);
- }
- }
+ //if (dGridSettings.ContainsKey("allow_forceful_banlines"))
+ //{
+ // if (dGridSettings["allow_forceful_banlines"] != "TRUE")
+ // {
+ // m_log.Info("[GRID]: Grid is disabling forceful parcel banlists");
+ // EventManager.TriggerSetAllowForcefulBan(false);
+ // }
+ // else
+ // {
+ // m_log.Info("[GRID]: Grid is allowing forceful parcel banlists");
+ // EventManager.TriggerSetAllowForcefulBan(true);
+ // }
+ //}
}
///
@@ -2014,12 +2023,12 @@ namespace OpenSim.Region.Framework.Scenes
return true;
}
break;
- case Cardinals.W:
+ case Cardinals.W:
foreach (Border b in WestBorders)
{
if (b.TestCross(position))
return true;
- }
+ }
break;
}
}
@@ -2296,8 +2305,8 @@ namespace OpenSim.Region.Framework.Scenes
"to avatar {0} at position {1}",
sp.UUID.ToString(), grp.AbsolutePosition);
AttachObject(sp.ControllingClient,
- grp.LocalId, (uint)0,
- grp.GroupRotation,
+ grp.LocalId, 0,
+ grp.Rotation,
grp.AbsolutePosition, false);
RootPrim.RemFlag(PrimFlags.TemporaryOnRez);
grp.SendGroupFullUpdate();
@@ -2717,10 +2726,12 @@ namespace OpenSim.Region.Framework.Scenes
UserProfileData UserProfile = CommsManager.UserService.GetUserProfile(agentId);
if (UserProfile != null)
{
- RegionInfo regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegionID);
+ GridRegion regionInfo = GridService.GetRegionByUUID(UUID.Zero, UserProfile.HomeRegionID);
if (regionInfo == null)
{
- regionInfo = CommsManager.GridService.RequestNeighbourInfo(UserProfile.HomeRegion);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(UserProfile.HomeRegion, out x, out y);
+ regionInfo = GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if (regionInfo != null) // home region can be away temporarily, too
{
UserProfile.HomeRegionID = regionInfo.RegionID;
@@ -3074,7 +3085,7 @@ namespace OpenSim.Region.Framework.Scenes
m_sceneGridService.OnExpectUser += HandleNewUserConnection;
m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing;
m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent;
- m_sceneGridService.OnRegionUp += OtherRegionUp;
+ //m_eventManager.OnRegionUp += OtherRegionUp;
//m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate;
m_sceneGridService.OnExpectPrim += IncomingInterRegionPrimGroup;
//m_sceneGridService.OnRemoveKnownRegionFromAvatar += HandleRemoveKnownRegionsFromAvatar;
@@ -3102,7 +3113,7 @@ namespace OpenSim.Region.Framework.Scenes
//m_sceneGridService.OnRemoveKnownRegionFromAvatar -= HandleRemoveKnownRegionsFromAvatar;
m_sceneGridService.OnExpectPrim -= IncomingInterRegionPrimGroup;
//m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate;
- m_sceneGridService.OnRegionUp -= OtherRegionUp;
+ //m_eventManager.OnRegionUp -= OtherRegionUp;
m_sceneGridService.OnExpectUser -= HandleNewUserConnection;
m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing;
m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent;
@@ -3111,7 +3122,11 @@ namespace OpenSim.Region.Framework.Scenes
if (m_interregionCommsIn != null)
m_interregionCommsIn.OnChildAgentUpdate -= IncomingChildAgentDataUpdate;
+ // this does nothing; should be removed
m_sceneGridService.Close();
+
+ if (!GridService.DeregisterRegion(m_regInfo.RegionID))
+ m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName);
}
///
@@ -3255,7 +3270,7 @@ namespace OpenSim.Region.Framework.Scenes
m_log.WarnFormat("[CONNECTION BEGIN]: Denied access to: {0} ({1} {2}) at {3} because the user does not have access to the region",
agent.AgentID, agent.firstname, agent.lastname, RegionInfo.RegionName);
//reason = String.Format("You are not currently on the access list for {0}",RegionInfo.RegionName);
- return false;
+ return false;
}
}
@@ -3404,7 +3419,7 @@ namespace OpenSim.Region.Framework.Scenes
/// We've got an update about an agent that sees into this region,
/// send it to ScenePresence for processing It's the full data.
///
- /// Agent that contains all of the relevant things about an agent.
+ /// Agent that contains all of the relevant things about an agent.
/// Appearance, animations, position, etc.
/// true if we handled it.
public virtual bool IncomingChildAgentDataUpdate(AgentData cAgentData)
@@ -3556,30 +3571,6 @@ namespace OpenSim.Region.Framework.Scenes
m_sceneGridService.EnableNeighbourChildAgents(presence, m_neighbours);
}
- ///
- /// Requests information about this region from gridcomms
- ///
- ///
- ///
- public RegionInfo RequestNeighbouringRegionInfo(ulong regionHandle)
- {
- return m_sceneGridService.RequestNeighbouringRegionInfo(regionHandle);
- }
-
- ///
- /// Requests textures for map from minimum region to maximum region in world cordinates
- ///
- ///
- ///
- ///
- ///
- ///
- public void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY)
- {
- m_log.DebugFormat("[MAPBLOCK]: {0}-{1}, {2}-{3}", minX, minY, maxX, maxY);
- m_sceneGridService.RequestMapBlocks(remoteClient, minX, minY, maxX, maxY);
- }
-
///
/// Tries to teleport agent to other region.
///
@@ -3591,7 +3582,7 @@ namespace OpenSim.Region.Framework.Scenes
public void RequestTeleportLocation(IClientAPI remoteClient, string regionName, Vector3 position,
Vector3 lookat, uint teleportFlags)
{
- RegionInfo regionInfo = m_sceneGridService.RequestClosestRegion(regionName);
+ GridRegion regionInfo = GridService.GetRegionByName(UUID.Zero, regionName);
if (regionInfo == null)
{
// can't find the region: Tell viewer and abort
@@ -3680,7 +3671,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void RequestTeleportLandmark(IClientAPI remoteClient, UUID regionID, Vector3 position)
{
- RegionInfo info = CommsManager.GridService.RequestNeighbourInfo(regionID);
+ GridRegion info = GridService.GetRegionByUUID(UUID.Zero, regionID);
if (info == null)
{
@@ -3864,10 +3855,6 @@ namespace OpenSim.Region.Framework.Scenes
return LandChannel.GetLandObject((int)x, (int)y).landData;
}
- public RegionInfo RequestClosestRegion(string name)
- {
- return m_sceneGridService.RequestClosestRegion(name);
- }
#endregion
@@ -4154,6 +4141,11 @@ namespace OpenSim.Region.Framework.Scenes
m_sceneGraph.ForEachClient(action);
}
+ public void ForEachSOG(Action action)
+ {
+ m_sceneGraph.ForEachSOG(action);
+ }
+
///
/// Returns a list of the entities in the scene. This is a new list so operations perform on the list itself
/// will not affect the original list of objects in the scene.
@@ -4178,14 +4170,18 @@ namespace OpenSim.Region.Framework.Scenes
public void RegionHandleRequest(IClientAPI client, UUID regionID)
{
- RegionInfo info;
+ ulong handle = 0;
if (regionID == RegionInfo.RegionID)
- info = RegionInfo;
+ handle = RegionInfo.RegionHandle;
else
- info = CommsManager.GridService.RequestNeighbourInfo(regionID);
+ {
+ GridRegion r = GridService.GetRegionByUUID(UUID.Zero, regionID);
+ if (r != null)
+ handle = r.RegionHandle;
+ }
- if (info != null)
- client.SendRegionHandle(regionID, info.RegionHandle);
+ if (handle != 0)
+ client.SendRegionHandle(regionID, handle);
}
public void TerrainUnAcked(IClientAPI client, int patchX, int patchY)
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index 2a822371b3..0ac4ed479c 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -36,6 +36,7 @@ using OpenSim.Framework;
using OpenSim.Framework.Console;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.Framework.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes
{
@@ -91,7 +92,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Registered classes that are capable of creating entities.
///
- protected Dictionary m_entityCreators = new Dictionary();
+ protected Dictionary m_entityCreators = new Dictionary();
///
/// The last allocated local prim id. When a new local id is requested, the next number in the sequence is
@@ -227,7 +228,7 @@ namespace OpenSim.Region.Framework.Scenes
return false;
}
- public abstract bool OtherRegionUp(RegionInfo thisRegion);
+ public abstract void OtherRegionUp(GridRegion otherRegion);
public virtual string GetSimulatorVersion()
{
@@ -278,7 +279,7 @@ namespace OpenSim.Region.Framework.Scenes
_primAllocateMutex.ReleaseMutex();
return myID;
- }
+ }
#region Module Methods
@@ -472,7 +473,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Shows various details about the sim based on the parameters supplied by the console command in openSimMain.
///
- /// What to show
+ /// What to show
public virtual void Show(string[] showParams)
{
switch (showParams[0])
@@ -488,7 +489,7 @@ namespace OpenSim.Region.Framework.Scenes
}
break;
}
- }
+ }
public void AddCommand(object mod, string command, string shorthelp, string longhelp, CommandDelegate callback)
{
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index 5f2333e66c..4a2db5eda0 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -41,6 +41,7 @@ using OpenSim.Framework.Capabilities;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Services.Interfaces;
using OSD = OpenMetaverse.StructuredData.OSD;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes
{
@@ -58,6 +59,7 @@ namespace OpenSim.Region.Framework.Scenes
protected CommunicationsManager m_commsProvider;
protected IInterregionCommsOut m_interregionCommsOut;
protected RegionInfo m_regionInfo;
+ protected Scene m_scene;
protected RegionCommsListener regionCommsHost;
@@ -91,10 +93,10 @@ namespace OpenSim.Region.Framework.Scenes
///
public event PrimCrossing OnPrimCrossingIntoRegion;
- ///
- /// A New Region is up and available
- ///
- public event RegionUp OnRegionUp;
+ /////
+ ///// A New Region is up and available
+ /////
+ //public event RegionUp OnRegionUp;
///
/// We have a child agent for this avatar and we're getting a status update about it
@@ -117,7 +119,7 @@ namespace OpenSim.Region.Framework.Scenes
private ExpectPrimDelegate handlerExpectPrim = null; // OnExpectPrim;
private CloseAgentConnection handlerCloseAgentConnection = null; // OnCloseAgentConnection;
private PrimCrossing handlerPrimCrossingIntoRegion = null; // OnPrimCrossingIntoRegion;
- private RegionUp handlerRegionUp = null; // OnRegionUp;
+ //private RegionUp handlerRegionUp = null; // OnRegionUp;
private ChildAgentUpdate handlerChildAgentUpdate = null; // OnChildAgentUpdate;
//private RemoveKnownRegionsFromAvatarList handlerRemoveKnownRegionFromAvatar = null; // OnRemoveKnownRegionFromAvatar;
private LogOffUser handlerLogOffUser = null;
@@ -131,6 +133,13 @@ namespace OpenSim.Region.Framework.Scenes
m_agentsInTransit = new List();
}
+ public void SetScene(Scene s)
+ {
+ m_scene = s;
+ m_regionInfo = s.RegionInfo;
+ m_interregionCommsOut = m_scene.RequestModuleInterface();
+ }
+
///
/// Register a region with the grid
///
@@ -138,40 +147,30 @@ namespace OpenSim.Region.Framework.Scenes
/// Thrown if region registration fails.
public void RegisterRegion(IInterregionCommsOut comms_out, RegionInfo regionInfos)
{
- m_interregionCommsOut = comms_out;
+ //m_interregionCommsOut = comms_out;
- m_regionInfo = regionInfos;
- m_commsProvider.GridService.gdebugRegionName = regionInfos.RegionName;
- regionCommsHost = m_commsProvider.GridService.RegisterRegion(m_regionInfo);
+ //m_regionInfo = regionInfos;
+ //m_commsProvider.GridService.gdebugRegionName = regionInfos.RegionName;
+ //regionCommsHost = m_commsProvider.GridService.RegisterRegion(m_regionInfo);
- if (regionCommsHost != null)
- {
- //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got" + regionCommsHost.ToString());
+ //if (regionCommsHost != null)
+ //{
+ // //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got" + regionCommsHost.ToString());
- regionCommsHost.debugRegionName = regionInfos.RegionName;
- regionCommsHost.OnExpectPrim += IncomingPrimCrossing;
- regionCommsHost.OnExpectUser += NewUserConnection;
- regionCommsHost.OnAvatarCrossingIntoRegion += AgentCrossing;
- regionCommsHost.OnCloseAgentConnection += CloseConnection;
- regionCommsHost.OnRegionUp += newRegionUp;
- regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate;
- regionCommsHost.OnLogOffUser += GridLogOffUser;
- regionCommsHost.OnGetLandData += FetchLandData;
- }
- else
- {
- //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got null");
- }
- }
-
- ///
- /// Returns a region with the name closest to string provided
- ///
- /// Partial Region Name for matching
- /// Region Information for the region
- public RegionInfo RequestClosestRegion(string name)
- {
- return m_commsProvider.GridService.RequestClosestRegion(name);
+ // regionCommsHost.debugRegionName = regionInfos.RegionName;
+ // regionCommsHost.OnExpectPrim += IncomingPrimCrossing;
+ // regionCommsHost.OnExpectUser += NewUserConnection;
+ // regionCommsHost.OnAvatarCrossingIntoRegion += AgentCrossing;
+ // regionCommsHost.OnCloseAgentConnection += CloseConnection;
+ // regionCommsHost.OnRegionUp += newRegionUp;
+ // regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate;
+ // regionCommsHost.OnLogOffUser += GridLogOffUser;
+ // regionCommsHost.OnGetLandData += FetchLandData;
+ //}
+ //else
+ //{
+ // //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: registered with gridservice and got null");
+ //}
}
///
@@ -180,30 +179,31 @@ namespace OpenSim.Region.Framework.Scenes
///
public void Close()
{
- if (regionCommsHost != null)
- {
- regionCommsHost.OnLogOffUser -= GridLogOffUser;
- regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate;
- regionCommsHost.OnRegionUp -= newRegionUp;
- regionCommsHost.OnExpectUser -= NewUserConnection;
- regionCommsHost.OnExpectPrim -= IncomingPrimCrossing;
- regionCommsHost.OnAvatarCrossingIntoRegion -= AgentCrossing;
- regionCommsHost.OnCloseAgentConnection -= CloseConnection;
- regionCommsHost.OnGetLandData -= FetchLandData;
+
+ //if (regionCommsHost != null)
+ //{
+ // regionCommsHost.OnLogOffUser -= GridLogOffUser;
+ // regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate;
+ // regionCommsHost.OnRegionUp -= newRegionUp;
+ // regionCommsHost.OnExpectUser -= NewUserConnection;
+ // regionCommsHost.OnExpectPrim -= IncomingPrimCrossing;
+ // regionCommsHost.OnAvatarCrossingIntoRegion -= AgentCrossing;
+ // regionCommsHost.OnCloseAgentConnection -= CloseConnection;
+ // regionCommsHost.OnGetLandData -= FetchLandData;
- try
- {
- m_commsProvider.GridService.DeregisterRegion(m_regionInfo);
- }
- catch (Exception e)
- {
- m_log.ErrorFormat(
- "[GRID]: Deregistration of region {0} from the grid failed - {1}. Continuing",
- m_regionInfo.RegionName, e);
- }
+ // try
+ // {
+ // m_commsProvider.GridService.DeregisterRegion(m_regionInfo);
+ // }
+ // catch (Exception e)
+ // {
+ // m_log.ErrorFormat(
+ // "[GRID]: Deregistration of region {0} from the grid failed - {1}. Continuing",
+ // m_regionInfo.RegionName, e);
+ // }
- regionCommsHost = null;
- }
+ // regionCommsHost = null;
+ //}
}
#region CommsManager Event handlers
@@ -238,22 +238,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- ///
- /// A New Region is now available. Inform the scene that there is a new region available.
- ///
- /// Information about the new region that is available
- /// True if the event was handled
- protected bool newRegionUp(RegionInfo region)
- {
- handlerRegionUp = OnRegionUp;
- if (handlerRegionUp != null)
- {
- //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: newRegionUp Fired for User:" + region.RegionName);
- handlerRegionUp(region);
- }
- return true;
- }
-
///
/// Inform the scene that we've got an update about a child agent that we have
///
@@ -337,7 +321,7 @@ namespace OpenSim.Region.Framework.Scenes
#region Inform Client of Neighbours
private delegate void InformClientOfNeighbourDelegate(
- ScenePresence avatar, AgentCircuitData a, SimpleRegionInfo reg, IPEndPoint endPoint, bool newAgent);
+ ScenePresence avatar, AgentCircuitData a, GridRegion reg, IPEndPoint endPoint, bool newAgent);
private void InformClientOfNeighbourCompleted(IAsyncResult iar)
{
@@ -355,7 +339,7 @@ namespace OpenSim.Region.Framework.Scenes
///
///
///
- private void InformClientOfNeighbourAsync(ScenePresence avatar, AgentCircuitData a, SimpleRegionInfo reg,
+ private void InformClientOfNeighbourAsync(ScenePresence avatar, AgentCircuitData a, GridRegion reg,
IPEndPoint endPoint, bool newAgent)
{
// Let's wait just a little to give time to originating regions to catch up with closing child agents
@@ -373,8 +357,7 @@ namespace OpenSim.Region.Framework.Scenes
string reason = String.Empty;
- //bool regionAccepted = m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, a);
-
+
bool regionAccepted = m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a, out reason);
if (regionAccepted && newAgent)
@@ -407,17 +390,7 @@ namespace OpenSim.Region.Framework.Scenes
}
- public void RequestNeighbors(RegionInfo region)
- {
- // List neighbours =
- m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
- //IPEndPoint blah = new IPEndPoint();
-
- //blah.Address = region.RemotingAddress;
- //blah.Port = region.RemotingPort;
- }
-
- public List RequestNeighbors(Scene pScene, uint pRegionLocX, uint pRegionLocY)
+ public List RequestNeighbours(Scene pScene, uint pRegionLocX, uint pRegionLocY)
{
Border[] northBorders = pScene.NorthBorders.ToArray();
Border[] southBorders = pScene.SouthBorders.ToArray();
@@ -427,50 +400,34 @@ namespace OpenSim.Region.Framework.Scenes
// Legacy one region. Provided for simplicity while testing the all inclusive method in the else statement.
if (northBorders.Length <= 1 && southBorders.Length <= 1 && eastBorders.Length <= 1 && westBorders.Length <= 1)
{
- return m_commsProvider.GridService.RequestNeighbours(pRegionLocX, pRegionLocY);
+ return m_scene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID);
}
else
{
Vector2 extent = Vector2.Zero;
- for (int i=0;i extent.X) ? eastBorders[i].BorderLine.Z : extent.X;
}
- for (int i=0;i extent.Y) ? northBorders[i].BorderLine.Z : extent.Y;
}
- List neighbourList = new List();
-
// Loss of fraction on purpose
extent.X = ((int)extent.X / (int)Constants.RegionSize) + 1;
extent.Y = ((int)extent.Y / (int)Constants.RegionSize) + 1;
- int startX = (int) pRegionLocX - 1;
- int startY = (int) pRegionLocY - 1;
+ int startX = (int)(pRegionLocX - 1) * (int)Constants.RegionSize;
+ int startY = (int)(pRegionLocY - 1) * (int)Constants.RegionSize;
- int endX = (int) pRegionLocX + (int)extent.X;
- int endY = (int) pRegionLocY + (int)extent.Y;
+ int endX = ((int)pRegionLocX + (int)extent.X) * (int)Constants.RegionSize;
+ int endY = ((int)pRegionLocY + (int)extent.Y) * (int)Constants.RegionSize;
- for (int i=startX;i neighbours = m_scene.GridService.GetRegionRange(m_regionInfo.ScopeID, startX, endX, startY, endY);
+ neighbours.RemoveAll(delegate(GridRegion r) { return r.RegionID == m_regionInfo.RegionID; });
- ulong regionHandle = Util.UIntsToLong((uint)(i * Constants.RegionSize),
- (uint)(j * Constants.RegionSize));
- RegionInfo neighborreg = m_commsProvider.GridService.RequestNeighbourInfo(regionHandle);
- if (neighborreg != null)
- {
- neighbourList.Add(neighborreg);
- }
- }
- }
- return neighbourList;
+ return neighbours;
//SimpleRegionInfo regionData = m_commsProvider.GridService.RequestNeighbourInfo()
//return m_commsProvider.GridService.RequestNeighbours(pRegionLocX, pRegionLocY);
}
@@ -482,29 +439,28 @@ namespace OpenSim.Region.Framework.Scenes
///
public void EnableNeighbourChildAgents(ScenePresence avatar, List lstneighbours)
{
- List neighbours = new List();
+ //List neighbours = new List();
+ List neighbours = new List();
- //m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
- for (int i = 0; i < lstneighbours.Count; i++)
- {
- // We don't want to keep sending to regions that consistently fail on comms.
- if (!(lstneighbours[i].commFailTF))
- {
- neighbours.Add(new SimpleRegionInfo(lstneighbours[i]));
- }
- }
+ ////m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
+ //for (int i = 0; i < lstneighbours.Count; i++)
+ //{
+ // // We don't want to keep sending to regions that consistently fail on comms.
+ // if (!(lstneighbours[i].commFailTF))
+ // {
+ // neighbours.Add(new SimpleRegionInfo(lstneighbours[i]));
+ // }
+ //}
// we're going to be using the above code once neighbour cache is correct. Currently it doesn't appear to be
// So we're temporarily going back to the old method of grabbing it from the Grid Server Every time :/
if (m_regionInfo != null)
{
- neighbours =
- RequestNeighbors(avatar.Scene,m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
+ neighbours = RequestNeighbours(avatar.Scene,m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
}
else
{
m_log.Debug("[ENABLENEIGHBOURCHILDAGENTS]: m_regionInfo was null in EnableNeighbourChildAgents, is this a NPC?");
}
-
/// We need to find the difference between the new regions where there are no child agents
/// and the regions where there are already child agents. We only send notification to the former.
@@ -547,8 +503,9 @@ namespace OpenSim.Region.Framework.Scenes
/// Create the necessary child agents
List cagents = new List();
- foreach (SimpleRegionInfo neighbour in neighbours)
- {
+ //foreach (SimpleRegionInfo neighbour in neighbours)
+ foreach (GridRegion neighbour in neighbours)
+ {
if (neighbour.RegionHandle != avatar.Scene.RegionInfo.RegionHandle)
{
@@ -588,7 +545,7 @@ namespace OpenSim.Region.Framework.Scenes
bool newAgent = false;
int count = 0;
- foreach (SimpleRegionInfo neighbour in neighbours)
+ foreach (GridRegion neighbour in neighbours)
{
// Don't do it if there's already an agent in that region
if (newRegions.Contains(neighbour.RegionHandle))
@@ -641,7 +598,7 @@ namespace OpenSim.Region.Framework.Scenes
/// This informs a single neighboring region about agent "avatar".
/// Calls an asynchronous method to do so.. so it doesn't lag the sim.
///
- public void InformNeighborChildAgent(ScenePresence avatar, SimpleRegionInfo region)
+ public void InformNeighborChildAgent(ScenePresence avatar, GridRegion region)
{
AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo();
agent.BaseFolder = UUID.Zero;
@@ -672,61 +629,63 @@ namespace OpenSim.Region.Framework.Scenes
///
private void InformNeighboursThatRegionIsUpAsync(INeighbourService neighbourService, RegionInfo region, ulong regionhandle)
{
- m_log.Info("[INTERGRID]: Starting to inform neighbors that I'm here");
- //RegionUpData regiondata = new RegionUpData(region.RegionLocX, region.RegionLocY, region.ExternalHostName, region.InternalEndPoint.Port);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionhandle, out x, out y);
- //bool regionAccepted =
- // m_commsProvider.InterRegion.RegionUp(new SerializableRegionInfo(region), regionhandle);
-
- //bool regionAccepted = m_interregionCommsOut.SendHelloNeighbour(regionhandle, region);
- bool regionAccepted = false;
+ GridRegion neighbour = null;
if (neighbourService != null)
- regionAccepted = neighbourService.HelloNeighbour(regionhandle, region);
+ neighbour = neighbourService.HelloNeighbour(regionhandle, region);
else
m_log.DebugFormat("[SCS]: No neighbour service provided for informing neigbhours of this region");
- if (regionAccepted)
+ if (neighbour != null)
{
- m_log.Info("[INTERGRID]: Completed informing neighbors that I'm here");
- handlerRegionUp = OnRegionUp;
-
- // yes, we're notifying ourselves.
- if (handlerRegionUp != null)
- handlerRegionUp(region);
+ m_log.DebugFormat("[INTERGRID]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize);
+ m_scene.EventManager.TriggerOnRegionUp(neighbour);
}
else
{
- m_log.Warn("[INTERGRID]: Failed to inform neighbors that I'm here.");
+ m_log.WarnFormat("[INTERGRID]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize);
}
}
- ///
- /// Called by scene when region is initialized (not always when it's listening for agents)
- /// This is an inter-region message that informs the surrounding neighbors that the sim is up.
- ///
+
public void InformNeighborsThatRegionisUp(INeighbourService neighbourService, RegionInfo region)
{
//m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName);
-
- List neighbours = new List();
- // This stays uncached because we don't already know about our neighbors at this point.
- neighbours = m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY);
- if (neighbours != null)
- {
- for (int i = 0; i < neighbours.Count; i++)
- {
- InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;
+ for (int x = (int)region.RegionLocX - 1; x <= region.RegionLocX + 1; x++)
+ for (int y = (int)region.RegionLocY - 1; y <= region.RegionLocY + 1; y++)
+ if (!((x == region.RegionLocX) && (y == region.RegionLocY))) // skip this region
+ {
+ ulong handle = Utils.UIntsToLong((uint)x * Constants.RegionSize, (uint)y * Constants.RegionSize);
+ InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;
- d.BeginInvoke(neighbourService, region, neighbours[i].RegionHandle,
- InformNeighborsThatRegionisUpCompleted,
- d);
- }
- }
+ d.BeginInvoke(neighbourService, region, handle,
+ InformNeighborsThatRegionisUpCompleted,
+ d);
+ }
+
+ //List neighbours = new List();
+ //// This stays uncached because we don't already know about our neighbors at this point.
+
+ //neighbours = m_scene.GridService.GetNeighbours(m_regionInfo.ScopeID, m_regionInfo.RegionID);
+ //if (neighbours != null)
+ //{
+ // for (int i = 0; i < neighbours.Count; i++)
+ // {
+ // InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;
+
+ // d.BeginInvoke(neighbourService, region, neighbours[i].RegionHandle,
+ // InformNeighborsThatRegionisUpCompleted,
+ // d);
+ // }
+ //}
//bool val = m_commsProvider.InterRegion.RegionUp(new SerializableRegionInfo(region));
}
+
public delegate void SendChildAgentDataUpdateDelegate(AgentPosition cAgentData, ulong regionHandle);
///
@@ -822,41 +781,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
- ///
- /// Helper function to request neighbors from grid-comms
- ///
- ///
- ///
- public virtual RegionInfo RequestNeighbouringRegionInfo(ulong regionHandle)
- {
- //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending Grid Services Request about neighbor " + regionHandle.ToString());
- return m_commsProvider.GridService.RequestNeighbourInfo(regionHandle);
- }
-
- ///
- /// Helper function to request neighbors from grid-comms
- ///
- ///
- ///
- public virtual RegionInfo RequestNeighbouringRegionInfo(UUID regionID)
- {
- //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending Grid Services Request about neighbor " + regionID);
- return m_commsProvider.GridService.RequestNeighbourInfo(regionID);
- }
-
- ///
- /// Requests map blocks in area of minX, maxX, minY, MaxY in world cordinates
- ///
- ///
- ///
- ///
- ///
- public virtual void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY)
- {
- List mapBlocks;
- mapBlocks = m_commsProvider.GridService.RequestNeighbourMapBlocks(minX - 4, minY - 4, minX + 4, minY + 4);
- remoteClient.SendMapBlock(mapBlocks, 0);
- }
///
/// Try to teleport an agent to a new region.
@@ -921,7 +845,10 @@ namespace OpenSim.Region.Framework.Scenes
}
else
{
- RegionInfo reg = RequestNeighbouringRegionInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion reg = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y);
+
if (reg != null)
{
m_log.DebugFormat(
@@ -1228,10 +1155,10 @@ namespace OpenSim.Region.Framework.Scenes
return false;
}
- private List NeighbourHandles(List neighbours)
+ private List NeighbourHandles(List neighbours)
{
List handles = new List();
- foreach (SimpleRegionInfo reg in neighbours)
+ foreach (GridRegion reg in neighbours)
{
handles.Add(reg.RegionHandle);
}
@@ -1482,7 +1409,10 @@ namespace OpenSim.Region.Framework.Scenes
m_log.DebugFormat("[SCENE COMM]: Crossing agent {0} {1} to {2}-{3}", agent.Firstname, agent.Lastname, neighbourx, neighboury);
ulong neighbourHandle = Utils.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize));
- SimpleRegionInfo neighbourRegion = RequestNeighbouringRegionInfo(neighbourHandle);
+
+ int x = (int)(neighbourx * Constants.RegionSize), y = (int)(neighboury * Constants.RegionSize);
+ GridRegion neighbourRegion = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y);
+
if (neighbourRegion != null && agent.ValidateAttachments())
{
pos = pos + (agent.Velocity);
@@ -1609,11 +1539,6 @@ namespace OpenSim.Region.Framework.Scenes
}
- public Dictionary GetGridSettings()
- {
- return m_commsProvider.GridService.GetGridSettings();
- }
-
public void LogOffUser(UUID userid, UUID regionid, ulong regionhandle, Vector3 position, Vector3 lookat)
{
m_commsProvider.LogOffUser(userid, regionid, regionhandle, position, lookat);
@@ -1650,19 +1575,14 @@ namespace OpenSim.Region.Framework.Scenes
return m_commsProvider.GetUserFriendList(friendlistowner);
}
- public List RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY)
- {
- return m_commsProvider.GridService.RequestNeighbourMapBlocks(minX, minY, maxX, maxY);
- }
-
public List GenerateAgentPickerRequestResponse(UUID queryID, string query)
{
return m_commsProvider.GenerateAgentPickerRequestResponse(queryID, query);
}
- public List RequestNamedRegions(string name, int maxNumber)
+ public List RequestNamedRegions(string name, int maxNumber)
{
- return m_commsProvider.GridService.RequestNamedRegions(name, maxNumber);
+ return m_scene.GridService.GetRegionsByName(UUID.Zero, name, maxNumber);
}
//private void Dump(string msg, List handles)
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 09116fa1a6..cda0bfc9fb 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -845,7 +845,7 @@ namespace OpenSim.Region.Framework.Scenes
ScenePresence sp;
lock (ScenePresences)
- {
+ {
ScenePresences.TryGetValue(agentID, out sp);
}
@@ -1134,6 +1134,23 @@ namespace OpenSim.Region.Framework.Scenes
}
}
+ protected internal void ForEachSOG(Action action)
+ {
+ List objlist = new List(SceneObjectGroupsByFullID.Values);
+ foreach (SceneObjectGroup obj in objlist)
+ {
+ try
+ {
+ action(obj);
+ }
+ catch (Exception e)
+ {
+ // Catch it and move on. This includes situations where splist has inconsistent info
+ m_log.WarnFormat("[SCENE]: Problem processing action in ForEachSOG: ", e.Message);
+ }
+ }
+ }
+
#endregion
#region Client Event handlers
diff --git a/OpenSim/Region/Framework/Scenes/SceneManager.cs b/OpenSim/Region/Framework/Scenes/SceneManager.cs
index 0019b23c85..1d4efd0d9f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneManager.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneManager.cs
@@ -192,7 +192,7 @@ namespace OpenSim.Region.Framework.Scenes
public void SaveCurrentSceneToXml(string filename)
{
IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
serialiser.SavePrimsToXml(CurrentOrFirstScene, filename);
}
@@ -205,7 +205,7 @@ namespace OpenSim.Region.Framework.Scenes
public void LoadCurrentSceneFromXml(string filename, bool generateNewIDs, Vector3 loadOffset)
{
IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
serialiser.LoadPrimsFromXml(CurrentOrFirstScene, filename, generateNewIDs, loadOffset);
}
@@ -216,14 +216,14 @@ namespace OpenSim.Region.Framework.Scenes
public void SaveCurrentSceneToXml2(string filename)
{
IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
serialiser.SavePrimsToXml2(CurrentOrFirstScene, filename);
}
public void SaveNamedPrimsToXml2(string primName, string filename)
{
IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
serialiser.SaveNamedPrimsToXml2(CurrentOrFirstScene, primName, filename);
}
@@ -233,7 +233,7 @@ namespace OpenSim.Region.Framework.Scenes
public void LoadCurrentSceneFromXml2(string filename)
{
IRegionSerialiserModule serialiser = CurrentOrFirstScene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
serialiser.LoadPrimsFromXml2(CurrentOrFirstScene, filename);
}
@@ -257,7 +257,7 @@ namespace OpenSim.Region.Framework.Scenes
public void LoadArchiveToCurrentScene(string filename)
{
IRegionArchiverModule archiver = CurrentOrFirstScene.RequestModuleInterface();
- if (archiver != null)
+ if (archiver != null)
archiver.DearchiveRegion(filename);
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index a260653160..6b4cc0d4f1 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -133,7 +133,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Is this scene object acting as an attachment?
///
/// We return false if the group has already been deleted.
- ///
+ ///
/// TODO: At the moment set must be done on the part itself. There may be a case for doing it here since I
/// presume either all or no parts in a linkset can be part of an attachment (in which
/// case the value would get proprogated down into all the descendent parts).
@@ -204,9 +204,22 @@ namespace OpenSim.Region.Framework.Scenes
get { return m_parts.Count; }
}
- public Quaternion GroupRotation
+ public override Quaternion Rotation
{
get { return m_rootPart.RotationOffset; }
+ set { m_rootPart.RotationOffset = value; }
+ }
+
+ public override Vector3 Scale
+ {
+ get { return m_rootPart.Scale; }
+ set { m_rootPart.Scale = value; }
+ }
+
+ public override Vector3 Velocity
+ {
+ get { return m_rootPart.Velocity; }
+ set { m_rootPart.Velocity = value; }
}
public UUID GroupID
@@ -263,7 +276,7 @@ namespace OpenSim.Region.Framework.Scenes
if ((m_scene.TestBorderCross(val - Vector3.UnitX, Cardinals.E) || m_scene.TestBorderCross(val + Vector3.UnitX, Cardinals.W)
|| m_scene.TestBorderCross(val - Vector3.UnitY, Cardinals.N) || m_scene.TestBorderCross(val + Vector3.UnitY, Cardinals.S))
&& !IsAttachmentCheckFull())
- {
+ {
m_scene.CrossPrimGroupIntoNewRegion(val, this, true);
}
@@ -461,7 +474,7 @@ namespace OpenSim.Region.Framework.Scenes
///
public void AttachToScene(Scene scene)
{
- m_scene = scene;
+ m_scene = scene;
RegionHandle = m_scene.RegionInfo.RegionHandle;
if (m_rootPart.Shape.PCode != 9 || m_rootPart.Shape.State == 0)
@@ -486,9 +499,9 @@ namespace OpenSim.Region.Framework.Scenes
//m_log.DebugFormat("[SCENE]: Given local id {0} to part {1}, linknum {2}, parent {3} {4}", part.LocalId, part.UUID, part.LinkNum, part.ParentID, part.ParentUUID);
}
- ApplyPhysics(m_scene.m_physicalPrim);
+ ApplyPhysics(m_scene.m_physicalPrim);
- ScheduleGroupForFullUpdate();
+ ScheduleGroupForFullUpdate();
}
public Vector3 GroupScale()
@@ -535,7 +548,7 @@ namespace OpenSim.Region.Framework.Scenes
// Temporary commented to stop compiler warning
//Vector3 partPosition =
// new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z);
- Quaternion parentrotation = GroupRotation;
+ Quaternion parentrotation = Rotation;
// Telling the prim to raytrace.
//EntityIntersection inter = part.TestIntersection(hRay, parentrotation);
@@ -1044,12 +1057,12 @@ namespace OpenSim.Region.Framework.Scenes
m_rootPart = part;
if (!IsAttachment)
part.ParentID = 0;
- part.LinkNum = 0;
+ part.LinkNum = 0;
// No locking required since the SOG should not be in the scene yet - one can't change root parts after
// the scene object has been attached to the scene
m_parts.Add(m_rootPart.UUID, m_rootPart);
- }
+ }
///
/// Add a new part to this scene object. The part must already be correctly configured.
@@ -1167,7 +1180,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Delete this group from its scene and tell all the scene presences about that deletion.
- ///
+ ///
/// Broadcast deletions to all clients.
public void DeleteGroup(bool silent)
{
@@ -1274,11 +1287,11 @@ namespace OpenSim.Region.Framework.Scenes
if (part.LocalId != m_rootPart.LocalId)
{
part.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), part.VolumeDetectActive, m_physicalPrim);
- }
- }
+ }
+ }
// Hack to get the physics scene geometries in the right spot
- ResetChildPrimPhysicsPositions();
+ ResetChildPrimPhysicsPositions();
}
else
{
@@ -1501,7 +1514,7 @@ namespace OpenSim.Region.Framework.Scenes
List partList;
lock (m_parts)
- {
+ {
partList = new List(m_parts.Values);
}
@@ -1751,7 +1764,7 @@ namespace OpenSim.Region.Framework.Scenes
rootpart.PhysActor.PIDHoverActive = false;
}
}
- }
+ }
}
///
@@ -1878,14 +1891,17 @@ namespace OpenSim.Region.Framework.Scenes
checkAtTargets();
- if (UsePhysics && ((Math.Abs(lastPhysGroupRot.W - GroupRotation.W) > 0.1)
- || (Math.Abs(lastPhysGroupRot.X - GroupRotation.X) > 0.1)
- || (Math.Abs(lastPhysGroupRot.Y - GroupRotation.Y) > 0.1)
- || (Math.Abs(lastPhysGroupRot.Z - GroupRotation.Z) > 0.1)))
+ Quaternion rot = Rotation;
+
+ if (UsePhysics &&
+ ((Math.Abs(lastPhysGroupRot.W - rot.W) > 0.1f)
+ || (Math.Abs(lastPhysGroupRot.X - rot.X) > 0.1f)
+ || (Math.Abs(lastPhysGroupRot.Y - rot.Y) > 0.1f)
+ || (Math.Abs(lastPhysGroupRot.Z - rot.Z) > 0.1f)))
{
m_rootPart.UpdateFlag = 1;
- lastPhysGroupRot = GroupRotation;
+ lastPhysGroupRot = rot;
}
foreach (SceneObjectPart part in m_parts.Values)
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 98191631d8..b4cfc488f2 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -42,7 +42,7 @@ using OpenSim.Region.Framework.Scenes.Scripting;
using OpenSim.Region.Physics.Manager;
namespace OpenSim.Region.Framework.Scenes
-{
+{
#region Enumerations
[Flags]
@@ -142,7 +142,7 @@ namespace OpenSim.Region.Framework.Scenes
public UUID FromItemID = UUID.Zero;
///
- /// The UUID of the user inventory item from which this object was rezzed if this is a root part.
+ /// The UUID of the user inventory item from which this object was rezzed if this is a root part.
/// If UUID.Zero then either this is not a root part or there is no connection with a user inventory item.
///
private UUID m_fromUserInventoryItemID = UUID.Zero;
@@ -187,7 +187,7 @@ namespace OpenSim.Region.Framework.Scenes
public IEntityInventory Inventory
{
get { return m_inventory; }
- }
+ }
protected SceneObjectPartInventory m_inventory;
[XmlIgnore]
@@ -309,9 +309,9 @@ namespace OpenSim.Region.Framework.Scenes
RotationOffset = rotationOffset;
Velocity = new Vector3(0, 0, 0);
AngularVelocity = new Vector3(0, 0, 0);
- Acceleration = new Vector3(0, 0, 0);
+ Acceleration = new Vector3(0, 0, 0);
m_TextureAnimation = new byte[0];
- m_particleSystem = new byte[0];
+ m_particleSystem = new byte[0];
// Prims currently only contain a single folder (Contents). From looking at the Second Life protocol,
// this appears to have the same UUID (!) as the prim. If this isn't the case, one can't drag items from
@@ -363,7 +363,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// A relic from when we we thought that prims contained folder objects. In
- /// reality, prim == folder
+ /// reality, prim == folder
/// Exposing this is not particularly good, but it's one of the least evils at the moment to see
/// folder id from prim inventory item data, since it's not (yet) actually stored with the prim.
///
@@ -384,7 +384,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Access should be via Inventory directly - this property temporarily remains for xml serialization purposes
- ///
+ ///
public TaskInventoryDictionary TaskInventory
{
get { return m_inventory.Items; }
@@ -3355,7 +3355,7 @@ if (m_shape != null) {
}
else
{
- IsPhantom = false;
+ IsPhantom = false;
// If volumedetect is active we don't want phantom to be applied.
// If this is a new call to VD out of the state "phantom"
// this will also cause the prim to be visible to physics
@@ -3451,7 +3451,7 @@ if (m_shape != null) {
}
else // it already has a physical representation
{
- PhysActor.IsPhysical = UsePhysics;
+ pa.IsPhysical = UsePhysics;
DoPhysicsPropertyUpdate(UsePhysics, false); // Update physical status. If it's phantom this will remove the prim
if (m_parentGroup != null)
@@ -3480,7 +3480,6 @@ if (m_shape != null) {
AddFlag(PrimFlags.Phantom); // We set this flag also if VD is active
this.VolumeDetectActive = true;
}
-
}
else
{ // Remove VolumeDetect in any case. Note, it's safe to call SetVolumeDetect as often as you like
@@ -3739,7 +3738,7 @@ if (m_shape != null) {
public override string ToString()
{
return String.Format("{0} {1} (parent {2}))", Name, UUID, ParentGroup);
- }
+ }
#endregion Public Methods
@@ -3785,11 +3784,11 @@ if (m_shape != null) {
_everyoneMask &= _nextOwnerMask;
Inventory.ApplyNextOwnerPermissions();
- }
+ }
public bool CanBeDeleted()
{
return Inventory.CanBeDeleted();
}
- }
+ }
}
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 76bcd7e36f..098e010833 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -105,7 +105,7 @@ namespace OpenSim.Region.Framework.Scenes
public void ForceInventoryPersistence()
{
HasInventoryChanged = true;
- }
+ }
///
/// Reset UUIDs for all the items in the prim's inventory. This involves either generating
@@ -164,7 +164,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Change every item in this inventory to a new group.
///
- ///
+ ///
public void ChangeInventoryGroup(UUID groupID)
{
lock (Items)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 6772f75d60..66fefa3dff 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -36,6 +36,7 @@ using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes.Types;
using OpenSim.Region.Physics.Manager;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Region.Framework.Scenes
{
@@ -775,7 +776,7 @@ namespace OpenSim.Region.Framework.Scenes
// Moved this from SendInitialData to ensure that m_appearance is initialized
// before the inventory is processed in MakeRootAgent. This fixes a race condition
// related to the handling of attachments
- //m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance);
+ //m_scene.GetAvatarAppearance(m_controllingClient, out m_appearance);
if (m_scene.TestBorderCross(pos, Cardinals.E))
{
Border crossedBorder = m_scene.GetCrossedBorder(pos, Cardinals.E);
@@ -1234,7 +1235,7 @@ namespace OpenSim.Region.Framework.Scenes
if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0)
{
StandUp();
- }
+ }
// Check if Client has camera in 'follow cam' or 'build' mode.
Vector3 camdif = (Vector3.One * m_bodyRot - Vector3.One * CameraRotation);
@@ -1488,7 +1489,7 @@ namespace OpenSim.Region.Framework.Scenes
{
// m_log.DebugFormat("{0} {1}", update_movementflag, (update_rotation && DCFlagKeyPressed));
// m_log.DebugFormat(
-// "In {0} adding velocity to {1} of {2}", m_scene.RegionInfo.RegionName, Name, agent_control_v3);
+// "In {0} adding velocity to {1} of {2}", m_scene.RegionInfo.RegionName, Name, agent_control_v3);
AddNewMovement(agent_control_v3, q);
@@ -2305,14 +2306,14 @@ namespace OpenSim.Region.Framework.Scenes
/// Rotate the avatar to the given rotation and apply a movement in the given relative vector
///
/// The vector in which to move. This is relative to the rotation argument
- /// The direction in which this avatar should now face.
+ /// The direction in which this avatar should now face.
public void AddNewMovement(Vector3 vec, Quaternion rotation)
{
if (m_isChildAgent)
{
m_log.Debug("DEBUG: AddNewMovement: child agent, Making root agent!");
- // we have to reset the user's child agent connections.
+ // we have to reset the user's child agent connections.
// Likely, here they've lost the eventqueue for other regions so border
// crossings will fail at this point unless we reset them.
@@ -2648,7 +2649,7 @@ namespace OpenSim.Region.Framework.Scenes
/// Tell the client for this scene presence what items it should be wearing now
///
public void SendWearables()
- {
+ {
ControllingClient.SendWearables(m_appearance.Wearables, m_appearance.Serial++);
}
@@ -2934,8 +2935,9 @@ namespace OpenSim.Region.Framework.Scenes
else if (dir > 3 && dir < 7) // Heading Sout
neighboury--;
- ulong neighbourHandle = Utils.UIntsToLong((uint)(neighbourx * Constants.RegionSize), (uint)(neighboury * Constants.RegionSize));
- SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle);
+ int x = (int)(neighbourx * Constants.RegionSize);
+ int y = (int)(neighboury * Constants.RegionSize);
+ GridRegion neighbourRegion = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, x, y);
if (neighbourRegion == null)
{
@@ -3173,7 +3175,7 @@ namespace OpenSim.Region.Framework.Scenes
else
{
wears[i++] = UUID.Zero;
- wears[i++] = UUID.Zero;
+ wears[i++] = UUID.Zero;
}
}
cAgent.Wearables = wears;
@@ -3485,7 +3487,7 @@ namespace OpenSim.Region.Framework.Scenes
public bool HasAttachments()
{
- return m_attachments.Count > 0;
+ return m_attachments.Count > 0;
}
public bool HasScriptedAttachments()
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
index fe741589bf..f7544ac2ee 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
@@ -122,13 +122,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
"[SERIALIZER]: Deserialization of xml failed with {0}. xml was {1}", e, xmlData);
return null;
}
- }
+ }
///
/// Serialize a scene object to the original xml format
///
///
- ///
+ ///
public static string ToOriginalXmlFormat(SceneObjectGroup sceneObject)
{
using (StringWriter sw = new StringWriter())
@@ -140,13 +140,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
return sw.ToString();
}
- }
+ }
///
/// Serialize a scene object to the original xml format
///
///
- ///
+ ///
public static void ToOriginalXmlFormat(SceneObjectGroup sceneObject, XmlTextWriter writer)
{
//m_log.DebugFormat("[SERIALIZER]: Starting serialization of {0}", Name);
@@ -238,13 +238,13 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
m_log.ErrorFormat("[SERIALIZER]: Deserialization of xml failed with {0}. xml was {1}", e, xmlData);
return null;
}
- }
+ }
///
/// Serialize a scene object to the 'xml2' format.
///
///
- ///
+ ///
public static string ToXml2Format(SceneObjectGroup sceneObject)
{
using (StringWriter sw = new StringWriter())
@@ -262,7 +262,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
/// Serialize a scene object to the 'xml2' format.
///
///
- ///
+ ///
public static void ToXml2Format(SceneObjectGroup sceneObject, XmlTextWriter writer)
{
//m_log.DebugFormat("[SERIALIZER]: Starting serialization of SOG {0} to XML2", Name);
@@ -288,6 +288,6 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
writer.WriteEndElement(); // End of SceneObjectGroup
//m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0} to XML2, {1}ms", Name, System.Environment.TickCount - time);
- }
+ }
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs
index 7fa1b8cfdf..cf0f3451d2 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs
@@ -236,7 +236,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
}
SavePrimListToXml2(primList, fileName);
- }
+ }
public static void SavePrimListToXml2(List entityList, string fileName)
{
diff --git a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
index 7f44bf1f59..ee288b3c84 100644
--- a/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
+++ b/OpenSim/Region/Framework/Scenes/SimStatsReporter.cs
@@ -450,7 +450,7 @@ namespace OpenSim.Region.Framework.Scenes
{
addFrameMS(ms);
addAgentMS(ms);
- }
+ }
#endregion
}
diff --git a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
index 3b0e77f4bd..fc66c85b84 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs
@@ -44,7 +44,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
{
[TestFixture, LongRunning]
public class EntityManagerTests
- {
+ {
static public Random random;
SceneObjectGroup found;
Scene scene = SceneSetupHelpers.SetupScene();
@@ -81,13 +81,13 @@ namespace OpenSim.Region.Framework.Scenes.Tests
Assert.That(entman.ContainsKey(obj1), Is.False);
Assert.That(entman.ContainsKey(li1), Is.False);
- Assert.That(entman.ContainsKey(obj2), Is.False);
- Assert.That(entman.ContainsKey(li2), Is.False);
+ Assert.That(entman.ContainsKey(obj2), Is.False);
+ Assert.That(entman.ContainsKey(li2), Is.False);
}
[Test]
public void T011_ThreadAddRemoveTest()
- {
+ {
TestHelper.InMethod();
// Console.WriteLine("Beginning test {0}", MethodBase.GetCurrentMethod());
@@ -148,12 +148,12 @@ namespace OpenSim.Region.Framework.Scenes.Tests
int size = random.Next(40,80);
char ch ;
for (int i=0; i
[TestFixture]
public class SceneObjectBasicTests
- {
+ {
///
/// Test adding an object to a scene.
///
[Test, LongRunning]
public void TestAddSceneObject()
- {
+ {
TestHelper.InMethod();
Scene scene = SceneSetupHelpers.SetupScene();
@@ -61,7 +61,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
//m_log.Debug("retrievedPart : {0}", retrievedPart);
// If the parts have the same UUID then we will consider them as one and the same
- Assert.That(retrievedPart.UUID, Is.EqualTo(part.UUID));
+ Assert.That(retrievedPart.UUID, Is.EqualTo(part.UUID));
}
///
@@ -72,11 +72,11 @@ namespace OpenSim.Region.Framework.Scenes.Tests
{
TestHelper.InMethod();
- TestScene scene = SceneSetupHelpers.SetupScene();
+ TestScene scene = SceneSetupHelpers.SetupScene();
SceneObjectPart part = SceneSetupHelpers.AddSceneObject(scene);
scene.DeleteSceneObject(part.ParentGroup, false);
- SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
+ SceneObjectPart retrievedPart = scene.GetSceneObjectPart(part.LocalId);
Assert.That(retrievedPart, Is.Null);
}
@@ -115,19 +115,19 @@ namespace OpenSim.Region.Framework.Scenes.Tests
//[Test]
//public void TestDeleteSceneObjectAsyncToUserInventory()
//{
- // TestHelper.InMethod();
- // //log4net.Config.XmlConfigurator.Configure();
+ // TestHelper.InMethod();
+ // //log4net.Config.XmlConfigurator.Configure();
// UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000001");
// string myObjectName = "Fred";
- // TestScene scene = SceneSetupHelpers.SetupScene();
+ // TestScene scene = SceneSetupHelpers.SetupScene();
// SceneObjectPart part = SceneSetupHelpers.AddSceneObject(scene, myObjectName);
// Assert.That(
// scene.CommsManager.UserAdminService.AddUser(
// "Bob", "Hoskins", "test", "test@test.com", 1000, 1000, agentId),
- // Is.EqualTo(agentId));
+ // Is.EqualTo(agentId));
// IClientAPI client = SceneSetupHelpers.AddRootAgent(scene, agentId);
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs
index e74b18e3e1..b3d10dfa06 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs
@@ -45,7 +45,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
///
/// Linking tests
///
- [TestFixture]
+ [TestFixture]
public class SceneObjectLinkingTests
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -174,13 +174,13 @@ namespace OpenSim.Region.Framework.Scenes.Tests
// Link grp4 to grp3.
grp3.LinkToGroup(grp4);
- // At this point we should have 4 parts total in two groups.
+ // At this point we should have 4 parts total in two groups.
Assert.That(grp1.Children.Count == 2);
Assert.That(grp2.IsDeleted, "Group 2 was not registered as deleted after link.");
- Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink.");
+ Assert.That(grp2.Children.Count, Is.EqualTo(0), "Group 2 still contained parts after delink.");
Assert.That(grp3.Children.Count == 2);
Assert.That(grp4.IsDeleted, "Group 4 was not registered as deleted after link.");
- Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink.");
+ Assert.That(grp4.Children.Count, Is.EqualTo(0), "Group 4 still contained parts after delink.");
if (debugtest)
{
@@ -194,7 +194,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
m_log.Debug("Group3: Pos:"+grp3.AbsolutePosition+", Rot:"+grp3.Rotation);
m_log.Debug("Group3: Prim1: OffsetPosition:"+part3.OffsetPosition+", OffsetRotation:"+part3.RotationOffset);
m_log.Debug("Group3: Prim2: OffsetPosition:"+part4.OffsetPosition+", OffsetRotation:"+part4.RotationOffset);
- }
+ }
// Required for linking
grp1.RootPart.UpdateFlag = 0;
@@ -253,6 +253,6 @@ namespace OpenSim.Region.Framework.Scenes.Tests
&& (part4.RotationOffset.Y - compareQuaternion.Y < 0.00003)
&& (part4.RotationOffset.Z - compareQuaternion.Z < 0.00003)
&& (part4.RotationOffset.W - compareQuaternion.W < 0.00003));
- }
+ }
}
}
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
index 1c9bce4a9c..8a27b7b912 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs
@@ -41,11 +41,11 @@ namespace OpenSim.Region.Framework.Scenes.Tests
public class SceneTests
{
private class FakeStorageManager : StorageManager
- {
+ {
private class FakeRegionDataStore : IRegionDataStore
{
public void Initialise(string filename)
- {
+ {
}
public void Dispose()
diff --git a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs
index 1d460dd2ec..b46eb8e016 100644
--- a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs
+++ b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs
@@ -44,7 +44,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
{
///
/// Teleport tests in a standalone OpenSim
- ///
+ ///
[TestFixture]
public class StandaloneTeleportTests
{
@@ -52,7 +52,8 @@ namespace OpenSim.Region.Framework.Scenes.Tests
/// Test a teleport between two regions that are not neighbours and do not share any neighbours in common.
///
/// Does not yet do what is says on the tin.
- [Test, LongRunning]
+ /// Commenting for now
+ //[Test, LongRunning]
public void TestSimpleNotNeighboursTeleport()
{
TestHelper.InMethod();
@@ -117,14 +118,15 @@ namespace OpenSim.Region.Framework.Scenes.Tests
// shared module
ISharedRegionModule interregionComms = new RESTInterregionComms();
- Scene sceneA = SceneSetupHelpers.SetupScene("sceneA", sceneAId, 1000, 1000, cm);
- SceneSetupHelpers.SetupSceneModules(sceneA, new IniConfigSource(), interregionComms);
- sceneA.RegisterRegionWithGrid();
- Scene sceneB = SceneSetupHelpers.SetupScene("sceneB", sceneBId, 1010, 1010, cm);
+ Scene sceneB = SceneSetupHelpers.SetupScene("sceneB", sceneBId, 1010, 1010, cm, "grid");
SceneSetupHelpers.SetupSceneModules(sceneB, new IniConfigSource(), interregionComms);
sceneB.RegisterRegionWithGrid();
+ Scene sceneA = SceneSetupHelpers.SetupScene("sceneA", sceneAId, 1000, 1000, cm, "grid");
+ SceneSetupHelpers.SetupSceneModules(sceneA, new IniConfigSource(), interregionComms);
+ sceneA.RegisterRegionWithGrid();
+
UUID agentId = UUID.Parse("00000000-0000-0000-0000-000000000041");
TestClient client = SceneSetupHelpers.AddRootAgent(sceneA, agentId);
diff --git a/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs b/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs
index 21cda0971b..213e954c1f 100644
--- a/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs
+++ b/OpenSim/Region/Framework/Scenes/Types/UpdateQueue.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Region.Framework.Scenes.Types
{
private Queue m_queue;
- private List m_ids;
+ private Dictionary m_ids;
private object m_syncObject = new object();
@@ -50,7 +50,7 @@ namespace OpenSim.Region.Framework.Scenes.Types
public UpdateQueue()
{
m_queue = new Queue();
- m_ids = new List();
+ m_ids = new Dictionary();
}
public void Clear()
@@ -66,9 +66,8 @@ namespace OpenSim.Region.Framework.Scenes.Types
{
lock (m_syncObject)
{
- if (!m_ids.Contains(part.UUID))
- {
- m_ids.Add(part.UUID);
+ if (!m_ids.ContainsKey(part.UUID)) {
+ m_ids.Add(part.UUID, true);
m_queue.Enqueue(part);
}
}
diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs
index f449e18261..525a93a7fe 100644
--- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs
+++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Framework.Scenes
{
///
/// Gather uuids for a given entity.
- ///
+ ///
///
/// This does a deep inspection of the entity to retrieve all the assets it uses (whether as textures, as scripts
/// contained in inventory, as scripts contained in objects contained in another object's inventory, etc. Assets
@@ -82,7 +82,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// The uuid of the asset for which to gather referenced assets
/// The type of the asset for the uuid given
- /// The assets gathered
+ /// The assets gathered
public void GatherAssetUuids(UUID assetUuid, AssetType assetType, IDictionary assetUuids)
{
assetUuids[assetUuid] = 1;
@@ -142,7 +142,7 @@ namespace OpenSim.Region.Framework.Scenes
// If the prim is a sculpt then preserve this information too
if (part.Shape.SculptTexture != UUID.Zero)
- assetUuids[part.Shape.SculptTexture] = 1;
+ assetUuids[part.Shape.SculptTexture] = 1;
TaskInventoryDictionary taskDictionary = (TaskInventoryDictionary)part.TaskInventory.Clone();
@@ -167,7 +167,7 @@ namespace OpenSim.Region.Framework.Scenes
///
/// The callback made when we request the asset for an object from the asset service.
- ///
+ ///
protected void AssetReceived(string id, Object sender, AssetBase asset)
{
lock (this)
@@ -242,7 +242,7 @@ namespace OpenSim.Region.Framework.Scenes
AssetBase assetBase = GetAsset(wearableAssetUuid);
if (null != assetBase)
- {
+ {
//m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data));
AssetWearable wearableAsset = new AssetBodypart(wearableAssetUuid, assetBase.Data);
wearableAsset.Decode();
@@ -275,6 +275,6 @@ namespace OpenSim.Region.Framework.Scenes
SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml);
GatherAssetUuids(sog, assetUuids);
}
- }
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index 4a2d7b5490..605645becd 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -601,7 +601,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
if (names.Length > 1)
return names[1];
return names[0];
- }
+ }
}
public IScene Scene
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
index c49d942aef..773507c948 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Chat/RegionState.cs
@@ -351,7 +351,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
{
m_log.DebugFormat("[IRC-Region {0}] dropping message {1} on channel {2}", Region, msg, msg.Channel);
return;
- }
+ }
ScenePresence avatar = null;
string fromName = msg.From;
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs
index 9ba09ed175..46ad30fdfd 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDialplan.cs
@@ -97,8 +97,8 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
", Context, Realm);
}
- return response;
- }
+ return response;
+ }
}
}
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs
index 5d90a8f3eb..17cdf741b5 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchDirectory.cs
@@ -93,7 +93,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
{
response = HandleRegister(Context, Realm, request);
}
- else if (sipAuthMethod == "INVITE")
+ else if (sipAuthMethod == "INVITE")
{
response = HandleInvite(Context, Realm, request);
}
@@ -138,7 +138,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
response["str_response_string"] = "";
}
}
- return response;
+ return response;
}
private Hashtable HandleRegister(string Context, string Realm, Hashtable request)
@@ -309,17 +309,17 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
"\r\n",
domain, Context);
- return response;
- }
+ return response;
+ }
// private Hashtable HandleLoadNetworkLists(Hashtable request)
// {
// m_log.Info("[FreeSwitchDirectory] HandleLoadNetworkLists called");
-//
+//
// // TODO the password we return needs to match that sent in the request, this is hard coded for now
// string domain = (string) request["domain"];
-//
+//
// Hashtable response = new Hashtable();
// response["content_type"] = "text/xml";
// response["keepalive"] = false;
@@ -340,9 +340,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
// "\r\n" +
// "\r\n",
// domain);
-//
-//
-// return response;
-// }
+//
+//
+// return response;
+// }
}
}
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs
index 6b30959239..c7bb56a687 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/FreeSwitchVoice/FreeSwitchVoiceModule.cs
@@ -260,12 +260,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
public void PostInitialise()
{
- if(m_pluginEnabled)
+ if (m_pluginEnabled)
{
- m_log.Info("[FreeSwitchVoice] registering IVoiceModule with the scene");
-
- // register the voice interface for this module, so the script engine can call us
- m_scene.RegisterModuleInterface(this);
+ m_log.Info("[FreeSwitchVoice] registering IVoiceModule with the scene");
+
+ // register the voice interface for this module, so the script engine can call us
+ m_scene.RegisterModuleInterface(this);
}
}
@@ -811,7 +811,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice
lock (m_ParcelAddress)
{
- if (m_ParcelAddress.ContainsKey( land.GlobalID.ToString() ))
+ if (m_ParcelAddress.ContainsKey(land.GlobalID.ToString()))
{
m_log.DebugFormat("[FreeSwitchVoice]: parcel id {0}: using sip address {1}",
land.GlobalID, m_ParcelAddress[land.GlobalID.ToString()]);
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
index febb491daa..cb76200cbd 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
@@ -226,7 +226,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
m_log.DebugFormat("[VivoxVoice] plugin initialization failed: {0}", e.ToString());
return;
}
- }
+ }
// Called to indicate that the module has been added to the region
@@ -1144,7 +1144,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
// Otherwise prepare the request
m_log.DebugFormat("[VivoxVoice] Sending request <{0}>", requrl);
- HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requrl);
+ HttpWebRequest req = (HttpWebRequest)WebRequest.Create(requrl);
HttpWebResponse rsp = null;
// We are sending just parameters, no content
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index d5cbfd43f7..2e89a24a14 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -477,7 +477,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
foreach (string key in binBucketOSD.Keys)
{
m_log.WarnFormat("{0}: {1}", key, binBucketOSD[key].ToString());
- }
+ }
}
// treat as if no attachment
@@ -1261,7 +1261,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
{
if (m_debugEnabled) m_log.InfoFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name);
- // TODO: Probably isn't nessesary to update every client in every scene.
+ // TODO: Probably isn't nessesary to update every client in every scene.
// Need to examine client updates and do only what's nessesary.
lock (m_sceneList)
{
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
index 805c3d4c83..964d0bbbf1 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/XmlRpcGroupsServicesConnectorModule.cs
@@ -871,7 +871,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
m_log.ErrorFormat("[XMLRPCGROUPDATA]: An error has occured while attempting to access the XmlRpcGroups server method: {0}", function);
m_log.ErrorFormat("[XMLRPCGROUPDATA]: {0} ", e.ToString());
- foreach( string ResponseLine in req.RequestResponse.Split(new string[] { Environment.NewLine },StringSplitOptions.None))
+ foreach (string ResponseLine in req.RequestResponse.Split(new string[] { Environment.NewLine },StringSplitOptions.None))
{
m_log.ErrorFormat("[XMLRPCGROUPDATA]: {0} ", ResponseLine);
}
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMController.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMController.cs
index b5da6f74e2..7202601f00 100644
--- a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMController.cs
+++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMController.cs
@@ -208,7 +208,7 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
// TODO: Let users in the sim and those entering it and possibly an external watchdog know what has happened
m_log.ErrorFormat(
"[CONTENT MANAGEMENT]: Content management thread terminating with exception. PLEASE REBOOT YOUR SIM - CONTENT MANAGEMENT WILL NOT BE AVAILABLE UNTIL YOU DO. Exception is {0}",
- e);
+ e);
}
}
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
index 52c4e033e7..0dc78c0d41 100644
--- a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
+++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs
@@ -102,7 +102,7 @@ namespace OpenSim.Region.OptionalModules.ContentManagement
{
if (m_MetaEntityCollection.Auras.ContainsKey(((SceneObjectPart)missingPart).UUID))
continue;
- newList.Add(m_MetaEntityCollection.CreateAuraForNewlyCreatedEntity((SceneObjectPart)missingPart));
+ newList.Add(m_MetaEntityCollection.CreateAuraForNewlyCreatedEntity((SceneObjectPart)missingPart));
}
m_log.Info("Number of missing objects found: " + newList.Count);
return newList;
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
index bf523dd6e5..ce50f9e34d 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
@@ -136,7 +136,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
///
/// AppDomain with a restricted security policy
/// Substantial portions of this function from: http://blogs.msdn.com/shawnfa/archive/2004/10/25/247379.aspx
- /// Valid permissionSetName values are:
+ /// Valid permissionSetName values are:
/// * FullTrust
/// * SkipVerification
/// * Execution
diff --git a/OpenSim/Region/OptionalModules/SvnSerialiser/SvnBackupModule.cs b/OpenSim/Region/OptionalModules/SvnSerialiser/SvnBackupModule.cs
index c5392800ec..fc1c608fc7 100644
--- a/OpenSim/Region/OptionalModules/SvnSerialiser/SvnBackupModule.cs
+++ b/OpenSim/Region/OptionalModules/SvnSerialiser/SvnBackupModule.cs
@@ -117,7 +117,7 @@ namespace OpenSim.Region.Modules.SvnSerialiser
public void LoadRegion(Scene scene)
{
IRegionSerialiserModule serialiser = scene.RequestModuleInterface();
- if (serialiser != null)
+ if (serialiser != null)
{
serialiser.LoadPrimsFromXml2(
scene,
diff --git a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
index d4bba1009d..3044b17286 100644
--- a/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
+++ b/OpenSim/Region/OptionalModules/World/TreePopulator/TreePopulatorModule.cs
@@ -92,7 +92,7 @@ namespace OpenSim.Region.OptionalModules.World.TreePopulator
this.m_maximum_scale = cp.m_maximum_scale;
this.m_initial_scale = cp.m_initial_scale;
this.m_rate = cp.m_rate;
- this.m_planted = planted;
+ this.m_planted = planted;
this.m_trees = new List();
}
diff --git a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETScene.cs b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETScene.cs
index e0f856ad05..18d4bab709 100644
--- a/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETScene.cs
+++ b/OpenSim/Region/Physics/BulletDotNETPlugin/BulletDotNETScene.cs
@@ -528,7 +528,7 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin
{
// Teravus: Kitto, this code causes recurring errors that stall physics permenantly unless
// the values are checked, so checking below.
- // Is there any reason that we don't do this in ScenePresence?
+ // Is there any reason that we don't do this in ScenePresence?
// The only physics engine that benefits from it in the physics plugin is this one
if (x > (int)Constants.RegionSize || y > (int)Constants.RegionSize ||
@@ -650,7 +650,7 @@ namespace OpenSim.Region.Physics.BulletDotNETPlugin
if (iPropertiesNotSupportedDefault == 0)
{
-#if SPAM
+#if SPAM
m_log.Warn("NonMesh");
#endif
return false;
diff --git a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs
index ce52744142..7130a3e171 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Physics.Manager
plugHard = new ZeroMesherPlugin();
_MeshPlugins.Add(plugHard.GetName(), plugHard);
- m_log.Info("[PHYSICS]: Added meshing engine: " + plugHard.GetName());
+ m_log.Info("[PHYSICS]: Added meshing engine: " + plugHard.GetName());
}
///
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
index 8a07f712c3..6dd26bb663 100644
--- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs
+++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs
@@ -178,12 +178,12 @@ namespace OpenSim.Region.Physics.Manager
}
///
- /// Queue a raycast against the physics scene.
+ /// Queue a raycast against the physics scene.
/// The provided callback method will be called when the raycast is complete
///
/// Many physics engines don't support collision testing at the same time as
/// manipulating the physics scene, so we queue the request up and callback
- /// a custom method when the raycast is complete.
+ /// a custom method when the raycast is complete.
/// This allows physics engines that give an immediate result to callback immediately
/// and ones that don't, to callback when it gets a result back.
///
diff --git a/OpenSim/Region/Physics/Manager/VehicleConstants.cs b/OpenSim/Region/Physics/Manager/VehicleConstants.cs
index 97f66d3c92..532e55e5fc 100644
--- a/OpenSim/Region/Physics/Manager/VehicleConstants.cs
+++ b/OpenSim/Region/Physics/Manager/VehicleConstants.cs
@@ -93,7 +93,7 @@ namespace OpenSim.Region.Physics.Manager
BANKING_TIMESCALE = 40,
REFERENCE_FRAME = 44
- }
+ }
[Flags]
public enum VehicleFlag
diff --git a/OpenSim/Region/Physics/Meshing/Mesh.cs b/OpenSim/Region/Physics/Meshing/Mesh.cs
index 756755618c..aae88710ab 100644
--- a/OpenSim/Region/Physics/Meshing/Mesh.cs
+++ b/OpenSim/Region/Physics/Meshing/Mesh.cs
@@ -149,7 +149,7 @@ namespace OpenSim.Region.Physics.Meshing
public float[] getVertexListAsFloatLocked()
{
- if( pinnedVirtexes.IsAllocated )
+ if (pinnedVirtexes.IsAllocated)
return (float[])(pinnedVirtexes.Target);
float[] result;
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 08730353ca..56eb359572 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -171,7 +171,7 @@ namespace OpenSim.Region.Physics.Meshing
}
- private ulong GetMeshKey( PrimitiveBaseShape pbs, PhysicsVector size, float lod )
+ private ulong GetMeshKey(PrimitiveBaseShape pbs, PhysicsVector size, float lod)
{
ulong hash = 5381;
diff --git a/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs b/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs
index d9f4951793..c8ae229187 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODERayCastRequestManager.cs
@@ -228,7 +228,7 @@ namespace OpenSim.Region.Physics.OdePlugin
mono [0x81d28b6]
mono [0x81ea2c6]
/lib/i686/cmov/libpthread.so.0 [0xb7e744c0]
- /lib/i686/cmov/libc.so.6(clone+0x5e) [0xb7dcd6de]
+ /lib/i686/cmov/libc.so.6(clone+0x5e) [0xb7dcd6de]
*/
// Exclude heightfield geom
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
index b7afa274be..06bae5a37f 100644
--- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs
@@ -2538,7 +2538,7 @@ namespace OpenSim.Region.Physics.OdePlugin
if (iPropertiesNotSupportedDefault == 0)
{
-#if SPAM
+#if SPAM
m_log.Warn("NonMesh");
#endif
return false;
@@ -3346,7 +3346,7 @@ namespace OpenSim.Region.Physics.OdePlugin
{
// this._heightmap[i] = (double)heightMap[i];
// dbm (danx0r) -- creating a buffer zone of one extra sample all around
- //_origheightmap = heightMap;
+ //_origheightmap = heightMap;
float[] _heightmap;
@@ -3531,12 +3531,8 @@ namespace OpenSim.Region.Physics.OdePlugin
}
d.GeomDestroy(g);
- removingHeightField = new float[0];
-
-
-
+ //removingHeightField = new float[0];
}
-
}
}
@@ -3545,14 +3541,10 @@ namespace OpenSim.Region.Physics.OdePlugin
m_log.Warn("[PHYSICS]: Couldn't proceed with UnCombine. Region has inconsistant data.");
}
-
}
-
}
}
-
-
public override void SetWaterLevel(float baseheight)
{
waterlevel = baseheight;
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs
index 569009e2cd..0feb967838 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueThreadClass.cs
@@ -225,7 +225,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
// TODO: Let users in the sim and those entering it and possibly an external watchdog know what has happened
m_log.ErrorFormat(
"[{0}]: Event queue thread terminating with exception. PLEASE REBOOT YOUR SIM - SCRIPT EVENTS WILL NOT WORK UNTIL YOU DO. Exception is {1}",
- ScriptEngineName, e);
+ ScriptEngineName, e);
}
}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
index 8ad916ccb9..3c91b29e7f 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs
@@ -418,7 +418,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
{
InstanceData id = m_ScriptManager.GetScript(localID, itemID);
if (id == null)
- return;
+ return;
if (!id.Disabled)
id.Running = true;
@@ -428,7 +428,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
{
InstanceData id = m_ScriptManager.GetScript(localID, itemID);
if (id == null)
- return;
+ return;
id.Running = false;
}
@@ -442,7 +442,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
InstanceData id = m_ScriptManager.GetScript(localID, itemID);
if (id == null)
- return;
+ return;
IEventQueue eq = World.RequestModuleInterface();
if (eq == null)
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs
index 9c1cd4d8d8..6ac209ef7f 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs
@@ -520,13 +520,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine
ExeStage = 5; // ;^) Ewe Loon, for debuging
}
catch (Exception e) // ;^) Ewe Loon, From here down tis fix
- {
+ {
if ((ExeStage == 3)&&(qParams.Length>0))
detparms.Remove(id);
SceneObjectPart ob = m_scriptEngine.World.GetSceneObjectPart(localID);
m_log.InfoFormat("[Script Error] ,{0},{1},@{2},{3},{4},{5}", ob.Name , FunctionName, ExeStage, e.Message, qParams.Length, detparms.Count);
if (ExeStage != 2) throw e;
- }
+ }
}
public uint GetLocalID(UUID itemID)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index c41f2a575f..305160974f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -50,6 +50,9 @@ using OpenSim.Region.ScriptEngine.Shared.Api.Plugins;
using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
using OpenSim.Region.ScriptEngine.Interfaces;
using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
+using OpenSim.Services.Interfaces;
+
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using AssetLandmark = OpenSim.Framework.AssetLandmark;
@@ -2010,10 +2013,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
q = avatar.Rotation; // Currently infrequently updated so may be inaccurate
}
else
- q = part.ParentGroup.GroupRotation; // Likely never get here but just in case
+ q = part.ParentGroup.Rotation; // Likely never get here but just in case
}
else
- q = part.ParentGroup.GroupRotation; // just the group rotation
+ q = part.ParentGroup.Rotation; // just the group rotation
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
}
q = part.GetWorldRotation();
@@ -5002,6 +5005,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (end > src.Length)
end = src.Length;
+ if (stride == 0)
+ stride = 1;
+
// There may be one or two ranges to be considered
if (start != end)
@@ -5028,9 +5034,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// A negative stride reverses the direction of the
// scan producing an inverted list as a result.
- if (stride == 0)
- stride = 1;
-
if (stride > 0)
{
for (int i = 0; i < src.Length; i += stride)
@@ -5054,7 +5057,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
else
{
- result.Add(src.Data[start]);
+ if (start%stride == 0)
+ {
+ result.Add(src.Data[start]);
+ }
}
return result;
@@ -5232,12 +5238,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
- List neighbors = World.CommsManager.GridService.RequestNeighbours(World.RegionInfo.RegionLocX, World.RegionInfo.RegionLocY);
+ List neighbors = World.GridService.GetNeighbours(World.RegionInfo.ScopeID, World.RegionInfo.RegionID);
uint neighborX = World.RegionInfo.RegionLocX + (uint)dir.x;
uint neighborY = World.RegionInfo.RegionLocY + (uint)dir.y;
- foreach (SimpleRegionInfo sri in neighbors)
+ foreach (GridRegion sri in neighbors)
{
if (sri.RegionLocX == neighborX && sri.RegionLocY == neighborY)
return 0;
@@ -7178,10 +7184,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
else
q = avatar.Rotation; // Currently infrequently updated so may be inaccurate
else
- q = m_host.ParentGroup.GroupRotation; // Likely never get here but just in case
+ q = m_host.ParentGroup.Rotation; // Likely never get here but just in case
}
else
- q = m_host.ParentGroup.GroupRotation; // just the group rotation
+ q = m_host.ParentGroup.Rotation; // just the group rotation
return new LSL_Rotation(q.X, q.Y, q.Z, q.W);
}
@@ -8184,7 +8190,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
string reply = String.Empty;
- RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator);
+ GridRegion info = m_ScriptEngine.World.GridService.GetRegionByName(m_ScriptEngine.World.RegionInfo.ScopeID, simulator);
switch (data)
{
@@ -8211,7 +8217,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
ConditionalScriptSleep(1000);
return UUID.Zero.ToString();
}
- int access = info.RegionSettings.Maturity;
+ int access = info.Maturity;
if (access == 0)
reply = "PG";
else if (access == 1)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index ccdd4c50a9..0b95abc599 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -48,6 +48,8 @@ using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
using OpenSim.Region.ScriptEngine.Interfaces;
using OpenSim.Region.ScriptEngine.Shared.Api.Interfaces;
using TPFlags = OpenSim.Framework.Constants.TeleportFlags;
+using OpenSim.Services.Interfaces;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using System.Text.RegularExpressions;
using LSL_Float = OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat;
@@ -599,17 +601,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (regionName.Contains(".") && regionName.Contains(":"))
{
// Try to link the region
- RegionInfo regInfo = HGHyperlink.TryLinkRegion(World,
- presence.ControllingClient,
- regionName);
- // Get the region name
- if (regInfo != null)
+ IHyperlinkService hyperService = World.RequestModuleInterface();
+ if (hyperService != null)
{
- regionName = regInfo.RegionName;
- }
- else
- {
- // Might need to ping the client here in case of failure??
+ GridRegion regInfo = hyperService.TryLinkRegion(presence.ControllingClient,
+ regionName);
+ // Get the region name
+ if (regInfo != null)
+ {
+ regionName = regInfo.RegionName;
+ }
+ else
+ {
+ // Might need to ping the client here in case of failure??
+ }
}
}
presence.ControllingClient.SendTeleportLocationStart();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index d0df3902ad..8dcb1f5c02 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -95,7 +95,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return m_OSSL_Functions.osWindActiveModelPluginName();
}
-// Not yet plugged in as available OSSL functions, so commented out
+// Not yet plugged in as available OSSL functions, so commented out
// void osWindParamSet(string plugin, string param, float value)
// {
// m_OSSL_Functions.osWindParamSet(plugin, param, value);
@@ -329,7 +329,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public string osGetSimulatorVersion()
{
- return m_OSSL_Functions.osGetSimulatorVersion();
+ return m_OSSL_Functions.osGetSimulatorVersion();
}
public Hashtable osParseJSON(string JSON)
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
index 5a94957f08..fe2642958c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
@@ -546,11 +546,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
bool retried = false;
do
{
- lock (CScodeProvider)
- {
- results = CScodeProvider.CompileAssemblyFromSource(
- parameters, Script);
- }
+ lock (CScodeProvider)
+ {
+ results = CScodeProvider.CompileAssemblyFromSource(
+ parameters, Script);
+ }
// Deal with an occasional segv in the compiler.
// Rarely, if ever, occurs twice in succession.
// Line # == 0 and no file name are indications that
@@ -573,20 +573,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
{
complete = true;
}
- }
- while(!complete);
+ } while (!complete);
break;
case enumCompileType.js:
results = JScodeProvider.CompileAssemblyFromSource(
- parameters, Script);
+ parameters, Script);
break;
case enumCompileType.yp:
results = YPcodeProvider.CompileAssemblyFromSource(
- parameters, Script);
+ parameters, Script);
break;
default:
throw new Exception("Compiler is not able to recongnize "+
- "language type \"" + lang.ToString() + "\"");
+ "language type \"" + lang.ToString() + "\"");
}
// Check result
@@ -602,12 +601,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
{
foreach (CompilerError CompErr in results.Errors)
{
-
- string severity = "Error";
- if (CompErr.IsWarning)
- {
- severity = "Warning";
- }
+ string severity = CompErr.IsWarning ? "Warning" : "Error";
KeyValuePair lslPos;
@@ -615,18 +609,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
if (severity == "Error")
{
- lslPos = FindErrorPosition(CompErr.Line, CompErr.Column);
- string text = CompErr.ErrorText;
+ lslPos = FindErrorPosition(CompErr.Line, CompErr.Column);
+ string text = CompErr.ErrorText;
- // Use LSL type names
- if (lang == enumCompileType.lsl)
- text = ReplaceTypes(CompErr.ErrorText);
+ // Use LSL type names
+ if (lang == enumCompileType.lsl)
+ text = ReplaceTypes(CompErr.ErrorText);
- // The Second Life viewer's script editor begins
- // countingn lines and columns at 0, so we subtract 1.
- errtext += String.Format("Line ({0},{1}): {4} {2}: {3}\n",
- lslPos.Key - 1, lslPos.Value - 1,
- CompErr.ErrorNumber, text, severity);
+ // The Second Life viewer's script editor begins
+ // countingn lines and columns at 0, so we subtract 1.
+ errtext += String.Format("Line ({0},{1}): {4} {2}: {3}\n",
+ lslPos.Key - 1, lslPos.Value - 1,
+ CompErr.ErrorNumber, text, severity);
hadErrors = true;
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs
index 4855d6448e..84ccafe3a9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Helpers.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Helpers.cs
@@ -218,16 +218,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
}
}
- Position = new LSL_Types.Vector3(part.AbsolutePosition.X,
- part.AbsolutePosition.Y,
- part.AbsolutePosition.Z);
+ Vector3 absPos = part.AbsolutePosition;
+ Position = new LSL_Types.Vector3(absPos.X, absPos.Y, absPos.Z);
- Quaternion wr = part.ParentGroup.GroupRotation;
+ Quaternion wr = part.ParentGroup.Rotation;
Rotation = new LSL_Types.Quaternion(wr.X, wr.Y, wr.Z, wr.W);
- Velocity = new LSL_Types.Vector3(part.Velocity.X,
- part.Velocity.Y,
- part.Velocity.Z);
+ Vector3 vel = part.Velocity;
+ Velocity = new LSL_Types.Vector3(vel.X, vel.Y, vel.Z);
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
index 650d9fa533..97166cf507 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
@@ -261,7 +261,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
"SecondLife.Script");
//ILease lease = (ILease)RemotingServices.GetLifetimeService(m_Script as ScriptBaseClass);
- RemotingServices.GetLifetimeService(m_Script as ScriptBaseClass);
+ RemotingServices.GetLifetimeService(m_Script as ScriptBaseClass);
// lease.Register(this);
}
catch (Exception)
@@ -430,7 +430,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
permsGranter = part.TaskInventory[m_ItemID].PermsGranter;
permsMask = part.TaskInventory[m_ItemID].PermsMask;
- }
+ }
if ((permsMask & ScriptBaseClass.PERMISSION_TAKE_CONTROLS) != 0)
{
@@ -630,7 +630,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
///
/// Process the next event queued for this script
///
- ///
+ ///
public object EventProcessor()
{
lock (m_Script)
@@ -925,7 +925,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
public override string ToString()
{
- return String.Format("{0} {1} on {2}", m_ScriptName, m_ItemID, m_PrimName);
+ return String.Format("{0} {1} on {2}", m_ScriptName, m_ItemID, m_PrimName);
}
string FormatException(Exception e)
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 9a972c2385..e6951337e6 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -554,7 +554,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// We must look for the part outside the m_Scripts lock because GetSceneObjectPart later triggers the
// m_parts lock on SOG. At the same time, a scene object that is being deleted will take the m_parts lock
- // and then later on try to take the m_scripts lock in this class when it calls OnRemoveScript()
+ // and then later on try to take the m_scripts lock in this class when it calls OnRemoveScript()
SceneObjectPart part = m_Scene.GetSceneObjectPart(localID);
if (part == null)
{
@@ -562,7 +562,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
m_ScriptErrorMessage += "SceneObjectPart unavailable. Script NOT started.\n";
m_ScriptFailCount++;
return false;
- }
+ }
TaskInventoryItem item = part.Inventory.GetInventoryItem(itemID);
if (item == null)
@@ -692,7 +692,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
AppDomain.CreateDomain(
m_Scene.RegionInfo.RegionID.ToString(),
evidence, appSetup);
-/*
+/*
PolicyLevel sandboxPolicy = PolicyLevel.CreateAppDomainLevel();
AllMembershipCondition sandboxMembershipCondition = new AllMembershipCondition();
PermissionSet sandboxPermissionSet = sandboxPolicy.GetNamedPermissionSet("Internet");
@@ -925,7 +925,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return new XWorkItem(m_ThreadPool.QueueWorkItem(
new WorkItemCallback(this.ProcessEventHandler),
parms));
- }
+ }
///
/// Process a previously posted script event.
diff --git a/OpenSim/Region/UserStatistics/WebStatsModule.cs b/OpenSim/Region/UserStatistics/WebStatsModule.cs
index 519668acd4..a03cc4cf50 100644
--- a/OpenSim/Region/UserStatistics/WebStatsModule.cs
+++ b/OpenSim/Region/UserStatistics/WebStatsModule.cs
@@ -76,7 +76,7 @@ namespace OpenSim.Region.UserStatistics
try
{
cnfg = config.Configs["WebStats"];
- enabled = cnfg.GetBoolean("enabled", false);
+ enabled = cnfg.GetBoolean("enabled", false);
}
catch (Exception)
{
@@ -137,7 +137,7 @@ namespace OpenSim.Region.UserStatistics
m_simstatsCounters.Add(scene.RegionInfo.RegionID, new USimStatsData(scene.RegionInfo.RegionID));
scene.StatsReporter.OnSendStatsResult += ReceiveClassicSimStatsPacket;
- }
+ }
}
public void ReceiveClassicSimStatsPacket(SimStats stats)
diff --git a/OpenSim/ScriptEngine/Components/DotNetEngine/Compilers/CILCompiler.cs b/OpenSim/ScriptEngine/Components/DotNetEngine/Compilers/CILCompiler.cs
index 2db9661438..3d2d9d236d 100644
--- a/OpenSim/ScriptEngine/Components/DotNetEngine/Compilers/CILCompiler.cs
+++ b/OpenSim/ScriptEngine/Components/DotNetEngine/Compilers/CILCompiler.cs
@@ -179,7 +179,7 @@ namespace OpenSim.ScriptEngine.Components.DotNetEngine.Compilers
}
}
- // TODO: Process errors
+ // TODO: Process errors
return OutFile;
}
diff --git a/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/BaseClassFactory.cs b/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/BaseClassFactory.cs
index 3259686dd0..afa2300759 100644
--- a/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/BaseClassFactory.cs
+++ b/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/BaseClassFactory.cs
@@ -36,7 +36,7 @@ using OpenSim.ScriptEngine.Shared;
namespace OpenSim.ScriptEngine.Components.DotNetEngine.Scheduler
{
public class BaseClassFactory
- {
+ {
public static void MakeBaseClass(ScriptStructure script)
diff --git a/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/ScriptLoader.cs b/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/ScriptLoader.cs
index f3b149640e..3c20f2030e 100644
--- a/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/ScriptLoader.cs
+++ b/OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler/ScriptLoader.cs
@@ -115,7 +115,7 @@ namespace OpenSim.ScriptEngine.Components.DotNetEngine.Scheduler
script.AppDomain = FreeAppDomain.CurrentAppDomain;
// Create instance of script
- ScriptAssemblies.IScript mbrt = (ScriptAssemblies.IScript)
+ ScriptAssemblies.IScript mbrt = (ScriptAssemblies.IScript)
FreeAppDomain.CurrentAppDomain.CreateInstanceFromAndUnwrap(
script.AssemblyFileName, "ScriptAssemblies.Script");
//, true, BindingFlags.CreateInstance, null);
diff --git a/OpenSim/Framework/Servers/CheckSumServer.cs b/OpenSim/Server/Base/ProtocolVersions.cs
similarity index 55%
rename from OpenSim/Framework/Servers/CheckSumServer.cs
rename to OpenSim/Server/Base/ProtocolVersions.cs
index ad5281dbcc..8db5bb69d8 100644
--- a/OpenSim/Framework/Servers/CheckSumServer.cs
+++ b/OpenSim/Server/Base/ProtocolVersions.cs
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
@@ -24,3 +24,33 @@
* (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.Server.Base
+{
+ public class ProtocolVersions
+ {
+ ///
+ /// This is the external protocol versions. It is separate from the OpenSimulator project version.
+ ///
+ /// These version numbers should be increased by 1 every time a code
+ /// change in the Service.Connectors and Server.Handlers, espectively,
+ /// makes the previous OpenSimulator revision incompatible
+ /// with the new revision.
+ ///
+ /// Changes which are compatible with an older revision (e.g. older revisions experience degraded functionality
+ /// but not outright failure) do not need a version number increment.
+ ///
+ /// Having this version number allows the grid service to reject connections from regions running a version
+ /// of the code that is too old.
+ ///
+ ///
+
+ // The range of acceptable servers for client-side connectors
+ public readonly static int ClientProtocolVersionMin = 0;
+ public readonly static int ClientProtocolVersionMax = 0;
+
+ // The range of acceptable clients in server-side handlers
+ public readonly static int ServerProtocolVersionMin = 0;
+ public readonly static int ServerProtocolVersionMax = 0;
+ }
+}
diff --git a/OpenSim/Server/Base/ServerUtils.cs b/OpenSim/Server/Base/ServerUtils.cs
index 2340645170..9beadd8110 100644
--- a/OpenSim/Server/Base/ServerUtils.cs
+++ b/OpenSim/Server/Base/ServerUtils.cs
@@ -190,7 +190,7 @@ namespace OpenSim.Server.Base
{
string qstring = String.Empty;
- foreach(KeyValuePair kvp in data)
+ foreach (KeyValuePair kvp in data)
{
string part;
if (kvp.Value != String.Empty)
diff --git a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
index b9a4867a9b..e22328dc66 100644
--- a/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
+++ b/OpenSim/Server/Handlers/Grid/GridServerPostHandler.cs
@@ -118,6 +118,24 @@ namespace OpenSim.Server.Handlers.Grid
else
m_log.WarnFormat("[GRID HANDLER]: no scopeID in request to register region");
+ int versionNumberMin = 0, versionNumberMax = 0;
+ if (request.ContainsKey("VERSIONMIN"))
+ Int32.TryParse(request["VERSIONMIN"], out versionNumberMin);
+ else
+ m_log.WarnFormat("[GRID HANDLER]: no minimum protocol version in request to register region");
+
+ if (request.ContainsKey("VERSIONMAX"))
+ Int32.TryParse(request["VERSIONMAX"], out versionNumberMax);
+ else
+ m_log.WarnFormat("[GRID HANDLER]: no maximum protocol version in request to register region");
+
+ // Check the protocol version
+ if ((versionNumberMin > ProtocolVersions.ServerProtocolVersionMax && versionNumberMax < ProtocolVersions.ServerProtocolVersionMax))
+ {
+ // Can't do, there is no overlap in the acceptable ranges
+ return FailureResult();
+ }
+
Dictionary rinfoData = new Dictionary();
foreach (KeyValuePair kvp in request)
rinfoData[kvp.Key] = kvp.Value;
diff --git a/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs b/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs
index e226759dfd..115ac29a2d 100644
--- a/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs
+++ b/OpenSim/Server/Handlers/Grid/HypergridServerConnector.cs
@@ -36,7 +36,9 @@ using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Server.Handlers.Base;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
+using OpenMetaverse;
using log4net;
using Nwc.XmlRpc;
@@ -48,12 +50,26 @@ namespace OpenSim.Server.Handlers.Grid
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
- private List m_RegionsOnSim = new List();
+ private List m_RegionsOnSim = new List();
+ private IHyperlinkService m_HyperlinkService;
- public HypergridServiceInConnector(IConfigSource config, IHttpServer server) :
+ public HypergridServiceInConnector(IConfigSource config, IHttpServer server, IHyperlinkService hyperService) :
base(config, server, String.Empty)
{
- server.AddXmlRPCHandler("linkk_region", LinkRegionRequest, false);
+ m_HyperlinkService = hyperService;
+ server.AddXmlRPCHandler("link_region", LinkRegionRequest, false);
+ server.AddXmlRPCHandler("expect_hg_user", ExpectHGUser, false);
+ }
+
+ public void AddRegion(GridRegion rinfo)
+ {
+ m_RegionsOnSim.Add(rinfo);
+ }
+
+ public void RemoveRegion(GridRegion rinfo)
+ {
+ if (m_RegionsOnSim.Contains(rinfo))
+ m_RegionsOnSim.Remove(rinfo);
}
///
@@ -70,8 +86,8 @@ namespace OpenSim.Server.Handlers.Grid
m_log.DebugFormat("[HGrid]: Hyperlink request");
- SimpleRegionInfo regInfo = null;
- foreach (SimpleRegionInfo r in m_RegionsOnSim)
+ GridRegion regInfo = null;
+ foreach (GridRegion r in m_RegionsOnSim)
{
if ((r.RegionName != null) && (name != null) && (r.RegionName.ToLower() == name.ToLower()))
{
@@ -85,9 +101,9 @@ namespace OpenSim.Server.Handlers.Grid
Hashtable hash = new Hashtable();
hash["uuid"] = regInfo.RegionID.ToString();
+ m_log.Debug(">> Here " + regInfo.RegionID);
hash["handle"] = regInfo.RegionHandle.ToString();
- //m_log.Debug(">> Here " + regInfo.RegionHandle);
- //hash["region_image"] = regInfo.RegionSettings.TerrainImageID.ToString();
+ hash["region_image"] = regInfo.TerrainImage.ToString();
hash["region_name"] = regInfo.RegionName;
hash["internal_port"] = regInfo.InternalEndPoint.Port.ToString();
//m_log.Debug(">> Here: " + regInfo.InternalEndPoint.Port);
@@ -98,15 +114,95 @@ namespace OpenSim.Server.Handlers.Grid
return response;
}
- public void AddRegion(SimpleRegionInfo rinfo)
+ ///
+ /// Received from other HGrid nodes when a user wants to teleport here. This call allows
+ /// the region to prepare for direct communication from the client. Sends back an empty
+ /// xmlrpc response on completion.
+ /// This is somewhat similar to OGS1's ExpectUser, but with the additional task of
+ /// registering the user in the local user cache.
+ ///
+ ///
+ ///
+ public XmlRpcResponse ExpectHGUser(XmlRpcRequest request, IPEndPoint remoteClient)
{
- m_RegionsOnSim.Add(rinfo);
+ Hashtable requestData = (Hashtable)request.Params[0];
+ ForeignUserProfileData userData = new ForeignUserProfileData();
+
+ userData.FirstName = (string)requestData["firstname"];
+ userData.SurName = (string)requestData["lastname"];
+ userData.ID = new UUID((string)requestData["agent_id"]);
+ UUID sessionID = new UUID((string)requestData["session_id"]);
+ userData.HomeLocation = new Vector3((float)Convert.ToDecimal((string)requestData["startpos_x"]),
+ (float)Convert.ToDecimal((string)requestData["startpos_y"]),
+ (float)Convert.ToDecimal((string)requestData["startpos_z"]));
+
+ userData.UserServerURI = (string)requestData["userserver_id"];
+ userData.UserAssetURI = (string)requestData["assetserver_id"];
+ userData.UserInventoryURI = (string)requestData["inventoryserver_id"];
+
+ m_log.DebugFormat("[HGrid]: Prepare for connection from {0} {1} (@{2}) UUID={3}",
+ userData.FirstName, userData.SurName, userData.UserServerURI, userData.ID);
+
+ ulong userRegionHandle = 0;
+ int userhomeinternalport = 0;
+ if (requestData.ContainsKey("region_uuid"))
+ {
+ UUID uuid = UUID.Zero;
+ UUID.TryParse((string)requestData["region_uuid"], out uuid);
+ userData.HomeRegionID = uuid;
+ userRegionHandle = Convert.ToUInt64((string)requestData["regionhandle"]);
+ userData.UserHomeAddress = (string)requestData["home_address"];
+ userData.UserHomePort = (string)requestData["home_port"];
+ userhomeinternalport = Convert.ToInt32((string)requestData["internal_port"]);
+
+ m_log.Debug("[HGrid]: home_address: " + userData.UserHomeAddress +
+ "; home_port: " + userData.UserHomePort);
+ }
+ else
+ m_log.WarnFormat("[HGrid]: User has no home region information");
+
+ XmlRpcResponse resp = new XmlRpcResponse();
+
+ // Let's check if someone is trying to get in with a stolen local identity.
+ // The need for this test is a consequence of not having truly global names :-/
+ bool comingHome = false;
+ if (m_HyperlinkService.CheckUserAtEntry(userData.ID, sessionID, out comingHome) == false)
+ {
+ m_log.WarnFormat("[HGrid]: Access denied to foreign user.");
+ Hashtable respdata = new Hashtable();
+ respdata["success"] = "FALSE";
+ respdata["reason"] = "Foreign user has the same ID as a local user, or logins disabled.";
+ resp.Value = respdata;
+ return resp;
+ }
+
+ // Finally, everything looks ok
+ //m_log.Debug("XXX---- EVERYTHING OK ---XXX");
+
+ if (!comingHome)
+ {
+ // We don't do this if the user is coming to the home grid
+ GridRegion home = new GridRegion();
+ home.RegionID = userData.HomeRegionID;
+ home.ExternalHostName = userData.UserHomeAddress;
+ home.HttpPort = Convert.ToUInt32(userData.UserHomePort);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(userRegionHandle, out x, out y);
+ home.RegionLocX = (int)x;
+ home.RegionLocY = (int)y;
+ home.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)userhomeinternalport);
+
+ m_HyperlinkService.AcceptUser(userData, home);
+ }
+ // else the user is coming to a non-home region of the home grid
+ // We simply drop this user information altogether
+
+ Hashtable respdata2 = new Hashtable();
+ respdata2["success"] = "TRUE";
+ resp.Value = respdata2;
+
+ return resp;
}
- public void RemoveRegion(SimpleRegionInfo rinfo)
- {
- if (m_RegionsOnSim.Contains(rinfo))
- m_RegionsOnSim.Remove(rinfo);
- }
}
}
diff --git a/OpenSim/Server/Handlers/Neighbour/NeighbourHandlers.cs b/OpenSim/Server/Handlers/Neighbour/NeighbourHandlers.cs
index c0933a8607..d6ef22e71b 100644
--- a/OpenSim/Server/Handlers/Neighbour/NeighbourHandlers.cs
+++ b/OpenSim/Server/Handlers/Neighbour/NeighbourHandlers.cs
@@ -36,6 +36,7 @@ using OpenSim.Server.Handlers.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
@@ -148,11 +149,14 @@ namespace OpenSim.Server.Handlers.Neighbour
}
// Finally!
- bool success = m_NeighbourService.HelloNeighbour(regionhandle, aRegion);
-
+ GridRegion thisRegion = m_NeighbourService.HelloNeighbour(regionhandle, aRegion);
+
OSDMap resp = new OSDMap(1);
- resp["success"] = OSD.FromBoolean(success);
+ if (thisRegion != null)
+ resp["success"] = OSD.FromBoolean(true);
+ else
+ resp["success"] = OSD.FromBoolean(false);
httpResponse.StatusCode = (int)HttpStatusCode.OK;
diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs
index 88a905c633..ebfd47a52f 100644
--- a/OpenSim/Services/AssetService/AssetService.cs
+++ b/OpenSim/Services/AssetService/AssetService.cs
@@ -155,7 +155,7 @@ namespace OpenSim.Services.AssetService
AssetBase asset = Get(args[2]);
if (asset == null || asset.Data.Length == 0)
- {
+ {
MainConsole.Instance.Output("Asset not found");
return;
}
@@ -195,7 +195,7 @@ namespace OpenSim.Services.AssetService
AssetBase asset = Get(args[2]);
if (asset == null || asset.Data.Length == 0)
- {
+ {
MainConsole.Instance.Output("Asset not found");
return;
}
diff --git a/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs b/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs
index 3167352731..7926efbc80 100644
--- a/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Authorization/AuthorizationServiceConnector.cs
@@ -113,7 +113,7 @@ namespace OpenSim.Services.Connectors
message = response.Message;
return response.IsAuthorized;
- }
+ }
}
}
diff --git a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs b/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs
index 748892a03f..ba46b0d71f 100644
--- a/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Grid/GridServiceConnector.cs
@@ -94,7 +94,8 @@ namespace OpenSim.Services.Connectors
sendData[kvp.Key] = (string)kvp.Value;
sendData["SCOPEID"] = scopeID.ToString();
-
+ sendData["VERSIONMIN"] = ProtocolVersions.ClientProtocolVersionMin.ToString();
+ sendData["VERSIONMAX"] = ProtocolVersions.ClientProtocolVersionMax.ToString();
sendData["METHOD"] = "register";
string reqString = ServerUtils.BuildQueryString(sendData);
diff --git a/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs b/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs
index b5e87439bf..3d7f112cfe 100644
--- a/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Grid/HypergridServiceConnector.cs
@@ -66,10 +66,20 @@ namespace OpenSim.Services.Connectors.Grid
IList paramList = new ArrayList();
paramList.Add(hash);
- XmlRpcRequest request = new XmlRpcRequest("linkk_region", paramList);
+ XmlRpcRequest request = new XmlRpcRequest("link_region", paramList);
string uri = "http://" + info.ExternalEndPoint.Address + ":" + info.HttpPort + "/";
m_log.Debug("[HGrid]: Linking to " + uri);
- XmlRpcResponse response = request.Send(uri, 10000);
+ XmlRpcResponse response = null;
+ try
+ {
+ response = request.Send(uri, 10000);
+ }
+ catch (Exception e)
+ {
+ m_log.Debug("[HGrid]: Exception " + e.Message);
+ return uuid;
+ }
+
if (response.IsFault)
{
m_log.ErrorFormat("[HGrid]: remote call returned an error: {0}", response.FaultString);
@@ -82,6 +92,7 @@ namespace OpenSim.Services.Connectors.Grid
try
{
UUID.TryParse((string)hash["uuid"], out uuid);
+ m_log.Debug(">> HERE, uuid: " + uuid);
info.RegionID = uuid;
if ((string)hash["handle"] != null)
{
@@ -148,5 +159,94 @@ namespace OpenSim.Services.Connectors.Grid
}
}
+ public bool InformRegionOfUser(GridRegion regInfo, AgentCircuitData agentData, GridRegion home, string userServer, string assetServer, string inventoryServer)
+ {
+ string capsPath = agentData.CapsPath;
+ Hashtable loginParams = new Hashtable();
+ loginParams["session_id"] = agentData.SessionID.ToString();
+
+ loginParams["firstname"] = agentData.firstname;
+ loginParams["lastname"] = agentData.lastname;
+
+ loginParams["agent_id"] = agentData.AgentID.ToString();
+ loginParams["circuit_code"] = agentData.circuitcode.ToString();
+ loginParams["startpos_x"] = agentData.startpos.X.ToString();
+ loginParams["startpos_y"] = agentData.startpos.Y.ToString();
+ loginParams["startpos_z"] = agentData.startpos.Z.ToString();
+ loginParams["caps_path"] = capsPath;
+
+ if (home != null)
+ {
+ loginParams["region_uuid"] = home.RegionID.ToString();
+ loginParams["regionhandle"] = home.RegionHandle.ToString();
+ loginParams["home_address"] = home.ExternalHostName;
+ loginParams["home_port"] = home.HttpPort.ToString();
+ loginParams["internal_port"] = home.InternalEndPoint.Port.ToString();
+
+ m_log.Debug(" --------- Home -------");
+ m_log.Debug(" >> " + loginParams["home_address"] + " <<");
+ m_log.Debug(" >> " + loginParams["region_uuid"] + " <<");
+ m_log.Debug(" >> " + loginParams["regionhandle"] + " <<");
+ m_log.Debug(" >> " + loginParams["home_port"] + " <<");
+ m_log.Debug(" --------- ------------ -------");
+ }
+ else
+ m_log.WarnFormat("[HGrid]: Home region not found for {0} {1}", agentData.firstname, agentData.lastname);
+
+ loginParams["userserver_id"] = userServer;
+ loginParams["assetserver_id"] = assetServer;
+ loginParams["inventoryserver_id"] = inventoryServer;
+
+
+ ArrayList SendParams = new ArrayList();
+ SendParams.Add(loginParams);
+
+ // Send
+ string uri = "http://" + regInfo.ExternalHostName + ":" + regInfo.HttpPort + "/";
+ //m_log.Debug("XXX uri: " + uri);
+ XmlRpcRequest request = new XmlRpcRequest("expect_hg_user", SendParams);
+ XmlRpcResponse reply;
+ try
+ {
+ reply = request.Send(uri, 6000);
+ }
+ catch (Exception e)
+ {
+ m_log.Warn("[HGrid]: Failed to notify region about user. Reason: " + e.Message);
+ return false;
+ }
+
+ if (!reply.IsFault)
+ {
+ bool responseSuccess = true;
+ if (reply.Value != null)
+ {
+ Hashtable resp = (Hashtable)reply.Value;
+ if (resp.ContainsKey("success"))
+ {
+ if ((string)resp["success"] == "FALSE")
+ {
+ responseSuccess = false;
+ }
+ }
+ }
+ if (responseSuccess)
+ {
+ m_log.Info("[HGrid]: Successfully informed remote region about user " + agentData.AgentID);
+ return true;
+ }
+ else
+ {
+ m_log.ErrorFormat("[HGrid]: Region responded that it is not available to receive clients");
+ return false;
+ }
+ }
+ else
+ {
+ m_log.ErrorFormat("[HGrid]: XmlRpc request to region failed with message {0}, code {1} ", reply.FaultString, reply.FaultCode);
+ return false;
+ }
+ }
+
}
}
diff --git a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
index 0243f1fd8a..06bc11cebe 100644
--- a/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Land/LandServiceConnector.cs
@@ -38,6 +38,7 @@ using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Services.Interfaces;
using OpenMetaverse;
using Nwc.XmlRpc;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Services.Connectors
{
@@ -47,20 +48,20 @@ namespace OpenSim.Services.Connectors
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
- protected IGridServices m_MapService = null;
+ protected IGridService m_GridService = null;
public LandServicesConnector()
{
}
- public LandServicesConnector(IGridServices gridServices)
+ public LandServicesConnector(IGridService gridServices)
{
Initialise(gridServices);
}
- public virtual void Initialise(IGridServices gridServices)
+ public virtual void Initialise(IGridService gridServices)
{
- m_MapService = gridServices;
+ m_GridService = gridServices;
}
public virtual LandData GetLandData(ulong regionHandle, uint x, uint y)
@@ -76,7 +77,9 @@ namespace OpenSim.Services.Connectors
try
{
- RegionInfo info = m_MapService.RequestNeighbourInfo(regionHandle);
+ uint xpos = 0, ypos = 0;
+ Utils.LongToUInts(regionHandle, out xpos, out ypos);
+ GridRegion info = m_GridService.GetRegionByPosition(UUID.Zero, (int)xpos, (int)ypos);
if (info != null) // just to be sure
{
XmlRpcRequest request = new XmlRpcRequest("land_data", paramList);
diff --git a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs
index 7fff5377bb..145f212590 100644
--- a/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Neighbour/NeighbourServiceConnector.cs
@@ -41,6 +41,8 @@ using OpenSim.Services.Interfaces;
using OpenMetaverse;
using OpenMetaverse.StructuredData;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
+
namespace OpenSim.Services.Connectors
{
public class NeighbourServicesConnector : INeighbourService
@@ -49,37 +51,39 @@ namespace OpenSim.Services.Connectors
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
- protected IGridServices m_MapService = null;
+ protected IGridService m_GridService = null;
public NeighbourServicesConnector()
{
}
- public NeighbourServicesConnector(IGridServices gridServices)
+ public NeighbourServicesConnector(IGridService gridServices)
{
Initialise(gridServices);
}
- public virtual void Initialise(IGridServices gridServices)
+ public virtual void Initialise(IGridService gridServices)
{
- m_MapService = gridServices;
+ m_GridService = gridServices;
}
- public virtual bool HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
+ public virtual GridRegion HelloNeighbour(ulong regionHandle, RegionInfo thisRegion)
{
- RegionInfo regInfo = m_MapService.RequestNeighbourInfo(regionHandle);
+ uint x = 0, y = 0;
+ Utils.LongToUInts(regionHandle, out x, out y);
+ GridRegion regInfo = m_GridService.GetRegionByPosition(UUID.Zero, (int)x, (int)y);
if ((regInfo != null) &&
// Don't remote-call this instance; that's a startup hickup
!((regInfo.ExternalHostName == thisRegion.ExternalHostName) && (regInfo.HttpPort == thisRegion.HttpPort)))
{
- return DoHelloNeighbourCall(regInfo, thisRegion);
+ DoHelloNeighbourCall(regInfo, thisRegion);
}
//else
// m_log.Warn("[REST COMMS]: Region not found " + regionHandle);
- return false;
+ return regInfo;
}
- public bool DoHelloNeighbourCall(RegionInfo region, RegionInfo thisRegion)
+ public bool DoHelloNeighbourCall(GridRegion region, RegionInfo thisRegion)
{
string uri = "http://" + region.ExternalEndPoint.Address + ":" + region.HttpPort + "/region/" + thisRegion.RegionID + "/";
//m_log.Debug(" >>> DoHelloNeighbourCall <<< " + uri);
diff --git a/OpenSim/Services/Interfaces/IGridService.cs b/OpenSim/Services/Interfaces/IGridService.cs
index ce432ab8cd..2290530a34 100644
--- a/OpenSim/Services/Interfaces/IGridService.cs
+++ b/OpenSim/Services/Interfaces/IGridService.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Services.Interfaces
///
///
/// Thrown if region deregistration failed
- bool DeregisterRegion(UUID regionID);
+ bool DeregisterRegion(UUID regionID);
///
/// Get information about the regions neighbouring the given co-ordinates (in meters).
@@ -122,9 +122,6 @@ namespace OpenSim.Services.Interfaces
}
protected string m_regionName = String.Empty;
- protected bool Allow_Alternate_Ports;
- public bool m_allow_alternate_ports;
-
protected string m_externalHostName;
protected IPEndPoint m_internalEndPoint;
@@ -146,6 +143,11 @@ namespace OpenSim.Services.Interfaces
public UUID RegionID = UUID.Zero;
public UUID ScopeID = UUID.Zero;
+ public UUID TerrainImage = UUID.Zero;
+ public byte Access;
+ public int Maturity;
+ public string RegionSecret;
+
public GridRegion()
{
}
@@ -183,11 +185,29 @@ namespace OpenSim.Services.Interfaces
m_internalEndPoint = ConvertFrom.InternalEndPoint;
m_externalHostName = ConvertFrom.ExternalHostName;
m_httpPort = ConvertFrom.HttpPort;
- m_allow_alternate_ports = ConvertFrom.m_allow_alternate_ports;
- RegionID = UUID.Zero;
+ RegionID = ConvertFrom.RegionID;
ServerURI = ConvertFrom.ServerURI;
+ TerrainImage = ConvertFrom.RegionSettings.TerrainImageID;
+ Access = ConvertFrom.AccessLevel;
+ Maturity = ConvertFrom.RegionSettings.Maturity;
+ RegionSecret = ConvertFrom.regionSecret;
}
+ public GridRegion(GridRegion ConvertFrom)
+ {
+ m_regionName = ConvertFrom.RegionName;
+ m_regionLocX = ConvertFrom.RegionLocX;
+ m_regionLocY = ConvertFrom.RegionLocY;
+ m_internalEndPoint = ConvertFrom.InternalEndPoint;
+ m_externalHostName = ConvertFrom.ExternalHostName;
+ m_httpPort = ConvertFrom.HttpPort;
+ RegionID = ConvertFrom.RegionID;
+ ServerURI = ConvertFrom.ServerURI;
+ TerrainImage = ConvertFrom.TerrainImage;
+ Access = ConvertFrom.Access;
+ Maturity = ConvertFrom.Maturity;
+ RegionSecret = ConvertFrom.RegionSecret;
+ }
///
/// This accessor can throw all the exceptions that Dns.GetHostAddresses can throw.
@@ -268,7 +288,10 @@ namespace OpenSim.Services.Interfaces
kvp["serverHttpPort"] = HttpPort.ToString();
kvp["serverURI"] = ServerURI;
kvp["serverPort"] = InternalEndPoint.Port.ToString();
-
+ kvp["regionMapTexture"] = TerrainImage.ToString();
+ kvp["access"] = Access.ToString();
+ kvp["regionSecret"] = RegionSecret;
+ // Maturity doesn't seem to exist in the DB
return kvp;
}
@@ -312,6 +335,16 @@ namespace OpenSim.Services.Interfaces
if (kvp.ContainsKey("serverURI"))
ServerURI = (string)kvp["serverURI"];
+
+ if (kvp.ContainsKey("regionMapTexture"))
+ UUID.TryParse((string)kvp["regionMapTexture"], out TerrainImage);
+
+ if (kvp.ContainsKey("access"))
+ Access = Byte.Parse((string)kvp["access"]);
+
+ if (kvp.ContainsKey("regionSecret"))
+ RegionSecret =(string)kvp["regionSecret"];
+
}
}
diff --git a/OpenSim/Framework/Communications/IHyperlink.cs b/OpenSim/Services/Interfaces/IHyperlink.cs
similarity index 75%
rename from OpenSim/Framework/Communications/IHyperlink.cs
rename to OpenSim/Services/Interfaces/IHyperlink.cs
index 505738676e..ed3ff237de 100644
--- a/OpenSim/Framework/Communications/IHyperlink.cs
+++ b/OpenSim/Services/Interfaces/IHyperlink.cs
@@ -25,14 +25,25 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-namespace OpenSim.Framework.Communications
+using OpenSim.Framework;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
+
+using OpenMetaverse;
+
+namespace OpenSim.Services.Interfaces
{
- public interface IHyperlink
+ public interface IHyperlinkService
{
- bool IsHyperlinkRegion(ulong handle);
- RegionInfo GetHyperlinkRegion(ulong handle);
+ GridRegion TryLinkRegion(IClientAPI client, string regionDescriptor);
+ GridRegion GetHyperlinkRegion(ulong handle);
ulong FindRegionHandle(ulong handle);
- bool SendUserInformation(RegionInfo region, AgentCircuitData aCircuit);
+
+ bool SendUserInformation(GridRegion region, AgentCircuitData aCircuit);
void AdjustUserInformation(AgentCircuitData aCircuit);
+
+ bool CheckUserAtEntry(UUID userID, UUID sessionID, out bool comingHome);
+ void AcceptUser(ForeignUserProfileData user, GridRegion home);
+
+ bool IsLocalUser(UUID userID);
}
}
diff --git a/OpenSim/Services/Interfaces/INeighbourService.cs b/OpenSim/Services/Interfaces/INeighbourService.cs
index 39444869bf..960e13d036 100644
--- a/OpenSim/Services/Interfaces/INeighbourService.cs
+++ b/OpenSim/Services/Interfaces/INeighbourService.cs
@@ -28,11 +28,12 @@
using System;
using OpenSim.Framework;
using OpenMetaverse;
+using GridRegion = OpenSim.Services.Interfaces.GridRegion;
namespace OpenSim.Services.Interfaces
{
public interface INeighbourService
{
- bool HelloNeighbour(ulong regionHandle, RegionInfo thisRegion);
+ GridRegion HelloNeighbour(ulong regionHandle, RegionInfo otherRegion);
}
}
diff --git a/OpenSim/Services/InventoryService/InventoryService.cs b/OpenSim/Services/InventoryService/InventoryService.cs
index b98e256c06..70c55a5d06 100644
--- a/OpenSim/Services/InventoryService/InventoryService.cs
+++ b/OpenSim/Services/InventoryService/InventoryService.cs
@@ -251,7 +251,7 @@ namespace OpenSim.Services.InventoryService
m_log.DebugFormat("[INVENTORY SERVICE]: Found {0} items and {1} folders in folder {2}", items.Count, folders.Count, folderID);
- return invCollection;
+ return invCollection;
}
public InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
diff --git a/OpenSim/Tests/Clients/Grid/GridClient.cs b/OpenSim/Tests/Clients/Grid/GridClient.cs
index 941406e693..8798c5ed5b 100644
--- a/OpenSim/Tests/Clients/Grid/GridClient.cs
+++ b/OpenSim/Tests/Clients/Grid/GridClient.cs
@@ -1,4 +1,31 @@
-using System;
+/*
+ * 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 System.Reflection;
@@ -28,7 +55,7 @@ namespace OpenSim.Tests.Clients.GridClient
new PatternLayout("%date [%thread] %-5level %logger [%property{NDC}] - %message%newline");
log4net.Config.BasicConfigurator.Configure(consoleAppender);
- string serverURI = "http://127.0.0.1:8002";
+ string serverURI = "http://127.0.0.1:8001";
GridServicesConnector m_Connector = new GridServicesConnector(serverURI);
GridRegion r1 = CreateRegion("Test Region 1", 1000, 1000);
diff --git a/OpenSim/Tests/Common/LongRunningAttribute.cs b/OpenSim/Tests/Common/LongRunningAttribute.cs
index 37cbbcd962..9831ea86fc 100644
--- a/OpenSim/Tests/Common/LongRunningAttribute.cs
+++ b/OpenSim/Tests/Common/LongRunningAttribute.cs
@@ -43,7 +43,7 @@ namespace OpenSim.Tests.Common
}
protected LongRunningAttribute(string category) : base(category)
- {
+ {
}
}
}
diff --git a/OpenSim/Tests/Common/Mock/TestAssetDataPlugin.cs b/OpenSim/Tests/Common/Mock/TestAssetDataPlugin.cs
index 3981fe9bf1..20ea18fd80 100644
--- a/OpenSim/Tests/Common/Mock/TestAssetDataPlugin.cs
+++ b/OpenSim/Tests/Common/Mock/TestAssetDataPlugin.cs
@@ -39,7 +39,7 @@ namespace OpenSim.Tests.Common.Mock
/// tests are single threaded.
///
public class TestAssetDataPlugin : BaseAssetRepository, IAssetDataPlugin
- {
+ {
public string Version { get { return "0"; } }
public string Name { get { return "TestAssetDataPlugin"; } }
@@ -59,6 +59,6 @@ namespace OpenSim.Tests.Common.Mock
assets.Add(asset);
}
- public List FetchAssetMetadataSet(int start, int count) { return new List(count); }
+ public List FetchAssetMetadataSet(int start, int count) { return new List(count); }
}
}
\ No newline at end of file
diff --git a/OpenSim/Tests/Common/Mock/TestAssetService.cs b/OpenSim/Tests/Common/Mock/TestAssetService.cs
index 81f123a1e5..317ec064c9 100644
--- a/OpenSim/Tests/Common/Mock/TestAssetService.cs
+++ b/OpenSim/Tests/Common/Mock/TestAssetService.cs
@@ -49,7 +49,7 @@ namespace OpenSim.Tests.Common.Mock
if (Assets.ContainsKey(id))
asset = Assets[id];
else
- asset = null;
+ asset = null;
return asset;
}
@@ -65,7 +65,7 @@ namespace OpenSim.Tests.Common.Mock
}
public bool Get(string id, object sender, AssetRetrieved handler)
- {
+ {
handler(id, sender, Get(id));
return true;
diff --git a/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs b/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs
index 4313c968b1..013462ebee 100644
--- a/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs
+++ b/OpenSim/Tests/Common/Mock/TestCommunicationsManager.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Tests.Common.Mock
public TestCommunicationsManager(NetworkServersInfo serversInfo)
: base(serversInfo, null)
- {
+ {
LocalUserServices lus = new LocalUserServices(991, 992, this);
lus.AddPlugin(new TemporaryUserProfilePlugin());
@@ -65,8 +65,6 @@ namespace OpenSim.Tests.Common.Mock
m_userService = lus;
m_userAdminService = lus;
- LocalBackEndServices gs = new LocalBackEndServices();
- m_gridService = gs;
}
}
}
diff --git a/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs b/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs
index daef38b146..0c7ebca19b 100644
--- a/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs
+++ b/OpenSim/Tests/Common/Mock/TestInventoryDataPlugin.cs
@@ -52,7 +52,7 @@ namespace OpenSim.Tests.Common.Mock
////
/// Inventory items
///
- private Dictionary m_items = new Dictionary();
+ private Dictionary m_items = new Dictionary();
///
/// User root folders
@@ -120,7 +120,7 @@ namespace OpenSim.Tests.Common.Mock
}
return folders;
- }
+ }
public InventoryFolderBase getInventoryFolder(UUID folderId)
{
@@ -191,7 +191,7 @@ namespace OpenSim.Tests.Common.Mock
public InventoryItemBase queryInventoryItem(UUID item)
{
return null;
- }
+ }
public List fetchActiveGestures(UUID avatarID) { return null; }
}
diff --git a/OpenSim/Tests/Common/Mock/TestLandChannel.cs b/OpenSim/Tests/Common/Mock/TestLandChannel.cs
index f7eda68918..01b52030b4 100644
--- a/OpenSim/Tests/Common/Mock/TestLandChannel.cs
+++ b/OpenSim/Tests/Common/Mock/TestLandChannel.cs
@@ -31,7 +31,7 @@ using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
namespace OpenSim.Tests.Common.Mock
-{
+{
///
/// Land channel for test purposes
///
@@ -40,7 +40,7 @@ namespace OpenSim.Tests.Common.Mock
public List ParcelsNearPoint(Vector3 position) { return null; }
public List AllParcels() { return null; }
public ILandObject GetLandObject(int x, int y) { return null; }
- public ILandObject GetLandObject(int localID) { return null; }
+ public ILandObject GetLandObject(int localID) { return null; }
public ILandObject GetLandObject(float x, float y) { return null; }
public bool IsLandPrimCountTainted() { return false; }
public bool IsForcefulBansAllowed() { return false; }
diff --git a/OpenSim/Tests/Common/Mock/TestScene.cs b/OpenSim/Tests/Common/Mock/TestScene.cs
index 3fc22ba34b..22cfa2cd10 100644
--- a/OpenSim/Tests/Common/Mock/TestScene.cs
+++ b/OpenSim/Tests/Common/Mock/TestScene.cs
@@ -35,9 +35,9 @@ using OpenSim.Region.Framework;
using OpenSim.Region.Framework.Scenes;
namespace OpenSim.Tests.Common.Mock
-{
+{
public class TestScene : Scene
- {
+ {
public TestScene(
RegionInfo regInfo, AgentCircuitManager authen,
CommunicationsManager commsMan, SceneCommunicationService sceneGridService, StorageManager storeManager,
@@ -60,7 +60,7 @@ namespace OpenSim.Tests.Common.Mock
{
reason = String.Empty;
return true;
- }
+ }
public AsyncSceneObjectGroupDeleter SceneObjectGroupDeleter
{
diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
index 0d8baadec5..53f24d9207 100644
--- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
+++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs
@@ -44,6 +44,7 @@ using OpenSim.Region.CoreModules.Agent.Capabilities;
using OpenSim.Region.CoreModules.Avatar.Gods;
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset;
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory;
+using OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid;
using OpenSim.Services.Interfaces;
using OpenSim.Tests.Common.Mock;
@@ -58,6 +59,7 @@ namespace OpenSim.Tests.Common.Setup
// CommunicationsManager.
private static ISharedRegionModule m_assetService = null;
private static ISharedRegionModule m_inventoryService = null;
+ private static ISharedRegionModule m_gridService = null;
private static TestCommunicationsManager commsManager = null;
///
@@ -110,6 +112,7 @@ namespace OpenSim.Tests.Common.Setup
return SetupScene(name, id, x, y, cm, "");
}
+
///
/// Set up a scene. If it's more then one scene, use the same CommunicationsManager to link regions
/// or a different, to get a brand new scene with new shared region modules.
@@ -176,6 +179,9 @@ namespace OpenSim.Tests.Common.Setup
StartInventoryService(testScene, true);
else
StartInventoryService(testScene, false);
+ if (realServices.Contains("grid"))
+ StartGridService(testScene, true);
+
}
// If not, make sure the shared module gets references to this new scene
else
@@ -241,6 +247,29 @@ namespace OpenSim.Tests.Common.Setup
m_inventoryService = inventoryService;
}
+ private static void StartGridService(Scene testScene, bool real)
+ {
+ IConfigSource config = new IniConfigSource();
+ config.AddConfig("Modules");
+ config.AddConfig("GridService");
+ config.Configs["Modules"].Set("GridServices", "LocalGridServicesConnector");
+ config.Configs["GridService"].Set("StorageProvider", "OpenSim.Data.Null.dll:NullRegionData");
+ if (real)
+ config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Services.GridService.dll:GridService");
+ if (m_gridService == null)
+ {
+ ISharedRegionModule gridService = new LocalGridServicesConnector();
+ gridService.Initialise(config);
+ m_gridService = gridService;
+ }
+ //else
+ // config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Tests.Common.dll:TestGridService");
+ m_gridService.AddRegion(testScene);
+ m_gridService.RegionLoaded(testScene);
+ //testScene.AddRegionModule(m_gridService.Name, m_gridService);
+ }
+
+
///
/// Setup modules for a scene using their default settings.
///
diff --git a/OpenSim/Tests/Common/Setup/UserInventoryTestUtils.cs b/OpenSim/Tests/Common/Setup/UserInventoryTestUtils.cs
index 352807213f..7e0c5672df 100644
--- a/OpenSim/Tests/Common/Setup/UserInventoryTestUtils.cs
+++ b/OpenSim/Tests/Common/Setup/UserInventoryTestUtils.cs
@@ -31,10 +31,10 @@ using OpenSim.Framework;
using OpenSim.Services.Interfaces;
namespace OpenSim.Tests.Common
-{
+{
///
/// Utility functions for carrying out user inventory related tests.
- ///
+ ///
public static class UserInventoryTestUtils
{
public static readonly string PATH_DELIMITER = "/";
@@ -78,7 +78,7 @@ namespace OpenSim.Tests.Common
///
///
/// The folder created. If the path contains multiple folders then the last one created is returned.
- ///
+ ///
public static InventoryFolderBase CreateInventoryFolder(
IInventoryService inventoryService, InventoryFolderBase parentFolder, string path)
{
@@ -91,7 +91,7 @@ namespace OpenSim.Tests.Common
if (components.Length > 1)
return CreateInventoryFolder(inventoryService, newFolder, components[1]);
else
- return newFolder;
+ return newFolder;
}
}
}
\ No newline at end of file
diff --git a/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs b/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs
index 4ad9926734..3ca44a12d1 100644
--- a/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs
+++ b/OpenSim/Tests/Common/Setup/UserProfileTestUtils.cs
@@ -31,12 +31,12 @@ using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.Communications.Local;
namespace OpenSim.Tests.Common.Setup
-{
+{
///
/// Utility functions for carrying out user profile related tests.
///
public static class UserProfileTestUtils
- {
+ {
///
/// Create a test user with a standard inventory
///
@@ -51,7 +51,7 @@ namespace OpenSim.Tests.Common.Setup
{
UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000099");
return CreateUserWithInventory(commsManager, userId, callback);
- }
+ }
///
/// Create a test user with a standard inventory
@@ -65,7 +65,7 @@ namespace OpenSim.Tests.Common.Setup
///
public static CachedUserInfo CreateUserWithInventory(
CommunicationsManager commsManager, UUID userId, OnInventoryReceivedDelegate callback)
- {
+ {
return CreateUserWithInventory(commsManager, "Bill", "Bailey", userId, callback);
}
@@ -84,8 +84,8 @@ namespace OpenSim.Tests.Common.Setup
public static CachedUserInfo CreateUserWithInventory(
CommunicationsManager commsManager, string firstName, string lastName,
UUID userId, OnInventoryReceivedDelegate callback)
- {
- LocalUserServices lus = (LocalUserServices)commsManager.UserService;
+ {
+ LocalUserServices lus = (LocalUserServices)commsManager.UserService;
lus.AddUser(firstName, lastName, "troll", "bill@bailey.com", 1000, 1000, userId);
CachedUserInfo userInfo = commsManager.UserProfileCacheService.GetUserDetails(userId);
@@ -93,6 +93,6 @@ namespace OpenSim.Tests.Common.Setup
userInfo.FetchInventory();
return userInfo;
- }
+ }
}
}
diff --git a/OpenSim/Tools/Compiler/Program.cs b/OpenSim/Tools/Compiler/Program.cs
index 9cd6bc8c8d..b18e029be2 100644
--- a/OpenSim/Tools/Compiler/Program.cs
+++ b/OpenSim/Tools/Compiler/Program.cs
@@ -37,19 +37,19 @@ namespace OpenSim.Tools.LSL.Compiler
class Program
{
private static Dictionary, KeyValuePair> m_positionMap;
- private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider();
+ private static CSharpCodeProvider CScodeProvider = new CSharpCodeProvider();
static void Main(string[] args)
{
- string source = null;
+ string source = null;
- if(args.Length == 0)
+ if (args.Length == 0)
{
Console.WriteLine("No input file specified");
Environment.Exit(1);
}
- if(!File.Exists(args[0]))
+ if (!File.Exists(args[0]))
{
Console.WriteLine("Input file does not exist");
Environment.Exit(1);
@@ -136,11 +136,7 @@ namespace OpenSim.Tools.LSL.Compiler
string errtext = String.Empty;
foreach (CompilerError CompErr in results.Errors)
{
- string severity = "Error";
- if ( CompErr.IsWarning )
- {
- severity = "Warning";
- }
+ string severity = CompErr.IsWarning ? "Warning" : "Error";
KeyValuePair lslPos;
@@ -153,8 +149,8 @@ namespace OpenSim.Tools.LSL.Compiler
// The Second Life viewer's script editor begins
// countingn lines and columns at 0, so we subtract 1.
errtext += String.Format("Line ({0},{1}): {4} {2}: {3}\n",
- lslPos.Key - 1, lslPos.Value - 1,
- CompErr.ErrorNumber, text, severity);
+ lslPos.Key - 1, lslPos.Value - 1,
+ CompErr.ErrorNumber, text, severity);
}
disp = "Completed with errors";
@@ -237,20 +233,20 @@ namespace OpenSim.Tools.LSL.Compiler
private static string ReplaceTypes(string message)
{
message = message.Replace(
- "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString",
- "string");
+ "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString",
+ "string");
message = message.Replace(
- "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger",
- "integer");
+ "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLInteger",
+ "integer");
message = message.Replace(
- "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat",
- "float");
+ "OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLFloat",
+ "float");
message = message.Replace(
- "OpenSim.Region.ScriptEngine.Shared.LSL_Types.list",
- "list");
+ "OpenSim.Region.ScriptEngine.Shared.LSL_Types.list",
+ "list");
return message;
}
@@ -263,7 +259,7 @@ namespace OpenSim.Tools.LSL.Compiler
private class kvpSorter : IComparer>
{
public int Compare(KeyValuePair a,
- KeyValuePair b)
+ KeyValuePair b)
{
return a.Key.CompareTo(b.Key);
}
diff --git a/Prebuild/COPYING b/Prebuild/COPYING
index d3cdf7e38e..c57c080b15 100644
--- a/Prebuild/COPYING
+++ b/Prebuild/COPYING
@@ -1,65 +1,65 @@
-BSD License
-Copyright (c)2004-2008
-
-See AUTHORS file for list of copyright holders
-
-Dave Hudson (jendave@yahoo.com),
-Matthew Holmes (matthew@wildfiregames.com)
-Dan Moorehead (dan05a@gmail.com)
-Rob Loach (http://www.robloach.net)
-C.J. Adams-Collier (cjac@colliertech.org)
-
-http://dnpb.sourceforge.net
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
-2. 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.
-
-3. The names of the authors may not be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "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
- COPYRIGHT OWNER OR 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.
-
----
-
-Portions of src/Core/Targets/AutotoolsTarget.cs
-// Copyright (C) 2006 Novell, Inc (http://www.novell.com)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+BSD License
+Copyright (c)2004-2008
+
+See AUTHORS file for list of copyright holders
+
+Dave Hudson (jendave@yahoo.com),
+Matthew Holmes (matthew@wildfiregames.com)
+Dan Moorehead (dan05a@gmail.com)
+Rob Loach (http://www.robloach.net)
+C.J. Adams-Collier (cjac@colliertech.org)
+
+http://dnpb.sourceforge.net
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+2. 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.
+
+3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "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
+ COPYRIGHT OWNER OR 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.
+
+---
+
+Portions of src/Core/Targets/AutotoolsTarget.cs
+// Copyright (C) 2006 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Prebuild/NEWS b/Prebuild/NEWS
index bea28dac26..3ab3108b4c 100644
--- a/Prebuild/NEWS
+++ b/Prebuild/NEWS
@@ -1,200 +1,200 @@
-Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, MonoDevelop, and NAnt.
-
-Documentation and downloads are available at http://dnpb.sourceforge.net.
-
-Prebuild is licensed under the BSD license.
-
-[ XXXXXXX XX, XXX - 1.3.2 ]
- + Added Keyfile signing to NAnt target and VS2005 target
- + Updated XSD file to 1.7
- + Boo and VisualBasic Language support in VS2005 target
- + Added basic Autotools target. It creates a non-recursive Autotools system.
- ! Multiple files can be excluded from the Match node
- ! VS2005 now handles .resx files correctly.
- ! NAnt and Autotools now handle defines
- ! NAnt and Autotools now handle resources
- + Conditional XML variables can be passed through the command line.
- + Added /install and /remove command line flags to install and remove assemblies from the GAC
- + Many fixes to VS2005 target
-
-[ July 21, 2006 - 1.3.1 ]
- ! VS2005 fixes from Rob Loach
- ! NAnt fixes from Rob Loach and David Hudson
- ! XML doc fixes from Rob Loach
- + Added SharpDevelop2 target (really just uses VS2005 target)
- ! Fixed bug with BuildEvents in Monodevelop target
- + Passing /yes will default to answering yes to any warnings
-
-[ February 28, 2006 - 1.3 ]
- + Added MonoDevelop target.
- + Added NAnt target.
- + Lots of fixes to all targets.
- * Cleaned up the code using FXCop.
- * Updated schema to 1.6 to fix a typo and add a new parameter.
- * jendave is now the maintainer of the project. RobLoach has been added as a developer.
- * Removed references to 'dnpb'.
- + Added rudimentary support for pre- and post- build scripts
- * Updated examples.
-
-[ August 5, 2004 - 1.2 ]
- + Added Visual Studio Express (vs2005express) target contributed by Borrillis and modified for use with different languages
- + Added the allowedgroups command line option followed by a pipe-delimited list of project group filter flags (eg. Group1|Group2) allow optional filtering of all projects that dont have at least one of these flags
- + Added the filterGroups XML attribute to the project node and updated the scheme to v1.5 for this addition, it is used to specified the delimited list of filter groups to which a project belongs
- * Modified the removedir command line option to allow for a pipe-delimited list of directory names
- ! Modified the resource loading code to search for resourced without the prepended namespace (as Visual Studio .NET does it) to allow for it to be compiled with SharpDevelop as well
- + Added the GenerateXmlDocFile boolean option to the Options XML element
- * Changed the behavior of the XmlDocFile option so that if not specified it uses the assemblyName (without file extension) + .xml for the file name instead of just not generating the file since the new GenerateXmlDocFile takes care of this
-
-[ January 3, 2004 - 1.1 ]
- ! Replaced regex use for more efficient manual parsing to allow use on non-windows platforms with Mono which has Regex problems
- + Added the checkOsVars attribute to the root element for enabling interpolation for Enviroment variables in the form ${var}, otherwise no checking is performed for efficiency-sake
- * Make the version attribute on the root element optional as it isn't used and not needed since the schema url contains the version
-
-[ December 30, 2004 - 1.1 ]
- ! Applied Leed's fix for SharpDevelop references
- + Rewrote much of the processing for better validation and without the use of a temp file
- + Added support for configurations at the project level which are named All. They now apply changes to all Solution level defined configs
- * Changed all spaces into tabs
- + Added support for the None build action
- * Replaced all sequence's in the XML schema for all's because the order doesn't matter since the xml file is loaded into an XmlDocument
-
-[ December 25, 2004 - 1.0 ]
- + Added the /removedir option for cleaning directories like obj before file releases
- + Changed WriteTempXml() and the new DeleteTempXml() methods to be compiled only in DEBUG builds
- * Made path optional for Match elements (defaults to current directory) and updates schema for it
- ! Fixed XML example in the readme.txt
- + Added example xml files to docs directory
- * Updated license.txt to add Dan Moorehead and update copyright years
- + Updated prebuild.xml to take advantage of the default path attribute for match elements
- + Updated Clean to delete the obj directories
-
-[ December 25, 2004 - 0.13 ]
- + Added dnpb.exe so that it can be used to generate the project files
- + Added dnpb.ico
- * Added parameterless Write statement to Log for writing a single line
- * Changed scehema to version 1.3 for support of icon attribute
- * Added support for All configuration name under a Project node signifying common settings for all configurations
- ! Fixed the SupressWarnings by adding the corresponding field to OptionsNode
- * Wrote documentation in docs/readme.txt
- * Added Dan Moorehead to copyrights and extended date from 2004 to 2004-2005
- * Updated prebuild.xml
- * Optimized Log class
- * Updated OutputUsage()
- * /clean targets all by default
- * No log file is used by default, /log without value specified uses default file name
- + Added support for the /pause which pauses the utility after execution to observe output
-
-
-[ September 27, 2004 - 0.12.2a ]
- ! Fixed a nasty bug when trying to delete our temp file for pre-processing.
-
-[ September 15, 2004 - 0.12.2 ]
- + Expanded platform identification, thanks to the NAnt guys for shedding some
- light on how to properly check for UNIX platforms! Thanks guys!
- * POSIX OS identifier changed to UNIX. Valid OS names are now "Win32", "UNIX",
- and "Unknown".
- ! Fixed SharpDevelop target to properly use the 'rootNamespace' attribute of
- the Project tag.
- + New command-line switch, /ppo, forces DNPB to pre-process the file and write
- the pre-processed file. This allows you to test/debug your pre-processor
- macros. No other processing will be done. You can specify a target file as
- a paramter for the /ppo switch, or DNPB will write the file 'preprocessed.xml'
- if you do not specify a file.
- + The Match tag now has a 'buildAction' attribute which functions exactly like
- the attribute of the same name for the File tag.
-
-[ August 5, 2004 - 0.12.1 ]
- + Added environment variable expansion for all values. Environment variables
- should be listed in the form ${VAR}.
-
-[ July 30, 2004 - 0.12.0 ]
- + Added preprocessing via XML processing information tags. Available tags
- are: ?>, ?>, and . The
- current expression parser is very basic, but will be replaced with a more
- capable parser over time. Current operators available are: =, !=, <, >,
- <=, >=. Current test variables available: OS, RuntimeVersion, RuntimeMajor,
- RuntimeMinor, RuntimeRevision.
-
-[ July 27, 2004 - 0.11.4 ]
- + Added 'useRegex' attribute to the Match tag. Matches can now use regular
- expressions to match filenames.
- + Added the 'assemblyName' attribute to the Project tag. Projects can now
- set their output assembly name.
- ! Fixed several bugs in the way that Project tags inheirt their parent
- Solutions configuration options. This operation should now work fully as
- intended.
- ! Due to some wierdness, Project Guid's are now stored as part of the Project
- node and created at parse time.
-
-[ May 11, 2004 - 0.11.3 ]
- ! Fixed a bug where I was writing the wrong property name for a projects root
- namespace.
- ! Removed a DEBUG statement I had left in the code in 0.11.2.
- ! Fixed a bug in the VS2002 writer which caused the version variables to not
- be overriden correctly.
- + Added the rootNamespace property to the element, allowing you to
- specify the root namespace.
- * /target and /clean are now mutually exclusive command line switches, and
- they both now take the all option. In the case of /target all, all build
- file for all targets will be created. In the case of /clean all, the user
- will be prompted to make sure they want to do it, and if so, will clean
- all build files for all targets.
-
-[ April 22, 2004 - 0.11.2 ]
- ! Fixed a bug with the /file command-line operator. Was using the unresolved
- file path rather then the resolved one, was making the attempt to open the
- dnpb file fail.
- ! Fixed a bug in the schema that required at least 1 solution and 1 reference
- path. We can do just fine with 0 of either of these. Some files may be all
- statements and not have any tags.
- ! Fixed a bug that caused the project references not to be written with the
- SharpDevelop target.
- * Changed the schema to version 1.2, allowing for Configuration nodes to exist
- under project nodes. The inheritance of values is hierarchical. Meaning, if
- you define a configuration named Debug at the Soltion level, and one by the
- same name at the Project level, the one at the Project level will first
- inherit the options of the Solution level configuration, then set it's own
- options. If you define a configuration at the Project level and it does not
- exist at the Solution level, it will be created at the Solution level.
- * Project references should now work correctly across the board. Note that due
- to a restriction in Visual Studio, you can only reference projects in the same
- solution.
-
-[ April 21, 2004 - 0.11.1 ]
- ! Fixed a problem with resolving paths in various targets. Was not properly
- setting the CWD.
- * Schema updated to 1.1, moving the ReferencePath element from the Options
- element to the Project element. This makes more logical sense, given that
- reference paths are resolved relative to the project path. Any prebuild.xml
- file referecning verison 1.0 will fail! Please update to the 1.1 schema.
-
-[ April 19, 2004 - 0.11.0 ]
- * Added several attributes across the code to make FxCop happy
- ! Fixed bugs in reference paths being written in the VS targets.
- ! Fixed a bug in ProjectNode which was doing two CWDStack.Push() calls instead of
- a Push/Pop pair. Was wreaking havoc with tags.
- ! Fixed some bugs in the path tracking, both the Project and Solution nodes now
- have a FullPath property, which is the full path to the file resolved at load
- time. This should fix all path relativity problems.
- + Added new /clean switch, allowing the target to clean up any files it generated.
- in accordance, the ITarget interface has been updated to support a new Clean()
- method.
- + Completed addition of the tag, to allow the referencing of external
- prebuild.xml files.
- + Added the runtime attribute to the Project element. This allows the developer
- to specify which runtime a project should target (Mono or Microsoft). This is
- of course ignored in certain targets like the Visual Studio targets.
- + Added the SharpDevelop target.
-
-[ April 13, 2004 - 0.10.1a ]
- + Added the buildAction attribute to the File node. This is needed for dnpb
- to even be able to bootstrap itself (dnpb-1.0.xsd must be an embedded resource)
-
-[ April 13, 2004 - 0.10.1 ]
- * First Release
-
-[ Key ]
-* = Change or information
-+ = Addition
-! = Bug Fix
-
+Prebuild is an XML-driven pre-build tool allowing developers to easily generate project or make files for major IDE's and .NET development tools including: Visual Studio 2005, Visual Studio 2003, Visual Studio 2002, SharpDevelop, MonoDevelop, and NAnt.
+
+Documentation and downloads are available at http://dnpb.sourceforge.net.
+
+Prebuild is licensed under the BSD license.
+
+[ XXXXXXX XX, XXX - 1.3.2 ]
+ + Added Keyfile signing to NAnt target and VS2005 target
+ + Updated XSD file to 1.7
+ + Boo and VisualBasic Language support in VS2005 target
+ + Added basic Autotools target. It creates a non-recursive Autotools system.
+ ! Multiple files can be excluded from the Match node
+ ! VS2005 now handles .resx files correctly.
+ ! NAnt and Autotools now handle defines
+ ! NAnt and Autotools now handle resources
+ + Conditional XML variables can be passed through the command line.
+ + Added /install and /remove command line flags to install and remove assemblies from the GAC
+ + Many fixes to VS2005 target
+
+[ July 21, 2006 - 1.3.1 ]
+ ! VS2005 fixes from Rob Loach
+ ! NAnt fixes from Rob Loach and David Hudson
+ ! XML doc fixes from Rob Loach
+ + Added SharpDevelop2 target (really just uses VS2005 target)
+ ! Fixed bug with BuildEvents in Monodevelop target
+ + Passing /yes will default to answering yes to any warnings
+
+[ February 28, 2006 - 1.3 ]
+ + Added MonoDevelop target.
+ + Added NAnt target.
+ + Lots of fixes to all targets.
+ * Cleaned up the code using FXCop.
+ * Updated schema to 1.6 to fix a typo and add a new parameter.
+ * jendave is now the maintainer of the project. RobLoach has been added as a developer.
+ * Removed references to 'dnpb'.
+ + Added rudimentary support for pre- and post- build scripts
+ * Updated examples.
+
+[ August 5, 2004 - 1.2 ]
+ + Added Visual Studio Express (vs2005express) target contributed by Borrillis and modified for use with different languages
+ + Added the allowedgroups command line option followed by a pipe-delimited list of project group filter flags (eg. Group1|Group2) allow optional filtering of all projects that dont have at least one of these flags
+ + Added the filterGroups XML attribute to the project node and updated the scheme to v1.5 for this addition, it is used to specified the delimited list of filter groups to which a project belongs
+ * Modified the removedir command line option to allow for a pipe-delimited list of directory names
+ ! Modified the resource loading code to search for resourced without the prepended namespace (as Visual Studio .NET does it) to allow for it to be compiled with SharpDevelop as well
+ + Added the GenerateXmlDocFile boolean option to the Options XML element
+ * Changed the behavior of the XmlDocFile option so that if not specified it uses the assemblyName (without file extension) + .xml for the file name instead of just not generating the file since the new GenerateXmlDocFile takes care of this
+
+[ January 3, 2004 - 1.1 ]
+ ! Replaced regex use for more efficient manual parsing to allow use on non-windows platforms with Mono which has Regex problems
+ + Added the checkOsVars attribute to the root element for enabling interpolation for Enviroment variables in the form ${var}, otherwise no checking is performed for efficiency-sake
+ * Make the version attribute on the root element optional as it isn't used and not needed since the schema url contains the version
+
+[ December 30, 2004 - 1.1 ]
+ ! Applied Leed's fix for SharpDevelop references
+ + Rewrote much of the processing for better validation and without the use of a temp file
+ + Added support for configurations at the project level which are named All. They now apply changes to all Solution level defined configs
+ * Changed all spaces into tabs
+ + Added support for the None build action
+ * Replaced all sequence's in the XML schema for all's because the order doesn't matter since the xml file is loaded into an XmlDocument
+
+[ December 25, 2004 - 1.0 ]
+ + Added the /removedir option for cleaning directories like obj before file releases
+ + Changed WriteTempXml() and the new DeleteTempXml() methods to be compiled only in DEBUG builds
+ * Made path optional for Match elements (defaults to current directory) and updates schema for it
+ ! Fixed XML example in the readme.txt
+ + Added example xml files to docs directory
+ * Updated license.txt to add Dan Moorehead and update copyright years
+ + Updated prebuild.xml to take advantage of the default path attribute for match elements
+ + Updated Clean to delete the obj directories
+
+[ December 25, 2004 - 0.13 ]
+ + Added dnpb.exe so that it can be used to generate the project files
+ + Added dnpb.ico
+ * Added parameterless Write statement to Log for writing a single line
+ * Changed scehema to version 1.3 for support of icon attribute
+ * Added support for All configuration name under a Project node signifying common settings for all configurations
+ ! Fixed the SupressWarnings by adding the corresponding field to OptionsNode
+ * Wrote documentation in docs/readme.txt
+ * Added Dan Moorehead to copyrights and extended date from 2004 to 2004-2005
+ * Updated prebuild.xml
+ * Optimized Log class
+ * Updated OutputUsage()
+ * /clean targets all by default
+ * No log file is used by default, /log without value specified uses default file name
+ + Added support for the /pause which pauses the utility after execution to observe output
+
+
+[ September 27, 2004 - 0.12.2a ]
+ ! Fixed a nasty bug when trying to delete our temp file for pre-processing.
+
+[ September 15, 2004 - 0.12.2 ]
+ + Expanded platform identification, thanks to the NAnt guys for shedding some
+ light on how to properly check for UNIX platforms! Thanks guys!
+ * POSIX OS identifier changed to UNIX. Valid OS names are now "Win32", "UNIX",
+ and "Unknown".
+ ! Fixed SharpDevelop target to properly use the 'rootNamespace' attribute of
+ the Project tag.
+ + New command-line switch, /ppo, forces DNPB to pre-process the file and write
+ the pre-processed file. This allows you to test/debug your pre-processor
+ macros. No other processing will be done. You can specify a target file as
+ a paramter for the /ppo switch, or DNPB will write the file 'preprocessed.xml'
+ if you do not specify a file.
+ + The Match tag now has a 'buildAction' attribute which functions exactly like
+ the attribute of the same name for the File tag.
+
+[ August 5, 2004 - 0.12.1 ]
+ + Added environment variable expansion for all values. Environment variables
+ should be listed in the form ${VAR}.
+
+[ July 30, 2004 - 0.12.0 ]
+ + Added preprocessing via XML processing information tags. Available tags
+ are: ?>, ?>, and . The
+ current expression parser is very basic, but will be replaced with a more
+ capable parser over time. Current operators available are: =, !=, <, >,
+ <=, >=. Current test variables available: OS, RuntimeVersion, RuntimeMajor,
+ RuntimeMinor, RuntimeRevision.
+
+[ July 27, 2004 - 0.11.4 ]
+ + Added 'useRegex' attribute to the Match tag. Matches can now use regular
+ expressions to match filenames.
+ + Added the 'assemblyName' attribute to the Project tag. Projects can now
+ set their output assembly name.
+ ! Fixed several bugs in the way that Project tags inheirt their parent
+ Solutions configuration options. This operation should now work fully as
+ intended.
+ ! Due to some wierdness, Project Guid's are now stored as part of the Project
+ node and created at parse time.
+
+[ May 11, 2004 - 0.11.3 ]
+ ! Fixed a bug where I was writing the wrong property name for a projects root
+ namespace.
+ ! Removed a DEBUG statement I had left in the code in 0.11.2.
+ ! Fixed a bug in the VS2002 writer which caused the version variables to not
+ be overriden correctly.
+ + Added the rootNamespace property to the element, allowing you to
+ specify the root namespace.
+ * /target and /clean are now mutually exclusive command line switches, and
+ they both now take the all option. In the case of /target all, all build
+ file for all targets will be created. In the case of /clean all, the user
+ will be prompted to make sure they want to do it, and if so, will clean
+ all build files for all targets.
+
+[ April 22, 2004 - 0.11.2 ]
+ ! Fixed a bug with the /file command-line operator. Was using the unresolved
+ file path rather then the resolved one, was making the attempt to open the
+ dnpb file fail.
+ ! Fixed a bug in the schema that required at least 1 solution and 1 reference
+ path. We can do just fine with 0 of either of these. Some files may be all
+ statements and not have any tags.
+ ! Fixed a bug that caused the project references not to be written with the
+ SharpDevelop target.
+ * Changed the schema to version 1.2, allowing for Configuration nodes to exist
+ under project nodes. The inheritance of values is hierarchical. Meaning, if
+ you define a configuration named Debug at the Soltion level, and one by the
+ same name at the Project level, the one at the Project level will first
+ inherit the options of the Solution level configuration, then set it's own
+ options. If you define a configuration at the Project level and it does not
+ exist at the Solution level, it will be created at the Solution level.
+ * Project references should now work correctly across the board. Note that due
+ to a restriction in Visual Studio, you can only reference projects in the same
+ solution.
+
+[ April 21, 2004 - 0.11.1 ]
+ ! Fixed a problem with resolving paths in various targets. Was not properly
+ setting the CWD.
+ * Schema updated to 1.1, moving the ReferencePath element from the Options
+ element to the Project element. This makes more logical sense, given that
+ reference paths are resolved relative to the project path. Any prebuild.xml
+ file referecning verison 1.0 will fail! Please update to the 1.1 schema.
+
+[ April 19, 2004 - 0.11.0 ]
+ * Added several attributes across the code to make FxCop happy
+ ! Fixed bugs in reference paths being written in the VS targets.
+ ! Fixed a bug in ProjectNode which was doing two CWDStack.Push() calls instead of
+ a Push/Pop pair. Was wreaking havoc with tags.
+ ! Fixed some bugs in the path tracking, both the Project and Solution nodes now
+ have a FullPath property, which is the full path to the file resolved at load
+ time. This should fix all path relativity problems.
+ + Added new /clean switch, allowing the target to clean up any files it generated.
+ in accordance, the ITarget interface has been updated to support a new Clean()
+ method.
+ + Completed addition of the tag, to allow the referencing of external
+ prebuild.xml files.
+ + Added the runtime attribute to the Project element. This allows the developer
+ to specify which runtime a project should target (Mono or Microsoft). This is
+ of course ignored in certain targets like the Visual Studio targets.
+ + Added the SharpDevelop target.
+
+[ April 13, 2004 - 0.10.1a ]
+ + Added the buildAction attribute to the File node. This is needed for dnpb
+ to even be able to bootstrap itself (dnpb-1.0.xsd must be an embedded resource)
+
+[ April 13, 2004 - 0.10.1 ]
+ * First Release
+
+[ Key ]
+* = Change or information
++ = Addition
+! = Bug Fix
+
diff --git a/bin/OpenSim.GridServer.ini.example b/bin/OpenSim.GridServer.ini.example
index 695bf9e758..8bd126fdc6 100644
--- a/bin/OpenSim.GridServer.ini.example
+++ b/bin/OpenSim.GridServer.ini.example
@@ -13,7 +13,7 @@
; * server instance
; *
[Network]
- port = 8002
+ port = 8001
; * The following are for the remote console
; * They have no effect for the local or basic console types
diff --git a/bin/OpenSim.Server.ini.example b/bin/OpenSim.Server.ini.example
index 5696f079e8..635ba1ebec 100644
--- a/bin/OpenSim.Server.ini.example
+++ b/bin/OpenSim.Server.ini.example
@@ -9,7 +9,7 @@
; * enable the experimental authentication service
; *
[Startup]
-ServiceConnectors = "OpenSim.Server.Handlers.dll:AssetServiceConnector,OpenSim.Server.Handlers.dll:InventoryServiceInConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector"
+ServiceConnectors = "OpenSim.Server.Handlers.dll:AssetServiceConnector,OpenSim.Server.Handlers.dll:InventoryServiceInConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector,OpenSim.Server.Handlers.dll:GridServiceConnector"
; * This is common for all services, it's the network setup for the entire
; * server instance
@@ -70,3 +70,12 @@ StorageProvider = "OpenSim.Data.MySQL.dll"
ConnectionString = "Data Source=localhost;Database=grid;User ID=grid;Password=grid;"
; Realm = "users"
+; * This is the new style grid service.
+; * "Realm" is the table that is used for user lookup.
+; * It defaults to "regions", which uses the legacy tables
+; *
+[GridService]
+ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+ StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"
+ ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=grid;"
+ Realm = "regions"
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 97e6354845..2a8a7bb2a6 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -326,7 +326,7 @@
; The MessagingServer is a companion of the UserServer. It uses
; user_send_key and user_recv_key, too
- messaging_server_url = "http://127.0.0.1:8006"
+ ;messaging_server_url = "http://127.0.0.1:8006"
; What is reported as the "X-Secondlife-Shard"
; Defaults to the user server url if not set
diff --git a/bin/config-include/Grid.ini b/bin/config-include/Grid.ini
index 10f7dbdb28..261c1b8d48 100644
--- a/bin/config-include/Grid.ini
+++ b/bin/config-include/Grid.ini
@@ -12,5 +12,12 @@
InventoryServices = "RemoteInventoryServicesConnector"
AuthorizationServices = "RemoteAuthorizationServicesConnector"
NeighbourServices = "RemoteNeighbourServicesConnector"
+ GridServices = "RemoteGridServicesConnector"
NeighbourServiceInConnector = true
LandServiceInConnector = true
+
+[GridService]
+ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+ ; for the LocalGridServicesConnector which is used by the Remote one
+ StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
+
\ No newline at end of file
diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example
index 3a8ec3523e..e9d3728677 100644
--- a/bin/config-include/GridCommon.ini.example
+++ b/bin/config-include/GridCommon.ini.example
@@ -15,6 +15,11 @@
;
InventoryServerURI = "http://myinventoryserver.com:8004"
+[GridService]
+ ;
+ ; change this to your grid-wide inventory server
+ ;
+ GridServerURI = "http://mygridserver.com:8001"
[Modules]
;; Choose 0 or 1 cache modules, and the corresponding config file, if it exists.
diff --git a/bin/config-include/GridHypergrid.ini b/bin/config-include/GridHypergrid.ini
index 8b65ab80cc..f5aa603d30 100644
--- a/bin/config-include/GridHypergrid.ini
+++ b/bin/config-include/GridHypergrid.ini
@@ -7,13 +7,17 @@
[Includes]
Include-Common = "config-include/GridCommon.ini"
+[Startup]
+ hypergrid = true
+
[Modules]
AssetServices = "HGAssetBroker"
InventoryServices = "HGInventoryBroker"
NeighbourServices = "RemoteNeighbourServicesConnector"
+ GridServices = "HGGridServicesConnector"
NeighbourServiceInConnector = true
LandServiceInConnector = true
-
+ HypergridServiceInConnector = true
[AssetService]
LocalGridAssetService = "OpenSim.Services.Connectors.dll:AssetServicesConnector"
@@ -22,3 +26,11 @@
[InventoryService]
LocalGridInventoryService = "OpenSim.Region.CoreModules.dll:RemoteInventoryServicesConnector"
HypergridInventoryService = "OpenSim.Services.Connectors.dll:HGInventoryServiceConnector"
+
+[GridService]
+ ; for the HGGridServicesConnector to instantiate
+ GridServiceConnectorModule = "OpenSim.Region.CoreModules.dll:RemoteGridServicesConnector"
+ ; RemoteGridServicesConnector instantiates a LocalGridServicesConnector,
+ ; which in turn uses this
+ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+ StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
diff --git a/bin/config-include/Standalone.ini b/bin/config-include/Standalone.ini
index 5a5cbffde7..a6c089c353 100644
--- a/bin/config-include/Standalone.ini
+++ b/bin/config-include/Standalone.ini
@@ -25,5 +25,4 @@
[GridService]
LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
- StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
-
\ No newline at end of file
+ Realm = "regions"
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index bac7983960..b0e2de35d1 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -32,3 +32,10 @@
[FreeswitchService]
;; Configuration for the freeswitch service goes here
LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
+
+[GridService]
+ ;; For in-memory region storage (default)
+ StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
+ ;;--- For MySql region storage (alternative)
+ ;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"
+ ;ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=***;"
diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini
index b14517df9f..baff811794 100644
--- a/bin/config-include/StandaloneHypergrid.ini
+++ b/bin/config-include/StandaloneHypergrid.ini
@@ -7,16 +7,21 @@
[Includes]
Include-Common = "config-include/StandaloneCommon.ini"
+[Startup]
+ hypergrid = true
+
[Modules]
AssetServices = "HGAssetBroker"
InventoryServices = "HGInventoryBroker"
- NeighbourServices = "LocalNeighbourServicesConnector"
+ NeighbourServices = "RemoteNeighbourServicesConnector"
AuthorizationServices = "LocalAuthorizationServicesConnector"
GridServices = "HGGridServicesConnector"
InventoryServiceInConnector = true
AssetServiceInConnector = true
HGAuthServiceInConnector = true
HypergridServiceInConnector = true
+ NeighbourServiceInConnector = true
+
[AssetService]
; For the AssetServiceInConnector
@@ -42,6 +47,8 @@
LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:HGAuthenticationService"
[GridService]
- LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+ ; for the HGGridServicesConnector to instantiate
GridServiceConnectorModule = "OpenSim.Region.CoreModules.dll:LocalGridServicesConnector"
- StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
\ No newline at end of file
+ ; LocalGridServicesConnector needs this
+ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
+ Realm = "regions"
diff --git a/prebuild.xml b/prebuild.xml
index 6ac7b68f9f..ce04f12781 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -170,7 +170,9 @@
-
+
+
+
@@ -955,86 +957,6 @@
-
-
-
- ../../../bin/
-
-
-
-
- ../../../bin/
-
-
-
- ../../../bin/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ../../../bin/
-
-
-
-
- ../../../bin/
-
-
-
- ../../../bin/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1225,6 +1147,89 @@
+
+
+
+ ../../../bin/
+
+
+
+
+ ../../../bin/
+
+
+
+ ../../../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ../../../bin/
+
+
+
+
+ ../../../bin/
+
+
+
+ ../../../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3467,6 +3472,38 @@
+
+
+
+ ../../../../bin/
+
+
+
+
+ ../../../../bin/
+
+
+
+ ../../../../bin/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -3655,6 +3692,7 @@
+
@@ -3708,6 +3746,7 @@
+