Update svn properties, formatting cleanup.
parent
6d2e1ad6ba
commit
bea7d4d81a
|
@ -23,14 +23,12 @@
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This interface represents the boundary between the general purpose
|
/// This interface represents the boundary between the general purpose
|
||||||
/// REST plugin handling, and the functionally specific handlers. The
|
/// REST plugin handling, and the functionally specific handlers. The
|
||||||
|
@ -44,5 +42,4 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
void Initialize();
|
void Initialize();
|
||||||
void Close();
|
void Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,6 @@ using System.Xml;
|
||||||
|
|
||||||
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This class represents the current REST request. It
|
/// This class represents the current REST request. It
|
||||||
/// encapsulates the request/response state and takes care
|
/// encapsulates the request/response state and takes care
|
||||||
|
@ -66,7 +65,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal class RequestData
|
internal class RequestData
|
||||||
{
|
{
|
||||||
|
|
||||||
// HTTP Server interface data
|
// HTTP Server interface data
|
||||||
|
|
||||||
internal OSHttpRequest request = null;
|
internal OSHttpRequest request = null;
|
||||||
|
@ -170,7 +168,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal RequestData(OSHttpRequest p_request, OSHttpResponse p_response, string p_qprefix)
|
internal RequestData(OSHttpRequest p_request, OSHttpResponse p_response, string p_qprefix)
|
||||||
{
|
{
|
||||||
|
|
||||||
request = p_request;
|
request = p_request;
|
||||||
response = p_response;
|
response = p_response;
|
||||||
qprefix = p_qprefix;
|
qprefix = p_qprefix;
|
||||||
|
@ -187,7 +184,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
initUrl();
|
initUrl();
|
||||||
|
|
||||||
initParameters(p_qprefix.Length);
|
initParameters(p_qprefix.Length);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Just for convenience...
|
// Just for convenience...
|
||||||
|
@ -212,7 +208,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
return authenticated;
|
return authenticated;
|
||||||
}
|
}
|
||||||
else return true;
|
else
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,7 +226,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private void authenticate()
|
private void authenticate()
|
||||||
{
|
{
|
||||||
|
|
||||||
string authdata = request.Headers.Get("Authorization");
|
string authdata = request.Headers.Get("Authorization");
|
||||||
string reqscheme = String.Empty;
|
string reqscheme = String.Empty;
|
||||||
|
|
||||||
|
@ -291,7 +287,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
Rest.Log.DebugFormat("{0} Challenge reason: Authentication failed", MsgId);
|
Rest.Log.DebugFormat("{0} Challenge reason: Authentication failed", MsgId);
|
||||||
DoChallenge();
|
DoChallenge();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -315,7 +310,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private void DoBasic(string authdata)
|
private void DoBasic(string authdata)
|
||||||
{
|
{
|
||||||
|
|
||||||
string response = null;
|
string response = null;
|
||||||
|
|
||||||
MatchCollection matches = basicParms.Matches(authdata);
|
MatchCollection matches = basicParms.Matches(authdata);
|
||||||
|
@ -346,7 +340,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
// Validate against user database
|
// Validate against user database
|
||||||
authenticated = Validate(userName,userPass);
|
authenticated = Validate(userName,userPass);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -357,7 +350,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private void DoDigest(string authdata)
|
private void DoDigest(string authdata)
|
||||||
{
|
{
|
||||||
|
|
||||||
string response = null;
|
string response = null;
|
||||||
|
|
||||||
MatchCollection matches = digestParm1.Matches(authdata);
|
MatchCollection matches = digestParm1.Matches(authdata);
|
||||||
|
@ -390,12 +382,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
if (authparms.TryGetValue("response", out response))
|
if (authparms.TryGetValue("response", out response))
|
||||||
{
|
{
|
||||||
|
|
||||||
string temp = null;
|
string temp = null;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
||||||
string nck = null;
|
string nck = null;
|
||||||
string ncl = null;
|
string ncl = null;
|
||||||
|
|
||||||
|
@ -448,7 +438,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
if (authparms.TryGetValue("qop", out temp))
|
if (authparms.TryGetValue("qop", out temp))
|
||||||
{
|
{
|
||||||
|
|
||||||
qop = temp.ToLower(); // replace with actual value used
|
qop = temp.ToLower(); // replace with actual value used
|
||||||
|
|
||||||
// if QOP was specified then
|
// if QOP was specified then
|
||||||
|
@ -485,11 +474,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
lock (cntable) cntable.Add(nonce, nck);
|
lock (cntable) cntable.Add(nonce, nck);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
qop = String.Empty;
|
qop = String.Empty;
|
||||||
|
|
||||||
// if QOP was not specified then
|
// if QOP was not specified then
|
||||||
|
@ -509,12 +496,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
// Validate the supplied userid/password info
|
// Validate the supplied userid/password info
|
||||||
|
|
||||||
authenticated = ValidateDigest(userName, nonce, cnonce, nck, authPrefix, response);
|
authenticated = ValidateDigest(userName, nonce, cnonce, nck, authPrefix, response);
|
||||||
|
|
||||||
}
|
}
|
||||||
while (false);
|
while (false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Indicate that authentication is required
|
// Indicate that authentication is required
|
||||||
|
@ -523,7 +507,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
string opaque, string stale, string alg,
|
string opaque, string stale, string alg,
|
||||||
string qop, string auth)
|
string qop, string auth)
|
||||||
{
|
{
|
||||||
|
|
||||||
sbuilder.Length = 0;
|
sbuilder.Length = 0;
|
||||||
|
|
||||||
if (scheme == null || scheme == Rest.AS_BASIC)
|
if (scheme == null || scheme == Rest.AS_BASIC)
|
||||||
|
@ -544,7 +527,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
if (scheme == null || scheme == Rest.AS_DIGEST)
|
if (scheme == null || scheme == Rest.AS_DIGEST)
|
||||||
{
|
{
|
||||||
|
|
||||||
sbuilder.Append(Rest.AS_DIGEST);
|
sbuilder.Append(Rest.AS_DIGEST);
|
||||||
sbuilder.Append(" ");
|
sbuilder.Append(" ");
|
||||||
|
|
||||||
|
@ -617,9 +599,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
sbuilder.Append(Rest.CS_DQUOTE);
|
sbuilder.Append(Rest.CS_DQUOTE);
|
||||||
|
|
||||||
AddHeader(Rest.HttpHeaderWWWAuthenticate,sbuilder.ToString());
|
AddHeader(Rest.HttpHeaderWWWAuthenticate,sbuilder.ToString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -631,7 +611,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private bool Validate(string user, string pass)
|
private bool Validate(string user, string pass)
|
||||||
{
|
{
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Simple User Validation", MsgId);
|
Rest.Log.DebugFormat("{0} Simple User Validation", MsgId);
|
||||||
|
|
||||||
// Both values are required
|
// Both values are required
|
||||||
|
@ -643,7 +622,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
user = user.Trim();
|
user = user.Trim();
|
||||||
|
|
||||||
return vetPassword(user, pass);
|
return vetPassword(user, pass);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -658,7 +636,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private string getPassword(string user)
|
private string getPassword(string user)
|
||||||
{
|
{
|
||||||
|
|
||||||
int x;
|
int x;
|
||||||
string first;
|
string first;
|
||||||
string last;
|
string last;
|
||||||
|
@ -690,7 +667,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
Rest.Log.DebugFormat("{0} Normal User {1}", MsgId, user);
|
Rest.Log.DebugFormat("{0} Normal User {1}", MsgId, user);
|
||||||
return udata.PasswordHash;
|
return udata.PasswordHash;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -704,7 +680,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private bool vetPassword(string user, string pass)
|
private bool vetPassword(string user, string pass)
|
||||||
{
|
{
|
||||||
|
|
||||||
int x;
|
int x;
|
||||||
string HA1;
|
string HA1;
|
||||||
string first;
|
string first;
|
||||||
|
@ -734,13 +709,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
HA1 = HashToString(String.Format("{0}:{1}",HA1,udata.PasswordSalt));
|
HA1 = HashToString(String.Format("{0}:{1}",HA1,udata.PasswordSalt));
|
||||||
|
|
||||||
return (0 == sc.Compare(HA1, udata.PasswordHash));
|
return (0 == sc.Compare(HA1, udata.PasswordHash));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate the request-digest
|
// Validate the request-digest
|
||||||
private bool ValidateDigest(string user, string nonce, string cnonce, string nck, string uri, string response)
|
private bool ValidateDigest(string user, string nonce, string cnonce, string nck, string uri, string response)
|
||||||
{
|
{
|
||||||
|
|
||||||
string patt = null;
|
string patt = null;
|
||||||
string payl = String.Empty;
|
string payl = String.Empty;
|
||||||
string KDS = null;
|
string KDS = null;
|
||||||
|
@ -798,12 +771,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
// Compare the generated sequence with the original
|
// Compare the generated sequence with the original
|
||||||
|
|
||||||
return (0 == sc.Compare(KDS, response));
|
return (0 == sc.Compare(KDS, response));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private string HashToString(string pattern)
|
private string HashToString(string pattern)
|
||||||
{
|
{
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Generate <{1}>", MsgId, pattern);
|
Rest.Log.DebugFormat("{0} Generate <{1}>", MsgId, pattern);
|
||||||
|
|
||||||
byte[] hash = md5hash.ComputeHash(encoding.GetBytes(pattern));
|
byte[] hash = md5hash.ComputeHash(encoding.GetBytes(pattern));
|
||||||
|
@ -818,7 +789,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
Rest.Log.DebugFormat("{0} Hash = <{1}>", MsgId, sbuilder.ToString());
|
Rest.Log.DebugFormat("{0} Hash = <{1}>", MsgId, sbuilder.ToString());
|
||||||
|
|
||||||
return sbuilder.ToString();
|
return sbuilder.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void Complete()
|
internal void Complete()
|
||||||
|
@ -829,7 +799,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal void Redirect(string Url, bool temp)
|
internal void Redirect(string Url, bool temp)
|
||||||
{
|
{
|
||||||
|
|
||||||
redirectLocation = Url;
|
redirectLocation = Url;
|
||||||
|
|
||||||
if (temp)
|
if (temp)
|
||||||
|
@ -844,7 +813,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
}
|
}
|
||||||
|
|
||||||
Fail(statusCode, statusDescription, true);
|
Fail(statusCode, statusDescription, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fail for an arbitrary reason. Just a failure with
|
// Fail for an arbitrary reason. Just a failure with
|
||||||
|
@ -867,7 +835,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal void Fail(int code, string message, bool reset)
|
internal void Fail(int code, string message, bool reset)
|
||||||
{
|
{
|
||||||
|
|
||||||
statusCode = code;
|
statusCode = code;
|
||||||
statusDescription = message;
|
statusDescription = message;
|
||||||
|
|
||||||
|
@ -907,7 +874,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
re.httppath = path;
|
re.httppath = path;
|
||||||
|
|
||||||
throw re;
|
throw re;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reject this request
|
// Reject this request
|
||||||
|
@ -924,19 +890,16 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal virtual bool Respond(string reason)
|
internal virtual bool Respond(string reason)
|
||||||
{
|
{
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Respond ENTRY, handled = {1}, reason = {2}", MsgId, handled, reason);
|
Rest.Log.DebugFormat("{0} Respond ENTRY, handled = {1}, reason = {2}", MsgId, handled, reason);
|
||||||
|
|
||||||
if (!handled)
|
if (!handled)
|
||||||
{
|
{
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Generating Response", MsgId);
|
Rest.Log.DebugFormat("{0} Generating Response", MsgId);
|
||||||
Rest.Log.DebugFormat("{0} Method is {1}", MsgId, method);
|
Rest.Log.DebugFormat("{0} Method is {1}", MsgId, method);
|
||||||
|
|
||||||
// A Head request can NOT have a body!
|
// A Head request can NOT have a body!
|
||||||
if (method != Rest.HEAD)
|
if (method != Rest.HEAD)
|
||||||
{
|
{
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Response is not abbreviated", MsgId);
|
Rest.Log.DebugFormat("{0} Response is not abbreviated", MsgId);
|
||||||
|
|
||||||
// If the writer is non-null then we know that an XML
|
// If the writer is non-null then we know that an XML
|
||||||
|
@ -993,7 +956,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
response.SendChunked = chunked;
|
response.SendChunked = chunked;
|
||||||
response.KeepAlive = keepAlive;
|
response.KeepAlive = keepAlive;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the status code & description. If nothing has been stored,
|
// Set the status code & description. If nothing has been stored,
|
||||||
|
@ -1054,13 +1016,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Closing output stream", MsgId);
|
Rest.Log.DebugFormat("{0} Closing output stream", MsgId);
|
||||||
response.OutputStream.Close();
|
response.OutputStream.Close();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Respond EXIT, handled = {1}, reason = {2}", MsgId, handled, reason);
|
Rest.Log.DebugFormat("{0} Respond EXIT, handled = {1}, reason = {2}", MsgId, handled, reason);
|
||||||
|
|
||||||
return handled;
|
return handled;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add a header to the table. We need to allow
|
// Add a header to the table. We need to allow
|
||||||
|
@ -1122,7 +1082,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private void initUrl()
|
private void initUrl()
|
||||||
{
|
{
|
||||||
|
|
||||||
uri = request.Url;
|
uri = request.Url;
|
||||||
|
|
||||||
if (query == null)
|
if (query == null)
|
||||||
|
@ -1167,12 +1126,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
hostname = uri.Host;
|
hostname = uri.Host;
|
||||||
port = uri.Port;
|
port = uri.Port;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal int initParameters(int prfxlen)
|
internal int initParameters(int prfxlen)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (prfxlen < path.Length-1)
|
if (prfxlen < path.Length-1)
|
||||||
{
|
{
|
||||||
parameters = path.Substring(prfxlen+1).Split(Rest.CA_PATHSEP);
|
parameters = path.Substring(prfxlen+1).Split(Rest.CA_PATHSEP);
|
||||||
|
@ -1194,7 +1151,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
}
|
}
|
||||||
|
|
||||||
return parameters.Length;
|
return parameters.Length;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal string[] PathNodes
|
internal string[] PathNodes
|
||||||
|
@ -1211,7 +1167,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal string BuildUrl(int first, int last)
|
internal string BuildUrl(int first, int last)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (pathNodes == null)
|
if (pathNodes == null)
|
||||||
{
|
{
|
||||||
initUrl();
|
initUrl();
|
||||||
|
@ -1252,7 +1207,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
}
|
}
|
||||||
|
|
||||||
return sbuilder.ToString();
|
return sbuilder.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup the XML writer for output
|
// Setup the XML writer for output
|
||||||
|
@ -1272,7 +1226,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal void initXmlReader()
|
internal void initXmlReader()
|
||||||
{
|
{
|
||||||
|
|
||||||
XmlReaderSettings settings = new XmlReaderSettings();
|
XmlReaderSettings settings = new XmlReaderSettings();
|
||||||
|
|
||||||
settings.ConformanceLevel = ConformanceLevel.Fragment;
|
settings.ConformanceLevel = ConformanceLevel.Fragment;
|
||||||
|
@ -1282,14 +1235,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
settings.ValidationType = ValidationType.None;
|
settings.ValidationType = ValidationType.None;
|
||||||
|
|
||||||
reader = XmlReader.Create(request.InputStream,settings);
|
reader = XmlReader.Create(request.InputStream,settings);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Flush()
|
private void Flush()
|
||||||
{
|
{
|
||||||
byte[] dbuffer = new byte[8192];
|
byte[] dbuffer = new byte[8192];
|
||||||
while (request.InputStream.Read(dbuffer,0,dbuffer.Length) != 0);
|
while (request.InputStream.Read(dbuffer,0,dbuffer.Length) != 0);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This allows us to make errors a bit more apparent in REST
|
// This allows us to make errors a bit more apparent in REST
|
||||||
|
@ -1301,7 +1252,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
internal void SendHtml(string title, string text)
|
internal void SendHtml(string title, string text)
|
||||||
{
|
{
|
||||||
|
|
||||||
AddHeader(Rest.HttpHeaderContentType, "text/html");
|
AddHeader(Rest.HttpHeaderContentType, "text/html");
|
||||||
sbuilder.Length = 0;
|
sbuilder.Length = 0;
|
||||||
|
|
||||||
|
@ -1321,7 +1271,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
sbuilder.Append("</html>");
|
sbuilder.Append("</html>");
|
||||||
|
|
||||||
html = sbuilder.ToString();
|
html = sbuilder.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,10 +38,8 @@ using Nini.Config;
|
||||||
|
|
||||||
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
|
|
||||||
public class Rest
|
public class Rest
|
||||||
{
|
{
|
||||||
|
|
||||||
internal static readonly log4net.ILog Log =
|
internal static readonly log4net.ILog Log =
|
||||||
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
@ -374,7 +372,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
}
|
}
|
||||||
|
|
||||||
return sum;
|
return sum;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string Int2Hex8(int val)
|
public static string Int2Hex8(int val)
|
||||||
|
@ -409,7 +406,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
public static void Dump(byte[] data)
|
public static void Dump(byte[] data)
|
||||||
{
|
{
|
||||||
|
|
||||||
char[] buffer = new char[Rest.DumpLineSize];
|
char[] buffer = new char[Rest.DumpLineSize];
|
||||||
int cc = 0;
|
int cc = 0;
|
||||||
|
|
||||||
|
@ -435,7 +431,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
Console.Write(" |"+(new String(buffer))+"|");
|
Console.Write(" |"+(new String(buffer))+"|");
|
||||||
cc = 0;
|
cc = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finish off any incomplete line
|
// Finish off any incomplete line
|
||||||
|
@ -455,16 +450,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
Console.Write("\n");
|
Console.Write("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Local exception type
|
// Local exception type
|
||||||
|
|
||||||
public class RestException : Exception
|
public class RestException : Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
internal int statusCode;
|
internal int statusCode;
|
||||||
internal string statusDesc;
|
internal string statusDesc;
|
||||||
internal string httpmethod;
|
internal string httpmethod;
|
||||||
|
@ -474,5 +466,4 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,7 +182,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
}
|
}
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} REST Asset handler EXIT", MsgId);
|
Rest.Log.DebugFormat("{0} REST Asset handler EXIT", MsgId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Interface
|
#endregion Interface
|
||||||
|
|
|
@ -257,7 +257,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
if (Rest.InventoryServices.HasInventoryForUser(rdata.uuid))
|
if (Rest.InventoryServices.HasInventoryForUser(rdata.uuid))
|
||||||
{
|
{
|
||||||
|
|
||||||
rdata.root = Rest.InventoryServices.RequestRootFolder(rdata.uuid);
|
rdata.root = Rest.InventoryServices.RequestRootFolder(rdata.uuid);
|
||||||
|
|
||||||
Rest.Log.DebugFormat("{0} Inventory Root retrieved for {1} {2}",
|
Rest.Log.DebugFormat("{0} Inventory Root retrieved for {1} {2}",
|
||||||
|
@ -1382,7 +1381,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
ic.Fail(Rest.HttpStatusCodeBadRequest,
|
ic.Fail(Rest.HttpStatusCodeBadRequest,
|
||||||
Rest.HttpStatusDescBadRequest+": invalid parent");
|
Rest.HttpStatusDescBadRequest+": invalid parent");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is a new folder, so no existing UUID is available
|
// This is a new folder, so no existing UUID is available
|
||||||
|
|
|
@ -40,10 +40,8 @@ using OpenSim.Framework.Communications.Cache;
|
||||||
|
|
||||||
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
{
|
{
|
||||||
|
|
||||||
public class RestTestServices : IRest
|
public class RestTestServices : IRest
|
||||||
{
|
{
|
||||||
|
|
||||||
private bool enabled = false;
|
private bool enabled = false;
|
||||||
private string qPrefix = "test";
|
private string qPrefix = "test";
|
||||||
|
|
||||||
|
@ -52,7 +50,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
public RestTestServices()
|
public RestTestServices()
|
||||||
{
|
{
|
||||||
|
|
||||||
Rest.Log.InfoFormat("{0} Test services initializing", MsgId);
|
Rest.Log.InfoFormat("{0} Test services initializing", MsgId);
|
||||||
Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version);
|
Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version);
|
||||||
|
|
||||||
|
@ -81,7 +78,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|
||||||
Rest.Log.InfoFormat("{0} Test services initialization complete", MsgId);
|
Rest.Log.InfoFormat("{0} Test services initialization complete", MsgId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Post-construction, pre-enabled initialization opportunity
|
// Post-construction, pre-enabled initialization opportunity
|
||||||
|
@ -123,8 +119,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
|
|
||||||
private void DoTests(RequestData rdata)
|
private void DoTests(RequestData rdata)
|
||||||
{
|
{
|
||||||
|
if (!enabled)
|
||||||
if (!enabled) return;
|
return;
|
||||||
|
|
||||||
// Now that we know this is a serious attempt to
|
// Now that we know this is a serious attempt to
|
||||||
// access inventory data, we should find out who
|
// access inventory data, we should find out who
|
||||||
|
@ -177,7 +173,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
|
||||||
if (!rdata.handled)
|
if (!rdata.handled)
|
||||||
test.Execute(rdata);
|
test.Execute(rdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Interface
|
#endregion Interface
|
||||||
|
|
|
@ -97,7 +97,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
DrawObjectVolume(m_scene, mapbmp);
|
DrawObjectVolume(m_scene, mapbmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
imageData = OpenJPEG.EncodeFromImage(mapbmp, true);
|
imageData = OpenJPEG.EncodeFromImage(mapbmp, true);
|
||||||
|
@ -220,13 +219,10 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
//int tc = System.Environment.TickCount;
|
//int tc = System.Environment.TickCount;
|
||||||
for (int y = 0; y < 256; y++)
|
for (int y = 0; y < 256; y++)
|
||||||
{
|
{
|
||||||
|
|
||||||
float heightvalue = (float)hm[x, y];
|
float heightvalue = (float)hm[x, y];
|
||||||
|
|
||||||
|
|
||||||
if (heightvalue > (float)whichScene.RegionInfo.RegionSettings.WaterHeight)
|
if (heightvalue > (float)whichScene.RegionInfo.RegionSettings.WaterHeight)
|
||||||
{
|
{
|
||||||
|
|
||||||
// scale height value
|
// scale height value
|
||||||
heightvalue = low + mid * (heightvalue - low) / mid;
|
heightvalue = low + mid * (heightvalue - low) / mid;
|
||||||
|
|
||||||
|
@ -238,6 +234,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
|
|
||||||
if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue))
|
if (Single.IsInfinity(heightvalue) || Single.IsNaN(heightvalue))
|
||||||
heightvalue = 0;
|
heightvalue = 0;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Color green = Color.FromArgb((int)heightvalue, 100, (int)heightvalue);
|
Color green = Color.FromArgb((int)heightvalue, 100, (int)heightvalue);
|
||||||
|
@ -264,7 +261,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
|
|
||||||
if (hfdiff > 0.3f)
|
if (hfdiff > 0.3f)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (hfdiff < -0.3f)
|
else if (hfdiff < -0.3f)
|
||||||
{
|
{
|
||||||
|
@ -301,15 +297,8 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
mapbmp.SetPixel(x - 1, (256 - y) - 1, Shade);
|
mapbmp.SetPixel(x - 1, (256 - y) - 1, Shade);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (System.ArgumentException)
|
catch (System.ArgumentException)
|
||||||
{
|
{
|
||||||
|
@ -367,7 +356,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
return mapbmp;
|
return mapbmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Bitmap DrawObjectVolume(Scene whichScene, Bitmap mapbmp)
|
private Bitmap DrawObjectVolume(Scene whichScene, Bitmap mapbmp)
|
||||||
{
|
{
|
||||||
int tc = 0;
|
int tc = 0;
|
||||||
|
@ -395,7 +383,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
if (part == null)
|
if (part == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
||||||
// Draw if the object is at least 1 meter wide in any direction
|
// Draw if the object is at least 1 meter wide in any direction
|
||||||
if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)
|
if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)
|
||||||
{
|
{
|
||||||
|
@ -459,8 +446,8 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// skip prim in non-finite position
|
// skip prim in non-finite position
|
||||||
if (Single.IsNaN(pos.X) || Single.IsNaN(pos.Y) || Single.IsInfinity(pos.X)
|
if (Single.IsNaN(pos.X) || Single.IsNaN(pos.Y) ||
|
||||||
|| Single.IsInfinity(pos.Y))
|
Single.IsInfinity(pos.X) || Single.IsInfinity(pos.Y))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// Figure out if object is under 256m above the height of the terrain
|
// Figure out if object is under 256m above the height of the terrain
|
||||||
|
@ -482,7 +469,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
Vector3 tScale = new Vector3();
|
Vector3 tScale = new Vector3();
|
||||||
Vector3 axPos = new Vector3(pos.X,pos.Y,pos.Z);
|
Vector3 axPos = new Vector3(pos.X,pos.Y,pos.Z);
|
||||||
|
|
||||||
|
|
||||||
LLQuaternion llrot = part.GetWorldRotation();
|
LLQuaternion llrot = part.GetWorldRotation();
|
||||||
Quaternion rot = new Quaternion(llrot.W, llrot.X, llrot.Y, llrot.Z);
|
Quaternion rot = new Quaternion(llrot.W, llrot.X, llrot.Y, llrot.Z);
|
||||||
scale = rot * lscale;
|
scale = rot * lscale;
|
||||||
|
@ -618,14 +604,10 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
ds.brush = new SolidBrush(mapdotspot);
|
ds.brush = new SolidBrush(mapdotspot);
|
||||||
//ds.rect = new Rectangle(mapdrawstartX, (255 - mapdrawstartY), mapdrawendX - mapdrawstartX, mapdrawendY - mapdrawstartY);
|
//ds.rect = new Rectangle(mapdrawstartX, (255 - mapdrawstartY), mapdrawendX - mapdrawstartX, mapdrawendY - mapdrawstartY);
|
||||||
|
|
||||||
|
|
||||||
ds.trns = new face[FaceA.Length];
|
ds.trns = new face[FaceA.Length];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < FaceA.Length; i++)
|
for (int i = 0; i < FaceA.Length; i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
Point[] working = new Point[5];
|
Point[] working = new Point[5];
|
||||||
working[0] = project(FaceA[i], axPos);
|
working[0] = project(FaceA[i], axPos);
|
||||||
working[1] = project(FaceB[i], axPos);
|
working[1] = project(FaceB[i], axPos);
|
||||||
|
@ -637,18 +619,12 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
workingface.pts = working;
|
workingface.pts = working;
|
||||||
|
|
||||||
ds.trns[i] = workingface;
|
ds.trns[i] = workingface;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
z_sort.Add(part.LocalId, ds);
|
z_sort.Add(part.LocalId, ds);
|
||||||
z_localIDs.Add(part.LocalId);
|
z_localIDs.Add(part.LocalId);
|
||||||
z_sortheights.Add(pos.Z);
|
z_sortheights.Add(pos.Z);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//for (int wx = mapdrawstartX; wx < mapdrawendX; wx++)
|
//for (int wx = mapdrawstartX; wx < mapdrawendX; wx++)
|
||||||
//{
|
//{
|
||||||
//for (wy = mapdrawstartY; wy < mapdrawendY; wy++)
|
//for (wy = mapdrawstartY; wy < mapdrawendY; wy++)
|
||||||
|
@ -683,13 +659,10 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
// Sort prim by Z position
|
// Sort prim by Z position
|
||||||
Array.Sort(sortedZHeights, sortedlocalIds);
|
Array.Sort(sortedZHeights, sortedlocalIds);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Graphics g = Graphics.FromImage(mapbmp);
|
Graphics g = Graphics.FromImage(mapbmp);
|
||||||
|
|
||||||
for (int s = 0; s < sortedZHeights.Length; s++)
|
for (int s = 0; s < sortedZHeights.Length; s++)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (z_sort.ContainsKey(sortedlocalIds[s]))
|
if (z_sort.ContainsKey(sortedlocalIds[s]))
|
||||||
{
|
{
|
||||||
DrawStruct rectDrawStruct = z_sort[sortedlocalIds[s]];
|
DrawStruct rectDrawStruct = z_sort[sortedlocalIds[s]];
|
||||||
|
@ -701,13 +674,13 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
g.Dispose();
|
g.Dispose();
|
||||||
} // lock entities objs
|
} // lock entities objs
|
||||||
|
|
||||||
m_log.Info("[MAPTILE]: Generating Maptile Step 2: Done in " + (System.Environment.TickCount - tc) + " ms");
|
m_log.Info("[MAPTILE]: Generating Maptile Step 2: Done in " + (System.Environment.TickCount - tc) + " ms");
|
||||||
return mapbmp;
|
return mapbmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Point project(Vector3 point3d, Vector3 originpos)
|
private Point project(Vector3 point3d, Vector3 originpos)
|
||||||
{
|
{
|
||||||
Point returnpt = new Point();
|
Point returnpt = new Point();
|
||||||
|
@ -721,7 +694,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap
|
||||||
returnpt.Y = (int)(255 - point3d.y);//(int)(255 - (((topos.y - point3d.y) / z * d)));
|
returnpt.Y = (int)(255 - point3d.y);//(int)(255 - (((topos.y - point3d.y) / z * d)));
|
||||||
|
|
||||||
return returnpt;
|
return returnpt;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: unused:
|
// TODO: unused:
|
||||||
|
|
Loading…
Reference in New Issue