aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Simulation
diff options
context:
space:
mode:
authordiva2009-06-14 15:35:09 +0000
committerdiva2009-06-14 15:35:09 +0000
commit7a9c85526cb99495bdd436150679941ef021b782 (patch)
tree888b5bdf86f8327d2df0c1ca8f1cd3dd999d125d /OpenSim/Server/Handlers/Simulation
parent* Temporarily resolve another problem in http://opensimulator.org/mantis/view... (diff)
downloadopensim-SC-7a9c85526cb99495bdd436150679941ef021b782.zip
opensim-SC-7a9c85526cb99495bdd436150679941ef021b782.tar.gz
opensim-SC-7a9c85526cb99495bdd436150679941ef021b782.tar.bz2
opensim-SC-7a9c85526cb99495bdd436150679941ef021b782.tar.xz
Pulled out HelloNeighbour into its own service, INeighbourService, which may get more functions as we go along. It's a very simple service and service connectors, and it served primarily to establish the design of services that dependent on Scenes and that must always have a local connector. More refactoring coming, as this showed how to do it right.
Diffstat (limited to 'OpenSim/Server/Handlers/Simulation')
-rw-r--r--OpenSim/Server/Handlers/Simulation/AgentHandlers.cs5
-rw-r--r--OpenSim/Server/Handlers/Simulation/Utils.cs97
2 files changed, 3 insertions, 99 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
index c14ad99..8e4d7d0 100644
--- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
@@ -32,6 +32,7 @@ using System.Net;
32using System.Text; 32using System.Text;
33 33
34using OpenSim.Server.Base; 34using OpenSim.Server.Base;
35using OpenSim.Server.Handlers.Base;
35using OpenSim.Services.Interfaces; 36using OpenSim.Services.Interfaces;
36using OpenSim.Framework; 37using OpenSim.Framework;
37using OpenSim.Framework.Servers.HttpServer; 38using OpenSim.Framework.Servers.HttpServer;
@@ -88,7 +89,7 @@ namespace OpenSim.Server.Handlers.Simulation
88 UUID agentID; 89 UUID agentID;
89 string action; 90 string action;
90 ulong regionHandle; 91 ulong regionHandle;
91 if (!Utils.GetParams(path, out agentID, out regionHandle, out action)) 92 if (!RestHandlerUtils.GetParams(path, out agentID, out regionHandle, out action))
92 { 93 {
93 m_log.InfoFormat("[AgentPostHandler]: Invalid parameters for agent message {0}", path); 94 m_log.InfoFormat("[AgentPostHandler]: Invalid parameters for agent message {0}", path);
94 httpResponse.StatusCode = (int)HttpStatusCode.BadRequest; 95 httpResponse.StatusCode = (int)HttpStatusCode.BadRequest;
@@ -102,7 +103,7 @@ namespace OpenSim.Server.Handlers.Simulation
102 // Authentication 103 // Authentication
103 string authority = string.Empty; 104 string authority = string.Empty;
104 string authToken = string.Empty; 105 string authToken = string.Empty;
105 if (!Utils.GetAuthentication(httpRequest, out authority, out authToken)) 106 if (!RestHandlerUtils.GetAuthentication(httpRequest, out authority, out authToken))
106 { 107 {
107 m_log.InfoFormat("[AgentPostHandler]: Authentication failed for agent message {0}", path); 108 m_log.InfoFormat("[AgentPostHandler]: Authentication failed for agent message {0}", path);
108 httpResponse.StatusCode = (int)HttpStatusCode.Unauthorized; 109 httpResponse.StatusCode = (int)HttpStatusCode.Unauthorized;
diff --git a/OpenSim/Server/Handlers/Simulation/Utils.cs b/OpenSim/Server/Handlers/Simulation/Utils.cs
deleted file mode 100644
index e21d1b8..0000000
--- a/OpenSim/Server/Handlers/Simulation/Utils.cs
+++ /dev/null
@@ -1,97 +0,0 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections;
30using System.Net;
31
32using OpenSim.Framework;
33using OpenSim.Framework.Servers.HttpServer;
34using OpenSim.Services.Interfaces;
35using OpenMetaverse;
36
37namespace OpenSim.Server.Handlers.Simulation
38{
39 public class Utils
40 {
41 /// <summary>
42 /// Extract the param from an uri.
43 /// </summary>
44 /// <param name="uri">Something like this: /uuid/ or /uuid/handle/release</param>
45 /// <param name="uri">uuid on uuid field</param>
46 /// <param name="action">optional action</param>
47 public static bool GetParams(string path, out UUID uuid, out ulong regionHandle, out string action)
48 {
49 uuid = UUID.Zero;
50 action = "";
51 regionHandle = 0;
52
53 path = path.Trim(new char[] { '/' });
54 string[] parts = path.Split('/');
55 if (parts.Length <= 1)
56 {
57 return false;
58 }
59 else
60 {
61 if (!UUID.TryParse(parts[0], out uuid))
62 return false;
63
64 if (parts.Length >= 2)
65 UInt64.TryParse(parts[1], out regionHandle);
66 if (parts.Length >= 3)
67 action = parts[2];
68
69 return true;
70 }
71 }
72
73 public static bool GetAuthentication(OSHttpRequest httpRequest, out string authority, out string authKey)
74 {
75 authority = string.Empty;
76 authKey = string.Empty;
77
78 Uri authUri;
79
80 string auth = httpRequest.Headers["authentication"];
81 // Authentication keys look like this:
82 // http://orgrid.org:8002/<uuid>
83 if ((auth != null) && (!string.Empty.Equals(auth)) && auth != "None")
84 {
85 if (Uri.TryCreate(auth, UriKind.Absolute, out authUri))
86 {
87 authority = authUri.Authority;
88 authKey = authUri.PathAndQuery.Trim('/');
89 return true;
90 }
91 }
92
93 return false;
94 }
95
96 }
97}