LIBOMV-839: Gridproxy doesn't proxy bare GET requests

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3354 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
Latif Khalifa
2010-05-25 19:48:37 +00:00
parent 06bc4580a6
commit 0c4bc5cd8f

View File

@@ -659,7 +659,7 @@ namespace GridProxy
foreach (string header in headers.Keys)
{
if (header == "accept" || header == "connection" ||
if (header == "connection" ||
header == "content-length" || header == "date" || header == "expect" ||
header == "host" || header == "if-modified-since" || header == "referer" ||
header == "transfer-encoding" || header == "user-agent" ||
@@ -667,6 +667,10 @@ namespace GridProxy
{
// can't touch these!
}
else if (header == "accept")
{
req.Accept = headers["accept"];
}
else if (header == "content-type")
{
req.ContentType = headers["content-type"];
@@ -695,14 +699,11 @@ namespace GridProxy
req.Headers[header] = headers[header];
}
}
if (capReq == null)
if (capReq != null)
{
// this probably occured when we shut down the proxy and restarted it and are receiving
// data from a dead connection
return;
capReq.RequestHeaders = req.Headers;
}
capReq.RequestHeaders = req.Headers;
req.Method = meth;
// can't do gets on requests with a content body
@@ -717,9 +718,16 @@ namespace GridProxy
HttpWebResponse resp;
try
{
Stream reqStream = req.GetRequestStream();
reqStream.Write(content, 0, content.Length);
reqStream.Close();
if (content.Length > 0)
{
Stream reqStream = req.GetRequestStream();
reqStream.Write(content, 0, content.Length);
reqStream.Close();
}
else
{
OpenMetaverse.Logger.Log(string.Format("{0} {1}", req.Method, req.Address.ToString()), Helpers.LogLevel.Info);
}
resp = (HttpWebResponse)req.GetResponse();
}