diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 43a19fae63..4e04dd892a 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -54,6 +54,12 @@ namespace OpenSim.Framework.Servers.HttpServer
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private HttpServerLogWriter httpserverlog = new HttpServerLogWriter();
+ ///
+ /// Gets or sets the debug level.
+ ///
+ ///
+ /// See MainServer.DebugLevel.
+ ///
public int DebugLevel { get; set; }
private volatile int NotSocketErrors = 0;
@@ -529,8 +535,8 @@ namespace OpenSim.Framework.Servers.HttpServer
if (DebugLevel >= 3)
m_log.DebugFormat(
- "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
- request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
+ "[BASE HTTP SERVER]: HTTP IN {0} content type handler {1} {2} from {3}",
+ request.ContentType, request.HttpMethod, request.Url.PathAndQuery, request.RemoteIPEndPoint);
buffer = HandleHTTPRequest(request, response);
break;
@@ -541,8 +547,8 @@ namespace OpenSim.Framework.Servers.HttpServer
if (DebugLevel >= 3)
m_log.DebugFormat(
- "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
- request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
+ "[BASE HTTP SERVER]: HTTP IN {0} content type handler {1} {2} from {3}",
+ request.ContentType, request.HttpMethod, request.Url.PathAndQuery, request.RemoteIPEndPoint);
buffer = HandleLLSDRequests(request, response);
break;
@@ -640,7 +646,18 @@ namespace OpenSim.Framework.Servers.HttpServer
uriString,
requestHandler != null ? requestHandler.Name : "",
requestHandler != null ? requestHandler.Description : "",
- request.RemoteIPEndPoint.ToString(),
+ request.RemoteIPEndPoint,
+ tickdiff);
+ }
+ else if (DebugLevel >= 4)
+ {
+ m_log.DebugFormat(
+ "[BASE HTTP SERVER]: HTTP IN {0} {1} {2} {3} from {4} took {5}ms",
+ requestMethod,
+ uriString,
+ requestHandler != null ? requestHandler.Name : "",
+ requestHandler != null ? requestHandler.Description : "",
+ request.RemoteIPEndPoint,
tickdiff);
}
}
@@ -649,30 +666,30 @@ namespace OpenSim.Framework.Servers.HttpServer
private void LogIncomingToStreamHandler(OSHttpRequest request, IRequestHandler requestHandler)
{
m_log.DebugFormat(
- "[BASE HTTP SERVER]: Found stream handler for {0} {1} {2} {3}",
- request.HttpMethod, request.Url.PathAndQuery, requestHandler.Name, requestHandler.Description);
+ "[BASE HTTP SERVER]: HTTP IN stream handler {0} {1} {2} {3} from {4}",
+ request.HttpMethod, request.Url.PathAndQuery, requestHandler.Name, requestHandler.Description, request.RemoteIPEndPoint);
- if (DebugLevel >= 4)
+ if (DebugLevel >= 5)
LogIncomingInDetail(request);
}
private void LogIncomingToContentTypeHandler(OSHttpRequest request)
{
m_log.DebugFormat(
- "[BASE HTTP SERVER]: Found a {0} content type handler for {1} {2}",
- request.ContentType, request.HttpMethod, request.Url.PathAndQuery);
+ "[BASE HTTP SERVER]: HTTP IN {0} content type handler {1} {2} from {3}",
+ request.ContentType, request.HttpMethod, request.Url.PathAndQuery, request.RemoteIPEndPoint);
- if (DebugLevel >= 4)
+ if (DebugLevel >= 5)
LogIncomingInDetail(request);
}
private void LogIncomingToXmlRpcHandler(OSHttpRequest request)
{
m_log.DebugFormat(
- "[BASE HTTP SERVER]: Assuming a generic XMLRPC request for {0} {1}",
- request.HttpMethod, request.Url.PathAndQuery);
+ "[BASE HTTP SERVER]: HTTP IN assumed generic XMLRPC request {0} {1} from {2}",
+ request.HttpMethod, request.Url.PathAndQuery, request.RemoteIPEndPoint);
- if (DebugLevel >= 4)
+ if (DebugLevel >= 5)
LogIncomingInDetail(request);
}
@@ -682,7 +699,7 @@ namespace OpenSim.Framework.Servers.HttpServer
{
string output;
- if (DebugLevel == 4)
+ if (DebugLevel == 5)
{
const int sampleLength = 80;
char[] sampleChars = new char[sampleLength];
diff --git a/OpenSim/Framework/Servers/MainServer.cs b/OpenSim/Framework/Servers/MainServer.cs
index 7402c735c1..72f9cce31b 100644
--- a/OpenSim/Framework/Servers/MainServer.cs
+++ b/OpenSim/Framework/Servers/MainServer.cs
@@ -48,9 +48,12 @@ namespace OpenSim.Framework.Servers
/// Control the printing of certain debug messages.
///
///
- /// If DebugLevel >= 1, then short warnings are logged when receiving bad input data.
- /// If DebugLevel >= 2, then long warnings are logged when receiving bad input data.
- /// If DebugLevel >= 3, then short notices about all incoming non-poll HTTP requests are logged.
+ /// If DebugLevel >= 1 then short warnings are logged when receiving bad input data.
+ /// If DebugLevel >= 2 then long warnings are logged when receiving bad input data.
+ /// If DebugLevel >= 3 then short notices about all incoming non-poll HTTP requests are logged.
+ /// If DebugLevel >= 4 then the time taken to fulfill the request is logged.
+ /// If DebugLevel >= 5 then the start of the body of incoming non-poll HTTP requests will be logged.
+ /// If DebugLevel >= 6 then the entire body of incoming non-poll HTTP requests will be logged.
///
public static int DebugLevel
{
@@ -102,7 +105,6 @@ namespace OpenSim.Framework.Servers
get { return new Dictionary(m_Servers); }
}
-
public static void RegisterHttpConsoleCommands(ICommandConsole console)
{
console.Commands.AddCommand(
@@ -111,15 +113,20 @@ namespace OpenSim.Framework.Servers
"Show all registered http handlers", HandleShowHttpHandlersCommand);
console.Commands.AddCommand(
- "Debug", false, "debug http", "debug http []",
- "Turn on inbound non-poll http request debugging.",
- "If level <= 0, then no extra logging is done.\n"
- + "If level >= 1, then short warnings are logged when receiving bad input data.\n"
- + "If level >= 2, then long warnings are logged when receiving bad input data.\n"
- + "If level >= 3, then short notices about all incoming non-poll HTTP requests are logged.\n"
- + "If level >= 4, then a sample from the beginning of the incoming data is logged.\n"
- + "If level >= 5, then the entire incoming data is logged.\n"
- + "If no level is specified then the current level is returned.",
+ "Debug", false, "debug http", "debug http []",
+ "Turn on http request logging.",
+ "If in or all and\n"
+ + " level <= 0 then no extra logging is done.\n"
+ + " level >= 1 then short warnings are logged when receiving bad input data.\n"
+ + " level >= 2 then long warnings are logged when receiving bad input data.\n"
+ + " level >= 3 then short notices about all incoming non-poll HTTP requests are logged.\n"
+ + " level >= 4 then the time taken to fulfill the request is logged.\n"
+ + " level >= 5 then a sample from the beginning of the incoming data is logged.\n"
+ + " level >= 6 then the entire incoming data is logged.\n"
+ + " no level is specified then the current level is returned.\n\n"
+ + "If out or all and\n"
+ + " level >= 3 then short notices about all outgoing requests going through WebUtil are logged.\n"
+ + " level >= 4 then the time taken to fulfill the request is logged.\n",
HandleDebugHttpCommand);
}
@@ -127,24 +134,74 @@ namespace OpenSim.Framework.Servers
/// Turn on some debugging values for OpenSim.
///
///
- private static void HandleDebugHttpCommand(string module, string[] args)
+ private static void HandleDebugHttpCommand(string module, string[] cmdparams)
{
- if (args.Length == 3)
+ if (cmdparams.Length < 3)
{
- int newDebug;
- if (int.TryParse(args[2], out newDebug))
- {
- MainServer.DebugLevel = newDebug;
- MainConsole.Instance.OutputFormat("Debug http level set to {0}", newDebug);
- }
+ MainConsole.Instance.Output("Usage: debug http 0..6");
+ return;
}
- else if (args.Length == 2)
+
+ bool inReqs = false;
+ bool outReqs = false;
+ bool allReqs = false;
+
+ string subCommand = cmdparams[2];
+
+ if (subCommand.ToLower() == "in")
{
- MainConsole.Instance.OutputFormat("Current debug http level is {0}", MainServer.DebugLevel);
+ inReqs = true;
+ }
+ else if (subCommand.ToLower() == "out")
+ {
+ outReqs = true;
+ }
+ else if (subCommand.ToLower() == "all")
+ {
+ allReqs = true;
}
else
{
- MainConsole.Instance.Output("Usage: debug http 0..5");
+ MainConsole.Instance.Output("You must specify in, out or all");
+ return;
+ }
+
+ if (cmdparams.Length >= 4)
+ {
+ string rawNewDebug = cmdparams[3];
+ int newDebug;
+
+ if (!int.TryParse(rawNewDebug, out newDebug))
+ {
+ MainConsole.Instance.OutputFormat("{0} is not a valid debug level", rawNewDebug);
+ return;
+ }
+
+ if (newDebug < 0 || newDebug > 5)
+ {
+ MainConsole.Instance.OutputFormat("{0} is outside the valid debug level range of 0..5", newDebug);
+ return;
+ }
+
+ if (allReqs || inReqs)
+ {
+ MainServer.DebugLevel = newDebug;
+ MainConsole.Instance.OutputFormat("IN debug level set to {0}", newDebug);
+ }
+
+ if (allReqs || outReqs)
+ {
+ WebUtil.DebugLevel = newDebug;
+ MainConsole.Instance.OutputFormat("OUT debug level set to {0}", newDebug);
+ }
+ }
+ else
+ {
+ if (allReqs || inReqs)
+ MainConsole.Instance.OutputFormat("Current IN debug level is {0}", MainServer.DebugLevel);
+
+ if (allReqs || outReqs)
+ MainConsole.Instance.OutputFormat("Current OUT debug level is {0}", WebUtil.DebugLevel);
}
}
diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs
index 2aa4af5202..64d61f1aa0 100644
--- a/OpenSim/Framework/WebUtil.cs
+++ b/OpenSim/Framework/WebUtil.cs
@@ -53,6 +53,14 @@ namespace OpenSim.Framework
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
+ ///
+ /// Control the printing of certain debug messages.
+ ///
+ ///
+ /// If DebugLevel >= 3 then short notices about outgoing HTTP requests are logged.
+ ///
+ public static int DebugLevel { get; set; }
+
///
/// Request number for diagnostic purposes.
///
@@ -146,7 +154,11 @@ namespace OpenSim.Framework
private static OSDMap ServiceOSDRequestWorker(string url, OSDMap data, string method, int timeout, bool compressed)
{
int reqnum = RequestNumber++;
- // m_log.DebugFormat("[WEB UTIL]: <{0}> start osd request for {1}, method {2}",reqnum,url,method);
+
+ if (DebugLevel >= 3)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} ServiceOSD {1} {2} (timeout {3}, compressed {4})",
+ reqnum, method, url, timeout, compressed);
string errorMessage = "unknown error";
int tickstart = Util.EnvironmentTickCount();
@@ -238,6 +250,10 @@ namespace OpenSim.Framework
strBuffer != null
? (strBuffer.Length > MaxRequestDiagLength ? strBuffer.Remove(MaxRequestDiagLength) : strBuffer)
: "");
+ else if (DebugLevel >= 4)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
+ reqnum, tickdiff, tickdata);
}
m_log.DebugFormat(
@@ -317,7 +333,11 @@ namespace OpenSim.Framework
{
int reqnum = RequestNumber++;
string method = (data != null && data["RequestMethod"] != null) ? data["RequestMethod"] : "unknown";
- // m_log.DebugFormat("[WEB UTIL]: <{0}> start form request for {1}, method {2}",reqnum,url,method);
+
+ if (DebugLevel >= 3)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} ServiceForm {1} {2} (timeout {3})",
+ reqnum, method, url, timeout);
string errorMessage = "unknown error";
int tickstart = Util.EnvironmentTickCount();
@@ -389,6 +409,10 @@ namespace OpenSim.Framework
queryString != null
? (queryString.Length > MaxRequestDiagLength) ? queryString.Remove(MaxRequestDiagLength) : queryString
: "");
+ else if (DebugLevel >= 4)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
+ reqnum, tickdiff, tickdata);
}
m_log.WarnFormat("[SERVICE FORM]: <{0}> form request to {1} failed: {2}", reqnum, url, errorMessage);
@@ -643,7 +667,6 @@ namespace OpenSim.Framework
///
public static string[] GetPreferredImageTypes(string accept)
{
-
if (accept == null || accept == string.Empty)
return new string[0];
@@ -695,13 +718,15 @@ namespace OpenSim.Framework
string requestUrl, TRequest obj, Action action)
{
int reqnum = WebUtil.RequestNumber++;
- // m_log.DebugFormat("[WEB UTIL]: <{0}> start osd request for {1}, method {2}",reqnum,url,method);
+
+ if (WebUtil.DebugLevel >= 3)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} AsynchronousRequestObject {1} {2}",
+ reqnum, verb, requestUrl);
int tickstart = Util.EnvironmentTickCount();
int tickdata = 0;
- // m_log.DebugFormat("[ASYNC REQUEST]: Starting {0} {1}", verb, requestUrl);
-
Type type = typeof(TRequest);
WebRequest request = WebRequest.Create(requestUrl);
@@ -862,6 +887,12 @@ namespace OpenSim.Framework
tickdata,
originalRequest);
}
+ else if (WebUtil.DebugLevel >= 4)
+ {
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
+ reqnum, tickdiff, tickdata);
+ }
}
}
@@ -882,7 +913,11 @@ namespace OpenSim.Framework
public static string MakeRequest(string verb, string requestUrl, string obj)
{
int reqnum = WebUtil.RequestNumber++;
- // m_log.DebugFormat("[WEB UTIL]: <{0}> start osd request for {1}, method {2}",reqnum,url,method);
+
+ if (WebUtil.DebugLevel >= 3)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} SynchronousRestForms {1} {2}",
+ reqnum, verb, requestUrl);
int tickstart = Util.EnvironmentTickCount();
int tickdata = 0;
@@ -974,6 +1009,10 @@ namespace OpenSim.Framework
tickdiff,
tickdata,
obj.Length > WebUtil.MaxRequestDiagLength ? obj.Remove(WebUtil.MaxRequestDiagLength) : obj);
+ else if (WebUtil.DebugLevel >= 4)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
+ reqnum, tickdiff, tickdata);
return respstring;
}
@@ -998,7 +1037,11 @@ namespace OpenSim.Framework
public static TResponse MakeRequest(string verb, string requestUrl, TRequest obj)
{
int reqnum = WebUtil.RequestNumber++;
- // m_log.DebugFormat("[WEB UTIL]: <{0}> start osd request for {1}, method {2}",reqnum,url,method);
+
+ if (WebUtil.DebugLevel >= 3)
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} SynchronousRestObject {1} {2}",
+ reqnum, verb, requestUrl);
int tickstart = Util.EnvironmentTickCount();
int tickdata = 0;
@@ -1119,6 +1162,12 @@ namespace OpenSim.Framework
tickdata,
originalRequest);
}
+ else if (WebUtil.DebugLevel >= 4)
+ {
+ m_log.DebugFormat(
+ "[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
+ reqnum, tickdiff, tickdata);
+ }
return deserial;
}
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index e1c9c8e5bc..f079e00bb7 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -184,6 +184,22 @@ namespace OpenSim.Region.Framework.Scenes
public delegate void OnPluginConsoleDelegate(string[] args);
+ ///
+ /// Triggered after
+ /// has been called for all
+ /// loaded via .
+ /// Handlers for this event are typically used to parse the arguments
+ /// from in order to process or
+ /// filter the arguments and pass them onto
+ ///
+ ///
+ /// Triggered by in
+ /// via
+ /// via
+ /// via
+ /// via
+ ///
+ ///
public event OnPluginConsoleDelegate OnPluginConsole;
///
@@ -198,6 +214,18 @@ namespace OpenSim.Region.Framework.Scenes
public delegate void OnSetRootAgentSceneDelegate(UUID agentID, Scene scene);
+ ///
+ /// Triggered before the grunt work for adding a root agent to a
+ /// scene has been performed (resuming attachment scripts, physics,
+ /// animations etc.)
+ ///
+ ///
+ /// Triggered before
+ /// by
+ /// in
+ /// via
+ /// and
+ ///
public event OnSetRootAgentSceneDelegate OnSetRootAgentScene;
///
@@ -222,12 +250,34 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Fired when an object is touched/grabbed.
///
+ ///
/// The originalID is the local ID of the part that was actually touched. The localID itself is always that of
/// the root part.
+ /// Triggerd in response to
+ /// via
+ /// in
+ ///
public event ObjectGrabDelegate OnObjectGrab;
public delegate void ObjectGrabDelegate(uint localID, uint originalID, Vector3 offsetPos, IClientAPI remoteClient, SurfaceTouchEventArgs surfaceArgs);
+ ///
+ /// Triggered when an object is being touched/grabbed continuously.
+ ///
+ ///
+ /// Triggered in response to
+ /// via
+ /// in
+ ///
public event ObjectGrabDelegate OnObjectGrabbing;
+
+ ///
+ /// Triggered when an object stops being touched/grabbed.
+ ///
+ ///
+ /// Triggered in response to
+ /// via
+ /// in
+ ///
public event ObjectDeGrabDelegate OnObjectDeGrab;
public event ScriptResetDelegate OnScriptReset;
@@ -391,15 +441,36 @@ namespace OpenSim.Region.Framework.Scenes
public event ScriptColliding OnScriptLandColliderEnd;
public delegate void OnMakeChildAgentDelegate(ScenePresence presence);
+
+ ///
+ /// Triggered when an agent has been made a child agent of a scene.
+ ///
+ ///
+ /// Triggered by
+ /// in
+ /// via ,
+ /// ,
+ ///
+ ///
public event OnMakeChildAgentDelegate OnMakeChildAgent;
public delegate void OnSaveNewWindlightProfileDelegate();
public delegate void OnSendNewWindlightProfileTargetedDelegate(RegionLightShareData wl, UUID user);
///
+ /// Triggered after the grunt work for adding a root agent to a
+ /// scene has been performed (resuming attachment scripts, physics,
+ /// animations etc.)
+ ///
+ ///
/// This event is on the critical path for transferring an avatar from one region to another. Try and do
/// as little work on this event as possible, or do work asynchronously.
- ///
+ /// Triggered after
+ /// by
+ /// in
+ /// via
+ /// and
+ ///
public event Action OnMakeRootAgent;
public event OnSendNewWindlightProfileTargetedDelegate OnSendNewWindlightProfileTargeted;
@@ -425,9 +496,10 @@ namespace OpenSim.Region.Framework.Scenes
public event AvatarKillData OnAvatarKilled;
public delegate void AvatarKillData(uint KillerLocalID, ScenePresence avatar);
-// public delegate void ScriptTimerEvent(uint localID, double timerinterval);
-
-// public event ScriptTimerEvent OnScriptTimerEvent;
+ /*
+ public delegate void ScriptTimerEvent(uint localID, double timerinterval);
+ public event ScriptTimerEvent OnScriptTimerEvent;
+ */
public delegate void EstateToolsSunUpdate(ulong regionHandle, bool FixedTime, bool EstateSun, float LindenHour);
public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID);
@@ -437,12 +509,27 @@ namespace OpenSim.Region.Framework.Scenes
///
/// Triggered when an object is added to the scene.
///
+ ///
+ /// Triggered by
+ /// in ,
+ /// ,
+ ///
+ ///
public event Action OnObjectAddedToScene;
+ ///
+ /// Delegate for
+ ///
+ /// The object being removed from the scene
+ public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj);
+
///
/// Triggered when an object is removed from the scene.
///
- public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj);
+ ///
+ /// Triggered by
+ /// in
+ ///
public event ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene;
public delegate void NoticeNoLandDataFromStorage();
@@ -628,9 +715,28 @@ namespace OpenSim.Region.Framework.Scenes
public event PrimsLoaded OnPrimsLoaded;
public delegate void TeleportStart(IClientAPI client, GridRegion destination, GridRegion finalDestination, uint teleportFlags, bool gridLogout);
+
+ ///
+ /// Triggered when a teleport starts
+ ///
+ ///
+ /// Triggered by
+ /// in
+ /// and
+ /// via
+ ///
public event TeleportStart OnTeleportStart;
public delegate void TeleportFail(IClientAPI client, bool gridLogout);
+
+ ///
+ /// Trigered when a teleport fails.
+ ///
+ ///
+ /// Triggered by
+ /// in
+ /// via
+ ///
public event TeleportFail OnTeleportFail;
public class MoneyTransferArgs : EventArgs
@@ -638,7 +744,9 @@ namespace OpenSim.Region.Framework.Scenes
public UUID sender;
public UUID receiver;
- // Always false. The SL protocol sucks.
+ ///
+ /// Always false. The SL protocol sucks.
+ ///
public bool authenticated = false;
public int amount;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index c873cdf1c1..e9d1d422e9 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -861,6 +861,8 @@ namespace OpenSim.Region.Framework.Scenes
}
// FIXME: Ultimately this should be in a module.
+ SendPeriodicAppearanceUpdates = true;
+
IConfig appearanceConfig = m_config.Configs["Appearance"];
if (appearanceConfig != null)
{
diff --git a/OpenSim/Region/OptionalModules/Avatar/Chat/IRCConnector.cs b/OpenSim/Region/OptionalModules/Avatar/Chat/IRCConnector.cs
index ca956fbe91..a01479896e 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Chat/IRCConnector.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Chat/IRCConnector.cs
@@ -231,12 +231,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat
if (m_server == null || m_baseNick == null || m_ircChannel == null || m_user == null)
throw new Exception("Invalid connector configuration");
- // Generate an initial nickname if randomizing is enabled
+ // Generate an initial nickname
if (m_randomizeNick)
- {
m_nick = m_baseNick + Util.RandomClass.Next(1, 99);
- }
+ else
+ m_nick = m_baseNick;
m_log.InfoFormat("[IRC-Connector-{0}]: Initialization complete", idn);
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini
index ef4f5781b2..315ffbe800 100644
--- a/bin/OpenSimDefaults.ini
+++ b/bin/OpenSimDefaults.ini
@@ -673,8 +673,7 @@
; If true, avatar appearance information is resent to other avatars in the simulator every 60 seconds.
; This may help with some situations where avatars are persistently grey, though it will not help
; in other situations (e.g. appearance baking failures where the avatar only appears as a cloud to others).
- ; This setting is experimental.
- ResendAppearanceUpdates = false
+ ResendAppearanceUpdates = true
[Attachments]
diff --git a/bin/lib32/libopenjpeg-dotnet.so b/bin/lib32/libopenjpeg-dotnet.so
index 0106b56ff9..193eca4b34 100755
Binary files a/bin/lib32/libopenjpeg-dotnet.so and b/bin/lib32/libopenjpeg-dotnet.so differ
diff --git a/bin/lib64/libopenjpeg-dotnet-x86_64.so b/bin/lib64/libopenjpeg-dotnet-x86_64.so
index be11bb477d..7a9bdfcd1d 100755
Binary files a/bin/lib64/libopenjpeg-dotnet-x86_64.so and b/bin/lib64/libopenjpeg-dotnet-x86_64.so differ
diff --git a/bin/lib64/libopenjpeg-dotnet.dylib b/bin/lib64/libopenjpeg-dotnet.dylib
index dc5077558d..18ca868c65 100755
Binary files a/bin/lib64/libopenjpeg-dotnet.dylib and b/bin/lib64/libopenjpeg-dotnet.dylib differ
diff --git a/bin/openjpeg-dotnet-x86_64.dll b/bin/openjpeg-dotnet-x86_64.dll
index 97729fffa0..9e8cd21507 100755
Binary files a/bin/openjpeg-dotnet-x86_64.dll and b/bin/openjpeg-dotnet-x86_64.dll differ
diff --git a/bin/openjpeg-dotnet.dll b/bin/openjpeg-dotnet.dll
index 64b2557ece..6377b8d970 100755
Binary files a/bin/openjpeg-dotnet.dll and b/bin/openjpeg-dotnet.dll differ