Merge branch 'master' of /home/opensim/var/repo/opensim

Conflicts:
	OpenSim/Server/Handlers/Presence/PresenceServerPostHandler.cs
integration
BlueWall 2012-07-12 22:42:45 -04:00
commit 6e4e26d213
28 changed files with 179 additions and 213 deletions

View File

@ -66,9 +66,7 @@ namespace OpenSim.Framework.Capabilities
TResponse response = m_method(llsdRequest); TResponse response = m_method(llsdRequest);
Encoding encoding = new UTF8Encoding(false); return Util.UTF8NoBomEncoding.GetBytes(LLSDHelpers.SerialiseLLSDReply(response));
return encoding.GetBytes(LLSDHelpers.SerialiseLLSDReply(response));
} }
} }
} }

View File

@ -98,6 +98,11 @@ namespace OpenSim.Framework
/// </summary> /// </summary>
public string lastname; public string lastname;
/// <summary>
/// Agent's full name.
/// </summary>
public string Name { get { return string.Format("{0} {1}", firstname, lastname); } }
/// <summary> /// <summary>
/// Random Unique GUID for this session. Client gets this at login and it's /// Random Unique GUID for this session. Client gets this at login and it's
/// only supposed to be disclosed over secure channels /// only supposed to be disclosed over secure channels

View File

@ -1353,7 +1353,6 @@ namespace OpenSim.Framework
void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message); void SendBlueBoxMessage(UUID FromAvatarID, String FromAvatarName, String Message);
void SendLogoutPacket(); void SendLogoutPacket();
EndPoint GetClientEP();
// WARNING WARNING WARNING // WARNING WARNING WARNING
// //

View File

@ -41,8 +41,6 @@ namespace OpenSim.Framework.Serialization
{ {
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
protected static UTF8Encoding m_utf8Encoding = new UTF8Encoding();
/// <summary> /// <summary>
/// Binary writer for the underlying stream /// Binary writer for the underlying stream
/// </summary> /// </summary>
@ -73,7 +71,7 @@ namespace OpenSim.Framework.Serialization
/// <param name="data"></param> /// <param name="data"></param>
public void WriteFile(string filePath, string data) public void WriteFile(string filePath, string data)
{ {
WriteFile(filePath, m_utf8Encoding.GetBytes(data)); WriteFile(filePath, Util.UTF8NoBomEncoding.GetBytes(data));
} }
/// <summary> /// <summary>

View File

@ -148,6 +148,7 @@ namespace OpenSim.Framework
} }
public static Encoding UTF8 = Encoding.UTF8; public static Encoding UTF8 = Encoding.UTF8;
public static Encoding UTF8NoBomEncoding = new UTF8Encoding(false);
/// <value> /// <value>
/// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards) /// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards)

View File

@ -996,44 +996,11 @@ namespace OpenSim
break; break;
case "connections": case "connections":
System.Text.StringBuilder connections = new System.Text.StringBuilder("Connections:\n"); HandleShowConnections();
m_sceneManager.ForEachScene(
delegate(Scene scene) {
scene.ForEachClient(
delegate(IClientAPI client) {
connections.AppendFormat(
"{0}: {1} ({2}) from {3} on circuit {4}\n",
scene.RegionInfo.RegionName,
client.Name,
client.AgentId,
client.RemoteEndPoint,
client.CircuitCode
);
}
);
}
);
MainConsole.Instance.Output(connections.ToString());
break; break;
case "circuits": case "circuits":
System.Text.StringBuilder acd = new System.Text.StringBuilder("Agent Circuits:\n"); HandleShowCircuits();
m_sceneManager.ForEachScene(
delegate(Scene scene) {
//this.HttpServer.
acd.AppendFormat("{0}:\n", scene.RegionInfo.RegionName);
foreach (AgentCircuitData aCircuit in scene.AuthenticateHandler.GetAgentCircuits().Values)
acd.AppendFormat(
"\t{0} {1} ({2})\n",
aCircuit.firstname,
aCircuit.lastname,
(aCircuit.child ? "Child" : "Root")
);
}
);
MainConsole.Instance.Output(acd.ToString());
break; break;
case "http-handlers": case "http-handlers":
@ -1138,6 +1105,53 @@ namespace OpenSim
} }
} }
private void HandleShowCircuits()
{
ConsoleDisplayTable cdt = new ConsoleDisplayTable();
cdt.AddColumn("Region", 20);
cdt.AddColumn("Avatar name", 24);
cdt.AddColumn("Type", 5);
cdt.AddColumn("Code", 10);
cdt.AddColumn("IP", 16);
cdt.AddColumn("Viewer Name", 24);
m_sceneManager.ForEachScene(
s =>
{
foreach (AgentCircuitData aCircuit in s.AuthenticateHandler.GetAgentCircuits().Values)
cdt.AddRow(
s.Name,
aCircuit.Name,
aCircuit.child ? "child" : "root",
aCircuit.circuitcode.ToString(),
aCircuit.IPAddress.ToString(),
aCircuit.Viewer);
});
MainConsole.Instance.Output(cdt.ToString());
}
private void HandleShowConnections()
{
ConsoleDisplayTable cdt = new ConsoleDisplayTable();
cdt.AddColumn("Region", 20);
cdt.AddColumn("Avatar name", 24);
cdt.AddColumn("Circuit code", 12);
cdt.AddColumn("Endpoint", 23);
cdt.AddColumn("Active?", 7);
m_sceneManager.ForEachScene(
s => s.ForEachClient(
c => cdt.AddRow(
s.Name,
c.Name,
c.RemoteEndPoint.ToString(),
c.CircuitCode.ToString(),
c.IsActive.ToString())));
MainConsole.Instance.Output(cdt.ToString());
}
/// <summary> /// <summary>
/// Use XML2 format to serialize data to a file /// Use XML2 format to serialize data to a file
/// </summary> /// </summary>

