diff --git a/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs b/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs index 821c60ebd2..faa6f3ce70 100644 --- a/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs +++ b/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs @@ -90,8 +90,8 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest private int httpTimeout = 30000; private string m_name = "HttpScriptRequests"; - private string m_proxyurl = ""; - private string m_proxyexcepts = ""; + private string m_proxyurl = ""; + private string m_proxyexcepts = ""; // private Dictionary m_pendingRequests; @@ -155,8 +155,8 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest htc.HttpTimeout = httpTimeout; htc.OutboundBody = body; htc.ResponseHeaders = headers; - htc.proxyurl = m_proxyurl; - htc.proxyexcepts = m_proxyexcepts; + htc.proxyurl = m_proxyurl; + htc.proxyexcepts = m_proxyexcepts; lock (HttpListLock) { @@ -344,21 +344,26 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest Request = (HttpWebRequest) WebRequest.Create(Url); Request.Method = HttpMethod; Request.ContentType = HttpMIMEType; - if (proxyurl.Length > 0) - { - if (proxyexcepts.Length > 0) { - string[] elist = proxyexcepts.Split(';'); - Request.Proxy = new WebProxy(proxyurl,true,elist); - } else { - Request.Proxy = new WebProxy(proxyurl,true); - } - } + + if (proxyurl != null && proxyurl.Length > 0) + { + if (proxyexcepts != null && proxyexcepts.Length > 0) + { + string[] elist = proxyexcepts.Split(';'); + Request.Proxy = new WebProxy(proxyurl, true, elist); + } + else + { + Request.Proxy = new WebProxy(proxyurl, true); + } + } foreach (KeyValuePair entry in ResponseHeaders) Request.Headers[entry.Key] = entry.Value; // Encode outbound data - if (OutboundBody.Length > 0) { + if (OutboundBody.Length > 0) + { byte[] data = Encoding.UTF8.GetBytes(OutboundBody); Request.ContentLength = data.Length; diff --git a/OpenSim/Region/Environment/Modules/Scripting/LoadImageURL/LoadImageURLModule.cs b/OpenSim/Region/Environment/Modules/Scripting/LoadImageURL/LoadImageURLModule.cs index af78c3624a..0112ee6c94 100644 --- a/OpenSim/Region/Environment/Modules/Scripting/LoadImageURL/LoadImageURLModule.cs +++ b/OpenSim/Region/Environment/Modules/Scripting/LoadImageURL/LoadImageURLModule.cs @@ -43,9 +43,8 @@ namespace OpenSim.Region.Environment.Modules.Scripting.LoadImageURL private Scene m_scene; private IDynamicTextureManager m_textureManager; - private string m_proxyurl = ""; - private string m_proxyexcepts = ""; - + private string m_proxyurl = ""; + private string m_proxyexcepts = ""; #region IDynamicTextureRender Members @@ -95,8 +94,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.LoadImageURL { m_scene = scene; } - m_proxyurl = config.Configs["Startup"].GetString("HttpProxy"); - m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions"); + + m_proxyurl = config.Configs["Startup"].GetString("HttpProxy"); + m_proxyexcepts = config.Configs["Startup"].GetString("HttpProxyExceptions"); } public void PostInitialise() @@ -127,15 +127,19 @@ namespace OpenSim.Region.Environment.Modules.Scripting.LoadImageURL private void MakeHttpRequest(string url, UUID requestID) { WebRequest request = HttpWebRequest.Create(url); - if (m_proxyurl.Length > 0) - { - if (m_proxyexcepts.Length > 0) { - string[] elist = m_proxyexcepts.Split(';'); - request.Proxy = new WebProxy(m_proxyurl,true,elist); - } else { - request.Proxy = new WebProxy(m_proxyurl,true); - } - } + + if (m_proxyurl != null && m_proxyurl.Length > 0) + { + if (m_proxyexcepts != null && m_proxyexcepts.Length > 0) + { + string[] elist = m_proxyexcepts.Split(';'); + request.Proxy = new WebProxy(m_proxyurl, true, elist); + } + else + { + request.Proxy = new WebProxy(m_proxyurl, true); + } + } RequestState state = new RequestState((HttpWebRequest) request, requestID); // IAsyncResult result = request.BeginGetResponse(new AsyncCallback(HttpRequestReturn), state); diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index e950c12a11..76ae2347d1 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -8,7 +8,12 @@ crash_dir = "crashes" ; Http proxy support for llHTTPRequest and dynamic texture loading + ; Set HttpProxy to the URL for your proxy server if you would like + ; to proxy llHTTPRequests through a firewall HttpProxy = "http://proxy.com" + ; Set HttpProxyExceptions to a list of regular expressions for + ; URLs that you don't want going through the proxy such as servers + ; inside your firewall, separate patterns with a ';' HttpProxyExceptions = ".mydomain.com;localhost" ; Set this to true if you are connecting your OpenSimulator regions to a grid