aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorCharles Krinke2008-07-14 13:51:54 +0000
committerCharles Krinke2008-07-14 13:51:54 +0000
commit00791594ad4ed6d78bd6edbb2e02eaaf5c30c8ce (patch)
tree17bf6ae0214a3b83835874bdd9723e6e285cfdfa /OpenSim/Region/Environment
parentfixing warning in IRCBridgeModule and logging the exception cause now. (diff)
downloadopensim-SC-00791594ad4ed6d78bd6edbb2e02eaaf5c30c8ce.zip
opensim-SC-00791594ad4ed6d78bd6edbb2e02eaaf5c30c8ce.tar.gz
opensim-SC-00791594ad4ed6d78bd6edbb2e02eaaf5c30c8ce.tar.bz2
opensim-SC-00791594ad4ed6d78bd6edbb2e02eaaf5c30c8ce.tar.xz
Mantis#1739. Thank you kindly, Grumly57 for a patch that:
Implements X-SecondLife-* HTTP Headers for llHTTPRequest
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Interfaces/IHttpRequests.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs8
2 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs b/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs
index 46ba9b2..3a635de 100644
--- a/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs
+++ b/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs
@@ -34,7 +34,7 @@ namespace OpenSim.Region.Environment.Interfaces
34 public interface IHttpRequests 34 public interface IHttpRequests
35 { 35 {
36 LLUUID MakeHttpRequest(string url, string parameters, string body); 36 LLUUID MakeHttpRequest(string url, string parameters, string body);
37 LLUUID StartHttpRequest(uint localID, LLUUID itemID, string url, List<string> parameters, string body); 37 LLUUID StartHttpRequest(uint localID, LLUUID itemID, string url, List<string> parameters, Dictionary<string, string> headers, string body);
38 void StopHttpRequest(uint m_localID, LLUUID m_itemID); 38 void StopHttpRequest(uint m_localID, LLUUID m_itemID);
39 HttpRequestClass GetNextCompletedRequest(); 39 HttpRequestClass GetNextCompletedRequest();
40 void RemoveCompletedRequest(LLUUID id); 40 void RemoveCompletedRequest(LLUUID id);
diff --git a/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs b/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs
index 6e32362..c670ad7 100644
--- a/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs
+++ b/OpenSim/Region/Environment/Modules/Scripting/HttpRequest/ScriptsHttpRequests.cs
@@ -37,6 +37,7 @@ using OpenSim.Framework;
37using OpenSim.Framework.Servers; 37using OpenSim.Framework.Servers;
38using OpenSim.Region.Environment.Interfaces; 38using OpenSim.Region.Environment.Interfaces;
39using OpenSim.Region.Environment.Scenes; 39using OpenSim.Region.Environment.Scenes;
40using System.Collections;
40 41
41/***************************************************** 42/*****************************************************
42 * 43 *
@@ -105,7 +106,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
105 return LLUUID.Zero; 106 return LLUUID.Zero;
106 } 107 }
107 108
108 public LLUUID StartHttpRequest(uint localID, LLUUID itemID, string url, List<string> parameters, string body) 109 public LLUUID StartHttpRequest(uint localID, LLUUID itemID, string url, List<string> parameters, Dictionary<string, string> headers, string body)
109 { 110 {
110 LLUUID reqID = LLUUID.Random(); 111 LLUUID reqID = LLUUID.Random();
111 HttpRequestClass htc = new HttpRequestClass(); 112 HttpRequestClass htc = new HttpRequestClass();
@@ -150,6 +151,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
150 htc.reqID = reqID; 151 htc.reqID = reqID;
151 htc.httpTimeout = httpTimeout; 152 htc.httpTimeout = httpTimeout;
152 htc.outbound_body = body; 153 htc.outbound_body = body;
154 htc.response_headers = headers;
153 155
154 lock (HttpListLock) 156 lock (HttpListLock)
155 { 157 {
@@ -280,6 +282,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
280 public HttpWebRequest request; 282 public HttpWebRequest request;
281 public string response_body; 283 public string response_body;
282 public List<string> response_metadata; 284 public List<string> response_metadata;
285 public Dictionary<string, string> response_headers;
283 public int status; 286 public int status;
284 public string url; 287 public string url;
285 288
@@ -314,6 +317,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.HttpRequest
314 request.Method = httpMethod; 317 request.Method = httpMethod;
315 request.ContentType = httpMIMEType; 318 request.ContentType = httpMIMEType;
316 319
320 foreach (KeyValuePair<string, string> entry in response_headers)
321 request.Headers[entry.Key] = entry.Value;
322
317 // Encode outbound data 323 // Encode outbound data
318 if (outbound_body.Length > 0) { 324 if (outbound_body.Length > 0) {
319 byte[] data = Encoding.UTF8.GetBytes(outbound_body); 325 byte[] data = Encoding.UTF8.GetBytes(outbound_body);