diff options
author | Mic Bowman | 2012-08-29 14:56:51 -0700 |
---|---|---|
committer | Mic Bowman | 2012-08-29 14:56:51 -0700 |
commit | 3d736d575ff9670ac813f13eb1cff07dea10328b (patch) | |
tree | be3458150faf0a738c2e14814b2ff3992e4b4d5a /OpenSim/Region/ScriptEngine | |
parent | implementing rule tracking (diff) | |
download | opensim-SC-3d736d575ff9670ac813f13eb1cff07dea10328b.zip opensim-SC-3d736d575ff9670ac813f13eb1cff07dea10328b.tar.gz opensim-SC-3d736d575ff9670ac813f13eb1cff07dea10328b.tar.bz2 opensim-SC-3d736d575ff9670ac813f13eb1cff07dea10328b.tar.xz |
This partially implements the LSL function to set the response
type for an HTTP request. Since the "official" LSL function limits
the use of the response type, it is implemented as osSetContentType
with a string for the content mime type and a threat level of high.
With this function you should be able to implement rather functional
media-on-a-prim application with much less difficulty.
Diffstat (limited to 'OpenSim/Region/ScriptEngine')
3 files changed, 28 insertions, 1 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 09fcf50..e245684 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -140,12 +140,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
140 | internal float m_ScriptDistanceFactor = 1.0f; | 140 | internal float m_ScriptDistanceFactor = 1.0f; |
141 | internal Dictionary<string, FunctionPerms > m_FunctionPerms = new Dictionary<string, FunctionPerms >(); | 141 | internal Dictionary<string, FunctionPerms > m_FunctionPerms = new Dictionary<string, FunctionPerms >(); |
142 | 142 | ||
143 | protected IUrlModule m_UrlModule = null; | ||
144 | |||
143 | public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item) | 145 | public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item) |
144 | { | 146 | { |
145 | m_ScriptEngine = ScriptEngine; | 147 | m_ScriptEngine = ScriptEngine; |
146 | m_host = host; | 148 | m_host = host; |
147 | m_item = item; | 149 | m_item = item; |
148 | 150 | ||
151 | m_UrlModule = m_ScriptEngine.World.RequestModuleInterface<IUrlModule>(); | ||
152 | |||
149 | if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) | 153 | if (m_ScriptEngine.Config.GetBoolean("AllowOSFunctions", false)) |
150 | m_OSFunctionsEnabled = true; | 154 | m_OSFunctionsEnabled = true; |
151 | 155 | ||
@@ -3358,5 +3362,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3358 | 3362 | ||
3359 | return new LSL_Key(m_host.ParentGroup.FromPartID.ToString()); | 3363 | return new LSL_Key(m_host.ParentGroup.FromPartID.ToString()); |
3360 | } | 3364 | } |
3361 | } | 3365 | |
3366 | /// <summary> | ||
3367 | /// Sets the response type for an HTTP request/response | ||
3368 | /// </summary> | ||
3369 | /// <returns></returns> | ||
3370 | public void osSetContentType(LSL_Key id, string type) | ||
3371 | { | ||
3372 | CheckThreatLevel(ThreatLevel.High,"osSetResponseType"); | ||
3373 | if (m_UrlModule != null) | ||
3374 | m_UrlModule.HttpContentType(new UUID(id),type); | ||
3375 | } | ||
3376 | |||
3377 | } | ||
3362 | } \ No newline at end of file | 3378 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index ce1845c..06729ab 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | |||
@@ -365,5 +365,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
365 | /// </summary> | 365 | /// </summary> |
366 | /// <returns>Rezzing object key or NULL_KEY if rezzed by agent or otherwise unknown.</returns> | 366 | /// <returns>Rezzing object key or NULL_KEY if rezzed by agent or otherwise unknown.</returns> |
367 | LSL_Key osGetRezzingObject(); | 367 | LSL_Key osGetRezzingObject(); |
368 | |||
369 | /// <summary> | ||
370 | /// Sets the response type for an HTTP request/response | ||
371 | /// </summary> | ||
372 | /// <returns></returns> | ||
373 | void osSetContentType(LSL_Key id, string type); | ||
368 | } | 374 | } |
369 | } | 375 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index e9131e4..ba1ade2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | |||
@@ -955,5 +955,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
955 | { | 955 | { |
956 | return m_OSSL_Functions.osGetRezzingObject(); | 956 | return m_OSSL_Functions.osGetRezzingObject(); |
957 | } | 957 | } |
958 | |||
959 | public void osSetContentType(LSL_Key id, string type) | ||
960 | { | ||
961 | m_OSSL_Functions.osSetContentType(id,type); | ||
962 | } | ||
958 | } | 963 | } |
959 | } | 964 | } |