View File

@ -59,7 +59,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// Handles new client connections /// Handles new client connections
/// Constructor takes a single Packet and authenticates everything /// Constructor takes a single Packet and authenticates everything
/// </summary> /// </summary>
public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IClientInventory, IClientIPEndpoint, IStatsCollector public class LLClientView : IClientAPI, IClientCore, IClientIM, IClientChat, IClientInventory, IStatsCollector
{ {
/// <value> /// <value>
/// Debug packet level. See OpenSim.RegisterConsoleCommands() for more details. /// Debug packet level. See OpenSim.RegisterConsoleCommands() for more details.
@ -357,7 +357,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected string m_lastName; protected string m_lastName;
protected Thread m_clientThread; protected Thread m_clientThread;
protected Vector3 m_startpos; protected Vector3 m_startpos;
protected EndPoint m_userEndPoint;
protected UUID m_activeGroupID; protected UUID m_activeGroupID;
protected string m_activeGroupName = String.Empty; protected string m_activeGroupName = String.Empty;
protected ulong m_activeGroupPowers; protected ulong m_activeGroupPowers;
@ -442,7 +441,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <summary> /// <summary>
/// Constructor /// Constructor
/// </summary> /// </summary>
public LLClientView(EndPoint remoteEP, Scene scene, LLUDPServer udpServer, LLUDPClient udpClient, AuthenticateResponse sessionInfo, public LLClientView(Scene scene, LLUDPServer udpServer, LLUDPClient udpClient, AuthenticateResponse sessionInfo,
UUID agentId, UUID sessionId, uint circuitCode) UUID agentId, UUID sessionId, uint circuitCode)
{ {
// DebugPacketLevel = 1; // DebugPacketLevel = 1;
@ -450,7 +449,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
RegisterInterface<IClientIM>(this); RegisterInterface<IClientIM>(this);
RegisterInterface<IClientInventory>(this); RegisterInterface<IClientInventory>(this);
RegisterInterface<IClientChat>(this); RegisterInterface<IClientChat>(this);
RegisterInterface<IClientIPEndpoint>(this);
m_scene = scene; m_scene = scene;
m_entityUpdates = new PriorityQueue(m_scene.Entities.Count); m_entityUpdates = new PriorityQueue(m_scene.Entities.Count);
@ -467,7 +465,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_sessionId = sessionId; m_sessionId = sessionId;
m_secureSessionId = sessionInfo.LoginInfo.SecureSession; m_secureSessionId = sessionInfo.LoginInfo.SecureSession;
m_circuitCode = circuitCode; m_circuitCode = circuitCode;
m_userEndPoint = remoteEP;
m_firstName = sessionInfo.LoginInfo.First; m_firstName = sessionInfo.LoginInfo.First;
m_lastName = sessionInfo.LoginInfo.Last; m_lastName = sessionInfo.LoginInfo.Last;
m_startpos = sessionInfo.LoginInfo.StartPos; m_startpos = sessionInfo.LoginInfo.StartPos;
@ -11833,7 +11830,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{ {
ClientInfo info = m_udpClient.GetClientInfo(); ClientInfo info = m_udpClient.GetClientInfo();
info.userEP = m_userEndPoint;
info.proxyEP = null; info.proxyEP = null;
info.agentcircuit = RequestClientInfo(); info.agentcircuit = RequestClientInfo();
@ -11845,11 +11841,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_udpClient.SetClientInfo(info); m_udpClient.SetClientInfo(info);
} }
public EndPoint GetClientEP()
{
return m_userEndPoint;
}
#region Media Parcel Members #region Media Parcel Members
public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time) public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time)
@ -12119,24 +12110,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return numPackets; return numPackets;
} }
#region IClientIPEndpoint Members
public IPAddress EndPoint
{
get
{
if (m_userEndPoint is IPEndPoint)
{
IPEndPoint ep = (IPEndPoint)m_userEndPoint;
return ep.Address;
}
return null;
}
}
#endregion
public void SendRebakeAvatarTextures(UUID textureID) public void SendRebakeAvatarTextures(UUID textureID)
{ {
RebakeAvatarTexturesPacket pack = RebakeAvatarTexturesPacket pack =

View File

@ -1103,7 +1103,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{ {
LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, m_throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO); LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, m_throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
client = new LLClientView(remoteEndPoint, m_scene, this, udpClient, sessionInfo, agentID, sessionID, circuitCode); client = new LLClientView(m_scene, this, udpClient, sessionInfo, agentID, sessionID, circuitCode);
client.OnLogout += LogoutHandler; client.OnLogout += LogoutHandler;
((LLClientView)client).DisableFacelights = m_disableFacelights; ((LLClientView)client).DisableFacelights = m_disableFacelights;

View File

@ -41,8 +41,7 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
{ {
public class LocalGridServicesConnector : public class LocalGridServicesConnector : ISharedRegionModule, IGridService
ISharedRegionModule, IGridService
{ {
private static readonly ILog m_log = private static readonly ILog m_log =
LogManager.GetLogger( LogManager.GetLogger(
@ -51,7 +50,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
private IGridService m_GridService; private IGridService m_GridService;
private Dictionary<UUID, RegionCache> m_LocalCache = new Dictionary<UUID, RegionCache>(); private Dictionary<UUID, RegionCache> m_LocalCache = new Dictionary<UUID, RegionCache>();
private bool m_Enabled = false; private bool m_Enabled;
public LocalGridServicesConnector() public LocalGridServicesConnector()
{ {
@ -59,7 +58,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public LocalGridServicesConnector(IConfigSource source) public LocalGridServicesConnector(IConfigSource source)
{ {
m_log.Debug("[LOCAL GRID CONNECTOR]: LocalGridServicesConnector instantiated"); m_log.Debug("[LOCAL GRID SERVICE CONNECTOR]: LocalGridServicesConnector instantiated directly.");
InitialiseService(source); InitialiseService(source);
} }
@ -84,8 +83,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
if (name == Name) if (name == Name)
{ {
InitialiseService(source); InitialiseService(source);
m_Enabled = true; m_log.Info("[LOCAL GRID SERVICE CONNECTOR]: Local grid connector enabled");
m_log.Info("[LOCAL GRID CONNECTOR]: Local grid connector enabled");
} }
} }
} }
@ -95,7 +93,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
IConfig assetConfig = source.Configs["GridService"]; IConfig assetConfig = source.Configs["GridService"];
if (assetConfig == null) if (assetConfig == null)
{ {
m_log.Error("[LOCAL GRID CONNECTOR]: GridService missing from OpenSim.ini"); m_log.Error("[LOCAL GRID SERVICE CONNECTOR]: GridService missing from OpenSim.ini");
return; return;
} }
@ -104,7 +102,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
if (serviceDll == String.Empty) if (serviceDll == String.Empty)
{ {
m_log.Error("[LOCAL GRID CONNECTOR]: No LocalServiceModule named in section GridService"); m_log.Error("[LOCAL GRID SERVICE CONNECTOR]: No LocalServiceModule named in section GridService");
return; return;
} }
@ -115,16 +113,20 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
if (m_GridService == null) if (m_GridService == null)
{ {
m_log.Error("[LOCAL GRID CONNECTOR]: Can't load grid service"); m_log.Error("[LOCAL GRID SERVICE CONNECTOR]: Can't load grid service");
return; return;
} }
m_Enabled = true;
} }
public void PostInitialise() public void PostInitialise()
{ {
// FIXME: We will still add this command even if we aren't enabled since RemoteGridServiceConnector
// will have instantiated us directly.
MainConsole.Instance.Commands.AddCommand("Regions", false, "show neighbours", MainConsole.Instance.Commands.AddCommand("Regions", false, "show neighbours",
"show neighbours", "show neighbours",
"Shows the local regions' neighbours", NeighboursCommand); "Shows the local regions' neighbours", HandleShowNeighboursCommand);
} }
public void Close() public void Close()
@ -133,17 +135,22 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
public void AddRegion(Scene scene) public void AddRegion(Scene scene)
{ {
if (m_Enabled) if (!m_Enabled)
scene.RegisterModuleInterface<IGridService>(this); return;
scene.RegisterModuleInterface<IGridService>(this);
if (m_LocalCache.ContainsKey(scene.RegionInfo.RegionID)) 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!"); m_log.ErrorFormat("[LOCAL GRID SERVICE CONNECTOR]: simulator seems to have more than one region with the same UUID. Please correct this!");
else else
m_LocalCache.Add(scene.RegionInfo.RegionID, new RegionCache(scene)); m_LocalCache.Add(scene.RegionInfo.RegionID, new RegionCache(scene));
} }
public void RemoveRegion(Scene scene) public void RemoveRegion(Scene scene)
{ {
if (!m_Enabled)
return;
m_LocalCache[scene.RegionInfo.RegionID].Clear(); m_LocalCache[scene.RegionInfo.RegionID].Clear();
m_LocalCache.Remove(scene.RegionInfo.RegionID); m_LocalCache.Remove(scene.RegionInfo.RegionID);
} }
@ -232,7 +239,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Grid
#endregion #endregion
public void NeighboursCommand(string module, string[] cmdparams) public void HandleShowNeighboursCommand(string module, string[] cmdparams)
{ {
System.Text.StringBuilder caps = new System.Text.StringBuilder(); System.Text.StringBuilder caps = new System.Text.StringBuilder();

View File

@ -125,13 +125,13 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Neighbour
uint x, y; uint x, y;
Utils.LongToUInts(regionHandle, out x, out y); Utils.LongToUInts(regionHandle, out x, out y);
m_log.DebugFormat("[NEIGHBOUR CONNECTOR]: HelloNeighbour from region {0} to region at {1}-{2}",
thisRegion.RegionName, x / Constants.RegionSize, y / Constants.RegionSize);
foreach (Scene s in m_Scenes) foreach (Scene s in m_Scenes)
{ {
if (s.RegionInfo.RegionHandle == regionHandle) if (s.RegionInfo.RegionHandle == regionHandle)
{ {
m_log.DebugFormat("[LOCAL NEIGHBOUR SERVICE CONNECTOR]: HelloNeighbour from region {0} to neighbour {1} at {2}-{3}",
thisRegion.RegionName, s.Name, x / Constants.RegionSize, y / Constants.RegionSize);
//m_log.Debug("[NEIGHBOUR CONNECTOR]: Found region to SendHelloNeighbour"); //m_log.Debug("[NEIGHBOUR CONNECTOR]: Found region to SendHelloNeighbour");
return s.IncomingHelloNeighbour(thisRegion); return s.IncomingHelloNeighbour(thisRegion);
} }

View File

@ -782,19 +782,19 @@ namespace OpenSim.Region.Framework.Scenes
} }
} }
string grant = startupConfig.GetString("AllowedViewerList", String.Empty); string grant = startupConfig.GetString("AllowedClients", String.Empty);
if (grant.Length > 0) if (grant.Length > 0)
{ {
foreach (string viewer in grant.Split(',')) foreach (string viewer in grant.Split('|'))
{ {
m_AllowedViewers.Add(viewer.Trim().ToLower()); m_AllowedViewers.Add(viewer.Trim().ToLower());
} }
} }
grant = startupConfig.GetString("BannedViewerList", String.Empty); grant = startupConfig.GetString("BannedClients", String.Empty);
if (grant.Length > 0) if (grant.Length > 0)
{ {
foreach (string viewer in grant.Split(',')) foreach (string viewer in grant.Split('|'))
{ {
m_BannedViewers.Add(viewer.Trim().ToLower()); m_BannedViewers.Add(viewer.Trim().ToLower());
} }

View File

@ -84,16 +84,23 @@ namespace OpenSim.Region.Framework.Scenes
if (neighbourService != null) if (neighbourService != null)
neighbour = neighbourService.HelloNeighbour(regionhandle, region); neighbour = neighbourService.HelloNeighbour(regionhandle, region);
else else
m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: No neighbour service provided for informing neigbhours of this region"); m_log.DebugFormat(
"[SCENE COMMUNICATION SERVICE]: No neighbour service provided for region {0} to inform neigbhours of status",
m_scene.Name);
if (neighbour != null) if (neighbour != null)
{ {
m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: Successfully informed neighbour {0}-{1} that I'm here", x / Constants.RegionSize, y / Constants.RegionSize); m_log.DebugFormat(
"[SCENE COMMUNICATION SERVICE]: Region {0} successfully informed neighbour {1} at {2}-{3} that it is up",
m_scene.Name, neighbour.RegionName, x / Constants.RegionSize, y / Constants.RegionSize);
m_scene.EventManager.TriggerOnRegionUp(neighbour); m_scene.EventManager.TriggerOnRegionUp(neighbour);
} }
else else
{ {
m_log.InfoFormat("[SCENE COMMUNICATION SERVICE]: Failed to inform neighbour {0}-{1} that I'm here.", x / Constants.RegionSize, y / Constants.RegionSize); m_log.WarnFormat(
"[SCENE COMMUNICATION SERVICE]: Region {0} failed to inform neighbour at {1}-{2} that it is up.",
x / Constants.RegionSize, y / Constants.RegionSize);
} }
} }
@ -101,8 +108,13 @@ namespace OpenSim.Region.Framework.Scenes
{ {
//m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName);
List<GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID); List<GridRegion> neighbours
m_log.DebugFormat("[SCENE COMMUNICATION SERVICE]: Informing {0} neighbours that this region is up", neighbours.Count); = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID);
m_log.DebugFormat(
"[SCENE COMMUNICATION SERVICE]: Informing {0} neighbours that region {1} is up",
neighbours.Count, m_scene.Name);
foreach (GridRegion n in neighbours) foreach (GridRegion n in neighbours)
{ {
InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;

View File

@ -44,7 +44,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
{ {
public delegate void OnIRCClientReadyDelegate(IRCClientView cv); public delegate void OnIRCClientReadyDelegate(IRCClientView cv);
public class IRCClientView : IClientAPI, IClientCore, IClientIPEndpoint public class IRCClientView : IClientAPI, IClientCore
{ {
public event OnIRCClientReadyDelegate OnIRCReady; public event OnIRCClientReadyDelegate OnIRCReady;
@ -1431,11 +1431,6 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
Disconnect(); Disconnect();
} }
public EndPoint GetClientEP()
{
return null;
}
public ClientInfo GetClientInfo() public ClientInfo GetClientInfo()
{ {
return new ClientInfo(); return new ClientInfo();
@ -1633,15 +1628,6 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
#endregion #endregion
#region Implementation of IClientIPEndpoint
public IPAddress EndPoint
{
get { return ((IPEndPoint) m_client.Client.RemoteEndPoint).Address; }
}
#endregion
public void SendRebakeAvatarTextures(UUID textureID) public void SendRebakeAvatarTextures(UUID textureID)
{ {
} }

View File

@ -945,11 +945,6 @@ namespace OpenSim.Region.OptionalModules.World.NPC
{ {
} }
public EndPoint GetClientEP()
{
return null;
}
public ClientInfo GetClientInfo() public ClientInfo GetClientInfo()
{ {
return null; return null;

View File

@ -874,13 +874,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (World.Entities.ContainsKey((UUID)agent) && World.Entities[avatarID] is ScenePresence) if (World.Entities.ContainsKey((UUID)agent) && World.Entities[avatarID] is ScenePresence)
{ {
ScenePresence target = (ScenePresence)World.Entities[avatarID]; ScenePresence target = (ScenePresence)World.Entities[avatarID];
EndPoint ep = target.ControllingClient.GetClientEP(); return target.ControllingClient.RemoteEndPoint.Address.ToString();
if (ep is IPEndPoint)
{
IPEndPoint ip = (IPEndPoint)ep;
return ip.Address.ToString();
}
} }
// fall through case, just return nothing // fall through case, just return nothing
return ""; return "";
} }

View File

@ -952,7 +952,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
try try
{ {
FileStream fs = File.Create(Path.Combine(Path.GetDirectoryName(assembly), ItemID.ToString() + ".state")); FileStream fs = File.Create(Path.Combine(Path.GetDirectoryName(assembly), ItemID.ToString() + ".state"));
Byte[] buf = (new UTF8Encoding()).GetBytes(xml); Byte[] buf = Util.UTF8NoBomEncoding.GetBytes(xml);
fs.Write(buf, 0, buf.Length); fs.Write(buf, 0, buf.Length);
fs.Close(); fs.Close();
} }

View File

@ -321,8 +321,7 @@ namespace OpenSim.Server.Handlers.Authentication
private byte[] ResultToBytes(Dictionary<string, object> result) private byte[] ResultToBytes(Dictionary<string, object> result)
{ {
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
} }
} }

View File

@ -121,8 +121,7 @@ namespace OpenSim.Server.Handlers.Avatar
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
return FailureResult(); return FailureResult();

View File

@ -152,10 +152,9 @@ namespace OpenSim.Server.Handlers.Friends
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[FRIENDS HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(xmlString);
//m_log.DebugFormat("[FRIENDS HANDLER]: resp string: {0}", xmlString);
return Util.UTF8NoBomEncoding.GetBytes(xmlString);
} }
byte[] StoreFriend(Dictionary<string, object> request) byte[] StoreFriend(Dictionary<string, object> request)

View File

@ -226,10 +226,9 @@ namespace OpenSim.Server.Handlers.Grid
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(xmlString);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
return Util.UTF8NoBomEncoding.GetBytes(xmlString);
} }
byte[] GetRegionByUUID(Dictionary<string, object> request) byte[] GetRegionByUUID(Dictionary<string, object> request)
@ -256,9 +255,9 @@ namespace OpenSim.Server.Handlers.Grid
result["result"] = rinfo.ToKeyValuePairs(); result["result"] = rinfo.ToKeyValuePairs();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetRegionByPosition(Dictionary<string, object> request) byte[] GetRegionByPosition(Dictionary<string, object> request)
@ -289,9 +288,9 @@ namespace OpenSim.Server.Handlers.Grid
result["result"] = rinfo.ToKeyValuePairs(); result["result"] = rinfo.ToKeyValuePairs();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetRegionByName(Dictionary<string, object> request) byte[] GetRegionByName(Dictionary<string, object> request)
@ -318,9 +317,9 @@ namespace OpenSim.Server.Handlers.Grid
result["result"] = rinfo.ToKeyValuePairs(); result["result"] = rinfo.ToKeyValuePairs();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetRegionsByName(Dictionary<string, object> request) byte[] GetRegionsByName(Dictionary<string, object> request)
@ -361,9 +360,9 @@ namespace OpenSim.Server.Handlers.Grid
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetRegionRange(Dictionary<string, object> request) byte[] GetRegionRange(Dictionary<string, object> request)
@ -410,9 +409,9 @@ namespace OpenSim.Server.Handlers.Grid
} }
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetDefaultRegions(Dictionary<string, object> request) byte[] GetDefaultRegions(Dictionary<string, object> request)
@ -440,9 +439,9 @@ namespace OpenSim.Server.Handlers.Grid
} }
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetFallbackRegions(Dictionary<string, object> request) byte[] GetFallbackRegions(Dictionary<string, object> request)
@ -481,9 +480,9 @@ namespace OpenSim.Server.Handlers.Grid
} }
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetHyperlinks(Dictionary<string, object> request) byte[] GetHyperlinks(Dictionary<string, object> request)
@ -511,9 +510,9 @@ namespace OpenSim.Server.Handlers.Grid
} }
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetRegionFlags(Dictionary<string, object> request) byte[] GetRegionFlags(Dictionary<string, object> request)
@ -537,12 +536,11 @@ namespace OpenSim.Server.Handlers.Grid
result["result"] = flags.ToString(); result["result"] = flags.ToString();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
#endregion #endregion
#region Misc #region Misc

