From 1260e35ca824aed8042f5b83bca487f1483815dd Mon Sep 17 00:00:00 2001
From: MW
Date: Thu, 15 Mar 2007 12:44:06 +0000
Subject:
---
src/CAPS/SimHttp.cs | 88 +++++++++++++++++++++++++++--------------------------
1 file changed, 45 insertions(+), 43 deletions(-)
(limited to 'src/CAPS/SimHttp.cs')
diff --git a/src/CAPS/SimHttp.cs b/src/CAPS/SimHttp.cs
index 12bc9a8..c0373de 100644
--- a/src/CAPS/SimHttp.cs
+++ b/src/CAPS/SimHttp.cs
@@ -76,27 +76,30 @@ namespace OpenSim
}
static string ParseXMLRPC(string requestBody) {
- try{
- XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
-
- Hashtable requestData = (Hashtable)request.Params[0];
- switch(request.MethodName) {
- case "expect_user":
- GridServers.agentcircuitdata agent_data = new GridServers.agentcircuitdata();
- agent_data.SessionID = new LLUUID((string)requestData["session_id"]);
- agent_data.SecureSessionID = new LLUUID((string)requestData["secure_session_id"]);
- agent_data.firstname = (string)requestData["firstname"];
- agent_data.lastname = (string)requestData["lastname"];
- agent_data.AgentID = new LLUUID((string)requestData["agent_id"]);
- agent_data.circuitcode = Convert.ToUInt32(requestData["circuit_code"]);
- if (OpenSim_Main.gridServers.GridServer.GetName() == "Remote")
- {
- ((RemoteGridBase) OpenSim_Main.gridServers.GridServer).agentcircuits.Add((uint)agent_data.circuitcode,agent_data);
- }
- return "";
- break;
- }
- } catch(Exception e) {
+ try
+ {
+ XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
+
+ Hashtable requestData = (Hashtable)request.Params[0];
+ switch(request.MethodName) {
+ case "expect_user":
+ GridServers.agentcircuitdata agent_data = new GridServers.agentcircuitdata();
+ agent_data.SessionID = new LLUUID((string)requestData["session_id"]);
+ agent_data.SecureSessionID = new LLUUID((string)requestData["secure_session_id"]);
+ agent_data.firstname = (string)requestData["firstname"];
+ agent_data.lastname = (string)requestData["lastname"];
+ agent_data.AgentID = new LLUUID((string)requestData["agent_id"]);
+ agent_data.circuitcode = Convert.ToUInt32(requestData["circuit_code"]);
+ if (OpenSim_Main.gridServers.GridServer.GetName() == "Remote")
+ {
+ ((RemoteGridBase) OpenSim_Main.gridServers.GridServer).agentcircuits.Add((uint)agent_data.circuitcode,agent_data);
+ }
+ return "";
+ break;
+ }
+ }
+ catch(Exception e)
+ {
Console.WriteLine(e.ToString());
}
return "";
@@ -113,49 +116,48 @@ namespace OpenSim
static void HandleRequest(Object stateinfo) {
HttpListenerContext context=(HttpListenerContext)stateinfo;
-
- HttpListenerRequest request = context.Request;
- HttpListenerResponse response = context.Response;
+
+ HttpListenerRequest request = context.Request;
+ HttpListenerResponse response = context.Response;
response.KeepAlive=false;
response.SendChunked=false;
System.IO.Stream body = request.InputStream;
- System.Text.Encoding encoding = System.Text.Encoding.UTF8;
+ System.Text.Encoding encoding = System.Text.Encoding.UTF8;
System.IO.StreamReader reader = new System.IO.StreamReader(body, encoding);
-
- string requestBody = reader.ReadToEnd();
+
+ string requestBody = reader.ReadToEnd();
body.Close();
- reader.Close();
+ reader.Close();
- string responseString="";
+ string responseString="";
switch(request.ContentType) {
- case "text/xml":
- // must be XML-RPC, so pass to the XML-RPC parser
+ case "text/xml":
+ // must be XML-RPC, so pass to the XML-RPC parser
responseString=ParseXMLRPC(requestBody);
- response.AddHeader("Content-type","text/xml");
- break;
-
+ response.AddHeader("Content-type","text/xml");
+ break;
+
case "application/xml":
// probably LLSD we hope, otherwise it should be ignored by the parser
responseString=ParseLLSDXML(requestBody);
response.AddHeader("Content-type","application/xml");
- break;
-
+ break;
+
case null:
// must be REST or invalid crap, so pass to the REST parser
responseString=ParseREST(request.Url.OriginalString,requestBody);
- break;
+ break;
}
-
-
- byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
- System.IO.Stream output = response.OutputStream;
- response.SendChunked=false;
+
+ byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
+ System.IO.Stream output = response.OutputStream;
+ response.SendChunked=false;
response.ContentLength64=buffer.Length;
output.Write(buffer,0,buffer.Length);
- output.Close();
+ output.Close();
}
}
--
cgit v1.1