From 0c4bc5cd8f5d44733fec06ff3d53da4ab8c81f9b Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Tue, 25 May 2010 19:48:37 +0000 Subject: [PATCH] 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 --- Programs/GridProxy/GridProxy.cs | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/Programs/GridProxy/GridProxy.cs b/Programs/GridProxy/GridProxy.cs index 56199b8e..af1576e0 100644 --- a/Programs/GridProxy/GridProxy.cs +++ b/Programs/GridProxy/GridProxy.cs @@ -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(); }