View File

@ -117,10 +117,9 @@ namespace OpenSim.Server.Handlers.GridUser
result["result"] = guinfo.ToKeyValuePairs(); result["result"] = guinfo.ToKeyValuePairs();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID USER HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(xmlString);
//m_log.DebugFormat("[GRID USER HANDLER]: resp string: {0}", xmlString);
return Util.UTF8NoBomEncoding.GetBytes(xmlString);
} }
byte[] LoggedOut(Dictionary<string, object> request) byte[] LoggedOut(Dictionary<string, object> request)
@ -189,10 +188,9 @@ namespace OpenSim.Server.Handlers.GridUser
result["result"] = guinfo.ToKeyValuePairs(); result["result"] = guinfo.ToKeyValuePairs();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID USER HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(xmlString);
//m_log.DebugFormat("[GRID USER HANDLER]: resp string: {0}", xmlString);
return Util.UTF8NoBomEncoding.GetBytes(xmlString);
} }
byte[] GetGridUserInfos(Dictionary<string, object> request) byte[] GetGridUserInfos(Dictionary<string, object> request)
@ -231,8 +229,7 @@ namespace OpenSim.Server.Handlers.GridUser
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
private bool UnpackArgs(Dictionary<string, object> request, out string user, out UUID region, out Vector3 position, out Vector3 lookAt) private bool UnpackArgs(Dictionary<string, object> request, out string user, out UUID region, out Vector3 position, out Vector3 lookAt)

