Use the "X-Content-Encoding" header to indicate gzipped data, because old OpenSims fail if they get an unknown "Content-Encoding"
parent
b1d8aa0b64
commit
6d1d58b654
|
@ -833,7 +833,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
|||
|
||||
Stream inputStream = Util.Copy(request.InputStream);
|
||||
|
||||
if (request.Headers["Content-Encoding"] == "gzip")
|
||||
if ((request.Headers["Content-Encoding"] == "gzip") || (request.Headers["X-Content-Encoding"] == "gzip"))
|
||||
inputStream = new GZipStream(inputStream, System.IO.Compression.CompressionMode.Decompress);
|
||||
|
||||
using (StreamReader reader = new StreamReader(inputStream, Encoding.UTF8))
|
||||
|
@ -978,6 +978,9 @@ namespace OpenSim.Framework.Servers.HttpServer
|
|||
{
|
||||
Stream requestStream = request.InputStream;
|
||||
|
||||
if ((request.Headers["Content-Encoding"] == "gzip") || (request.Headers["X-Content-Encoding"] == "gzip"))
|
||||
requestStream = new GZipStream(requestStream, System.IO.Compression.CompressionMode.Decompress);
|
||||
|
||||
Encoding encoding = Encoding.UTF8;
|
||||
StreamReader reader = new StreamReader(requestStream, encoding);
|
||||
|
||||
|
|
|
@ -181,12 +181,23 @@ namespace OpenSim.Framework.Servers.HttpServer
|
|||
_request = req;
|
||||
_context = context;
|
||||
|
||||
if ((null != req.Headers["content-encoding"]) && ("gzip" != req.Headers["content-encoding"]))
|
||||
_contentEncoding = Encoding.GetEncoding(_request.Headers["content-encoding"]);
|
||||
if (null != req.Headers["content-encoding"])
|
||||
{
|
||||
try
|
||||
{
|
||||
_contentEncoding = Encoding.GetEncoding(_request.Headers["content-encoding"]);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
|
||||
if (null != req.Headers["content-type"])
|
||||
_contentType = _request.Headers["content-type"];
|
||||
if (null != req.Headers["user-agent"])
|
||||
_userAgent = req.Headers["user-agent"];
|
||||
|
||||
if (null != req.Headers["remote_addr"])
|
||||
{
|
||||
try
|
||||
|
|
|
@ -254,7 +254,7 @@ namespace OpenSim.Framework
|
|||
|
||||
if (compressed)
|
||||
{
|
||||
request.Headers["Content-Encoding"] = "gzip";
|
||||
request.Headers["X-Content-Encoding"] = "gzip"; // can't set "Content-Encoding" because old OpenSims fail if they get an unrecognized Content-Encoding
|
||||
|
||||
using (MemoryStream ms = new MemoryStream())
|
||||
{
|
||||
|
|
|
@ -239,7 +239,7 @@ namespace OpenSim.Server.Handlers.Simulation
|
|||
}
|
||||
|
||||
Stream inputStream = request;
|
||||
if (httpRequest.Headers["Content-Encoding"] == "gzip")
|
||||
if ((httpRequest.Headers["Content-Encoding"] == "gzip") || (httpRequest.Headers["X-Content-Encoding"] == "gzip"))
|
||||
inputStream = new GZipStream(inputStream, CompressionMode.Decompress);
|
||||
|
||||
StreamReader reader = new StreamReader(inputStream, encoding);
|
||||
|
@ -433,7 +433,7 @@ namespace OpenSim.Server.Handlers.Simulation
|
|||
keysvals.Add("querystringkeys", querystringkeys);
|
||||
|
||||
Stream inputStream = request;
|
||||
if (httpRequest.Headers["Content-Encoding"] == "gzip")
|
||||
if ((httpRequest.Headers["Content-Encoding"] == "gzip") || (httpRequest.Headers["X-Content-Encoding"] == "gzip"))
|
||||
inputStream = new GZipStream(inputStream, CompressionMode.Decompress);
|
||||
|
||||
Encoding encoding = Encoding.UTF8;
|
||||
|
|
Loading…
Reference in New Issue