change NeighbourHandlers whatever they are...
							parent
							
								
									05f098be56
								
							
						
					
					
						commit
						c07f4f3c41
					
				|  | @ -26,13 +26,12 @@ | |||
|  */ | ||||
| 
 | ||||
| using System; | ||||
| using System.Collections; | ||||
| using System.Net; | ||||
| using System.IO; | ||||
| using System.IO.Compression; | ||||
| 
 | ||||
| using OpenSim.Framework; | ||||
| using OpenSim.Framework.Servers.HttpServer; | ||||
| using OpenSim.Services.Interfaces; | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.StructuredData; | ||||
| 
 | ||||
| namespace OpenSim.Server.Handlers.Base | ||||
| { | ||||
|  | @ -93,5 +92,28 @@ namespace OpenSim.Server.Handlers.Base | |||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         public static OSDMap DeserializeOSMap(IOSHttpRequest httpRequest) | ||||
|         { | ||||
|             Stream inputStream = httpRequest.InputStream; | ||||
|             Stream innerStream = null; | ||||
|             try | ||||
|             { | ||||
|                 if ((httpRequest.ContentType == "application/x-gzip" || httpRequest.Headers["Content-Encoding"] == "gzip") || (httpRequest.Headers["X-Content-Encoding"] == "gzip")) | ||||
|                 { | ||||
|                     innerStream = inputStream; | ||||
|                     inputStream = new GZipStream(innerStream, CompressionMode.Decompress); | ||||
|                 } | ||||
|                 return (OSDMap)OSDParser.DeserializeJson(inputStream); | ||||
|             } | ||||
|             catch | ||||
|             { | ||||
|                 return null; | ||||
|             } | ||||
|             finally | ||||
|             { | ||||
|                 if (innerStream != null) | ||||
|                     innerStream.Dispose(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -40,66 +40,74 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion; | |||
| 
 | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.StructuredData; | ||||
| using Nini.Config; | ||||
| using log4net; | ||||
| 
 | ||||
| 
 | ||||
| namespace OpenSim.Server.Handlers.Neighbour | ||||
| { | ||||
|     public class NeighbourGetHandler : BaseStreamHandler | ||||
|     { | ||||
|         // TODO: unused: private ISimulationService m_SimulationService; | ||||
|         // TODO: unused: private IAuthenticationService m_AuthenticationService; | ||||
| 
 | ||||
|         public NeighbourGetHandler(INeighbourService service, IAuthenticationService authentication) : | ||||
|                 base("GET", "/region") | ||||
|         { | ||||
|             // TODO: unused: m_SimulationService = service; | ||||
|             // TODO: unused: m_AuthenticationService = authentication; | ||||
|         } | ||||
| 
 | ||||
|         protected override byte[] ProcessRequest(string path, Stream request, | ||||
|                 IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | ||||
|         { | ||||
|             // Not implemented yet | ||||
|             Console.WriteLine("--- Get region --- " + path); | ||||
|             httpResponse.StatusCode = (int)HttpStatusCode.NotImplemented; | ||||
|             return new byte[] { }; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public class NeighbourPostHandler : BaseStreamHandler | ||||
|     public class NeighbourSimpleHandler : SimpleStreamHandler | ||||
|     { | ||||
|         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||||
|         private INeighbourService m_NeighbourService; | ||||
|         private IAuthenticationService m_AuthenticationService; | ||||
|         // TODO: unused: private bool m_AllowForeignGuests; | ||||
| 
 | ||||
|         public NeighbourPostHandler(INeighbourService service, IAuthenticationService authentication) : | ||||
|             base("POST", "/region") | ||||
|         public NeighbourSimpleHandler(INeighbourService service, IAuthenticationService authentication) : | ||||
|                 base("/region") | ||||
|         { | ||||
|             m_NeighbourService = service; | ||||
|             m_AuthenticationService = authentication; | ||||
|             // TODO: unused: m_AllowForeignGuests = foreignGuests; | ||||
|         } | ||||
| 
 | ||||
|         protected override byte[] ProcessRequest(string path, Stream request, | ||||
|                 IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | ||||
|         protected override void ProcessRequest(IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | ||||
|         { | ||||
|             httpResponse.KeepAlive = false; | ||||
| 
 | ||||
|             if (m_NeighbourService == null) | ||||
|             { | ||||
|                 httpResponse.StatusCode = (int)HttpStatusCode.InternalServerError; | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             switch (httpRequest.HttpMethod) | ||||
|             { | ||||
|                 case "POST": | ||||
|                 { | ||||
|                     OSDMap args = RestHandlerUtils.DeserializeOSMap(httpRequest); | ||||
|                     if (args == null) | ||||
|                     { | ||||
|                         httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; | ||||
|                         httpResponse.RawBuffer = Util.UTF8.GetBytes("false"); | ||||
|                         return; | ||||
|                     } | ||||
| 
 | ||||
|                     if (RestHandlerUtils.GetParams(httpRequest.UriPath, out UUID regionID, out ulong regionHandle, out string action) | ||||
|                         || regionID == UUID.Zero) | ||||
|                     { | ||||
|                         m_log.InfoFormat("[RegionPostHandler]: Invalid parameters for neighbour message {0}", httpRequest.UriPath); | ||||
|                         httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; | ||||
|                         return; | ||||
|                     } | ||||
|                     ProcessPostRequest(args, httpRequest, httpResponse, regionID); | ||||
|                     break; | ||||
|                 } | ||||
|                 case "GET": | ||||
|                 case "PUT": | ||||
|                 case "DELETE": | ||||
|                     httpResponse.StatusCode = (int)HttpStatusCode.NotImplemented; | ||||
|                     return; | ||||
|                 default: | ||||
|                 { | ||||
|                     httpResponse.StatusCode = (int)HttpStatusCode.MethodNotAllowed; | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // TODO: unused: private bool m_AllowForeignGuests; | ||||
|         protected void ProcessPostRequest(OSDMap args, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse, UUID regionID) | ||||
|         { | ||||
|             byte[] result = new byte[0]; | ||||
| 
 | ||||
|             UUID regionID; | ||||
|             string action; | ||||
|             ulong regionHandle; | ||||
|             if (RestHandlerUtils.GetParams(path, out regionID, out regionHandle, out action)) | ||||
|             { | ||||
|                 m_log.InfoFormat("[RegionPostHandler]: Invalid parameters for neighbour message {0}", path); | ||||
|                 httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; | ||||
|                 httpResponse.StatusDescription = "Invalid parameters for neighbour message " + path; | ||||
| 
 | ||||
|                 return result; | ||||
|             } | ||||
| 
 | ||||
|             if (m_AuthenticationService != null) | ||||
|             { | ||||
|                 // Authentication | ||||
|  | @ -107,9 +115,9 @@ namespace OpenSim.Server.Handlers.Neighbour | |||
|                 string authToken = string.Empty; | ||||
|                 if (!RestHandlerUtils.GetAuthentication(httpRequest, out authority, out authToken)) | ||||
|                 { | ||||
|                     m_log.InfoFormat("[RegionPostHandler]: Authentication failed for neighbour message {0}", path); | ||||
|                     m_log.InfoFormat("[RegionPostHandler]: Authentication failed for neighbour message"); | ||||
|                     httpResponse.StatusCode = (int)HttpStatusCode.Unauthorized; | ||||
|                     return result; | ||||
|                     return; | ||||
|                 } | ||||
|                 // TODO: Rethink this | ||||
|                 //if (!m_AuthenticationService.VerifyKey(regionID, authToken)) | ||||
|  | @ -121,15 +129,6 @@ namespace OpenSim.Server.Handlers.Neighbour | |||
|                 m_log.DebugFormat("[RegionPostHandler]: Authentication succeeded for {0}", regionID); | ||||
|             } | ||||
| 
 | ||||
|             OSDMap args = Util.GetOSDMap(request, (int)httpRequest.ContentLength); | ||||
|             if (args == null) | ||||
|             { | ||||
|                 httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; | ||||
|                 httpResponse.StatusDescription = "Unable to retrieve data"; | ||||
|                 m_log.DebugFormat("[RegionPostHandler]: Unable to retrieve data for post {0}", path); | ||||
|                 return result; | ||||
|             } | ||||
| 
 | ||||
|             // retrieve the regionhandle | ||||
|             ulong regionhandle = 0; | ||||
|             if (args["destination_handle"] != null) | ||||
|  | @ -144,8 +143,7 @@ namespace OpenSim.Server.Handlers.Neighbour | |||
|             { | ||||
|                 m_log.InfoFormat("[RegionPostHandler]: exception on unpacking region info {0}", ex.Message); | ||||
|                 httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; | ||||
|                 httpResponse.StatusDescription = "Problems with data deserialization"; | ||||
|                 return result; | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             // Finally! | ||||
|  | @ -158,51 +156,9 @@ namespace OpenSim.Server.Handlers.Neighbour | |||
|             else | ||||
|                 resp["success"] = OSD.FromBoolean(false); | ||||
| 
 | ||||
|             httpResponse.RawBuffer = Util.UTF8.GetBytes(OSDParser.SerializeJsonString(resp)); | ||||
|             httpResponse.StatusCode = (int)HttpStatusCode.OK; | ||||
| 
 | ||||
|             return Util.UTF8.GetBytes(OSDParser.SerializeJsonString(resp)); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public class NeighbourPutHandler : BaseStreamHandler | ||||
|     { | ||||
|         // TODO: unused: private ISimulationService m_SimulationService; | ||||
|         // TODO: unused: private IAuthenticationService m_AuthenticationService; | ||||
| 
 | ||||
|         public NeighbourPutHandler(INeighbourService service, IAuthenticationService authentication) : | ||||
|             base("PUT", "/region") | ||||
|         { | ||||
|             // TODO: unused: m_SimulationService = service; | ||||
|             // TODO: unused: m_AuthenticationService = authentication; | ||||
|         } | ||||
| 
 | ||||
|         protected override byte[] ProcessRequest(string path, Stream request, | ||||
|                 IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | ||||
|         { | ||||
|             // Not implemented yet | ||||
|             httpResponse.StatusCode = (int)HttpStatusCode.NotImplemented; | ||||
|             return new byte[] { }; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public class NeighbourDeleteHandler : BaseStreamHandler | ||||
|     { | ||||
|         // TODO: unused: private ISimulationService m_SimulationService; | ||||
|         // TODO: unused: private IAuthenticationService m_AuthenticationService; | ||||
| 
 | ||||
|         public NeighbourDeleteHandler(INeighbourService service, IAuthenticationService authentication) : | ||||
|             base("DELETE", "/region") | ||||
|         { | ||||
|             // TODO: unused: m_SimulationService = service; | ||||
|             // TODO: unused: m_AuthenticationService = authentication; | ||||
|         } | ||||
| 
 | ||||
|         protected override byte[] ProcessRequest(string path, Stream request, | ||||
|                 IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | ||||
|         { | ||||
|             // Not implemented yet | ||||
|             httpResponse.StatusCode = (int)HttpStatusCode.NotImplemented; | ||||
|             return new byte[] { }; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -60,9 +60,7 @@ namespace OpenSim.Server.Handlers.Neighbour | |||
|             //if (authentication) | ||||
|             //    m_AuthenticationService = scene.RequestModuleInterface<IAuthenticationService>(); | ||||
| 
 | ||||
| 
 | ||||
|             server.AddStreamHandler(new NeighbourPostHandler(m_NeighbourService, m_AuthenticationService)); | ||||
|             server.AddStreamHandler(new NeighbourGetHandler(m_NeighbourService, m_AuthenticationService)); | ||||
|             server.AddSimpleStreamHandler(new NeighbourSimpleHandler(m_NeighbourService, m_AuthenticationService)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -26,15 +26,8 @@ | |||
|  */ | ||||
| 
 | ||||
| using System; | ||||
| using System.Collections; | ||||
| using System.IO; | ||||
| using System.IO.Compression; | ||||
| using System.Reflection; | ||||
| using System.Net; | ||||
| using System.Text; | ||||
| 
 | ||||
| using OpenSim.Server.Base; | ||||
| using OpenSim.Server.Handlers.Base; | ||||
| using OpenSim.Services.Interfaces; | ||||
| using GridRegion = OpenSim.Services.Interfaces.GridRegion; | ||||
| using OpenSim.Framework; | ||||
|  | @ -42,7 +35,6 @@ using OpenSim.Framework.Servers.HttpServer; | |||
| 
 | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.StructuredData; | ||||
| using Nini.Config; | ||||
| using log4net; | ||||
| 
 | ||||
| 
 | ||||
|  | @ -71,7 +63,7 @@ namespace OpenSim.Server.Handlers.Simulation | |||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             /* this things are ignored | ||||
|             /*this things are ignored | ||||
|             if (!Utils.GetParams(httpRequest.UriPath, out UUID objectID, out UUID regionID, out string action)) | ||||
|             { | ||||
|                 m_log.InfoFormat("[OBJECT HANDLER]: Invalid parameters for object message {0}", httpRequest.UriPath); | ||||
|  | @ -84,7 +76,7 @@ namespace OpenSim.Server.Handlers.Simulation | |||
|             { | ||||
|                 case "POST": | ||||
|                 { | ||||
|                     OSDMap args = Deserialize(httpRequest); | ||||
|                     OSDMap args = Utils.DeserializeOSMap(httpRequest); | ||||
|                     if (args == null) | ||||
|                     { | ||||
|                         httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; | ||||
|  | @ -101,32 +93,8 @@ namespace OpenSim.Server.Handlers.Simulation | |||
|                     return; | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|         } | ||||
| 
 | ||||
|         private OSDMap Deserialize(IOSHttpRequest httpRequest) | ||||
|         { | ||||
|             Stream inputStream = httpRequest.InputStream; | ||||
|             Stream innerStream = null; | ||||
|             try | ||||
|             { | ||||
|                 if ((httpRequest.ContentType == "application/x-gzip" || httpRequest.Headers["Content-Encoding"] == "gzip") || (httpRequest.Headers["X-Content-Encoding"] == "gzip")) | ||||
|                 { | ||||
|                     innerStream = inputStream; | ||||
|                     inputStream = new GZipStream(innerStream, CompressionMode.Decompress); | ||||
|                 } | ||||
|                 return (OSDMap)OSDParser.DeserializeJson(inputStream); | ||||
|             } | ||||
|             catch | ||||
|             { | ||||
|                 return null; | ||||
|             } | ||||
|             finally | ||||
|             { | ||||
|                 if (innerStream != null) | ||||
|                     innerStream.Dispose(); | ||||
|             } | ||||
|         } | ||||
|         protected void DoObjectPost(OSDMap args, IOSHttpResponse httpResponse) | ||||
|         { | ||||
|             // retrieve the input arguments | ||||
|  |  | |||
|  | @ -26,11 +26,13 @@ | |||
|  */ | ||||
| 
 | ||||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.IO; | ||||
| using System.IO.Compression; | ||||
| using System.Reflection; | ||||
| 
 | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.StructuredData; | ||||
| using OpenSim.Framework.Servers.HttpServer; | ||||
| 
 | ||||
| using log4net; | ||||
| 
 | ||||
|  | @ -99,5 +101,28 @@ namespace OpenSim.Server.Handlers.Simulation | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public static OSDMap DeserializeOSMap(IOSHttpRequest httpRequest) | ||||
|         { | ||||
|             Stream inputStream = httpRequest.InputStream; | ||||
|             Stream innerStream = null; | ||||
|             try | ||||
|             { | ||||
|                 if ((httpRequest.ContentType == "application/x-gzip" || httpRequest.Headers["Content-Encoding"] == "gzip") || (httpRequest.Headers["X-Content-Encoding"] == "gzip")) | ||||
|                 { | ||||
|                     innerStream = inputStream; | ||||
|                     inputStream = new GZipStream(innerStream, CompressionMode.Decompress); | ||||
|                 } | ||||
|                 return (OSDMap)OSDParser.DeserializeJson(inputStream); | ||||
|             } | ||||
|             catch | ||||
|             { | ||||
|                 return null; | ||||
|             } | ||||
|             finally | ||||
|             { | ||||
|                 if (innerStream != null) | ||||
|                     innerStream.Dispose(); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 UbitUmarov
						UbitUmarov