View File

@ -279,13 +279,11 @@ namespace OpenSim.Server.Handlers.Hypergrid
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
#endregion #endregion
#region Misc #region Misc

View File

@ -217,9 +217,9 @@ namespace OpenSim.Server.Handlers.Asset
result["RESULT"] = "False"; result["RESULT"] = "False";
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetInventorySkeleton(Dictionary<string,object> request) byte[] HandleGetInventorySkeleton(Dictionary<string,object> request)
@ -245,9 +245,9 @@ namespace OpenSim.Server.Handlers.Asset
result["FOLDERS"] = sfolders; result["FOLDERS"] = sfolders;
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetUserInventory(Dictionary<string, object> request) byte[] HandleGetUserInventory(Dictionary<string, object> request)
@ -284,9 +284,9 @@ namespace OpenSim.Server.Handlers.Asset
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetRootFolder(Dictionary<string,object> request) byte[] HandleGetRootFolder(Dictionary<string,object> request)
@ -300,9 +300,9 @@ namespace OpenSim.Server.Handlers.Asset
result["folder"] = EncodeFolder(rfolder); result["folder"] = EncodeFolder(rfolder);
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetFolderForType(Dictionary<string,object> request) byte[] HandleGetFolderForType(Dictionary<string,object> request)
@ -317,9 +317,9 @@ namespace OpenSim.Server.Handlers.Asset
result["folder"] = EncodeFolder(folder); result["folder"] = EncodeFolder(folder);
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetFolderContent(Dictionary<string,object> request) byte[] HandleGetFolderContent(Dictionary<string,object> request)
@ -358,9 +358,9 @@ namespace OpenSim.Server.Handlers.Asset
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetFolderItems(Dictionary<string,object> request) byte[] HandleGetFolderItems(Dictionary<string,object> request)
@ -386,9 +386,9 @@ namespace OpenSim.Server.Handlers.Asset
result["ITEMS"] = sitems; result["ITEMS"] = sitems;
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleAddFolder(Dictionary<string,object> request) byte[] HandleAddFolder(Dictionary<string,object> request)
@ -550,9 +550,9 @@ namespace OpenSim.Server.Handlers.Asset
result["item"] = EncodeItem(item); result["item"] = EncodeItem(item);
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetFolder(Dictionary<string,object> request) byte[] HandleGetFolder(Dictionary<string,object> request)
@ -567,9 +567,9 @@ namespace OpenSim.Server.Handlers.Asset
result["folder"] = EncodeFolder(folder); result["folder"] = EncodeFolder(folder);
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetActiveGestures(Dictionary<string,object> request) byte[] HandleGetActiveGestures(Dictionary<string,object> request)
@ -592,9 +592,9 @@ namespace OpenSim.Server.Handlers.Asset
result["ITEMS"] = items; result["ITEMS"] = items;
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] HandleGetAssetPermissions(Dictionary<string,object> request) byte[] HandleGetAssetPermissions(Dictionary<string,object> request)
@ -609,11 +609,10 @@ namespace OpenSim.Server.Handlers.Asset
result["RESULT"] = perms.ToString(); result["RESULT"] = perms.ToString();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(xmlString);
}
//m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
return Util.UTF8NoBomEncoding.GetBytes(xmlString);
}
private Dictionary<string, object> EncodeFolder(InventoryFolderBase f) private Dictionary<string, object> EncodeFolder(InventoryFolderBase f)
{ {

View File

@ -200,9 +200,9 @@ namespace OpenSim.Server.Handlers.Presence
result["result"] = pinfo.ToKeyValuePairs(); result["result"] = pinfo.ToKeyValuePairs();
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] GetAgents(Dictionary<string, object> request) byte[] GetAgents(Dictionary<string, object> request)
@ -241,9 +241,9 @@ namespace OpenSim.Server.Handlers.Presence
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
private byte[] SuccessResult() private byte[] SuccessResult()

View File

@ -195,9 +195,9 @@ namespace OpenSim.Server.Handlers.UserAccounts
} }
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
//m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString); //m_log.DebugFormat("[GRID HANDLER]: resp string: {0}", xmlString);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
byte[] StoreAccount(Dictionary<string, object> request) byte[] StoreAccount(Dictionary<string, object> request)
@ -353,8 +353,7 @@ namespace OpenSim.Server.Handlers.UserAccounts
private byte[] ResultToBytes(Dictionary<string, object> result) private byte[] ResultToBytes(Dictionary<string, object> result)
{ {
string xmlString = ServerUtils.BuildXmlResponse(result); string xmlString = ServerUtils.BuildXmlResponse(result);
UTF8Encoding encoding = new UTF8Encoding(); return Util.UTF8NoBomEncoding.GetBytes(xmlString);
return encoding.GetBytes(xmlString);
} }
} }
} }

