Merge branch 'master' of ssh://opensimulator.org/var/git/opensim

httptests
Diva Canto 2017-04-26 09:58:34 -07:00
commit c8fcf9bceb
3 changed files with 15 additions and 13 deletions

View File

@ -163,8 +163,7 @@ namespace OpenSim.Framework.Servers
} }
catch(Exception e) catch(Exception e)
{ {
m_log.FatalFormat("Fatal error: {0}", m_log.Fatal("Fatal error: " + e.ToString());
(e.Message == null || e.Message == String.Empty) ? "Unknown reason":e.Message );
Environment.Exit(1); Environment.Exit(1);
} }

View File

@ -223,20 +223,16 @@ namespace OpenSim.Region.CoreModules.Scripting.HttpRequest
if (parms.Length - i < 2) if (parms.Length - i < 2)
break; break;
//Have we reached the end of the list of headers?
//End is marked by a string with a single digit.
//We already know we have at least one parameter
//so it is safe to do this check at top of loop.
if (Char.IsDigit(parms[i][0]))
break;
if (htc.HttpCustomHeaders == null) if (htc.HttpCustomHeaders == null)
htc.HttpCustomHeaders = new List<string>(); htc.HttpCustomHeaders = new List<string>();
htc.HttpCustomHeaders.Add(parms[i]); htc.HttpCustomHeaders.Add(parms[i]);
htc.HttpCustomHeaders.Add(parms[i+1]); htc.HttpCustomHeaders.Add(parms[i+1]);
int nexti = i + 2;
if (nexti >= parms.Length || Char.IsDigit(parms[nexti][0]))
break;
i += 2; i = nexti;
} }
break; break;

View File

@ -13405,6 +13405,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
List<string> param = new List<string>(); List<string> param = new List<string>();
bool ok; bool ok;
Int32 flag; Int32 flag;
int nCustomHeaders = 0;
for (int i = 0; i < parameters.Data.Length; i += 2) for (int i = 0; i < parameters.Data.Length; i += 2)
{ {
@ -13431,6 +13432,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
//Second Life documentation for llHTTPRequest. //Second Life documentation for llHTTPRequest.
for (int count = 1; count <= 8; ++count) for (int count = 1; count <= 8; ++count)
{ {
if(nCustomHeaders >= 8)
{
Error("llHTTPRequest", "Max number of custom headers is 8, excess ignored");
break;
}
//Enough parameters remaining for (another) header? //Enough parameters remaining for (another) header?
if (parameters.Data.Length - i < 2) if (parameters.Data.Length - i < 2)
{ {
@ -13445,15 +13452,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
param.Add(parameters.Data[i].ToString()); param.Add(parameters.Data[i].ToString());
param.Add(parameters.Data[i+1].ToString()); param.Add(parameters.Data[i+1].ToString());
nCustomHeaders++;
//Have we reached the end of the list of headers? //Have we reached the end of the list of headers?
//End is marked by a string with a single digit. //End is marked by a string with a single digit.
if (i+2 >= parameters.Data.Length || if (i + 2 >= parameters.Data.Length ||
Char.IsDigit(parameters.Data[i].ToString()[0])) Char.IsDigit(parameters.Data[i + 2].ToString()[0]))
{ {
break; break;
} }
i += 2; i += 2;
} }
} }