* LLSDStreamhandler now works.
parent
19c01bfb52
commit
9f5f65c847
|
@ -31,7 +31,7 @@ namespace OpenSim.Framework.Servers
|
||||||
|
|
||||||
public abstract byte[] Handle(string path, Stream request);
|
public abstract byte[] Handle(string path, Stream request);
|
||||||
|
|
||||||
protected BaseStreamHandler(string path, string httpMethod )
|
protected BaseStreamHandler(string httpMethod, string path)
|
||||||
{
|
{
|
||||||
m_httpMethod = httpMethod;
|
m_httpMethod = httpMethod;
|
||||||
m_path = path;
|
m_path = path;
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace OpenSim.Framework.Servers
|
||||||
return Encoding.UTF8.GetBytes(responseString);
|
return Encoding.UTF8.GetBytes(responseString);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RestStreamHandler(string httpMethod, string path, RestMethod restMethod) : base( path, httpMethod )
|
public RestStreamHandler(string httpMethod, string path, RestMethod restMethod) : base( httpMethod, path )
|
||||||
{
|
{
|
||||||
m_restMethod = restMethod;
|
m_restMethod = restMethod;
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,10 +74,10 @@ namespace OpenSim.Region.Capabilities
|
||||||
string capsBase = "/CAPS/" + m_capsObjectPath;
|
string capsBase = "/CAPS/" + m_capsObjectPath;
|
||||||
|
|
||||||
|
|
||||||
AddLegacyCapsHandler( httpListener, m_mapLayerPath, MapLayer);
|
//AddLegacyCapsHandler( httpListener, m_mapLayerPath, MapLayer);
|
||||||
|
|
||||||
//httpListener.AddStreamHandler(
|
httpListener.AddStreamHandler(
|
||||||
// new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer ));
|
new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer ));
|
||||||
|
|
||||||
AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest);
|
AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest);
|
||||||
AddLegacyCapsHandler(httpListener, m_newInventory, NewAgentInventory);
|
AddLegacyCapsHandler(httpListener, m_newInventory, NewAgentInventory);
|
||||||
|
@ -86,13 +86,6 @@ namespace OpenSim.Region.Capabilities
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq)
|
|
||||||
{
|
|
||||||
LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
|
|
||||||
mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse());
|
|
||||||
return mapResponse;
|
|
||||||
}
|
|
||||||
|
|
||||||
[Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")]
|
[Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")]
|
||||||
private void AddLegacyCapsHandler(BaseHttpServer httpListener, string path, RestMethod restMethod)
|
private void AddLegacyCapsHandler(BaseHttpServer httpListener, string path, RestMethod restMethod)
|
||||||
{
|
{
|
||||||
|
@ -151,6 +144,13 @@ namespace OpenSim.Region.Capabilities
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq)
|
||||||
|
{
|
||||||
|
LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
|
||||||
|
mapResponse.LayerData.Array.Add(this.BuildLLSDMapLayerResponse());
|
||||||
|
return mapResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
|
|
|
@ -14,25 +14,27 @@ namespace OpenSim.Region.Capabilities
|
||||||
private LLSDMethod<TRequest, TResponse> m_method;
|
private LLSDMethod<TRequest, TResponse> m_method;
|
||||||
|
|
||||||
public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method)
|
public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method)
|
||||||
: base(httpMethod, path)
|
: base(httpMethod, path )
|
||||||
{
|
{
|
||||||
m_method = method;
|
m_method = method;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte[] Handle(string path, Stream request)
|
public override byte[] Handle(string path, Stream request)
|
||||||
{
|
{
|
||||||
Encoding encoding = Encoding.UTF8;
|
//Encoding encoding = Encoding.UTF8;
|
||||||
StreamReader streamReader = new StreamReader(request, encoding);
|
//StreamReader streamReader = new StreamReader(request, false);
|
||||||
|
|
||||||
string requestBody = streamReader.ReadToEnd();
|
//string requestBody = streamReader.ReadToEnd();
|
||||||
streamReader.Close();
|
//streamReader.Close();
|
||||||
|
|
||||||
Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(encoding.GetBytes(requestBody));
|
Hashtable hash = (Hashtable)LLSD.LLSDDeserialize( request );
|
||||||
TRequest llsdRequest = new TRequest();
|
TRequest llsdRequest = new TRequest();
|
||||||
LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest);
|
LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest);
|
||||||
|
|
||||||
TResponse response = m_method(llsdRequest);
|
TResponse response = m_method(llsdRequest);
|
||||||
|
|
||||||
|
Encoding encoding = new UTF8Encoding(false);
|
||||||
|
|
||||||
return encoding.GetBytes( LLSDHelpers.SerialiseLLSDReply(response) );
|
return encoding.GetBytes( LLSDHelpers.SerialiseLLSDReply(response) );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue