Merge branch 'master' into careminster
Conflicts: OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs OpenSim/Region/Framework/Scenes/ScenePresence.cs OpenSim/Region/Framework/Scenes/SimStatsReporter.csavinationmerge
commit
42c82b564e
|
@ -186,7 +186,6 @@ namespace OpenSim.Groups
|
|||
public UUID CreateGroup(UUID RequestingAgentID, string name, string charter, bool showInList, UUID insigniaID, int membershipFee, bool openEnrollment,
|
||||
bool allowPublish, bool maturePublish, UUID founderID, out string reason)
|
||||
{
|
||||
m_log.DebugFormat("[Groups]: Creating group {0}", name);
|
||||
reason = string.Empty;
|
||||
if (m_UserManagement.IsLocalGridUser(RequestingAgentID))
|
||||
return m_LocalGroupsConnector.CreateGroup(RequestingAgentID, name, charter, showInList, insigniaID,
|
||||
|
|
|
@ -170,11 +170,16 @@ namespace OpenSim.Groups
|
|||
|
||||
}
|
||||
|
||||
grec = m_GroupsService.GetGroupRecord(RequestingAgentID, grec.GroupID);
|
||||
if (grec == null)
|
||||
NullResult(result, "Internal Error");
|
||||
if (grec.GroupID != UUID.Zero)
|
||||
{
|
||||
grec = m_GroupsService.GetGroupRecord(RequestingAgentID, grec.GroupID);
|
||||
if (grec == null)
|
||||
NullResult(result, "Internal Error");
|
||||
else
|
||||
result["RESULT"] = GroupsDataUtils.GroupRecord(grec);
|
||||
}
|
||||
else
|
||||
result["RESULT"] = GroupsDataUtils.GroupRecord(grec);
|
||||
NullResult(result, reason);
|
||||
}
|
||||
|
||||
string xmlString = ServerUtils.BuildXmlResponse(result);
|
||||
|
|
|
@ -130,6 +130,13 @@ namespace OpenSim.Groups
|
|||
{
|
||||
reason = string.Empty;
|
||||
|
||||
// Check if the group already exists
|
||||
if (m_Database.RetrieveGroup(name) != null)
|
||||
{
|
||||
reason = "A group with that name already exists";
|
||||
return UUID.Zero;
|
||||
}
|
||||
|
||||
// Create the group
|
||||
GroupData data = new GroupData();
|
||||
data.GroupID = UUID.Random();
|
||||
|
|
|
@ -429,7 +429,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
if (!assetServerURL.EndsWith("/") && !assetServerURL.EndsWith("="))
|
||||
assetServerURL = assetServerURL + "/";
|
||||
|
||||
m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", assetServerURL + id);
|
||||
// m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", assetServerURL + id);
|
||||
AssetService.Get(assetServerURL + id, InventoryAccessModule, AssetReceived);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1416,7 +1416,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
|
||||
// We only want to send initial data to new clients, not ones which are being converted from child to root.
|
||||
if (client != null)
|
||||
client.SceneAgent.SendInitialDataToMe();
|
||||
{
|
||||
AgentCircuitData aCircuit = m_scene.AuthenticateHandler.GetAgentCircuitData(uccp.CircuitCode.Code);
|
||||
bool tp = (aCircuit.teleportFlags > 0);
|
||||
if (!tp)
|
||||
client.SceneAgent.SendInitialDataToMe();
|
||||
}
|
||||
|
||||
// Now we know we can handle more data
|
||||
Thread.Sleep(200);
|
||||
|
|
|
@ -942,6 +942,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
|||
EnableChildAgents(sp);
|
||||
|
||||
// Finally, kill the agent we just created at the destination.
|
||||
// XXX: Possibly this should be done asynchronously.
|
||||
Scene.SimulationService.CloseAgent(finalDestination, sp.UUID);
|
||||
}
|
||||
|
||||
|
|
|
@ -322,7 +322,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
|
|||
// "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate",
|
||||
// s.RegionInfo.RegionName, destination.RegionHandle);
|
||||
|
||||
Util.FireAndForget(delegate { m_scenes[destination.RegionID].IncomingCloseAgent(id, false); });
|
||||
m_scenes[destination.RegionID].IncomingCloseAgent(id, false);
|
||||
return true;
|
||||
}
|
||||
//m_log.Debug("[LOCAL COMMS]: region not found in SendCloseAgent");
|
||||
|
|
|
@ -417,13 +417,13 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// is not allowed to change the export flag.
|
||||
bool denyExportChange = false;
|
||||
|
||||
m_log.InfoFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions);
|
||||
// m_log.DebugFormat("[XXX]: B: {0} O: {1} E: {2}", itemUpd.BasePermissions, itemUpd.CurrentPermissions, itemUpd.EveryOnePermissions);
|
||||
|
||||
// If the user is not the creator or doesn't have "E" in both "B" and "O", deny setting export
|
||||
if ((item.BasePermissions & (uint)(PermissionMask.All | PermissionMask.Export)) != (uint)(PermissionMask.All | PermissionMask.Export) || (item.CurrentPermissions & (uint)PermissionMask.Export) == 0 || item.CreatorIdAsUuid != item.Owner)
|
||||
denyExportChange = true;
|
||||
|
||||
m_log.InfoFormat("[XXX]: Deny Export Update {0}", denyExportChange);
|
||||
// m_log.DebugFormat("[XXX]: Deny Export Update {0}", denyExportChange);
|
||||
|
||||
// If it is already set, force it set and also force full perm
|
||||
// else prevent setting it. It can and should never be set unless
|
||||
|
@ -447,7 +447,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// If the new state is exportable, force full perm
|
||||
if ((itemUpd.EveryOnePermissions & (uint)PermissionMask.Export) != 0)
|
||||
{
|
||||
m_log.InfoFormat("[XXX]: Force full perm");
|
||||
// m_log.DebugFormat("[XXX]: Force full perm");
|
||||
itemUpd.NextPermissions = (uint)(PermissionMask.All);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3593,15 +3593,12 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (closeChildAgents && CapsModule != null)
|
||||
CapsModule.RemoveCaps(agentID, avatar.ControllingClient.CircuitCode);
|
||||
|
||||
// // REFACTORING PROBLEM -- well not really a problem, but just to point out that whatever
|
||||
// // this method is doing is HORRIBLE!!!
|
||||
// Commented pending deletion since this method no longer appears to do anything at all
|
||||
// avatar.Scene.NeedSceneCacheClear(avatar.UUID);
|
||||
|
||||
if (closeChildAgents && !isChildAgent)
|
||||
{
|
||||
List<ulong> regions = avatar.KnownRegionHandles;
|
||||
regions.Remove(RegionInfo.RegionHandle);
|
||||
|
||||
// This ends up being done asynchronously so that a logout isn't held up where there are many present but unresponsive neighbours.
|
||||
m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
|
||||
}
|
||||
|
||||
|
|
|
@ -1550,6 +1550,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// Create child agents in neighbouring regions
|
||||
if (openChildAgents && !IsChildAgent)
|
||||
{
|
||||
SendInitialDataToMe();
|
||||
|
||||
IEntityTransferModule m_agentTransfer = m_scene.RequestModuleInterface<IEntityTransferModule>();
|
||||
if (m_agentTransfer != null)
|
||||
|
@ -3347,10 +3348,8 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (byebyeRegions.Count > 0)
|
||||
{
|
||||
m_log.Debug("[SCENE PRESENCE]: Closing " + byebyeRegions.Count + " child agents");
|
||||
Util.FireAndForget(delegate
|
||||
{
|
||||
m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, byebyeRegions);
|
||||
});
|
||||
|
||||
m_scene.SceneGridService.SendCloseChildAgentConnections(ControllingClient.AgentId, byebyeRegions);
|
||||
}
|
||||
|
||||
foreach (ulong handle in byebyeRegions)
|
||||
|
|
|
@ -290,6 +290,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
|
||||
private void statsHeartBeat(object sender, EventArgs e)
|
||||
{
|
||||
if (!m_scene.Active)
|
||||
return;
|
||||
|
||||
SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[23];
|
||||
SimStatsPacket.RegionBlock rb = new SimStatsPacket.RegionBlock();
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
* Copyright (c) Contributors, http://opensimulator.org/
|
||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||
*
|
||||
|
@ -419,7 +419,7 @@ public sealed class BSCharacter : BSPhysObject
|
|||
DetailLog("{0},BSCharacter.setTargetVelocity,call,vel={1}", LocalID, value);
|
||||
m_targetVelocity = value;
|
||||
OMV.Vector3 targetVel = value;
|
||||
if (_setAlwaysRun)
|
||||
if (_setAlwaysRun && !_flying)
|
||||
targetVel *= new OMV.Vector3(BSParam.AvatarAlwaysRunFactor, BSParam.AvatarAlwaysRunFactor, 0f);
|
||||
|
||||
if (m_moveActor != null)
|
||||
|
@ -481,7 +481,10 @@ public sealed class BSCharacter : BSPhysObject
|
|||
_orientation = value;
|
||||
PhysScene.TaintedObject("BSCharacter.setOrientation", delegate()
|
||||
{
|
||||
ForceOrientation = _orientation;
|
||||
// Bullet assumes we know what we are doing when forcing orientation
|
||||
// so it lets us go against all the rules and just compensates for them later.
|
||||
// This keeps us from flipping the capsule over which the veiwer does not understand.
|
||||
ForceOrientation = new OMV.Quaternion(0, 0, _orientation.Z,0);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -649,12 +652,12 @@ public sealed class BSCharacter : BSPhysObject
|
|||
OMV.Vector3 newScale;
|
||||
|
||||
// Bullet's capsule total height is the "passed height + radius * 2";
|
||||
// The base capsule is 1 diameter and 2 height (passed radius=0.5, passed height = 1)
|
||||
// The base capsule is 1 unit in diameter and 2 units in height (passed radius=0.5, passed height = 1)
|
||||
// The number we pass in for 'scaling' is the multiplier to get that base
|
||||
// shape to be the size desired.
|
||||
// So, when creating the scale for the avatar height, we take the passed height
|
||||
// (size.Z) and remove the caps.
|
||||
// Another oddity of the Bullet capsule implementation is that it presumes the Y
|
||||
// An oddity of the Bullet capsule implementation is that it presumes the Y
|
||||
// dimension is the radius of the capsule. Even though some of the code allows
|
||||
// for a asymmetrical capsule, other parts of the code presume it is cylindrical.
|
||||
|
||||
|
@ -662,8 +665,27 @@ public sealed class BSCharacter : BSPhysObject
|
|||
newScale.X = size.X / 2f;
|
||||
newScale.Y = size.Y / 2f;
|
||||
|
||||
float heightAdjust = BSParam.AvatarHeightMidFudge;
|
||||
if (BSParam.AvatarHeightLowFudge != 0f || BSParam.AvatarHeightHighFudge != 0f)
|
||||
{
|
||||
// An avatar is between 1.61 and 2.12 meters. Midpoint is 1.87m.
|
||||
// The "times 4" relies on the fact that the difference from the midpoint to the extremes is exactly 0.25
|
||||
float midHeightOffset = size.Z - 1.87f;
|
||||
if (midHeightOffset < 0f)
|
||||
{
|
||||
// Small avatar. Add the adjustment based on the distance from midheight
|
||||
heightAdjust += -1f * midHeightOffset * 4f * BSParam.AvatarHeightLowFudge;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Large avatar. Add the adjustment based on the distance from midheight
|
||||
heightAdjust += midHeightOffset * 4f * BSParam.AvatarHeightHighFudge;
|
||||
}
|
||||
}
|
||||
// The total scale height is the central cylindar plus the caps on the two ends.
|
||||
newScale.Z = (size.Z + (Math.Min(size.X, size.Y) * 2)) / 2f;
|
||||
newScale.Z = (size.Z + (Math.Min(size.X, size.Y) * 2) + heightAdjust) / 2f;
|
||||
// m_log.DebugFormat("{0} ComputeAvatarScale: size={1},adj={2},scale={3}", LogHeader, size, heightAdjust, newScale);
|
||||
|
||||
// If smaller than the endcaps, just fake like we're almost that small
|
||||
if (newScale.Z < 0)
|
||||
newScale.Z = 0.1f;
|
||||
|
|
|
@ -90,7 +90,7 @@ public static class BSParam
|
|||
public static bool ShouldUseBulletHACD { get; set; }
|
||||
public static bool ShouldUseSingleConvexHullForPrims { get; set; }
|
||||
|
||||
public static float TerrainImplementation { get; private set; }
|
||||
public static float TerrainImplementation { get; set; }
|
||||
public static int TerrainMeshMagnification { get; private set; }
|
||||
public static float TerrainFriction { get; private set; }
|
||||
public static float TerrainHitFraction { get; private set; }
|
||||
|
@ -125,6 +125,9 @@ public static class BSParam
|
|||
public static float AvatarCapsuleWidth { get; private set; }
|
||||
public static float AvatarCapsuleDepth { get; private set; }
|
||||
public static float AvatarCapsuleHeight { get; private set; }
|
||||
public static float AvatarHeightLowFudge { get; private set; }
|
||||
public static float AvatarHeightMidFudge { get; private set; }
|
||||
public static float AvatarHeightHighFudge { get; private set; }
|
||||
public static float AvatarContactProcessingThreshold { get; private set; }
|
||||
public static float AvatarBelowGroundUpCorrectionMeters { get; private set; }
|
||||
public static float AvatarStepHeight { get; private set; }
|
||||
|
@ -539,6 +542,12 @@ public static class BSParam
|
|||
0.45f ),
|
||||
new ParameterDefn<float>("AvatarCapsuleHeight", "Default height of space around avatar",
|
||||
1.5f ),
|
||||
new ParameterDefn<float>("AvatarHeightLowFudge", "A fudge factor to make small avatars stand on the ground",
|
||||
-0.2f ),
|
||||
new ParameterDefn<float>("AvatarHeightMidFudge", "A fudge distance to adjust average sized avatars to be standing on ground",
|
||||
0.1f ),
|
||||
new ParameterDefn<float>("AvatarHeightHighFudge", "A fudge factor to make tall avatars stand on the ground",
|
||||
0.1f ),
|
||||
new ParameterDefn<float>("AvatarContactProcessingThreshold", "Distance from capsule to check for collisions",
|
||||
0.1f ),
|
||||
new ParameterDefn<float>("AvatarBelowGroundUpCorrectionMeters", "Meters to move avatar up if it seems to be below ground",
|
||||
|
|
|
@ -318,8 +318,12 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters
|
|||
ret = new BSAPIXNA(engineName, this);
|
||||
// Disable some features that are not implemented in BulletXNA
|
||||
m_log.InfoFormat("{0} Disabling some physics features not implemented by BulletXNA", LogHeader);
|
||||
m_log.InfoFormat("{0} Disabling ShouldUseBulletHACD", LogHeader);
|
||||
BSParam.ShouldUseBulletHACD = false;
|
||||
m_log.InfoFormat("{0} Disabling ShouldUseSingleConvexHullForPrims", LogHeader);
|
||||
BSParam.ShouldUseSingleConvexHullForPrims = false;
|
||||
m_log.InfoFormat("{0} Setting terrain implimentation to Heightmap", LogHeader);
|
||||
BSParam.TerrainImplementation = (float)BSTerrainPhys.TerrainImplementation.Heightmap;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -283,8 +283,13 @@ public class BSShapeNative : BSShape
|
|||
public override BSShape GetReference(BSScene pPhysicsScene, BSPhysObject pPrim)
|
||||
{
|
||||
// Native shapes are not shared so we return a new shape.
|
||||
return new BSShapeNative(CreatePhysicalNativeShape(pPhysicsScene, pPrim,
|
||||
physShapeInfo.shapeType, (FixedShapeKey)physShapeInfo.shapeKey) );
|
||||
BSShape ret = null;
|
||||
lock (physShapeInfo)
|
||||
{
|
||||
ret = new BSShapeNative(CreatePhysicalNativeShape(pPhysicsScene, pPrim,
|
||||
physShapeInfo.shapeType, (FixedShapeKey)physShapeInfo.shapeKey));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
// Make this reference to the physical shape go away since native shapes are not shared.
|
||||
|
|
|
@ -358,6 +358,10 @@ namespace OpenSim.Region.Physics.Meshing
|
|||
physicsParms = (OSDMap)map["physics_shape"]; // old asset format
|
||||
else if (map.ContainsKey("physics_mesh"))
|
||||
physicsParms = (OSDMap)map["physics_mesh"]; // new asset format
|
||||
else if (map.ContainsKey("medium_lod"))
|
||||
physicsParms = (OSDMap)map["medium_lod"]; // if no physics mesh, try to fall back to medium LOD display mesh
|
||||
else if (map.ContainsKey("high_lod"))
|
||||
physicsParms = (OSDMap)map["high_lod"]; // if all else fails, use highest LOD display mesh and hope it works :)
|
||||
|
||||
if (physicsParms == null)
|
||||
{
|
||||
|
|
|
@ -546,21 +546,33 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
|
||||
set {m_data = value; }
|
||||
}
|
||||
// Function to obtain LSL type from an index. This is needed
|
||||
// because LSL lists allow for multiple types, and safely
|
||||
// iterating in them requires a type check.
|
||||
|
||||
/// <summary>
|
||||
/// Obtain LSL type from an index.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This is needed because LSL lists allow for multiple types, and safely
|
||||
/// iterating in them requires a type check.
|
||||
/// </remarks>
|
||||
/// <returns></returns>
|
||||
/// <param name='itemIndex'></param>
|
||||
public Type GetLSLListItemType(int itemIndex)
|
||||
{
|
||||
return m_data[itemIndex].GetType();
|
||||
}
|
||||
|
||||
// Member functions to obtain item as specific types.
|
||||
// For cases where implicit conversions would apply if items
|
||||
// were not in a list (e.g. integer to float, but not float
|
||||
// to integer) functions check for alternate types so as to
|
||||
// down-cast from Object to the correct type.
|
||||
// Note: no checks for item index being valid are performed
|
||||
|
||||
/// <summary>
|
||||
/// Obtain float from an index.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// For cases where implicit conversions would apply if items
|
||||
/// were not in a list (e.g. integer to float, but not float
|
||||
/// to integer) functions check for alternate types so as to
|
||||
/// down-cast from Object to the correct type.
|
||||
/// Note: no checks for item index being valid are performed
|
||||
/// </remarks>
|
||||
/// <returns></returns>
|
||||
/// <param name='itemIndex'></param>
|
||||
public LSL_Types.LSLFloat GetLSLFloatItem(int itemIndex)
|
||||
{
|
||||
if (m_data[itemIndex] is LSL_Types.LSLInteger)
|
||||
|
@ -591,26 +603,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
|
|||
|
||||
public LSL_Types.LSLString GetLSLStringItem(int itemIndex)
|
||||
{
|
||||
if (m_data[itemIndex] is LSL_Types.key)
|
||||
{
|
||||
return (LSL_Types.key)m_data[itemIndex];
|
||||
}
|
||||
else if (m_data[itemIndex] is String)
|
||||
{
|
||||
return new LSL_Types.LSLString((string)m_data[itemIndex]);
|
||||
}
|
||||
else if (m_data[itemIndex] is LSL_Types.LSLFloat)
|
||||
{
|
||||
return new LSL_Types.LSLString((LSLFloat)m_data[itemIndex]);
|
||||
}
|
||||
else if (m_data[itemIndex] is LSL_Types.LSLInteger)
|
||||
{
|
||||
return new LSL_Types.LSLString((LSLInteger)m_data[itemIndex]);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (LSL_Types.LSLString)m_data[itemIndex];
|
||||
}
|
||||
if (m_data[itemIndex] is LSL_Types.key)
|
||||
{
|
||||
return (LSL_Types.key)m_data[itemIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
return new LSL_Types.LSLString(m_data[itemIndex].ToString());
|
||||
}
|
||||
}
|
||||
|
||||
public LSL_Types.LSLInteger GetLSLIntegerItem(int itemIndex)
|
||||
|
|
|
@ -286,7 +286,7 @@ namespace OpenSim.Server.Base
|
|||
e.InnerException == null ? e.Message : e.InnerException.Message,
|
||||
e.StackTrace);
|
||||
}
|
||||
m_log.ErrorFormat("[SERVER UTILS]: Error loading plugin {0}: {1}", dllName, e.Message);
|
||||
m_log.ErrorFormat("[SERVER UTILS]: Error loading plugin {0}: {1} args.Length {2}", dllName, e.Message, args.Length);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -76,10 +76,14 @@ namespace OpenSim.Server.Handlers.Hypergrid
|
|||
server.AddStreamHandler(new GatekeeperAgentHandler(m_GatekeeperService, m_Proxy));
|
||||
}
|
||||
|
||||
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server)
|
||||
: this(config, server, null)
|
||||
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server, string configName)
|
||||
: this(config, server, (ISimulationService)null)
|
||||
{
|
||||
}
|
||||
|
||||
public GatekeeperServiceInConnector(IConfigSource config, IHttpServer server)
|
||||
: this(config, server, String.Empty)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,12 @@ namespace OpenSim.Server.Handlers.Hypergrid
|
|||
private IInstantMessage m_IMService;
|
||||
|
||||
public InstantMessageServerConnector(IConfigSource config, IHttpServer server) :
|
||||
this(config, server, null)
|
||||
this(config, server, (IInstantMessageSimConnector)null)
|
||||
{
|
||||
}
|
||||
|
||||
public InstantMessageServerConnector(IConfigSource config, IHttpServer server, string configName) :
|
||||
this(config, server)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -62,7 +62,12 @@ namespace OpenSim.Server.Handlers.Hypergrid
|
|||
private bool m_VerifyCallers = false;
|
||||
|
||||
public UserAgentServerConnector(IConfigSource config, IHttpServer server) :
|
||||
this(config, server, null)
|
||||
this(config, server, (IFriendsSimConnector)null)
|
||||
{
|
||||
}
|
||||
|
||||
public UserAgentServerConnector(IConfigSource config, IHttpServer server, string configName) :
|
||||
this(config, server)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
@ -60,8 +60,8 @@ namespace OpenSim.Server.Handlers.Login
|
|||
InitializeHandlers(server);
|
||||
}
|
||||
|
||||
public LLLoginServiceInConnector(IConfigSource config, IHttpServer server) :
|
||||
base(config, server, String.Empty)
|
||||
public LLLoginServiceInConnector(IConfigSource config, IHttpServer server, string configName) :
|
||||
base(config, server, configName)
|
||||
{
|
||||
string loginService = ReadLocalServiceFromConfig(config);
|
||||
|
||||
|
@ -72,6 +72,11 @@ namespace OpenSim.Server.Handlers.Login
|
|||
InitializeHandlers(server);
|
||||
}
|
||||
|
||||
public LLLoginServiceInConnector(IConfigSource config, IHttpServer server) :
|
||||
this(config, server, String.Empty)
|
||||
{
|
||||
}
|
||||
|
||||
private string ReadLocalServiceFromConfig(IConfigSource config)
|
||||
{
|
||||
IConfig serverConfig = config.Configs["LoginService"];
|
||||
|
|
|
@ -241,7 +241,7 @@ namespace OpenSim.Server.Handlers.Simulation
|
|||
if (action.Equals("release"))
|
||||
ReleaseAgent(regionID, id);
|
||||
else
|
||||
m_SimulationService.CloseAgent(destination, id);
|
||||
Util.FireAndForget(delegate { m_SimulationService.CloseAgent(destination, id); });
|
||||
|
||||
responsedata["int_response_code"] = HttpStatusCode.OK;
|
||||
responsedata["str_response_string"] = "OpenSim agent " + id.ToString();
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>OpenMetaverse.Http</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="F:OpenMetaverse.Http.EventQueueServer.CONNECTION_TIMEOUT">
|
||||
<summary>The number of milliseconds to wait before the connection times out
|
||||
and an empty response is sent to the client. This value should be higher
|
||||
than BATCH_WAIT_INTERVAL for the timeout to function properly</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.EventQueueServer.BATCH_WAIT_INTERVAL">
|
||||
<summary>This interval defines the amount of time to wait, in milliseconds,
|
||||
for new events to show up on the queue before sending a response to the
|
||||
client and completing the HTTP request. The interval also specifies the
|
||||
maximum time that can pass before the queue shuts down after Stop() or the
|
||||
class destructor is called</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.EventQueueServer.MAX_EVENTS_PER_RESPONSE">
|
||||
<summary>Since multiple events can be batched together and sent in the same
|
||||
response, this prevents the event queue thread from infinitely dequeueing
|
||||
events and never sending a response if there is a constant stream of new
|
||||
events</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.Http.Logger">
|
||||
<summary>
|
||||
Singleton logging class for the entire library
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.Logger.Log">
|
||||
<summary>log4net logging engine</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.log4netLogWriter.Instance">
|
||||
<summary>
|
||||
Singleton instance of this class
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.Http.CapsRequestCallback">
|
||||
<summary>
|
||||
Delegate for handling incoming HTTP requests through a capability
|
||||
</summary>
|
||||
<param name="context">Client context</param>
|
||||
<param name="request">HTTP request</param>
|
||||
<param name="response">HTTP response</param>
|
||||
<param name="state">User-defined state object</param>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.EventQueueClient.REQUEST_TIMEOUT">
|
||||
<summary>=</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.EventQueueClient._errorCount">
|
||||
<summary>Number of times we've received an unknown CAPS exception in series.</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.Http.EventQueueClient._random">
|
||||
<summary>For exponential backoff on error.</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
Binary file not shown.
|
@ -4,6 +4,123 @@
|
|||
<name>OpenMetaverse.StructuredData</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDType">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Unknown">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Boolean">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Integer">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Real">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.String">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.UUID">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Date">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.URI">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Binary">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Map">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Array">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDException">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSD">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)">
|
||||
<summary>
|
||||
Uses reflection to create an SDMap from all of the SD
|
||||
serializable types in an object
|
||||
</summary>
|
||||
<param name="obj">Class or struct containing serializable types</param>
|
||||
<returns>An SDMap holding the serialized values from the
|
||||
container object</returns>
|
||||
</member>
|
||||
<member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)">
|
||||
<summary>
|
||||
Uses reflection to deserialize member variables in an object from
|
||||
an SDMap
|
||||
</summary>
|
||||
<param name="obj">Reference to an object to fill with deserialized
|
||||
values</param>
|
||||
<param name="serialized">Serialized values to put in the target
|
||||
object</param>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDBoolean">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDInteger">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDReal">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDString">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDUUID">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDDate">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDUri">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDBinary">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDMap">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDArray">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDParser">
|
||||
<summary>
|
||||
|
||||
|
@ -228,122 +345,5 @@
|
|||
<param name="c"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDType">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Unknown">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Boolean">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Integer">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Real">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.String">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.UUID">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Date">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.URI">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Binary">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Map">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="F:OpenMetaverse.StructuredData.OSDType.Array">
|
||||
<summary></summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDException">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSD">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:OpenMetaverse.StructuredData.OSD.SerializeMembers(System.Object)">
|
||||
<summary>
|
||||
Uses reflection to create an SDMap from all of the SD
|
||||
serializable types in an object
|
||||
</summary>
|
||||
<param name="obj">Class or struct containing serializable types</param>
|
||||
<returns>An SDMap holding the serialized values from the
|
||||
container object</returns>
|
||||
</member>
|
||||
<member name="M:OpenMetaverse.StructuredData.OSD.DeserializeMembers(System.Object@,OpenMetaverse.StructuredData.OSDMap)">
|
||||
<summary>
|
||||
Uses reflection to deserialize member variables in an object from
|
||||
an SDMap
|
||||
</summary>
|
||||
<param name="obj">Reference to an object to fill with deserialized
|
||||
values</param>
|
||||
<param name="serialized">Serialized values to put in the target
|
||||
object</param>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDBoolean">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDInteger">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDReal">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDString">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDUUID">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDDate">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDUri">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDBinary">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDMap">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:OpenMetaverse.StructuredData.OSDArray">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
|
Binary file not shown.
24466
bin/OpenMetaverse.XML
24466
bin/OpenMetaverse.XML
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
Reference in New Issue