Added the ability to set User-Agent in llHTTPRequest. No new default value has been set since having no User-Agent seems to work well but the facility is now available to set this if required. Using something based on the pattern of SLs User-Agent may well cause problems, not all web servers respond well to it. See the notes in the SL Wiki http://wiki.secondlife.com/wiki/LlHTTPRequest

Fixes Mantis #3143
0.6.4-rc1
idb 2009-03-07 12:58:00 +00:00
parent 1fd57b39df
commit 23b247c519
3 changed files with 14 additions and 2 deletions

View File

@ -358,7 +358,10 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
}
foreach (KeyValuePair<string, string> entry in ResponseHeaders)
Request.Headers[entry.Key] = entry.Value;
if (entry.Key.ToLower().Equals("user-agent"))
Request.UserAgent = entry.Value;
else
Request.Headers[entry.Key] = entry.Value;
// Encode outbound data
if (OutboundBody.Length > 0)

View File

@ -8726,6 +8726,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
httpHeaders["X-SecondLife-Local-Rotation"] = string.Format("({0:0.000000}, {1:0.000000}, {2:0.000000}, {3:0.000000})", rotation.X, rotation.Y, rotation.Z, rotation.W);
httpHeaders["X-SecondLife-Owner-Name"] = scenePresence == null ? string.Empty : scenePresence.ControllingClient.Name;
httpHeaders["X-SecondLife-Owner-Key"] = m_host.ObjectOwner.ToString();
string userAgent = config.Configs["Network"].GetString("user_agent", null);
if (userAgent != null)
httpHeaders["User-Agent"] = userAgent;
UUID reqID = httpScriptMod.
StartHttpRequest(m_localID, m_itemID, url, param, httpHeaders, body);

View File

@ -327,6 +327,12 @@ InterregionComms = "RESTComms"
; The old default is "OpenSim", set here fro compatibility
shard = "OpenSim"
; What is reported as the "User-Agent" when using llHTTPRequest
; Defaults to not sent if not set here. See the notes section in the wiki at
; http://wiki.secondlife.com/wiki/LlHTTPRequest for comments on adding
; " (Mozilla Compatible)" to the text where there are problems with a web server
;user_agent = "OpenSim LSL (Mozilla Compatible)"
[ClientStack.LindenUDP]
; This is the multiplier applied to all client throttles for outgoing UDP network data
; If it is set to 1, then we obey the throttle settings as given to us by the client. If it is set to 3, for example, then we
@ -1063,4 +1069,4 @@ InterregionComms = "RESTComms"
channel_notify = -800
[MRM]
Enabled = false ; Enables the Mini Region Modules Script Engine. WARNING: SECURITY RISK.
Enabled = false ; Enables the Mini Region Modules Script Engine. WARNING: SECURITY RISK.