View File

@ -132,8 +132,7 @@ namespace OpenSim.Services.Connectors
try try
{ {
strBuffer = OSDParser.SerializeJsonString(args); strBuffer = OSDParser.SerializeJsonString(args);
UTF8Encoding str = new UTF8Encoding(); buffer = Util.UTF8NoBomEncoding.GetBytes(strBuffer);
buffer = str.GetBytes(strBuffer);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -963,11 +963,6 @@ namespace OpenSim.Tests.Common.Mock
{ {
} }
public EndPoint GetClientEP()
{
return null;
}
public ClientInfo GetClientInfo() public ClientInfo GetClientInfo()
{ {
return null; return null;

View File

@ -280,18 +280,18 @@
;; default is false ;; default is false
; TelehubAllowLandmark = false ; TelehubAllowLandmark = false
;# {AllowedViewerList} {} {Comma separated list of allowed viewers} {} ;# {AllowedClients} {} {Bar (|) separated list of allowed clients} {}
;; Comma separated list of viewers which may gain access to the regions. ;; Bar (|) separated list of viewers which may gain access to the regions.
;; One can use a Substring of the viewer name to enable only certain subversions ;; One can use a substring of the viewer name to enable only certain versions
;; Example: Agent uses the viewer "Imprudence 1.3.2.0" ;; Example: Agent uses the viewer "Imprudence 1.3.2.0"
;; - "Imprudence" has access ;; - "Imprudence" has access
;; - "Imprudence 1.3" has access ;; - "Imprudence 1.3" has access
;; - "Imprudence 1.3.1" has no access ;; - "Imprudence 1.3.1" has no access
;; AllowedViewerList = ; AllowedViewerList =
;# {BannedViewerList} {} {Comma separated list of banned viewers} {} ;# {BannedClients} {} {Bar (|) separated list of banned clients} {}
;# Comma separated list of viewers which may not gain access to the regions. ;# Bar (|) separated list of viewers which may not gain access to the regions.
;; One can use a Substring of the viewer name to disable only certain subversions ;; One can use a Substring of the viewer name to disable only certain versions
;; Example: Agent uses the viewer "Imprudence 1.3.2.0" ;; Example: Agent uses the viewer "Imprudence 1.3.2.0"
;; - "Imprudence" has no access ;; - "Imprudence" has no access
;; - "Imprudence 1.3" has no access ;; - "Imprudence 1.3" has no access