From 71f3ff77ca75fe4b5f387315d9ba352a38fc64f5 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Mon, 9 Feb 2009 07:26:50 +0000 Subject: [PATCH] Switched HttpServer.dll to the "lite" branch in the official C# WebServer repository. The fork maintained by libopenmetaverse will be removed soon git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2432 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse.Http/CapsServer.cs | 12 +++++++----- OpenMetaverse.Http/EventQueueServer.cs | 5 +++-- OpenMetaverse/AppearanceManager.cs | 2 +- Programs/Simian/Extensions/UDPManager.cs | 10 +++++++++- Programs/Simian/Simian.cs | 7 ++++--- .../TestClient/Commands/Movement/FlyToCommand.cs | 8 ++++---- 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/OpenMetaverse.Http/CapsServer.cs b/OpenMetaverse.Http/CapsServer.cs index 25aa5f0d..67d2e9fc 100644 --- a/OpenMetaverse.Http/CapsServer.cs +++ b/OpenMetaverse.Http/CapsServer.cs @@ -28,9 +28,11 @@ using System; using System.Collections.Generic; using System.IO; using System.Net; +using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using OpenMetaverse.StructuredData; using HttpServer; +using HttpListener = HttpServer.HttpListener; namespace OpenMetaverse.Http { @@ -62,7 +64,7 @@ namespace OpenMetaverse.Http } } - WebServer server; + HttpListener server; bool serverOwned; HttpRequestHandler capsHandler; ExpiringCache expiringCaps = new ExpiringCache(); @@ -73,7 +75,7 @@ namespace OpenMetaverse.Http { serverOwned = true; capsHandler = BuildCapsHandler(@"^/caps/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"); - server = new WebServer(address, port); + server = HttpListener.Create(address, port); server.LogWriter = new log4netLogWriter(Logger.Log); } @@ -81,11 +83,11 @@ namespace OpenMetaverse.Http { serverOwned = true; capsHandler = BuildCapsHandler(@"^/caps/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"); - server = new WebServer(address, port, sslCertificate, rootCA, requireClientCertificate); + server = HttpListener.Create(address, port, sslCertificate, rootCA, SslProtocols.Default, requireClientCertificate); server.LogWriter = new log4netLogWriter(Logger.Log); } - public CapsServer(WebServer httpServer, string handlerPath) + public CapsServer(HttpListener httpServer, string handlerPath) { serverOwned = false; capsHandler = BuildCapsHandler(handlerPath); @@ -97,7 +99,7 @@ namespace OpenMetaverse.Http server.AddHandler(capsHandler); if (serverOwned) - server.Start(); + server.Start(10); } public void Stop() diff --git a/OpenMetaverse.Http/EventQueueServer.cs b/OpenMetaverse.Http/EventQueueServer.cs index 5276ef88..d403e87c 100644 --- a/OpenMetaverse.Http/EventQueueServer.cs +++ b/OpenMetaverse.Http/EventQueueServer.cs @@ -31,6 +31,7 @@ using System.IO; using System.Threading; using OpenMetaverse.StructuredData; using HttpServer; +using HttpListener = HttpServer.HttpListener; namespace OpenMetaverse.Http { @@ -66,12 +67,12 @@ namespace OpenMetaverse.Http /// events const int MAX_EVENTS_PER_RESPONSE = 5; - WebServer server; + HttpListener server; BlockingQueue eventQueue = new BlockingQueue(); int currentID = 1; bool running = true; - public EventQueueServer(WebServer server) + public EventQueueServer(HttpListener server) { this.server = server; } diff --git a/OpenMetaverse/AppearanceManager.cs b/OpenMetaverse/AppearanceManager.cs index 9e890e67..e05a8554 100644 --- a/OpenMetaverse/AppearanceManager.cs +++ b/OpenMetaverse/AppearanceManager.cs @@ -1139,7 +1139,7 @@ namespace OpenMetaverse foreach (AgentCachedTextureResponsePacket.WearableDataBlock block in response.WearableData) { - UUID hash=new UUID(); + //UUID hash=new UUID(); // For each missing element we need to bake our own texture Logger.DebugLog("Cache response, index: " + block.TextureIndex + ", ID: " + block.TextureID.ToString(), Client); diff --git a/Programs/Simian/Extensions/UDPManager.cs b/Programs/Simian/Extensions/UDPManager.cs index 8c4132bc..dc25806e 100644 --- a/Programs/Simian/Extensions/UDPManager.cs +++ b/Programs/Simian/Extensions/UDPManager.cs @@ -455,7 +455,15 @@ namespace Simian Agent agent; if (CompleteAgentConnection(useCircuitCode.CircuitCode.Code, out agent)) { - // FIXME: Sanity check that the agent isn't already logged in here + // Sanity check that the agent isn't already logged in + if (clients.ContainsKey(agent.Avatar.ID)) + { + Logger.Log("Client UDP reference already exists for " + agent.Avatar.ID.ToString() + ", removing", + Helpers.LogLevel.Warning); + server.Scene.ObjectRemove(this, agent.Avatar.ID); + clients.Remove(agent.Avatar.ID); + } + AddClient(agent, address); if (clients.TryGetValue(agent.Avatar.ID, out client)) { diff --git a/Programs/Simian/Simian.cs b/Programs/Simian/Simian.cs index eaeff543..beb6d76e 100644 --- a/Programs/Simian/Simian.cs +++ b/Programs/Simian/Simian.cs @@ -10,6 +10,7 @@ using System.Security.Cryptography.X509Certificates; using ExtensionLoader; using ExtensionLoader.Config; using HttpServer; +using HttpListener = HttpServer.HttpListener; using OpenMetaverse; using OpenMetaverse.Http; @@ -25,7 +26,7 @@ namespace Simian public bool SSL { get { return false; } } public string HostName { get { return Dns.GetHostName(); } } - public WebServer HttpServer; + public HttpListener HttpServer; public IniConfigSource ConfigFile; // Interfaces @@ -65,8 +66,8 @@ namespace Simian } // TODO: SSL support - HttpServer = new WebServer(IPAddress.Any, HttpPort); - HttpServer.Start(); + HttpServer = HttpListener.Create(IPAddress.Any, HttpPort); + HttpServer.Start(10); try { diff --git a/Programs/examples/TestClient/Commands/Movement/FlyToCommand.cs b/Programs/examples/TestClient/Commands/Movement/FlyToCommand.cs index 54c6ce79..e88c0790 100644 --- a/Programs/examples/TestClient/Commands/Movement/FlyToCommand.cs +++ b/Programs/examples/TestClient/Commands/Movement/FlyToCommand.cs @@ -151,13 +151,13 @@ namespace OpenMetaverse.TestClient.Commands.Movement Client.Self.Movement.SendUpdate(false); } + [System.Diagnostics.Conditional("DEBUG")] private void Debug(string x) { - return; /* remove for debugging */ Console.WriteLine(x + " {0,3:##0} {1,3:##0} {2,3:##0} diff {3,5:##0.0} olddiff {4,5:##0.0} At:{5,5} {6,5} Up:{7,5} {8,5} v: {9} w: {10}", - myPos.X, myPos.Y, myPos.Z, diff, saveolddiff, - Client.Self.Movement.AtPos, Client.Self.Movement.AtNeg, Client.Self.Movement.UpPos, Client.Self.Movement.UpNeg, - Client.Self.Velocity.ToString(), Client.Self.AngularVelocity.ToString()); + myPos.X, myPos.Y, myPos.Z, diff, saveolddiff, + Client.Self.Movement.AtPos, Client.Self.Movement.AtNeg, Client.Self.Movement.UpPos, Client.Self.Movement.UpNeg, + Client.Self.Velocity.ToString(), Client.Self.AngularVelocity.ToString()); } } }