diff options
Diffstat (limited to 'OpenSim/Server/Handlers/Map')
-rw-r--r-- | OpenSim/Server/Handlers/Map/MapAddServerConnector.cs | 35 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Map/MapGetServerConnector.cs | 2 |
2 files changed, 14 insertions, 23 deletions
diff --git a/OpenSim/Server/Handlers/Map/MapAddServerConnector.cs b/OpenSim/Server/Handlers/Map/MapAddServerConnector.cs index 4a61969..649a27e 100644 --- a/OpenSim/Server/Handlers/Map/MapAddServerConnector.cs +++ b/OpenSim/Server/Handlers/Map/MapAddServerConnector.cs | |||
@@ -38,6 +38,7 @@ using OpenMetaverse; | |||
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Server.Base; | 39 | using OpenSim.Server.Base; |
40 | using OpenSim.Services.Interfaces; | 40 | using OpenSim.Services.Interfaces; |
41 | using OpenSim.Framework.ServiceAuth; | ||
41 | using OpenSim.Framework.Servers.HttpServer; | 42 | using OpenSim.Framework.Servers.HttpServer; |
42 | using OpenSim.Server.Handlers.Base; | 43 | using OpenSim.Server.Handlers.Base; |
43 | 44 | ||
@@ -79,7 +80,8 @@ namespace OpenSim.Server.Handlers.MapImage | |||
79 | m_log.InfoFormat("[MAP IMAGE HANDLER]: GridService check is OFF"); | 80 | m_log.InfoFormat("[MAP IMAGE HANDLER]: GridService check is OFF"); |
80 | 81 | ||
81 | bool proxy = serverConfig.GetBoolean("HasProxy", false); | 82 | bool proxy = serverConfig.GetBoolean("HasProxy", false); |
82 | server.AddStreamHandler(new MapServerPostHandler(m_MapService, m_GridService, proxy)); | 83 | IServiceAuth auth = ServiceAuth.Create(config, m_ConfigName); |
84 | server.AddStreamHandler(new MapServerPostHandler(m_MapService, m_GridService, proxy, auth)); | ||
83 | 85 | ||
84 | } | 86 | } |
85 | } | 87 | } |
@@ -91,15 +93,15 @@ namespace OpenSim.Server.Handlers.MapImage | |||
91 | private IGridService m_GridService; | 93 | private IGridService m_GridService; |
92 | bool m_Proxy; | 94 | bool m_Proxy; |
93 | 95 | ||
94 | public MapServerPostHandler(IMapImageService service, IGridService grid, bool proxy) : | 96 | public MapServerPostHandler(IMapImageService service, IGridService grid, bool proxy, IServiceAuth auth) : |
95 | base("POST", "/map") | 97 | base("POST", "/map", auth) |
96 | { | 98 | { |
97 | m_MapService = service; | 99 | m_MapService = service; |
98 | m_GridService = grid; | 100 | m_GridService = grid; |
99 | m_Proxy = proxy; | 101 | m_Proxy = proxy; |
100 | } | 102 | } |
101 | 103 | ||
102 | public override byte[] Handle(string path, Stream requestData, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | 104 | protected override byte[] ProcessRequest(string path, Stream requestData, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) |
103 | { | 105 | { |
104 | // m_log.DebugFormat("[MAP SERVICE IMAGE HANDLER]: Received {0}", path); | 106 | // m_log.DebugFormat("[MAP SERVICE IMAGE HANDLER]: Received {0}", path); |
105 | StreamReader sr = new StreamReader(requestData); | 107 | StreamReader sr = new StreamReader(requestData); |
@@ -116,9 +118,9 @@ namespace OpenSim.Server.Handlers.MapImage | |||
116 | httpResponse.StatusCode = (int)OSHttpStatusCode.ClientErrorBadRequest; | 118 | httpResponse.StatusCode = (int)OSHttpStatusCode.ClientErrorBadRequest; |
117 | return FailureResult("Bad request."); | 119 | return FailureResult("Bad request."); |
118 | } | 120 | } |
119 | int x = 0, y = 0; | 121 | uint x = 0, y = 0; |
120 | Int32.TryParse(request["X"].ToString(), out x); | 122 | UInt32.TryParse(request["X"].ToString(), out x); |
121 | Int32.TryParse(request["Y"].ToString(), out y); | 123 | UInt32.TryParse(request["Y"].ToString(), out y); |
122 | 124 | ||
123 | m_log.DebugFormat("[MAP ADD SERVER CONNECTOR]: Received map data for region at {0}-{1}", x, y); | 125 | m_log.DebugFormat("[MAP ADD SERVER CONNECTOR]: Received map data for region at {0}-{1}", x, y); |
124 | 126 | ||
@@ -130,7 +132,7 @@ namespace OpenSim.Server.Handlers.MapImage | |||
130 | if (m_GridService != null) | 132 | if (m_GridService != null) |
131 | { | 133 | { |
132 | System.Net.IPAddress ipAddr = GetCallerIP(httpRequest); | 134 | System.Net.IPAddress ipAddr = GetCallerIP(httpRequest); |
133 | GridRegion r = m_GridService.GetRegionByPosition(UUID.Zero, x * (int)Constants.RegionSize, y * (int)Constants.RegionSize); | 135 | GridRegion r = m_GridService.GetRegionByPosition(UUID.Zero, (int)Util.RegionToWorldLoc(x), (int)Util.RegionToWorldLoc(y)); |
134 | if (r != null) | 136 | if (r != null) |
135 | { | 137 | { |
136 | if (r.ExternalEndPoint.Address.ToString() != ipAddr.ToString()) | 138 | if (r.ExternalEndPoint.Address.ToString() != ipAddr.ToString()) |
@@ -151,7 +153,7 @@ namespace OpenSim.Server.Handlers.MapImage | |||
151 | byte[] data = Convert.FromBase64String(request["DATA"].ToString()); | 153 | byte[] data = Convert.FromBase64String(request["DATA"].ToString()); |
152 | 154 | ||
153 | string reason = string.Empty; | 155 | string reason = string.Empty; |
154 | bool result = m_MapService.AddMapTile(x, y, data, out reason); | 156 | bool result = m_MapService.AddMapTile((int)x, (int)y, data, out reason); |
155 | 157 | ||
156 | if (result) | 158 | if (result) |
157 | return SuccessResult(); | 159 | return SuccessResult(); |
@@ -186,7 +188,7 @@ namespace OpenSim.Server.Handlers.MapImage | |||
186 | 188 | ||
187 | rootElement.AppendChild(result); | 189 | rootElement.AppendChild(result); |
188 | 190 | ||
189 | return DocToBytes(doc); | 191 | return Util.DocToBytes(doc); |
190 | } | 192 | } |
191 | 193 | ||
192 | private byte[] FailureResult(string msg) | 194 | private byte[] FailureResult(string msg) |
@@ -213,18 +215,7 @@ namespace OpenSim.Server.Handlers.MapImage | |||
213 | 215 | ||
214 | rootElement.AppendChild(message); | 216 | rootElement.AppendChild(message); |
215 | 217 | ||
216 | return DocToBytes(doc); | 218 | return Util.DocToBytes(doc); |
217 | } | ||
218 | |||
219 | private byte[] DocToBytes(XmlDocument doc) | ||
220 | { | ||
221 | MemoryStream ms = new MemoryStream(); | ||
222 | XmlTextWriter xw = new XmlTextWriter(ms, null); | ||
223 | xw.Formatting = Formatting.Indented; | ||
224 | doc.WriteTo(xw); | ||
225 | xw.Flush(); | ||
226 | |||
227 | return ms.ToArray(); | ||
228 | } | 219 | } |
229 | 220 | ||
230 | private System.Net.IPAddress GetCallerIP(IOSHttpRequest request) | 221 | private System.Net.IPAddress GetCallerIP(IOSHttpRequest request) |
diff --git a/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs b/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs index fb85d1c..7bb2f39 100644 --- a/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs +++ b/OpenSim/Server/Handlers/Map/MapGetServerConnector.cs | |||
@@ -80,7 +80,7 @@ namespace OpenSim.Server.Handlers.MapImage | |||
80 | m_MapService = service; | 80 | m_MapService = service; |
81 | } | 81 | } |
82 | 82 | ||
83 | public override byte[] Handle(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) | 83 | protected override byte[] ProcessRequest(string path, Stream request, IOSHttpRequest httpRequest, IOSHttpResponse httpResponse) |
84 | { | 84 | { |
85 | byte[] result = new byte[0]; | 85 | byte[] result = new byte[0]; |
86 | 86 | ||