* This adds more explanation for the new proxy settings in OpenSim.ini.example
* Also does some formatting correction
* I did some additional reformatting on top of that
0.6.3-post-fixes
Justin Clarke Casey 2009-02-06 21:56:50 +00:00
parent 81019f96f1
commit a6b21a3b83
3 changed files with 42 additions and 28 deletions

View File

@ -90,8 +90,8 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
private int httpTimeout = 30000; private int httpTimeout = 30000;
private string m_name = "HttpScriptRequests"; private string m_name = "HttpScriptRequests";
private string m_proxyurl = ""; private string m_proxyurl = "";
private string m_proxyexcepts = ""; private string m_proxyexcepts = "";
// <request id, HttpRequestClass> // <request id, HttpRequestClass>
private Dictionary<UUID, HttpRequestClass> m_pendingRequests; private Dictionary<UUID, HttpRequestClass> m_pendingRequests;
@ -155,8 +155,8 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
htc.HttpTimeout = httpTimeout; htc.HttpTimeout = httpTimeout;
htc.OutboundBody = body; htc.OutboundBody = body;
htc.ResponseHeaders = headers; htc.ResponseHeaders = headers;
htc.proxyurl = m_proxyurl; htc.proxyurl = m_proxyurl;
htc.proxyexcepts = m_proxyexcepts; htc.proxyexcepts = m_proxyexcepts;
lock (HttpListLock) lock (HttpListLock)
{ {
@ -344,21 +344,26 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
Request = (HttpWebRequest) WebRequest.Create(Url); Request = (HttpWebRequest) WebRequest.Create(Url);
Request.Method = HttpMethod; Request.Method = HttpMethod;
Request.ContentType = HttpMIMEType; Request.ContentType = HttpMIMEType;
if (proxyurl.Length > 0)
{ if (proxyurl != null && proxyurl.Length > 0)
if (proxyexcepts.Length > 0) { {
string[] elist = proxyexcepts.Split(';'); if (proxyexcepts != null && proxyexcepts.Length > 0)
Request.Proxy = new WebProxy(proxyurl,true,elist); {
} else { string[] elist = proxyexcepts.Split(';');
Request.Proxy = new WebProxy(proxyurl,true); Request.Proxy = new WebProxy(proxyurl, true, elist);
} }
} else
{
Request.Proxy = new WebProxy(proxyurl, true);
}
}
foreach (KeyValuePair<string, string> entry in ResponseHeaders) foreach (KeyValuePair<string, string> entry in ResponseHeaders)
Request.Headers[entry.Key] = entry.Value; Request.Headers[entry.Key] = entry.Value;
// Encode outbound data // Encode outbound data
if (OutboundBody.Length > 0) { if (OutboundBody.Length > 0)
{
byte[] data = Encoding.UTF8.GetBytes(OutboundBody); byte[] data = Encoding.UTF8.GetBytes(OutboundBody);
Request.ContentLength = data.Length; Request.ContentLength = data.Length;

View File

@ -43,9 +43,8 @@ namespace OpenSim.Region.Environment.Modules.Scripting.LoadImageURL
private Scene m_scene; private Scene m_scene;
private IDynamicTextureManager m_textureManager; private IDynamicTextureManager m_textureManager;
private string m_proxyurl = ""; private string m_proxyurl = "";
private string m_proxyexcepts = ""; private string m_proxyexcepts = "";
#region IDynamicTextureRender Members #region IDynamicTextureRender Members
@ -95,8 +94,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.LoadImageURL
{ {
m_scene = scene; 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() public void PostInitialise()
@ -127,15 +127,19 @@ namespace OpenSim.Region.Environment.Modules.Scripting.LoadImageURL
private void MakeHttpRequest(string url, UUID requestID) private void MakeHttpRequest(string url, UUID requestID)
{ {
WebRequest request = HttpWebRequest.Create(url); WebRequest request = HttpWebRequest.Create(url);
if (m_proxyurl.Length > 0)
{ if (m_proxyurl != null && m_proxyurl.Length > 0)
if (m_proxyexcepts.Length > 0) { {
string[] elist = m_proxyexcepts.Split(';'); if (m_proxyexcepts != null && m_proxyexcepts.Length > 0)
request.Proxy = new WebProxy(m_proxyurl,true,elist); {
} else { string[] elist = m_proxyexcepts.Split(';');
request.Proxy = new WebProxy(m_proxyurl,true); request.Proxy = new WebProxy(m_proxyurl, true, elist);
} }
} else
{
request.Proxy = new WebProxy(m_proxyurl, true);
}
}
RequestState state = new RequestState((HttpWebRequest) request, requestID); RequestState state = new RequestState((HttpWebRequest) request, requestID);
// IAsyncResult result = request.BeginGetResponse(new AsyncCallback(HttpRequestReturn), state); // IAsyncResult result = request.BeginGetResponse(new AsyncCallback(HttpRequestReturn), state);

View File

@ -8,7 +8,12 @@
crash_dir = "crashes" crash_dir = "crashes"
; Http proxy support for llHTTPRequest and dynamic texture loading ; 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" 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" HttpProxyExceptions = ".mydomain.com;localhost"
; Set this to true if you are connecting your OpenSimulator regions to a grid ; Set this to true if you are connecting your OpenSimulator regions to a grid