diff options
208 files changed, 2966 insertions, 3149 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index 256e862..c79122c 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -56,8 +56,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
56 | public string Version { get { return m_version; } } | 56 | public string Version { get { return m_version; } } |
57 | public string Name { get { return m_name; } } | 57 | public string Name { get { return m_name; } } |
58 | 58 | ||
59 | public void Initialise() | 59 | public void Initialise() |
60 | { | 60 | { |
61 | m_log.Info("[RADMIN]: " + Name + " cannot be default-initialized!"); | 61 | m_log.Info("[RADMIN]: " + Name + " cannot be default-initialized!"); |
62 | throw new PluginNotInitialisedException (Name); | 62 | throw new PluginNotInitialisedException (Name); |
63 | } | 63 | } |
@@ -512,7 +512,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
512 | try | 512 | try |
513 | { | 513 | { |
514 | Hashtable requestData = (Hashtable) request.Params[0]; | 514 | Hashtable requestData = (Hashtable) request.Params[0]; |
515 | 515 | ||
516 | // check completeness | 516 | // check completeness |
517 | checkStringParameters(request, new string[] { "password", "user_firstname", | 517 | checkStringParameters(request, new string[] { "password", "user_firstname", |
518 | "user_lastname", "user_password" }); | 518 | "user_lastname", "user_password" }); |
@@ -603,7 +603,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
603 | try | 603 | try |
604 | { | 604 | { |
605 | Hashtable requestData = (Hashtable) request.Params[0]; | 605 | Hashtable requestData = (Hashtable) request.Params[0]; |
606 | 606 | ||
607 | // check completeness | 607 | // check completeness |
608 | checkStringParameters(request, new string[] { "password", "user_firstname", | 608 | checkStringParameters(request, new string[] { "password", "user_firstname", |
609 | "user_lastname" }); | 609 | "user_lastname" }); |
@@ -616,7 +616,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
616 | string firstname = (string) requestData["user_firstname"]; | 616 | string firstname = (string) requestData["user_firstname"]; |
617 | string lastname = (string) requestData["user_lastname"]; | 617 | string lastname = (string) requestData["user_lastname"]; |
618 | 618 | ||
619 | 619 | ||
620 | string passwd = String.Empty; | 620 | string passwd = String.Empty; |
621 | uint? regX = null; | 621 | uint? regX = null; |
622 | uint? regY = null; | 622 | uint? regY = null; |
@@ -632,7 +632,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
632 | if (null == userProfile) | 632 | if (null == userProfile) |
633 | throw new Exception(String.Format("avatar {0} {1} does not exist", firstname, lastname)); | 633 | throw new Exception(String.Format("avatar {0} {1} does not exist", firstname, lastname)); |
634 | 634 | ||
635 | if (null != passwd) | 635 | if (null != passwd) |
636 | { | 636 | { |
637 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(passwd) + ":" + String.Empty); | 637 | string md5PasswdHash = Util.Md5Hash(Util.Md5Hash(passwd) + ":" + String.Empty); |
638 | userProfile.PasswordHash = md5PasswdHash; | 638 | userProfile.PasswordHash = md5PasswdHash; |
@@ -648,7 +648,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
648 | 648 | ||
649 | response.Value = responseData; | 649 | response.Value = responseData; |
650 | 650 | ||
651 | m_log.InfoFormat("[RADMIN]: UpdateUserAccount: account for user {0} {1} updated, UUID {2}", firstname, lastname, | 651 | m_log.InfoFormat("[RADMIN]: UpdateUserAccount: account for user {0} {1} updated, UUID {2}", firstname, lastname, |
652 | userProfile.ID); | 652 | userProfile.ID); |
653 | } | 653 | } |
654 | catch (Exception e) | 654 | catch (Exception e) |
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RequestData.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RequestData.cs index 94aecbd..6fc3ea3 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RequestData.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RequestData.cs | |||
@@ -23,7 +23,6 @@ | |||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | ||
27 | */ | 26 | */ |
28 | 27 | ||
29 | using System; | 28 | using System; |
@@ -44,14 +43,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
44 | 43 | ||
45 | /// <summary> | 44 | /// <summary> |
46 | /// This class represents the current REST request. It | 45 | /// This class represents the current REST request. It |
47 | /// encapsulates the request/response state and takes care | 46 | /// encapsulates the request/response state and takes care |
48 | /// of response generation without exposing the REST handler | 47 | /// of response generation without exposing the REST handler |
49 | /// to the actual mechanisms involved. | 48 | /// to the actual mechanisms involved. |
50 | /// | 49 | /// |
51 | /// This structure is created on entry to the Handler | 50 | /// This structure is created on entry to the Handler |
52 | /// method and is disposed of upon return. It is part of | 51 | /// method and is disposed of upon return. It is part of |
53 | /// the plug-in infrastructure, rather than the functionally | 52 | /// the plug-in infrastructure, rather than the functionally |
54 | /// specific REST handler, and fundamental changes to | 53 | /// specific REST handler, and fundamental changes to |
55 | /// this should be reflected in the Rest HandlerVersion. The | 54 | /// this should be reflected in the Rest HandlerVersion. The |
56 | /// object is instantiated, and may be extended by, any | 55 | /// object is instantiated, and may be extended by, any |
57 | /// given handler. See the inventory handler for an example | 56 | /// given handler. See the inventory handler for an example |
@@ -100,7 +99,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
100 | internal bool chunked = false; | 99 | internal bool chunked = false; |
101 | 100 | ||
102 | // Authentication related state | 101 | // Authentication related state |
103 | 102 | ||
104 | internal bool authenticated = false; | 103 | internal bool authenticated = false; |
105 | // internal string scheme = Rest.AS_DIGEST; | 104 | // internal string scheme = Rest.AS_DIGEST; |
106 | // internal string scheme = Rest.AS_BASIC; | 105 | // internal string scheme = Rest.AS_BASIC; |
@@ -132,7 +131,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
132 | private static readonly string[] EmptyPath = { String.Empty }; | 131 | private static readonly string[] EmptyPath = { String.Empty }; |
133 | 132 | ||
134 | // Session related tables. These are only needed if QOP is set to "auth-sess" | 133 | // Session related tables. These are only needed if QOP is set to "auth-sess" |
135 | // and for now at least, it is not. Session related authentication is of | 134 | // and for now at least, it is not. Session related authentication is of |
136 | // questionable merit in the context of REST anyway, but it is, arguably, more | 135 | // questionable merit in the context of REST anyway, but it is, arguably, more |
137 | // secure. | 136 | // secure. |
138 | 137 | ||
@@ -148,27 +147,27 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
148 | 147 | ||
149 | private static Regex schema = new Regex("^\\s*(?<scheme>\\w+)\\s*.*", | 148 | private static Regex schema = new Regex("^\\s*(?<scheme>\\w+)\\s*.*", |
150 | RegexOptions.Compiled | RegexOptions.IgnoreCase); | 149 | RegexOptions.Compiled | RegexOptions.IgnoreCase); |
151 | 150 | ||
152 | private static Regex basicParms = new Regex("^\\s*(?:\\w+)\\s+(?<pval>\\S+)\\s*", | 151 | private static Regex basicParms = new Regex("^\\s*(?:\\w+)\\s+(?<pval>\\S+)\\s*", |
153 | RegexOptions.Compiled | RegexOptions.IgnoreCase); | 152 | RegexOptions.Compiled | RegexOptions.IgnoreCase); |
154 | 153 | ||
155 | private static Regex digestParm1 = new Regex("\\s*(?<parm>\\w+)\\s*=\\s*\"(?<pval>[^\"]+)\"", | 154 | private static Regex digestParm1 = new Regex("\\s*(?<parm>\\w+)\\s*=\\s*\"(?<pval>[^\"]+)\"", |
156 | RegexOptions.Compiled | RegexOptions.IgnoreCase); | 155 | RegexOptions.Compiled | RegexOptions.IgnoreCase); |
157 | 156 | ||
158 | private static Regex digestParm2 = new Regex("\\s*(?<parm>\\w+)\\s*=\\s*(?<pval>[^\\p{P}\\s]+)", | 157 | private static Regex digestParm2 = new Regex("\\s*(?<parm>\\w+)\\s*=\\s*(?<pval>[^\\p{P}\\s]+)", |
159 | RegexOptions.Compiled | RegexOptions.IgnoreCase); | 158 | RegexOptions.Compiled | RegexOptions.IgnoreCase); |
160 | 159 | ||
161 | private static Regex reuserPass = new Regex("(?<user>[^:]+):(?<pass>[\\S\\s]*)", | 160 | private static Regex reuserPass = new Regex("(?<user>[^:]+):(?<pass>[\\S\\s]*)", |
162 | RegexOptions.Compiled | RegexOptions.IgnoreCase); | 161 | RegexOptions.Compiled | RegexOptions.IgnoreCase); |
163 | 162 | ||
164 | // For efficiency, we create static instances of these objects | 163 | // For efficiency, we create static instances of these objects |
165 | 164 | ||
166 | private static MD5 md5hash = MD5.Create(); | 165 | private static MD5 md5hash = MD5.Create(); |
167 | 166 | ||
168 | private static StringComparer sc = StringComparer.OrdinalIgnoreCase; | 167 | private static StringComparer sc = StringComparer.OrdinalIgnoreCase; |
169 | 168 | ||
170 | // Constructor | 169 | // Constructor |
171 | 170 | ||
172 | internal RequestData(OSHttpRequest p_request, OSHttpResponse p_response, string p_qprefix) | 171 | internal RequestData(OSHttpRequest p_request, OSHttpResponse p_response, string p_qprefix) |
173 | { | 172 | { |
174 | 173 | ||
@@ -203,7 +202,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
203 | internal bool IsAuthenticated | 202 | internal bool IsAuthenticated |
204 | { | 203 | { |
205 | get | 204 | get |
206 | { | 205 | { |
207 | if (Rest.Authenticate) | 206 | if (Rest.Authenticate) |
208 | { | 207 | { |
209 | if (!authenticated) | 208 | if (!authenticated) |
@@ -223,7 +222,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
223 | /// Realm, domain, etc. | 222 | /// Realm, domain, etc. |
224 | /// | 223 | /// |
225 | /// This method checks to see if the current request is already | 224 | /// This method checks to see if the current request is already |
226 | /// authenticated for this domain. If it is, then it returns | 225 | /// authenticated for this domain. If it is, then it returns |
227 | /// true. If it is not, then it issues a challenge to the client | 226 | /// true. If it is not, then it issues a challenge to the client |
228 | /// and responds negatively to the request. | 227 | /// and responds negatively to the request. |
229 | /// </summary> | 228 | /// </summary> |
@@ -243,7 +242,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
243 | Rest.Log.DebugFormat("{0} Challenge reason: No authorization data", MsgId); | 242 | Rest.Log.DebugFormat("{0} Challenge reason: No authorization data", MsgId); |
244 | DoChallenge(); | 243 | DoChallenge(); |
245 | } | 244 | } |
246 | 245 | ||
247 | // So, we have authentication data, now we have to check to | 246 | // So, we have authentication data, now we have to check to |
248 | // see what we got and whether or not it is valid for the | 247 | // see what we got and whether or not it is valid for the |
249 | // current domain. To do this we need to interpret the data | 248 | // current domain. To do this we need to interpret the data |
@@ -327,7 +326,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
327 | foreach (Match m in matches) | 326 | foreach (Match m in matches) |
328 | { | 327 | { |
329 | authparms.Add("response",m.Groups["pval"].Value); | 328 | authparms.Add("response",m.Groups["pval"].Value); |
330 | Rest.Log.DebugFormat("{0} Parameter matched : {1} = {2}", | 329 | Rest.Log.DebugFormat("{0} Parameter matched : {1} = {2}", |
331 | MsgId, "response", m.Groups["pval"].Value); | 330 | MsgId, "response", m.Groups["pval"].Value); |
332 | } | 331 | } |
333 | 332 | ||
@@ -369,7 +368,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
369 | foreach (Match m in matches) | 368 | foreach (Match m in matches) |
370 | { | 369 | { |
371 | authparms.Add(m.Groups["parm"].Value,m.Groups["pval"].Value); | 370 | authparms.Add(m.Groups["parm"].Value,m.Groups["pval"].Value); |
372 | Rest.Log.DebugFormat("{0} String Parameter matched : {1} = {2}", | 371 | Rest.Log.DebugFormat("{0} String Parameter matched : {1} = {2}", |
373 | MsgId, m.Groups["parm"].Value,m.Groups["pval"].Value); | 372 | MsgId, m.Groups["parm"].Value,m.Groups["pval"].Value); |
374 | } | 373 | } |
375 | 374 | ||
@@ -380,7 +379,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
380 | foreach (Match m in matches) | 379 | foreach (Match m in matches) |
381 | { | 380 | { |
382 | authparms.Add(m.Groups["parm"].Value,m.Groups["pval"].Value); | 381 | authparms.Add(m.Groups["parm"].Value,m.Groups["pval"].Value); |
383 | Rest.Log.DebugFormat("{0} Tokenized Parameter matched : {1} = {2}", | 382 | Rest.Log.DebugFormat("{0} Tokenized Parameter matched : {1} = {2}", |
384 | MsgId, m.Groups["parm"].Value,m.Groups["pval"].Value); | 383 | MsgId, m.Groups["parm"].Value,m.Groups["pval"].Value); |
385 | } | 384 | } |
386 | 385 | ||
@@ -417,7 +416,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
417 | 416 | ||
418 | if (!authparms.TryGetValue("nonce", out nonce) || nonce == null) | 417 | if (!authparms.TryGetValue("nonce", out nonce) || nonce == null) |
419 | { | 418 | { |
420 | Rest.Log.WarnFormat("{0} Authentication failed: nonce missing", MsgId); | 419 | Rest.Log.WarnFormat("{0} Authentication failed: nonce missing", MsgId); |
421 | break; | 420 | break; |
422 | } | 421 | } |
423 | 422 | ||
@@ -428,7 +427,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
428 | { | 427 | { |
429 | if (temp != opaque) | 428 | if (temp != opaque) |
430 | { | 429 | { |
431 | Rest.Log.WarnFormat("{0} Authentication failed: bad opaque value", MsgId); | 430 | Rest.Log.WarnFormat("{0} Authentication failed: bad opaque value", MsgId); |
432 | break; | 431 | break; |
433 | } | 432 | } |
434 | } | 433 | } |
@@ -440,7 +439,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
440 | { | 439 | { |
441 | if (temp != algorithm) | 440 | if (temp != algorithm) |
442 | { | 441 | { |
443 | Rest.Log.WarnFormat("{0} Authentication failed: bad algorithm value", MsgId); | 442 | Rest.Log.WarnFormat("{0} Authentication failed: bad algorithm value", MsgId); |
444 | break; | 443 | break; |
445 | } | 444 | } |
446 | } | 445 | } |
@@ -457,7 +456,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
457 | 456 | ||
458 | if (!authparms.ContainsKey("cnonce")) | 457 | if (!authparms.ContainsKey("cnonce")) |
459 | { | 458 | { |
460 | Rest.Log.WarnFormat("{0} Authentication failed: cnonce missing", MsgId); | 459 | Rest.Log.WarnFormat("{0} Authentication failed: cnonce missing", MsgId); |
461 | break; | 460 | break; |
462 | } | 461 | } |
463 | 462 | ||
@@ -465,7 +464,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
465 | 464 | ||
466 | if (!authparms.TryGetValue("nc", out nck) || nck == null) | 465 | if (!authparms.TryGetValue("nc", out nck) || nck == null) |
467 | { | 466 | { |
468 | Rest.Log.WarnFormat("{0} Authentication failed: cnonce counter missing", MsgId); | 467 | Rest.Log.WarnFormat("{0} Authentication failed: cnonce counter missing", MsgId); |
469 | break; | 468 | break; |
470 | } | 469 | } |
471 | 470 | ||
@@ -477,7 +476,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
477 | 476 | ||
478 | if (Rest.Hex2Int(ncl) >= Rest.Hex2Int(nck)) | 477 | if (Rest.Hex2Int(ncl) >= Rest.Hex2Int(nck)) |
479 | { | 478 | { |
480 | Rest.Log.WarnFormat("{0} Authentication failed: bad cnonce counter", MsgId); | 479 | Rest.Log.WarnFormat("{0} Authentication failed: bad cnonce counter", MsgId); |
481 | break; | 480 | break; |
482 | } | 481 | } |
483 | cntable[nonce] = nck; | 482 | cntable[nonce] = nck; |
@@ -497,12 +496,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
497 | // these MUST NOT be present. | 496 | // these MUST NOT be present. |
498 | if (authparms.ContainsKey("cnonce")) | 497 | if (authparms.ContainsKey("cnonce")) |
499 | { | 498 | { |
500 | Rest.Log.WarnFormat("{0} Authentication failed: invalid cnonce", MsgId); | 499 | Rest.Log.WarnFormat("{0} Authentication failed: invalid cnonce", MsgId); |
501 | break; | 500 | break; |
502 | } | 501 | } |
503 | if (authparms.ContainsKey("nc")) | 502 | if (authparms.ContainsKey("nc")) |
504 | { | 503 | { |
505 | Rest.Log.WarnFormat("{0} Authentication failed: invalid cnonce counter[2]", MsgId); | 504 | Rest.Log.WarnFormat("{0} Authentication failed: invalid cnonce counter[2]", MsgId); |
506 | break; | 505 | break; |
507 | } | 506 | } |
508 | } | 507 | } |
@@ -511,7 +510,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
511 | 510 | ||
512 | authenticated = ValidateDigest(userName, nonce, cnonce, nck, authPrefix, response); | 511 | authenticated = ValidateDigest(userName, nonce, cnonce, nck, authPrefix, response); |
513 | 512 | ||
514 | } | 513 | } |
515 | while (false); | 514 | while (false); |
516 | 515 | ||
517 | } | 516 | } |
@@ -608,7 +607,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
608 | } | 607 | } |
609 | 608 | ||
610 | // We don;t know the userid that will be used | 609 | // We don;t know the userid that will be used |
611 | // so we cannot make any authentication domain | 610 | // so we cannot make any authentication domain |
612 | // assumptions. So the prefix will determine | 611 | // assumptions. So the prefix will determine |
613 | // this. | 612 | // this. |
614 | 613 | ||
@@ -624,7 +623,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
624 | } | 623 | } |
625 | 624 | ||
626 | /// <summary> | 625 | /// <summary> |
627 | /// This method provides validation in support of the BASIC | 626 | /// This method provides validation in support of the BASIC |
628 | /// authentication method. This is not normaly expected to be | 627 | /// authentication method. This is not normaly expected to be |
629 | /// used, but is included for completeness (and because I tried | 628 | /// used, but is included for completeness (and because I tried |
630 | /// it first). | 629 | /// it first). |
@@ -650,11 +649,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
650 | /// <summary> | 649 | /// <summary> |
651 | /// This mechanism is used by the digest authetnication mechanism | 650 | /// This mechanism is used by the digest authetnication mechanism |
652 | /// to return the user's password. In fact, because the OpenSim | 651 | /// to return the user's password. In fact, because the OpenSim |
653 | /// user's passwords are already hashed, and the HTTP mechanism | 652 | /// user's passwords are already hashed, and the HTTP mechanism |
654 | /// does not supply an open password, the hashed passwords cannot | 653 | /// does not supply an open password, the hashed passwords cannot |
655 | /// be used unless the cliemt has used the same salting mechanism | 654 | /// be used unless the cliemt has used the same salting mechanism |
656 | /// to has the password before using it in the authentication | 655 | /// to has the password before using it in the authentication |
657 | /// algorithn. This is not inconceivable... | 656 | /// algorithm. This is not inconceivable... |
658 | /// </summary> | 657 | /// </summary> |
659 | 658 | ||
660 | private string getPassword(string user) | 659 | private string getPassword(string user) |
@@ -665,12 +664,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
665 | string last; | 664 | string last; |
666 | 665 | ||
667 | // Distinguish the parts, if necessary | 666 | // Distinguish the parts, if necessary |
668 | 667 | ||
669 | if ((x=user.IndexOf(Rest.C_SPACE)) != -1) | 668 | if ((x=user.IndexOf(Rest.C_SPACE)) != -1) |
670 | { | 669 | { |
671 | first = user.Substring(0,x); | 670 | first = user.Substring(0,x); |
672 | last = user.Substring(x+1); | 671 | last = user.Substring(x+1); |
673 | } | 672 | } |
674 | else | 673 | else |
675 | { | 674 | { |
676 | first = user; | 675 | first = user; |
@@ -712,12 +711,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
712 | string last; | 711 | string last; |
713 | 712 | ||
714 | // Distinguish the parts, if necessary | 713 | // Distinguish the parts, if necessary |
715 | 714 | ||
716 | if ((x=user.IndexOf(Rest.C_SPACE)) != -1) | 715 | if ((x=user.IndexOf(Rest.C_SPACE)) != -1) |
717 | { | 716 | { |
718 | first = user.Substring(0,x); | 717 | first = user.Substring(0,x); |
719 | last = user.Substring(x+1); | 718 | last = user.Substring(x+1); |
720 | } | 719 | } |
721 | else | 720 | else |
722 | { | 721 | { |
723 | first = user; | 722 | first = user; |
@@ -733,9 +732,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
733 | 732 | ||
734 | HA1 = HashToString(pass); | 733 | HA1 = HashToString(pass); |
735 | HA1 = HashToString(String.Format("{0}:{1}",HA1,udata.PasswordSalt)); | 734 | HA1 = HashToString(String.Format("{0}:{1}",HA1,udata.PasswordSalt)); |
736 | 735 | ||
737 | return (0 == sc.Compare(HA1, udata.PasswordHash)); | 736 | return (0 == sc.Compare(HA1, udata.PasswordHash)); |
738 | 737 | ||
739 | } | 738 | } |
740 | 739 | ||
741 | // Validate the request-digest | 740 | // Validate the request-digest |
@@ -784,7 +783,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
784 | HA2 = HashToString(patt); | 783 | HA2 = HashToString(patt); |
785 | 784 | ||
786 | // Generate Digest | 785 | // Generate Digest |
787 | 786 | ||
788 | if (qop != String.Empty) | 787 | if (qop != String.Empty) |
789 | { | 788 | { |
790 | patt = String.Format("{0}:{1}:{2}:{3}:{4}:{5}", HA1, nonce, nck, cnonce, qop, HA2); | 789 | patt = String.Format("{0}:{1}:{2}:{3}:{4}:{5}", HA1, nonce, nck, cnonce, qop, HA2); |
@@ -856,7 +855,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
856 | Fail(code, message, true); | 855 | Fail(code, message, true); |
857 | } | 856 | } |
858 | 857 | ||
859 | // More adventurous. This failure also includes a | 858 | // More adventurous. This failure also includes a |
860 | // specified entity. | 859 | // specified entity. |
861 | 860 | ||
862 | internal void Fail(int code, string message, string data) | 861 | internal void Fail(int code, string message, string data) |
@@ -899,7 +898,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
899 | fail = true; | 898 | fail = true; |
900 | 899 | ||
901 | Respond("Failure response"); | 900 | Respond("Failure response"); |
902 | 901 | ||
903 | RestException re = new RestException(message+" <"+code+">"); | 902 | RestException re = new RestException(message+" <"+code+">"); |
904 | 903 | ||
905 | re.statusCode = code; | 904 | re.statusCode = code; |
@@ -918,7 +917,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
918 | Fail(Rest.HttpStatusCodeNotImplemented, Rest.HttpStatusDescNotImplemented); | 917 | Fail(Rest.HttpStatusCodeNotImplemented, Rest.HttpStatusDescNotImplemented); |
919 | } | 918 | } |
920 | 919 | ||
921 | // This MUST be called by an agent handler before it returns | 920 | // This MUST be called by an agent handler before it returns |
922 | // control to Handle, otherwise the request will be ignored. | 921 | // control to Handle, otherwise the request will be ignored. |
923 | // This is called implciitly for the REST stream handlers and | 922 | // This is called implciitly for the REST stream handlers and |
924 | // is harmless if it is called twice. | 923 | // is harmless if it is called twice. |
@@ -962,7 +961,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
962 | Rest.Log.DebugFormat("{0} XML Response handler extension EXIT", MsgId); | 961 | Rest.Log.DebugFormat("{0} XML Response handler extension EXIT", MsgId); |
963 | } | 962 | } |
964 | 963 | ||
965 | // If buffer != null, then we assume that | 964 | // If buffer != null, then we assume that |
966 | // this has already been done some other | 965 | // this has already been done some other |
967 | // way. For example, transfer encoding might | 966 | // way. For example, transfer encoding might |
968 | // have been done. | 967 | // have been done. |
@@ -997,7 +996,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
997 | 996 | ||
998 | } | 997 | } |
999 | 998 | ||
1000 | // Set the status code & description. If nothing has been stored, | 999 | // Set the status code & description. If nothing has been stored, |
1001 | // we consider that a success. | 1000 | // we consider that a success. |
1002 | 1001 | ||
1003 | if (statusCode == 0) | 1002 | if (statusCode == 0) |
@@ -1011,7 +1010,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1011 | 1010 | ||
1012 | // For a redirect we need to set the relocation header accordingly | 1011 | // For a redirect we need to set the relocation header accordingly |
1013 | 1012 | ||
1014 | if (response.StatusCode == (int) Rest.HttpStatusCodeTemporaryRedirect || | 1013 | if (response.StatusCode == (int) Rest.HttpStatusCodeTemporaryRedirect || |
1015 | response.StatusCode == (int) Rest.HttpStatusCodePermanentRedirect) | 1014 | response.StatusCode == (int) Rest.HttpStatusCodePermanentRedirect) |
1016 | { | 1015 | { |
1017 | Rest.Log.DebugFormat("{0} Re-direct location is {1}", MsgId, redirectLocation); | 1016 | Rest.Log.DebugFormat("{0} Re-direct location is {1}", MsgId, redirectLocation); |
@@ -1031,7 +1030,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1031 | // We've left the setting of handled' until the | 1030 | // We've left the setting of handled' until the |
1032 | // last minute because the header settings included | 1031 | // last minute because the header settings included |
1033 | // above are pretty harmless. But everything from | 1032 | // above are pretty harmless. But everything from |
1034 | // here on down probably leaves the response | 1033 | // here on down probably leaves the response |
1035 | // element unusable by anyone else. | 1034 | // element unusable by anyone else. |
1036 | 1035 | ||
1037 | handled = true; | 1036 | handled = true; |
@@ -1046,7 +1045,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1046 | 1045 | ||
1047 | if (buffer != null && buffer.Length != 0) | 1046 | if (buffer != null && buffer.Length != 0) |
1048 | { | 1047 | { |
1049 | Rest.Log.DebugFormat("{0} Entity buffer, length = {1} : <{2}>", | 1048 | Rest.Log.DebugFormat("{0} Entity buffer, length = {1} : <{2}>", |
1050 | MsgId, buffer.Length, encoding.GetString(buffer)); | 1049 | MsgId, buffer.Length, encoding.GetString(buffer)); |
1051 | response.OutputStream.Write(buffer, 0, buffer.Length); | 1050 | response.OutputStream.Write(buffer, 0, buffer.Length); |
1052 | } | 1051 | } |
@@ -1066,17 +1065,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1066 | 1065 | ||
1067 | // Add a header to the table. We need to allow | 1066 | // Add a header to the table. We need to allow |
1068 | // multiple instances of many of the headers. | 1067 | // multiple instances of many of the headers. |
1069 | // If the | 1068 | // If the |
1070 | 1069 | ||
1071 | internal void AddHeader(string hdr, string data) | 1070 | internal void AddHeader(string hdr, string data) |
1072 | { | 1071 | { |
1073 | if (Rest.DEBUG) | 1072 | if (Rest.DEBUG) |
1074 | { | 1073 | { |
1075 | Rest.Log.DebugFormat("{0} Adding header: <{1}: {2}>", | 1074 | Rest.Log.DebugFormat("{0} Adding header: <{1}: {2}>", |
1076 | MsgId, hdr, data); | 1075 | MsgId, hdr, data); |
1077 | if (response.Headers.Get(hdr) != null) | 1076 | if (response.Headers.Get(hdr) != null) |
1078 | { | 1077 | { |
1079 | Rest.Log.DebugFormat("{0} Multipe {1} headers will be generated>", | 1078 | Rest.Log.DebugFormat("{0} Multipe {1} headers will be generated>", |
1080 | MsgId, hdr); | 1079 | MsgId, hdr); |
1081 | } | 1080 | } |
1082 | } | 1081 | } |
@@ -1093,7 +1092,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1093 | Rest.Log.DebugFormat("{0} Removing header: <{1}>", MsgId, hdr); | 1092 | Rest.Log.DebugFormat("{0} Removing header: <{1}>", MsgId, hdr); |
1094 | if (response.Headers.Get(hdr) == null) | 1093 | if (response.Headers.Get(hdr) == null) |
1095 | { | 1094 | { |
1096 | Rest.Log.DebugFormat("{0} No such header existed", | 1095 | Rest.Log.DebugFormat("{0} No such header existed", |
1097 | MsgId, hdr); | 1096 | MsgId, hdr); |
1098 | } | 1097 | } |
1099 | } | 1098 | } |
@@ -1110,7 +1109,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1110 | { | 1109 | { |
1111 | for (int i=0;i<response.Headers.Count;i++) | 1110 | for (int i=0;i<response.Headers.Count;i++) |
1112 | { | 1111 | { |
1113 | Rest.Log.DebugFormat("{0} Header[{1}] : {2}", MsgId, i, | 1112 | Rest.Log.DebugFormat("{0} Header[{1}] : {2}", MsgId, i, |
1114 | response.Headers.Get(i)); | 1113 | response.Headers.Get(i)); |
1115 | } | 1114 | } |
1116 | } | 1115 | } |
@@ -1144,7 +1143,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1144 | // If we succeeded in getting a path, perform any | 1143 | // If we succeeded in getting a path, perform any |
1145 | // additional pre-processing required. | 1144 | // additional pre-processing required. |
1146 | 1145 | ||
1147 | if (path != null) | 1146 | if (path != null) |
1148 | { | 1147 | { |
1149 | if (Rest.ExtendedEscape) | 1148 | if (Rest.ExtendedEscape) |
1150 | { | 1149 | { |
@@ -1182,14 +1181,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1182 | { | 1181 | { |
1183 | parameters = new string[0]; | 1182 | parameters = new string[0]; |
1184 | } | 1183 | } |
1185 | 1184 | ||
1186 | // Generate a debug list of the decoded parameters | 1185 | // Generate a debug list of the decoded parameters |
1187 | 1186 | ||
1188 | if (Rest.DEBUG && prfxlen < path.Length-1) | 1187 | if (Rest.DEBUG && prfxlen < path.Length-1) |
1189 | { | 1188 | { |
1190 | Rest.Log.DebugFormat("{0} URI: Parameters: {1}", MsgId, path.Substring(prfxlen)); | 1189 | Rest.Log.DebugFormat("{0} URI: Parameters: {1}", MsgId, path.Substring(prfxlen)); |
1191 | for (int i = 0; i < parameters.Length; i++) | 1190 | for (int i = 0; i < parameters.Length; i++) |
1192 | { | 1191 | { |
1193 | Rest.Log.DebugFormat("{0} Parameter[{1}]: {2}", MsgId, i, parameters[i]); | 1192 | Rest.Log.DebugFormat("{0} Parameter[{1}]: {2}", MsgId, i, parameters[i]); |
1194 | } | 1193 | } |
1195 | } | 1194 | } |
@@ -1197,11 +1196,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1197 | return parameters.Length; | 1196 | return parameters.Length; |
1198 | 1197 | ||
1199 | } | 1198 | } |
1200 | 1199 | ||
1201 | internal string[] PathNodes | 1200 | internal string[] PathNodes |
1202 | { | 1201 | { |
1203 | get | 1202 | get |
1204 | { | 1203 | { |
1205 | if (pathNodes == null) | 1204 | if (pathNodes == null) |
1206 | { | 1205 | { |
1207 | initUrl(); | 1206 | initUrl(); |
@@ -1209,10 +1208,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1209 | return pathNodes; | 1208 | return pathNodes; |
1210 | } | 1209 | } |
1211 | } | 1210 | } |
1212 | 1211 | ||
1213 | internal string BuildUrl(int first, int last) | 1212 | internal string BuildUrl(int first, int last) |
1214 | { | 1213 | { |
1215 | 1214 | ||
1216 | if (pathNodes == null) | 1215 | if (pathNodes == null) |
1217 | { | 1216 | { |
1218 | initUrl(); | 1217 | initUrl(); |
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs index 439bbb4..2bb91a4 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/Rest.cs | |||
@@ -23,7 +23,7 @@ | |||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
@@ -42,7 +42,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
42 | public class Rest | 42 | public class Rest |
43 | { | 43 | { |
44 | 44 | ||
45 | internal static readonly log4net.ILog Log = | 45 | internal static readonly log4net.ILog Log = |
46 | log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | internal static bool DEBUG = Log.IsDebugEnabled; | 48 | internal static bool DEBUG = Log.IsDebugEnabled; |
@@ -106,7 +106,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
106 | /// supported by all servers. See Respond | 106 | /// supported by all servers. See Respond |
107 | /// to see how these are handled. | 107 | /// to see how these are handled. |
108 | /// </summary> | 108 | /// </summary> |
109 | 109 | ||
110 | // REST AGENT 1.0 interpretations | 110 | // REST AGENT 1.0 interpretations |
111 | public const string GET = "get"; // information retrieval - server state unchanged | 111 | public const string GET = "get"; // information retrieval - server state unchanged |
112 | public const string HEAD = "head"; // same as get except only the headers are returned. | 112 | public const string HEAD = "head"; // same as get except only the headers are returned. |
@@ -138,7 +138,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
138 | public static readonly char C_PERIOD = '.'; | 138 | public static readonly char C_PERIOD = '.'; |
139 | public static readonly char C_COMMA = ','; | 139 | public static readonly char C_COMMA = ','; |
140 | public static readonly char C_DQUOTE = '"'; | 140 | public static readonly char C_DQUOTE = '"'; |
141 | 141 | ||
142 | public static readonly string CS_SPACE = " "; | 142 | public static readonly string CS_SPACE = " "; |
143 | public static readonly string CS_SLASH = "/"; | 143 | public static readonly string CS_SLASH = "/"; |
144 | public static readonly string CS_PATHSEP = "/"; | 144 | public static readonly string CS_PATHSEP = "/"; |
@@ -147,7 +147,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
147 | public static readonly string CS_PERIOD = "."; | 147 | public static readonly string CS_PERIOD = "."; |
148 | public static readonly string CS_COMMA = ","; | 148 | public static readonly string CS_COMMA = ","; |
149 | public static readonly string CS_DQUOTE = "\""; | 149 | public static readonly string CS_DQUOTE = "\""; |
150 | 150 | ||
151 | public static readonly char[] CA_SPACE = { C_SPACE }; | 151 | public static readonly char[] CA_SPACE = { C_SPACE }; |
152 | public static readonly char[] CA_SLASH = { C_SLASH }; | 152 | public static readonly char[] CA_SLASH = { C_SLASH }; |
153 | public static readonly char[] CA_PATHSEP = { C_PATHSEP }; | 153 | public static readonly char[] CA_PATHSEP = { C_PATHSEP }; |
@@ -311,7 +311,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
311 | public const string AS_DIGEST = "Digest"; | 311 | public const string AS_DIGEST = "Digest"; |
312 | 312 | ||
313 | /// Supported Digest algorithms | 313 | /// Supported Digest algorithms |
314 | 314 | ||
315 | public const string Digest_MD5 = "MD5"; // assumedd efault if omitted | 315 | public const string Digest_MD5 = "MD5"; // assumedd efault if omitted |
316 | public const string Digest_MD5Sess = "MD5-sess"; | 316 | public const string Digest_MD5Sess = "MD5-sess"; |
317 | 317 | ||
@@ -359,7 +359,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
359 | int val = 0; | 359 | int val = 0; |
360 | int sum = 0; | 360 | int sum = 0; |
361 | string tmp = null; | 361 | string tmp = null; |
362 | 362 | ||
363 | if (hex != null) | 363 | if (hex != null) |
364 | { | 364 | { |
365 | tmp = hex.ToLower(); | 365 | tmp = hex.ToLower(); |
@@ -446,20 +446,20 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
446 | { | 446 | { |
447 | if (i % 4 == 0) Console.Write(" "); | 447 | if (i % 4 == 0) Console.Write(" "); |
448 | // if (i%16 == 0) Console.Write(" "); | 448 | // if (i%16 == 0) Console.Write(" "); |
449 | Console.Write(" "); | 449 | Console.Write(" "); |
450 | buffer[i % Rest.DumpLineSize] = ' '; | 450 | buffer[i % Rest.DumpLineSize] = ' '; |
451 | } | 451 | } |
452 | Console.WriteLine(" |"+(new String(buffer))+"|"); | 452 | Console.WriteLine(" |"+(new String(buffer))+"|"); |
453 | } | 453 | } |
454 | else | 454 | else |
455 | { | 455 | { |
456 | Console.Write("\n"); | 456 | Console.Write("\n"); |
457 | } | 457 | } |
458 | 458 | ||
459 | } | 459 | } |
460 | 460 | ||
461 | } | 461 | } |
462 | 462 | ||
463 | // Local exception type | 463 | // Local exception type |
464 | 464 | ||
465 | public class RestException : Exception | 465 | public class RestException : Exception |
@@ -470,8 +470,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
470 | internal string httpmethod; | 470 | internal string httpmethod; |
471 | internal string httppath; | 471 | internal string httppath; |
472 | 472 | ||
473 | public RestException(string msg) : base(msg) | 473 | public RestException(string msg) : base(msg) |
474 | { | 474 | { |
475 | } | 475 | } |
476 | } | 476 | } |
477 | 477 | ||
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs index b4eb7db..95b0ee3 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestAssetServices.cs | |||
@@ -23,7 +23,6 @@ | |||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | ||
27 | */ | 26 | */ |
28 | 27 | ||
29 | using libsecondlife; | 28 | using libsecondlife; |
@@ -40,10 +39,8 @@ using OpenSim.Framework.Communications.Cache; | |||
40 | 39 | ||
41 | namespace OpenSim.ApplicationPlugins.Rest.Inventory | 40 | namespace OpenSim.ApplicationPlugins.Rest.Inventory |
42 | { | 41 | { |
43 | |||
44 | public class RestAssetServices : IRest | 42 | public class RestAssetServices : IRest |
45 | { | 43 | { |
46 | |||
47 | private bool enabled = false; | 44 | private bool enabled = false; |
48 | private string qPrefix = "assets"; | 45 | private string qPrefix = "assets"; |
49 | 46 | ||
@@ -52,7 +49,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
52 | 49 | ||
53 | public RestAssetServices() | 50 | public RestAssetServices() |
54 | { | 51 | { |
55 | |||
56 | Rest.Log.InfoFormat("{0} Asset services initializing", MsgId); | 52 | Rest.Log.InfoFormat("{0} Asset services initializing", MsgId); |
57 | Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version); | 53 | Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version); |
58 | 54 | ||
@@ -73,7 +69,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
73 | enabled = true; | 69 | enabled = true; |
74 | 70 | ||
75 | Rest.Log.InfoFormat("{0} Asset services initialization complete", MsgId); | 71 | Rest.Log.InfoFormat("{0} Asset services initialization complete", MsgId); |
76 | |||
77 | } | 72 | } |
78 | 73 | ||
79 | // Post-construction, pre-enabled initialization opportunity | 74 | // Post-construction, pre-enabled initialization opportunity |
@@ -84,7 +79,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
84 | } | 79 | } |
85 | 80 | ||
86 | // Called by the plug-in to halt REST processing. Local processing is | 81 | // Called by the plug-in to halt REST processing. Local processing is |
87 | // disabled, and control blocks until all current processing has | 82 | // disabled, and control blocks until all current processing has |
88 | // completed. No new processing will be started | 83 | // completed. No new processing will be started |
89 | 84 | ||
90 | public void Close() | 85 | public void Close() |
@@ -111,14 +106,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
111 | 106 | ||
112 | private void DoAsset(RequestData rparm) | 107 | private void DoAsset(RequestData rparm) |
113 | { | 108 | { |
114 | 109 | if (!enabled) | |
115 | if (!enabled) return; | 110 | return; |
116 | 111 | ||
117 | AssetRequestData rdata = (AssetRequestData) rparm; | 112 | AssetRequestData rdata = (AssetRequestData) rparm; |
118 | 113 | ||
119 | Rest.Log.DebugFormat("{0} REST Asset handler ENTRY", MsgId); | 114 | Rest.Log.DebugFormat("{0} REST Asset handler ENTRY", MsgId); |
120 | 115 | ||
121 | // Now that we know this is a serious attempt to | 116 | // Now that we know this is a serious attempt to |
122 | // access inventory data, we should find out who | 117 | // access inventory data, we should find out who |
123 | // is asking, and make sure they are authorized | 118 | // is asking, and make sure they are authorized |
124 | // to do so. We need to validate the caller's | 119 | // to do so. We need to validate the caller's |
@@ -129,9 +124,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
129 | // With the present HTTP server we can't use the | 124 | // With the present HTTP server we can't use the |
130 | // builtin authentication mechanisms because they | 125 | // builtin authentication mechanisms because they |
131 | // would be enforced for all in-bound requests. | 126 | // would be enforced for all in-bound requests. |
132 | // Instead we look at the headers ourselves and | 127 | // Instead we look at the headers ourselves and |
133 | // handle authentication directly. | 128 | // handle authentication directly. |
134 | 129 | ||
135 | try | 130 | try |
136 | { | 131 | { |
137 | if (!rdata.IsAuthenticated) | 132 | if (!rdata.IsAuthenticated) |
@@ -144,13 +139,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
144 | if (e.statusCode == Rest.HttpStatusCodeNotAuthorized) | 139 | if (e.statusCode == Rest.HttpStatusCodeNotAuthorized) |
145 | { | 140 | { |
146 | Rest.Log.WarnFormat("{0} User not authenticated", MsgId); | 141 | Rest.Log.WarnFormat("{0} User not authenticated", MsgId); |
147 | Rest.Log.DebugFormat("{0} Authorization header: {1}", MsgId, | 142 | Rest.Log.DebugFormat("{0} Authorization header: {1}", MsgId, |
148 | rdata.request.Headers.Get("Authorization")); | 143 | rdata.request.Headers.Get("Authorization")); |
149 | } | 144 | } |
150 | else | 145 | else |
151 | { | 146 | { |
152 | Rest.Log.ErrorFormat("{0} User authentication failed", MsgId); | 147 | Rest.Log.ErrorFormat("{0} User authentication failed", MsgId); |
153 | Rest.Log.DebugFormat("{0} Authorization header: {1}", MsgId, | 148 | Rest.Log.DebugFormat("{0} Authorization header: {1}", MsgId, |
154 | rdata.request.Headers.Get("Authorization")); | 149 | rdata.request.Headers.Get("Authorization")); |
155 | } | 150 | } |
156 | throw (e); | 151 | throw (e); |
@@ -173,7 +168,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
173 | case "post" : | 168 | case "post" : |
174 | case "delete" : | 169 | case "delete" : |
175 | default : | 170 | default : |
176 | Rest.Log.WarnFormat("{0} Asset: Method not supported: {1}", | 171 | Rest.Log.WarnFormat("{0} Asset: Method not supported: {1}", |
177 | MsgId, rdata.method); | 172 | MsgId, rdata.method); |
178 | rdata.Fail(Rest.HttpStatusCodeBadRequest, | 173 | rdata.Fail(Rest.HttpStatusCodeBadRequest, |
179 | Rest.HttpStatusDescBadRequest); | 174 | Rest.HttpStatusDescBadRequest); |
@@ -194,7 +189,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
194 | 189 | ||
195 | private void DoGet(AssetRequestData rdata) | 190 | private void DoGet(AssetRequestData rdata) |
196 | { | 191 | { |
197 | |||
198 | bool istexture = false; | 192 | bool istexture = false; |
199 | 193 | ||
200 | Rest.Log.DebugFormat("{0} REST Asset handler, Method = <{1}> ENTRY", MsgId, rdata.method); | 194 | Rest.Log.DebugFormat("{0} REST Asset handler, Method = <{1}> ENTRY", MsgId, rdata.method); |
@@ -204,13 +198,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
204 | 198 | ||
205 | if (rdata.parameters.Length == 1) | 199 | if (rdata.parameters.Length == 1) |
206 | { | 200 | { |
207 | |||
208 | LLUUID uuid = new LLUUID(rdata.parameters[0]); | 201 | LLUUID uuid = new LLUUID(rdata.parameters[0]); |
209 | AssetBase asset = Rest.AssetServices.GetAsset(uuid, istexture); | 202 | AssetBase asset = Rest.AssetServices.GetAsset(uuid, istexture); |
210 | 203 | ||
211 | if (asset != null) | 204 | if (asset != null) |
212 | { | 205 | { |
213 | |||
214 | Rest.Log.DebugFormat("{0} Asset located <{1}>", MsgId, rdata.parameters[0]); | 206 | Rest.Log.DebugFormat("{0} Asset located <{1}>", MsgId, rdata.parameters[0]); |
215 | 207 | ||
216 | rdata.initXmlWriter(); | 208 | rdata.initXmlWriter(); |
@@ -227,19 +219,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
227 | rdata.writer.WriteBase64(asset.Data,0,asset.Data.Length); | 219 | rdata.writer.WriteBase64(asset.Data,0,asset.Data.Length); |
228 | 220 | ||
229 | rdata.writer.WriteFullEndElement(); | 221 | rdata.writer.WriteFullEndElement(); |
230 | |||
231 | } | 222 | } |
232 | else | 223 | else |
233 | { | 224 | { |
234 | Rest.Log.DebugFormat("{0} Invalid parameters: <{1}>", MsgId, rdata.path); | 225 | Rest.Log.DebugFormat("{0} Invalid parameters: <{1}>", MsgId, rdata.path); |
235 | rdata.Fail(Rest.HttpStatusCodeNotFound, | 226 | rdata.Fail(Rest.HttpStatusCodeNotFound, |
236 | Rest.HttpStatusDescNotFound); | 227 | Rest.HttpStatusDescNotFound); |
237 | } | 228 | } |
238 | } | 229 | } |
239 | 230 | ||
240 | rdata.Complete(); | 231 | rdata.Complete(); |
241 | rdata.Respond("Asset " + rdata.method + ": Normal completion"); | 232 | rdata.Respond("Asset " + rdata.method + ": Normal completion"); |
242 | |||
243 | } | 233 | } |
244 | 234 | ||
245 | private void DoPut(AssetRequestData rdata) | 235 | private void DoPut(AssetRequestData rdata) |
@@ -257,7 +247,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
257 | if (!xml.ReadToFollowing("Asset")) | 247 | if (!xml.ReadToFollowing("Asset")) |
258 | { | 248 | { |
259 | Rest.Log.DebugFormat("{0} Invalid request data: <{1}>", MsgId, rdata.path); | 249 | Rest.Log.DebugFormat("{0} Invalid request data: <{1}>", MsgId, rdata.path); |
260 | rdata.Fail(Rest.HttpStatusCodeBadRequest, | 250 | rdata.Fail(Rest.HttpStatusCodeBadRequest, |
261 | Rest.HttpStatusDescBadRequest); | 251 | Rest.HttpStatusDescBadRequest); |
262 | } | 252 | } |
263 | 253 | ||
@@ -275,13 +265,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
275 | else | 265 | else |
276 | { | 266 | { |
277 | Rest.Log.DebugFormat("{0} Invalid parameters: <{1}>", MsgId, rdata.path); | 267 | Rest.Log.DebugFormat("{0} Invalid parameters: <{1}>", MsgId, rdata.path); |
278 | rdata.Fail(Rest.HttpStatusCodeNotFound, | 268 | rdata.Fail(Rest.HttpStatusCodeNotFound, |
279 | Rest.HttpStatusDescNotFound); | 269 | Rest.HttpStatusDescNotFound); |
280 | } | 270 | } |
281 | 271 | ||
282 | rdata.Complete(); | 272 | rdata.Complete(); |
283 | rdata.Respond("Asset " + rdata.method + ": Normal completion"); | 273 | rdata.Respond("Asset " + rdata.method + ": Normal completion"); |
284 | |||
285 | } | 274 | } |
286 | 275 | ||
287 | internal class AssetRequestData : RequestData | 276 | internal class AssetRequestData : RequestData |
@@ -291,6 +280,5 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
291 | { | 280 | { |
292 | } | 281 | } |
293 | } | 282 | } |
294 | |||
295 | } | 283 | } |
296 | } | 284 | } |
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs index 7bd83c1..7f4157c 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestHandler.cs | |||
@@ -23,7 +23,6 @@ | |||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | ||
27 | */ | 26 | */ |
28 | 27 | ||
29 | using System; | 28 | using System; |
@@ -37,7 +36,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
37 | { | 36 | { |
38 | public class RestHandler : RestPlugin, IHttpAgentHandler | 37 | public class RestHandler : RestPlugin, IHttpAgentHandler |
39 | { | 38 | { |
40 | |||
41 | /// <remarks> | 39 | /// <remarks> |
42 | /// The handler delegates are not noteworthy. The allocator allows | 40 | /// The handler delegates are not noteworthy. The allocator allows |
43 | /// a given handler to optionally subclass the base RequestData | 41 | /// a given handler to optionally subclass the base RequestData |
@@ -66,10 +64,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
66 | /// <summary> | 64 | /// <summary> |
67 | /// This static initializer scans the ASSEMBLY for classes that | 65 | /// This static initializer scans the ASSEMBLY for classes that |
68 | /// export the IRest interface and builds a list of them. These | 66 | /// export the IRest interface and builds a list of them. These |
69 | /// are later activated by the handler. To add a new handler it | 67 | /// are later activated by the handler. To add a new handler it |
70 | /// is only necessary to create a new services class that implements | 68 | /// is only necessary to create a new services class that implements |
71 | /// the IRest interface, and recompile the handler. This gives | 69 | /// the IRest interface, and recompile the handler. This gives |
72 | /// all of the build-time flexibility of a modular approach | 70 | /// all of the build-time flexibility of a modular approach |
73 | /// while not introducing yet-another module loader. Note that | 71 | /// while not introducing yet-another module loader. Note that |
74 | /// multiple assembles can still be built, each with its own set | 72 | /// multiple assembles can still be built, each with its own set |
75 | /// of handlers. Examples of services classes are RestInventoryServices | 73 | /// of handlers. Examples of services classes are RestInventoryServices |
@@ -78,13 +76,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
78 | 76 | ||
79 | static RestHandler() | 77 | static RestHandler() |
80 | { | 78 | { |
81 | |||
82 | Module[] mods = Assembly.GetExecutingAssembly().GetModules(); | 79 | Module[] mods = Assembly.GetExecutingAssembly().GetModules(); |
83 | 80 | ||
84 | foreach (Module m in mods) | 81 | foreach (Module m in mods) |
85 | { | 82 | { |
86 | Type[] types = m.GetTypes(); | 83 | Type[] types = m.GetTypes(); |
87 | foreach (Type t in types) | 84 | foreach (Type t in types) |
88 | { | 85 | { |
89 | try | 86 | try |
90 | { | 87 | { |
@@ -100,7 +97,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
100 | } | 97 | } |
101 | } | 98 | } |
102 | } | 99 | } |
103 | |||
104 | } | 100 | } |
105 | 101 | ||
106 | #endregion local static state | 102 | #endregion local static state |
@@ -109,13 +105,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
109 | 105 | ||
110 | /// <summary> | 106 | /// <summary> |
111 | /// This routine loads all of the handlers discovered during | 107 | /// This routine loads all of the handlers discovered during |
112 | /// instance initialization. | 108 | /// instance initialization. |
113 | /// A table of all loaded and successfully constructed handlers | 109 | /// A table of all loaded and successfully constructed handlers |
114 | /// is built, and this table is then used by the constructor to | 110 | /// is built, and this table is then used by the constructor to |
115 | /// initialize each of the handlers in turn. | 111 | /// initialize each of the handlers in turn. |
116 | /// NOTE: The loading process does not automatically imply that | 112 | /// NOTE: The loading process does not automatically imply that |
117 | /// the handler has registered any kind of an interface, that | 113 | /// the handler has registered any kind of an interface, that |
118 | /// may be (optionally) done by the handler either during | 114 | /// may be (optionally) done by the handler either during |
119 | /// construction, or during initialization. | 115 | /// construction, or during initialization. |
120 | /// | 116 | /// |
121 | /// I was not able to make this code work within a constructor | 117 | /// I was not able to make this code work within a constructor |
@@ -128,7 +124,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
128 | { | 124 | { |
129 | if (!handlersLoaded) | 125 | if (!handlersLoaded) |
130 | { | 126 | { |
131 | |||
132 | ConstructorInfo ci; | 127 | ConstructorInfo ci; |
133 | Object ht; | 128 | Object ht; |
134 | 129 | ||
@@ -159,8 +154,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
159 | 154 | ||
160 | // Name is used to differentiate the message header. | 155 | // Name is used to differentiate the message header. |
161 | 156 | ||
162 | public override string Name | 157 | public override string Name |
163 | { | 158 | { |
164 | get { return "HANDLER"; } | 159 | get { return "HANDLER"; } |
165 | } | 160 | } |
166 | 161 | ||
@@ -173,7 +168,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
173 | 168 | ||
174 | // We have to rename these because we want | 169 | // We have to rename these because we want |
175 | // to be able to share the values with other | 170 | // to be able to share the values with other |
176 | // classes in our assembly and the base | 171 | // classes in our assembly and the base |
177 | // names are protected. | 172 | // names are protected. |
178 | 173 | ||
179 | internal string MsgId | 174 | internal string MsgId |
@@ -203,7 +198,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
203 | { | 198 | { |
204 | try | 199 | try |
205 | { | 200 | { |
206 | |||
207 | // This plugin will only be enabled if the broader | 201 | // This plugin will only be enabled if the broader |
208 | // REST plugin mechanism is enabled. | 202 | // REST plugin mechanism is enabled. |
209 | 203 | ||
@@ -214,7 +208,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
214 | // IsEnabled is implemented by the base class and | 208 | // IsEnabled is implemented by the base class and |
215 | // reflects an overall RestPlugin status | 209 | // reflects an overall RestPlugin status |
216 | 210 | ||
217 | if (!IsEnabled) | 211 | if (!IsEnabled) |
218 | { | 212 | { |
219 | Rest.Log.WarnFormat("{0} Plugins are disabled", MsgId); | 213 | Rest.Log.WarnFormat("{0} Plugins are disabled", MsgId); |
220 | return; | 214 | return; |
@@ -263,15 +257,15 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
263 | Rest.DumpLineSize); | 257 | Rest.DumpLineSize); |
264 | } | 258 | } |
265 | 259 | ||
266 | // Load all of the handlers present in the | 260 | // Load all of the handlers present in the |
267 | // assembly | 261 | // assembly |
268 | 262 | ||
269 | // In principle, as we're an application plug-in, | 263 | // In principle, as we're an application plug-in, |
270 | // most of what needs to be done could be done using | 264 | // most of what needs to be done could be done using |
271 | // static resources, however the Open Sim plug-in | 265 | // static resources, however the Open Sim plug-in |
272 | // model makes this an instance, so that's what we | 266 | // model makes this an instance, so that's what we |
273 | // need to be. | 267 | // need to be. |
274 | // There is only one Communications manager per | 268 | // There is only one Communications manager per |
275 | // server, and by inference, only one each of the | 269 | // server, and by inference, only one each of the |
276 | // user, asset, and inventory servers. So we can cache | 270 | // user, asset, and inventory servers. So we can cache |
277 | // those using a static initializer. | 271 | // those using a static initializer. |
@@ -314,13 +308,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
314 | { | 308 | { |
315 | Rest.Log.ErrorFormat("{0} Plugin initialization has failed: {1}", MsgId, e.Message); | 309 | Rest.Log.ErrorFormat("{0} Plugin initialization has failed: {1}", MsgId, e.Message); |
316 | } | 310 | } |
317 | |||
318 | } | 311 | } |
319 | 312 | ||
320 | /// <summary> | 313 | /// <summary> |
321 | /// In the interests of efficiency, and because we cannot determine whether | 314 | /// In the interests of efficiency, and because we cannot determine whether |
322 | /// or not this instance will actually be harvested, we clobber the only | 315 | /// or not this instance will actually be harvested, we clobber the only |
323 | /// anchoring reference to the working state for this plug-in. What the | 316 | /// anchoring reference to the working state for this plug-in. What the |
324 | /// call to close does is irrelevant to this class beyond knowing that it | 317 | /// call to close does is irrelevant to this class beyond knowing that it |
325 | /// can nullify the reference when it returns. | 318 | /// can nullify the reference when it returns. |
326 | /// To make sure everything is copacetic we make sure the primary interface | 319 | /// To make sure everything is copacetic we make sure the primary interface |
@@ -329,7 +322,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
329 | 322 | ||
330 | public override void Close() | 323 | public override void Close() |
331 | { | 324 | { |
332 | |||
333 | Rest.Log.InfoFormat("{0} Plugin is terminating", MsgId); | 325 | Rest.Log.InfoFormat("{0} Plugin is terminating", MsgId); |
334 | 326 | ||
335 | try | 327 | try |
@@ -337,12 +329,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
337 | RemoveAgentHandler(Rest.Name, this); | 329 | RemoveAgentHandler(Rest.Name, this); |
338 | } | 330 | } |
339 | catch (KeyNotFoundException){} | 331 | catch (KeyNotFoundException){} |
340 | 332 | ||
341 | foreach (IRest handler in handlers) | 333 | foreach (IRest handler in handlers) |
342 | { | 334 | { |
343 | handler.Close(); | 335 | handler.Close(); |
344 | } | 336 | } |
345 | |||
346 | } | 337 | } |
347 | 338 | ||
348 | #endregion overriding methods | 339 | #endregion overriding methods |
@@ -380,7 +371,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
380 | return true; | 371 | return true; |
381 | } | 372 | } |
382 | } | 373 | } |
383 | |||
384 | } | 374 | } |
385 | catch (Exception e) | 375 | catch (Exception e) |
386 | { | 376 | { |
@@ -414,7 +404,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
414 | 404 | ||
415 | for (int i = 0; i < request.Headers.Count; i++) | 405 | for (int i = 0; i < request.Headers.Count; i++) |
416 | { | 406 | { |
417 | Rest.Log.DebugFormat("{0} Header [{1}] : <{2}> = <{3}>", | 407 | Rest.Log.DebugFormat("{0} Header [{1}] : <{2}> = <{3}>", |
418 | MsgId, i, request.Headers.GetKey(i), request.Headers.Get(i)); | 408 | MsgId, i, request.Headers.GetKey(i), request.Headers.Get(i)); |
419 | } | 409 | } |
420 | Rest.Log.DebugFormat("{0} URI: {1}", MsgId, request.RawUrl); | 410 | Rest.Log.DebugFormat("{0} URI: {1}", MsgId, request.RawUrl); |
@@ -425,8 +415,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
425 | 415 | ||
426 | try | 416 | try |
427 | { | 417 | { |
428 | handled = ( FindPathHandler(request, response) || | 418 | handled = FindPathHandler(request, response) || |
429 | FindStreamHandler(request, response) ); | 419 | FindStreamHandler(request, response); |
430 | } | 420 | } |
431 | catch (Exception e) | 421 | catch (Exception e) |
432 | { | 422 | { |
@@ -440,7 +430,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
440 | Rest.Log.DebugFormat("{0} EXIT", MsgId); | 430 | Rest.Log.DebugFormat("{0} EXIT", MsgId); |
441 | 431 | ||
442 | return handled; | 432 | return handled; |
443 | |||
444 | } | 433 | } |
445 | 434 | ||
446 | #endregion interface methods | 435 | #endregion interface methods |
@@ -488,7 +477,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
488 | } | 477 | } |
489 | 478 | ||
490 | return rdata.handled; | 479 | return rdata.handled; |
491 | |||
492 | } | 480 | } |
493 | 481 | ||
494 | /// <summary> | 482 | /// <summary> |
@@ -501,13 +489,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
501 | 489 | ||
502 | public void AddStreamHandler(string httpMethod, string path, RestMethod method) | 490 | public void AddStreamHandler(string httpMethod, string path, RestMethod method) |
503 | { | 491 | { |
504 | |||
505 | if (!IsEnabled) | 492 | if (!IsEnabled) |
506 | { | 493 | { |
507 | return; | 494 | return; |
508 | } | 495 | } |
509 | 496 | ||
510 | if (!path.StartsWith(Rest.Prefix)) | 497 | if (!path.StartsWith(Rest.Prefix)) |
511 | { | 498 | { |
512 | path = String.Format("{0}{1}", Rest.Prefix, path); | 499 | path = String.Format("{0}{1}", Rest.Prefix, path); |
513 | } | 500 | } |
@@ -525,7 +512,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
525 | { | 512 | { |
526 | Rest.Log.WarnFormat("{0} Ignoring duplicate handler for {1}", MsgId, path); | 513 | Rest.Log.WarnFormat("{0} Ignoring duplicate handler for {1}", MsgId, path); |
527 | } | 514 | } |
528 | |||
529 | } | 515 | } |
530 | 516 | ||
531 | /// <summary> | 517 | /// <summary> |
@@ -540,10 +526,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
540 | 526 | ||
541 | internal bool FindPathHandler(OSHttpRequest request, OSHttpResponse response) | 527 | internal bool FindPathHandler(OSHttpRequest request, OSHttpResponse response) |
542 | { | 528 | { |
543 | |||
544 | RequestData rdata = null; | 529 | RequestData rdata = null; |
545 | string bestMatch = null; | 530 | string bestMatch = null; |
546 | 531 | ||
547 | if (!IsEnabled) | 532 | if (!IsEnabled) |
548 | { | 533 | { |
549 | return false; | 534 | return false; |
@@ -566,7 +551,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
566 | 551 | ||
567 | if (!String.IsNullOrEmpty(bestMatch)) | 552 | if (!String.IsNullOrEmpty(bestMatch)) |
568 | { | 553 | { |
569 | |||
570 | rdata = pathAllocators[bestMatch](request, response); | 554 | rdata = pathAllocators[bestMatch](request, response); |
571 | 555 | ||
572 | Rest.Log.DebugFormat("{0} Path based REST handler matched with <{1}>", MsgId, bestMatch); | 556 | Rest.Log.DebugFormat("{0} Path based REST handler matched with <{1}>", MsgId, bestMatch); |
@@ -575,7 +559,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
575 | { | 559 | { |
576 | pathHandlers[bestMatch](rdata); | 560 | pathHandlers[bestMatch](rdata); |
577 | } | 561 | } |
578 | 562 | ||
579 | // A plugin generated error indicates a request-related error | 563 | // A plugin generated error indicates a request-related error |
580 | // that has been handled by the plugin. | 564 | // that has been handled by the plugin. |
581 | 565 | ||
@@ -583,11 +567,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
583 | { | 567 | { |
584 | Rest.Log.WarnFormat("{0} Request failed: {1}", MsgId, r.Message); | 568 | Rest.Log.WarnFormat("{0} Request failed: {1}", MsgId, r.Message); |
585 | } | 569 | } |
586 | |||
587 | } | 570 | } |
588 | 571 | ||
589 | return (rdata == null) ? false : rdata.handled; | 572 | return (rdata == null) ? false : rdata.handled; |
590 | |||
591 | } | 573 | } |
592 | 574 | ||
593 | /// <summary> | 575 | /// <summary> |
@@ -597,7 +579,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
597 | 579 | ||
598 | internal void AddPathHandler(RestMethodHandler mh, string path, RestMethodAllocator ra) | 580 | internal void AddPathHandler(RestMethodHandler mh, string path, RestMethodAllocator ra) |
599 | { | 581 | { |
600 | |||
601 | if (!IsEnabled) | 582 | if (!IsEnabled) |
602 | { | 583 | { |
603 | return; | 584 | return; |
@@ -619,8 +600,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
619 | 600 | ||
620 | pathHandlers.Add(path, mh); | 601 | pathHandlers.Add(path, mh); |
621 | pathAllocators.Add(path, ra); | 602 | pathAllocators.Add(path, ra); |
622 | |||
623 | } | 603 | } |
624 | } | 604 | } |
625 | |||
626 | } | 605 | } |
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs index 61c3ac4..0c107d5 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs | |||
@@ -23,7 +23,6 @@ | |||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | ||
27 | */ | 26 | */ |
28 | 27 | ||
29 | using System; | 28 | using System; |
@@ -42,10 +41,8 @@ using Nini.Config; | |||
42 | 41 | ||
43 | namespace OpenSim.ApplicationPlugins.Rest.Inventory | 42 | namespace OpenSim.ApplicationPlugins.Rest.Inventory |
44 | { | 43 | { |
45 | |||
46 | public class RestInventoryServices : IRest | 44 | public class RestInventoryServices : IRest |
47 | { | 45 | { |
48 | |||
49 | private bool enabled = false; | 46 | private bool enabled = false; |
50 | private string qPrefix = "inventory"; | 47 | private string qPrefix = "inventory"; |
51 | 48 | ||
@@ -56,11 +53,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
56 | 53 | ||
57 | public RestInventoryServices() | 54 | public RestInventoryServices() |
58 | { | 55 | { |
59 | |||
60 | Rest.Log.InfoFormat("{0} Inventory services initializing", MsgId); | 56 | Rest.Log.InfoFormat("{0} Inventory services initializing", MsgId); |
61 | Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version); | 57 | Rest.Log.InfoFormat("{0} Using REST Implementation Version {1}", MsgId, Rest.Version); |
62 | 58 | ||
63 | // If a relative path was specified for the handler's domain, | 59 | // If a relative path was specified for the handler's domain, |
64 | // add the standard prefix to make it absolute, e.g. /admin | 60 | // add the standard prefix to make it absolute, e.g. /admin |
65 | 61 | ||
66 | if (!qPrefix.StartsWith(Rest.UrlPathSeparator)) | 62 | if (!qPrefix.StartsWith(Rest.UrlPathSeparator)) |
@@ -77,7 +73,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
77 | enabled = true; | 73 | enabled = true; |
78 | 74 | ||
79 | Rest.Log.InfoFormat("{0} Inventory services initialization complete", MsgId); | 75 | Rest.Log.InfoFormat("{0} Inventory services initialization complete", MsgId); |
80 | |||
81 | } | 76 | } |
82 | 77 | ||
83 | /// <summary> | 78 | /// <summary> |
@@ -91,7 +86,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
91 | 86 | ||
92 | /// <summary> | 87 | /// <summary> |
93 | /// Called by the plug-in to halt REST processing. Local processing is | 88 | /// Called by the plug-in to halt REST processing. Local processing is |
94 | /// disabled, and control blocks until all current processing has | 89 | /// disabled, and control blocks until all current processing has |
95 | /// completed. No new processing will be started | 90 | /// completed. No new processing will be started |
96 | /// </summary> | 91 | /// </summary> |
97 | 92 | ||
@@ -134,7 +129,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
134 | 129 | ||
135 | private void DoInventory(RequestData hdata) | 130 | private void DoInventory(RequestData hdata) |
136 | { | 131 | { |
137 | |||
138 | InventoryRequestData rdata = (InventoryRequestData) hdata; | 132 | InventoryRequestData rdata = (InventoryRequestData) hdata; |
139 | 133 | ||
140 | Rest.Log.DebugFormat("{0} DoInventory ENTRY", MsgId); | 134 | Rest.Log.DebugFormat("{0} DoInventory ENTRY", MsgId); |
@@ -146,7 +140,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
146 | return; | 140 | return; |
147 | } | 141 | } |
148 | 142 | ||
149 | // Now that we know this is a serious attempt to | 143 | // Now that we know this is a serious attempt to |
150 | // access inventory data, we should find out who | 144 | // access inventory data, we should find out who |
151 | // is asking, and make sure they are authorized | 145 | // is asking, and make sure they are authorized |
152 | // to do so. We need to validate the caller's | 146 | // to do so. We need to validate the caller's |
@@ -157,9 +151,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
157 | // With the present HTTP server we can't use the | 151 | // With the present HTTP server we can't use the |
158 | // builtin authentication mechanisms because they | 152 | // builtin authentication mechanisms because they |
159 | // would be enforced for all in-bound requests. | 153 | // would be enforced for all in-bound requests. |
160 | // Instead we look at the headers ourselves and | 154 | // Instead we look at the headers ourselves and |
161 | // handle authentication directly. | 155 | // handle authentication directly. |
162 | 156 | ||
163 | try | 157 | try |
164 | { | 158 | { |
165 | if (!rdata.IsAuthenticated) | 159 | if (!rdata.IsAuthenticated) |
@@ -197,7 +191,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
197 | /// | 191 | /// |
198 | /// Indicating that this is an inventory request for | 192 | /// Indicating that this is an inventory request for |
199 | /// an avatar named Arthur Dent. This is ALl that is | 193 | /// an avatar named Arthur Dent. This is ALl that is |
200 | /// required to designate a GET for an entire | 194 | /// required to designate a GET for an entire |
201 | /// inventory. | 195 | /// inventory. |
202 | /// </remarks> | 196 | /// </remarks> |
203 | 197 | ||
@@ -238,7 +232,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
238 | 232 | ||
239 | if (rdata.userProfile != null) | 233 | if (rdata.userProfile != null) |
240 | { | 234 | { |
241 | Rest.Log.DebugFormat("{0} Profile obtained for agent {1} {2}", | 235 | Rest.Log.DebugFormat("{0} Profile obtained for agent {1} {2}", |
242 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); | 236 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); |
243 | } | 237 | } |
244 | else | 238 | else |
@@ -260,18 +254,18 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
260 | // response is not recieved in a timely fashion. | 254 | // response is not recieved in a timely fashion. |
261 | 255 | ||
262 | rdata.uuid = rdata.userProfile.ID; | 256 | rdata.uuid = rdata.userProfile.ID; |
263 | 257 | ||
264 | if (Rest.InventoryServices.HasInventoryForUser(rdata.uuid)) | 258 | if (Rest.InventoryServices.HasInventoryForUser(rdata.uuid)) |
265 | { | 259 | { |
266 | 260 | ||
267 | rdata.root = Rest.InventoryServices.RequestRootFolder(rdata.uuid); | 261 | rdata.root = Rest.InventoryServices.RequestRootFolder(rdata.uuid); |
268 | 262 | ||
269 | Rest.Log.DebugFormat("{0} Inventory Root retrieved for {1} {2}", | 263 | Rest.Log.DebugFormat("{0} Inventory Root retrieved for {1} {2}", |
270 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); | 264 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); |
271 | 265 | ||
272 | Rest.InventoryServices.RequestInventoryForUser(rdata.uuid, rdata.GetUserInventory); | 266 | Rest.InventoryServices.RequestInventoryForUser(rdata.uuid, rdata.GetUserInventory); |
273 | 267 | ||
274 | Rest.Log.DebugFormat("{0} Inventory catalog requested for {1} {2}", | 268 | Rest.Log.DebugFormat("{0} Inventory catalog requested for {1} {2}", |
275 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); | 269 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); |
276 | 270 | ||
277 | lock (rdata) | 271 | lock (rdata) |
@@ -284,15 +278,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
284 | 278 | ||
285 | if (rdata.root == null) | 279 | if (rdata.root == null) |
286 | { | 280 | { |
287 | Rest.Log.DebugFormat("{0} Inventory is not available [1] for agent {1} {2}", | 281 | Rest.Log.DebugFormat("{0} Inventory is not available [1] for agent {1} {2}", |
288 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); | 282 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); |
289 | rdata.Fail(Rest.HttpStatusCodeServerError,Rest.HttpStatusDescServerError+": inventory retrieval failed"); | 283 | rdata.Fail(Rest.HttpStatusCodeServerError,Rest.HttpStatusDescServerError+": inventory retrieval failed"); |
290 | } | 284 | } |
291 | |||
292 | } | 285 | } |
293 | else | 286 | else |
294 | { | 287 | { |
295 | Rest.Log.DebugFormat("{0} Inventory is not available for agent [3] {1} {2}", | 288 | Rest.Log.DebugFormat("{0} Inventory is not available for agent [3] {1} {2}", |
296 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); | 289 | MsgId, rdata.userProfile.FirstName, rdata.userProfile.SurName); |
297 | rdata.Fail(Rest.HttpStatusCodeNotFound,Rest.HttpStatusDescNotFound+": no inventory for user"); | 290 | rdata.Fail(Rest.HttpStatusCodeNotFound,Rest.HttpStatusDescNotFound+": no inventory for user"); |
298 | } | 291 | } |
@@ -302,7 +295,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
302 | 295 | ||
303 | switch (rdata.method) | 296 | switch (rdata.method) |
304 | { | 297 | { |
305 | |||
306 | case Rest.HEAD : // Do the processing, set the status code, suppress entity | 298 | case Rest.HEAD : // Do the processing, set the status code, suppress entity |
307 | DoGet(rdata); | 299 | DoGet(rdata); |
308 | rdata.buffer = null; | 300 | rdata.buffer = null; |
@@ -325,13 +317,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
325 | break; | 317 | break; |
326 | 318 | ||
327 | default : | 319 | default : |
328 | Rest.Log.DebugFormat("{0} Method {1} not supported for {2}", | 320 | Rest.Log.DebugFormat("{0} Method {1} not supported for {2}", |
329 | MsgId, rdata.method, rdata.path); | 321 | MsgId, rdata.method, rdata.path); |
330 | rdata.Fail(Rest.HttpStatusCodeMethodNotAllowed, | 322 | rdata.Fail(Rest.HttpStatusCodeMethodNotAllowed, |
331 | Rest.HttpStatusDescMethodNotAllowed+": "+rdata.method+" not supported"); | 323 | Rest.HttpStatusDescMethodNotAllowed+": "+rdata.method+" not supported"); |
332 | break; | 324 | break; |
333 | } | 325 | } |
334 | |||
335 | } | 326 | } |
336 | 327 | ||
337 | #endregion Interface | 328 | #endregion Interface |
@@ -346,12 +337,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
346 | 337 | ||
347 | private void DoGet(InventoryRequestData rdata) | 338 | private void DoGet(InventoryRequestData rdata) |
348 | { | 339 | { |
349 | |||
350 | rdata.initXmlWriter(); | 340 | rdata.initXmlWriter(); |
351 | 341 | ||
352 | rdata.writer.WriteStartElement(String.Empty,"Inventory",String.Empty); | 342 | rdata.writer.WriteStartElement(String.Empty,"Inventory",String.Empty); |
353 | 343 | ||
354 | // If there was only one parameter, then the entire | 344 | // If there was only one parameter, then the entire |
355 | // inventory is being requested. | 345 | // inventory is being requested. |
356 | 346 | ||
357 | if (rdata.parameters.Length == 1) | 347 | if (rdata.parameters.Length == 1) |
@@ -361,7 +351,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
361 | 351 | ||
362 | // If there are additional parameters, then these represent | 352 | // If there are additional parameters, then these represent |
363 | // a path relative to the root of the inventory. This path | 353 | // a path relative to the root of the inventory. This path |
364 | // must be traversed before we format the sub-tree thus | 354 | // must be traversed before we format the sub-tree thus |
365 | // identified. | 355 | // identified. |
366 | 356 | ||
367 | else | 357 | else |
@@ -373,9 +363,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
373 | 363 | ||
374 | rdata.Complete(); | 364 | rdata.Complete(); |
375 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); | 365 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); |
376 | |||
377 | } | 366 | } |
378 | 367 | ||
379 | /// <summary> | 368 | /// <summary> |
380 | /// In the case of the inventory, and probably in general, | 369 | /// In the case of the inventory, and probably in general, |
381 | /// the distinction between PUT and POST is not always | 370 | /// the distinction between PUT and POST is not always |
@@ -389,29 +378,28 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
389 | /// The best way to exaplain the distinction is to | 378 | /// The best way to exaplain the distinction is to |
390 | /// consider the relationship between the URI and the | 379 | /// consider the relationship between the URI and the |
391 | /// entity in question. For POST, the URI identifies the | 380 | /// entity in question. For POST, the URI identifies the |
392 | /// entity to be modified or replaced. | 381 | /// entity to be modified or replaced. |
393 | /// If the operation is PUT,then the URI describes the | 382 | /// If the operation is PUT,then the URI describes the |
394 | /// context into which the new entity will be added. | 383 | /// context into which the new entity will be added. |
395 | /// | 384 | /// |
396 | /// As an example, suppose the URI contains: | 385 | /// As an example, suppose the URI contains: |
397 | /// /admin/inventory/Clothing | 386 | /// /admin/inventory/Clothing |
398 | /// | 387 | /// |
399 | /// A POST request will result in some modification of | 388 | /// A POST request will result in some modification of |
400 | /// the folder or item named "Clothing". Whereas a PUT | 389 | /// the folder or item named "Clothing". Whereas a PUT |
401 | /// request will add some new information into the | 390 | /// request will add some new information into the |
402 | /// content identified by Clothing. It follows from this | 391 | /// content identified by Clothing. It follows from this |
403 | /// that for PUT, the element identified by the URI must | 392 | /// that for PUT, the element identified by the URI must |
404 | /// be a folder. | 393 | /// be a folder. |
405 | /// </summary> | 394 | /// </summary> |
406 | 395 | ||
407 | /// <summary> | 396 | /// <summary> |
408 | /// PUT adds new information to the inventory in the | 397 | /// PUT adds new information to the inventory in the |
409 | /// context identified by the URI. | 398 | /// context identified by the URI. |
410 | /// </summary> | 399 | /// </summary> |
411 | 400 | ||
412 | private void DoPut(InventoryRequestData rdata) | 401 | private void DoPut(InventoryRequestData rdata) |
413 | { | 402 | { |
414 | |||
415 | // Resolve the context node specified in the URI. Entity | 403 | // Resolve the context node specified in the URI. Entity |
416 | // data will be ADDED beneath this node. | 404 | // data will be ADDED beneath this node. |
417 | 405 | ||
@@ -419,11 +407,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
419 | 407 | ||
420 | // Processing depends upon the type of inventory node | 408 | // Processing depends upon the type of inventory node |
421 | // identified in the URI. This is the CONTEXT for the | 409 | // identified in the URI. This is the CONTEXT for the |
422 | // change. We either got a context or we threw an | 410 | // change. We either got a context or we threw an |
423 | // exception. | 411 | // exception. |
424 | 412 | ||
425 | // It follows that we can only add information if the URI | 413 | // It follows that we can only add information if the URI |
426 | // has identified a folder. So only a type of folder is supported | 414 | // has identified a folder. So only a type of folder is supported |
427 | // in this case. | 415 | // in this case. |
428 | 416 | ||
429 | if (typeof(InventoryFolderBase) == InventoryNode.GetType() || | 417 | if (typeof(InventoryFolderBase) == InventoryNode.GetType() || |
@@ -448,12 +436,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
448 | XmlInventoryCollection entity = ReconstituteEntity(rdata); | 436 | XmlInventoryCollection entity = ReconstituteEntity(rdata); |
449 | 437 | ||
450 | // Inlined assets can be included in entity. These must be incorporated into | 438 | // Inlined assets can be included in entity. These must be incorporated into |
451 | // the asset database before we attempt to update the inventory. If anything | 439 | // the asset database before we attempt to update the inventory. If anything |
452 | // fails, return a failure to requestor. | 440 | // fails, return a failure to requestor. |
453 | 441 | ||
454 | if (entity.Assets.Count > 0) | 442 | if (entity.Assets.Count > 0) |
455 | { | 443 | { |
456 | |||
457 | Rest.Log.DebugFormat("{0} Adding {1} assets to server", | 444 | Rest.Log.DebugFormat("{0} Adding {1} assets to server", |
458 | MsgId, entity.Assets.Count); | 445 | MsgId, entity.Assets.Count); |
459 | 446 | ||
@@ -467,9 +454,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
467 | { | 454 | { |
468 | Rest.Dump(asset.Data); | 455 | Rest.Dump(asset.Data); |
469 | } | 456 | } |
470 | |||
471 | } | 457 | } |
472 | |||
473 | } | 458 | } |
474 | 459 | ||
475 | // Modify the context using the collection of folders and items | 460 | // Modify the context using the collection of folders and items |
@@ -477,7 +462,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
477 | 462 | ||
478 | foreach (InventoryFolderBase folder in entity.Folders) | 463 | foreach (InventoryFolderBase folder in entity.Folders) |
479 | { | 464 | { |
480 | |||
481 | InventoryFolderBase found; | 465 | InventoryFolderBase found; |
482 | 466 | ||
483 | // If the parentID is zero, then this folder is going | 467 | // If the parentID is zero, then this folder is going |
@@ -519,7 +503,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
519 | Rest.Log.DebugFormat("{0} Adding new folder", MsgId); | 503 | Rest.Log.DebugFormat("{0} Adding new folder", MsgId); |
520 | Rest.InventoryServices.AddFolder(folder); | 504 | Rest.InventoryServices.AddFolder(folder); |
521 | } | 505 | } |
522 | |||
523 | } | 506 | } |
524 | 507 | ||
525 | // Now we repeat a similar process for the items included | 508 | // Now we repeat a similar process for the items included |
@@ -527,7 +510,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
527 | 510 | ||
528 | foreach (InventoryItemBase item in entity.Items) | 511 | foreach (InventoryItemBase item in entity.Items) |
529 | { | 512 | { |
530 | |||
531 | InventoryItemBase found = null; | 513 | InventoryItemBase found = null; |
532 | 514 | ||
533 | // If the parentID is zero, then this is going | 515 | // If the parentID is zero, then this is going |
@@ -538,7 +520,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
538 | item.Folder = context.ID; | 520 | item.Folder = context.ID; |
539 | } | 521 | } |
540 | 522 | ||
541 | // Determine whether this is a new item or a | 523 | // Determine whether this is a new item or a |
542 | // replacement definition. | 524 | // replacement definition. |
543 | 525 | ||
544 | foreach (InventoryItemBase xi in rdata.items) | 526 | foreach (InventoryItemBase xi in rdata.items) |
@@ -563,9 +545,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
563 | MsgId, item.ID, item.AssetID, item.InvType, item.AssetType, item.Name); | 545 | MsgId, item.ID, item.AssetID, item.InvType, item.AssetType, item.Name); |
564 | Rest.InventoryServices.AddItem(item); | 546 | Rest.InventoryServices.AddItem(item); |
565 | } | 547 | } |
566 | |||
567 | } | 548 | } |
568 | |||
569 | } | 549 | } |
570 | else | 550 | else |
571 | { | 551 | { |
@@ -577,34 +557,32 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
577 | 557 | ||
578 | rdata.Complete(); | 558 | rdata.Complete(); |
579 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); | 559 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); |
580 | |||
581 | } | 560 | } |
582 | 561 | ||
583 | /// <summary> | 562 | /// <summary> |
584 | /// POST updates the URI-identified element in the inventory. This | 563 | /// POST updates the URI-identified element in the inventory. This |
585 | /// is actually far more flexible than it might at first sound. For | 564 | /// is actually far more flexible than it might at first sound. For |
586 | /// POST the URI serves two purposes: | 565 | /// POST the URI serves two purposes: |
587 | /// [1] It identifies the user whose inventory is to be | 566 | /// [1] It identifies the user whose inventory is to be |
588 | /// processed. | 567 | /// processed. |
589 | /// [2] It optionally specifies a subtree of the inventory | 568 | /// [2] It optionally specifies a subtree of the inventory |
590 | /// that is to be used to resolve any relative subtree | 569 | /// that is to be used to resolve any relative subtree |
591 | /// specifications in the entity. If nothing is specified | 570 | /// specifications in the entity. If nothing is specified |
592 | /// then the whole inventory is implied. | 571 | /// then the whole inventory is implied. |
593 | /// Please note that the subtree specified by the URI is only relevant | 572 | /// Please note that the subtree specified by the URI is only relevant |
594 | /// to an entity containing a URI relative specification, i.e. one or | 573 | /// to an entity containing a URI relative specification, i.e. one or |
595 | /// more elements do not specify parent folder information. These | 574 | /// more elements do not specify parent folder information. These |
596 | /// elements will be implicitly referenced within the context identified | 575 | /// elements will be implicitly referenced within the context identified |
597 | /// by the URI. | 576 | /// by the URI. |
598 | /// If an element in the entity specifies an explicit parent folder, then | 577 | /// If an element in the entity specifies an explicit parent folder, then |
599 | /// that parent is effective, regardless of any value specified in the | 578 | /// that parent is effective, regardless of any value specified in the |
600 | /// URI. If the parent does not exist, then the element, and any dependent | 579 | /// URI. If the parent does not exist, then the element, and any dependent |
601 | /// elements, are ignored. This case is actually detected and handled | 580 | /// elements, are ignored. This case is actually detected and handled |
602 | /// during the reconstitution process. | 581 | /// during the reconstitution process. |
603 | /// </summary> | 582 | /// </summary> |
604 | 583 | ||
605 | private void DoPost(InventoryRequestData rdata) | 584 | private void DoPost(InventoryRequestData rdata) |
606 | { | 585 | { |
607 | |||
608 | int count = 0; | 586 | int count = 0; |
609 | 587 | ||
610 | // Resolve the inventory node that is to be modified. | 588 | // Resolve the inventory node that is to be modified. |
@@ -612,8 +590,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
612 | Object InventoryNode = getInventoryNode(rdata, rdata.root, 1); | 590 | Object InventoryNode = getInventoryNode(rdata, rdata.root, 1); |
613 | 591 | ||
614 | // As long as we have a node, then we have something | 592 | // As long as we have a node, then we have something |
615 | // meaningful to do, unlike PUT. So we reconstitute the | 593 | // meaningful to do, unlike PUT. So we reconstitute the |
616 | // subtree before doing anything else. Note that we | 594 | // subtree before doing anything else. Note that we |
617 | // etiher got a valid node or we threw an exception. | 595 | // etiher got a valid node or we threw an exception. |
618 | 596 | ||
619 | XmlInventoryCollection entity = ReconstituteEntity(rdata); | 597 | XmlInventoryCollection entity = ReconstituteEntity(rdata); |
@@ -639,7 +617,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
639 | { | 617 | { |
640 | Rest.Dump(asset.Data); | 618 | Rest.Dump(asset.Data); |
641 | } | 619 | } |
642 | |||
643 | } | 620 | } |
644 | } | 621 | } |
645 | 622 | ||
@@ -648,15 +625,15 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
648 | /// </summary> | 625 | /// </summary> |
649 | /// <remarks> | 626 | /// <remarks> |
650 | /// The root node in the entity will replace the node identified | 627 | /// The root node in the entity will replace the node identified |
651 | /// by the URI. This means the parent will remain the same, but | 628 | /// by the URI. This means the parent will remain the same, but |
652 | /// any or all attributes associated with the named element | 629 | /// any or all attributes associated with the named element |
653 | /// will change. | 630 | /// will change. |
654 | /// | 631 | /// |
655 | /// If the inventory collection contains an element with a zero | 632 | /// If the inventory collection contains an element with a zero |
656 | /// parent ID, then this is taken to be the replacement for the | 633 | /// parent ID, then this is taken to be the replacement for the |
657 | /// named node. The collection MAY also specify an explicit | 634 | /// named node. The collection MAY also specify an explicit |
658 | /// parent ID, in this case it MAY identify the same parent as | 635 | /// parent ID, in this case it MAY identify the same parent as |
659 | /// the current node, or it MAY specify a different parent, | 636 | /// the current node, or it MAY specify a different parent, |
660 | /// indicating that the folder is being moved in addition to any | 637 | /// indicating that the folder is being moved in addition to any |
661 | /// other modifications being made. | 638 | /// other modifications being made. |
662 | /// </remarks> | 639 | /// </remarks> |
@@ -664,10 +641,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
664 | if (typeof(InventoryFolderBase) == InventoryNode.GetType() || | 641 | if (typeof(InventoryFolderBase) == InventoryNode.GetType() || |
665 | typeof(InventoryFolderImpl) == InventoryNode.GetType()) | 642 | typeof(InventoryFolderImpl) == InventoryNode.GetType()) |
666 | { | 643 | { |
667 | |||
668 | InventoryFolderBase uri = (InventoryFolderBase) InventoryNode; | 644 | InventoryFolderBase uri = (InventoryFolderBase) InventoryNode; |
669 | InventoryFolderBase xml = null; | 645 | InventoryFolderBase xml = null; |
670 | 646 | ||
671 | // Scan the set of folders in the entity collection for an | 647 | // Scan the set of folders in the entity collection for an |
672 | // entry that matches the context folder. It is assumed that | 648 | // entry that matches the context folder. It is assumed that |
673 | // the only reliable indicator of this is a zero UUID ( using | 649 | // the only reliable indicator of this is a zero UUID ( using |
@@ -676,7 +652,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
676 | // ambiguity in this case because this is POST and we are | 652 | // ambiguity in this case because this is POST and we are |
677 | // supposed to be modifying a specific node. | 653 | // supposed to be modifying a specific node. |
678 | // We assign any element IDs required as an economy; we don't | 654 | // We assign any element IDs required as an economy; we don't |
679 | // want to iterate over the fodler set again if it can be | 655 | // want to iterate over the fodler set again if it can be |
680 | // helped. | 656 | // helped. |
681 | 657 | ||
682 | foreach (InventoryFolderBase folder in entity.Folders) | 658 | foreach (InventoryFolderBase folder in entity.Folders) |
@@ -701,29 +677,27 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
701 | { | 677 | { |
702 | Rest.Log.DebugFormat("{0} {1}: Request for <{2}> is ambiguous", | 678 | Rest.Log.DebugFormat("{0} {1}: Request for <{2}> is ambiguous", |
703 | MsgId, rdata.method, rdata.path); | 679 | MsgId, rdata.method, rdata.path); |
704 | rdata.Fail(Rest.HttpStatusCodeBadRequest, | 680 | rdata.Fail(Rest.HttpStatusCodeBadRequest, |
705 | Rest.HttpStatusDescBadRequest+": context is ambiguous"); | 681 | Rest.HttpStatusDescBadRequest+": context is ambiguous"); |
706 | } | 682 | } |
707 | 683 | ||
708 | // Exactly one entry means we ARE replacing the node | 684 | // Exactly one entry means we ARE replacing the node |
709 | // identified by the URI. So we delete the old folder | 685 | // identified by the URI. So we delete the old folder |
710 | // by moving it to the trash and then purging it. | 686 | // by moving it to the trash and then purging it. |
711 | // We then add all of the folders and items we | 687 | // We then add all of the folders and items we |
712 | // included in the entity. The subtree has been | 688 | // included in the entity. The subtree has been |
713 | // modified. | 689 | // modified. |
714 | 690 | ||
715 | if (count == 1) | 691 | if (count == 1) |
716 | { | 692 | { |
717 | |||
718 | InventoryFolderBase TrashCan = GetTrashCan(rdata); | 693 | InventoryFolderBase TrashCan = GetTrashCan(rdata); |
719 | 694 | ||
720 | uri.ParentID = TrashCan.ID; | 695 | uri.ParentID = TrashCan.ID; |
721 | Rest.InventoryServices.MoveFolder(uri); | 696 | Rest.InventoryServices.MoveFolder(uri); |
722 | Rest.InventoryServices.PurgeFolder(TrashCan); | 697 | Rest.InventoryServices.PurgeFolder(TrashCan); |
723 | |||
724 | } | 698 | } |
725 | 699 | ||
726 | // Now, regardelss of what they represent, we | 700 | // Now, regardelss of what they represent, we |
727 | // integrate all of the elements in the entity. | 701 | // integrate all of the elements in the entity. |
728 | 702 | ||
729 | foreach (InventoryFolderBase f in entity.Folders) | 703 | foreach (InventoryFolderBase f in entity.Folders) |
@@ -735,7 +709,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
735 | { | 709 | { |
736 | Rest.InventoryServices.AddItem(it); | 710 | Rest.InventoryServices.AddItem(it); |
737 | } | 711 | } |
738 | |||
739 | } | 712 | } |
740 | 713 | ||
741 | /// <summary> | 714 | /// <summary> |
@@ -748,7 +721,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
748 | 721 | ||
749 | else | 722 | else |
750 | { | 723 | { |
751 | |||
752 | InventoryItemBase uri = (InventoryItemBase) InventoryNode; | 724 | InventoryItemBase uri = (InventoryItemBase) InventoryNode; |
753 | InventoryItemBase xml = null; | 725 | InventoryItemBase xml = null; |
754 | 726 | ||
@@ -756,7 +728,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
756 | { | 728 | { |
757 | Rest.Log.DebugFormat("{0} {1}: Request should not contain any folders <{2}>", | 729 | Rest.Log.DebugFormat("{0} {1}: Request should not contain any folders <{2}>", |
758 | MsgId, rdata.method, rdata.path); | 730 | MsgId, rdata.method, rdata.path); |
759 | rdata.Fail(Rest.HttpStatusCodeBadRequest, | 731 | rdata.Fail(Rest.HttpStatusCodeBadRequest, |
760 | Rest.HttpStatusDescBadRequest+": folder is not allowed"); | 732 | Rest.HttpStatusDescBadRequest+": folder is not allowed"); |
761 | } | 733 | } |
762 | 734 | ||
@@ -764,12 +736,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
764 | { | 736 | { |
765 | Rest.Log.DebugFormat("{0} {1}: Entity contains too many items <{2}>", | 737 | Rest.Log.DebugFormat("{0} {1}: Entity contains too many items <{2}>", |
766 | MsgId, rdata.method, rdata.path); | 738 | MsgId, rdata.method, rdata.path); |
767 | rdata.Fail(Rest.HttpStatusCodeBadRequest, | 739 | rdata.Fail(Rest.HttpStatusCodeBadRequest, |
768 | Rest.HttpStatusDescBadRequest+": too may items"); | 740 | Rest.HttpStatusDescBadRequest+": too may items"); |
769 | } | 741 | } |
770 | 742 | ||
771 | xml = entity.Items[0]; | 743 | xml = entity.Items[0]; |
772 | 744 | ||
773 | if (xml.ID == LLUUID.Zero) | 745 | if (xml.ID == LLUUID.Zero) |
774 | { | 746 | { |
775 | xml.ID = LLUUID.Random(); | 747 | xml.ID = LLUUID.Random(); |
@@ -786,12 +758,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
786 | // Add the new item to the inventory | 758 | // Add the new item to the inventory |
787 | 759 | ||
788 | Rest.InventoryServices.AddItem(xml); | 760 | Rest.InventoryServices.AddItem(xml); |
789 | |||
790 | } | 761 | } |
791 | 762 | ||
792 | rdata.Complete(); | 763 | rdata.Complete(); |
793 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); | 764 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); |
794 | |||
795 | } | 765 | } |
796 | 766 | ||
797 | /// <summary> | 767 | /// <summary> |
@@ -804,7 +774,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
804 | /// | 774 | /// |
805 | /// Folders are deleted by moving them to another folder and then | 775 | /// Folders are deleted by moving them to another folder and then |
806 | /// purging that folder. We'll do that by creating a temporary | 776 | /// purging that folder. We'll do that by creating a temporary |
807 | /// sub-folder in the TrashCan and purging that folder's | 777 | /// sub-folder in the TrashCan and purging that folder's |
808 | /// contents. If we can't can it, we don't delete it... | 778 | /// contents. If we can't can it, we don't delete it... |
809 | /// So, if no trashcan is available, the request does nothing. | 779 | /// So, if no trashcan is available, the request does nothing. |
810 | /// Items are summarily deleted. | 780 | /// Items are summarily deleted. |
@@ -816,13 +786,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
816 | 786 | ||
817 | private void DoDelete(InventoryRequestData rdata) | 787 | private void DoDelete(InventoryRequestData rdata) |
818 | { | 788 | { |
819 | |||
820 | Object InventoryNode = getInventoryNode(rdata, rdata.root, 1); | 789 | Object InventoryNode = getInventoryNode(rdata, rdata.root, 1); |
821 | 790 | ||
822 | if (typeof(InventoryFolderBase) == InventoryNode.GetType() || | 791 | if (typeof(InventoryFolderBase) == InventoryNode.GetType() || |
823 | typeof(InventoryFolderImpl) == InventoryNode.GetType()) | 792 | typeof(InventoryFolderImpl) == InventoryNode.GetType()) |
824 | { | 793 | { |
825 | |||
826 | InventoryFolderBase TrashCan = GetTrashCan(rdata); | 794 | InventoryFolderBase TrashCan = GetTrashCan(rdata); |
827 | 795 | ||
828 | InventoryFolderBase folder = (InventoryFolderBase) InventoryNode; | 796 | InventoryFolderBase folder = (InventoryFolderBase) InventoryNode; |
@@ -831,7 +799,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
831 | folder.ParentID = TrashCan.ID; | 799 | folder.ParentID = TrashCan.ID; |
832 | Rest.InventoryServices.MoveFolder(folder); | 800 | Rest.InventoryServices.MoveFolder(folder); |
833 | Rest.InventoryServices.PurgeFolder(TrashCan); | 801 | Rest.InventoryServices.PurgeFolder(TrashCan); |
834 | |||
835 | } | 802 | } |
836 | 803 | ||
837 | // Deleting items is much more straight forward. | 804 | // Deleting items is much more straight forward. |
@@ -846,18 +813,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
846 | 813 | ||
847 | rdata.Complete(); | 814 | rdata.Complete(); |
848 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); | 815 | rdata.Respond("Inventory " + rdata.method + ": Normal completion"); |
849 | |||
850 | } | 816 | } |
851 | 817 | ||
852 | #endregion method-specific processing | 818 | #endregion method-specific processing |
853 | 819 | ||
854 | /// <summary> | 820 | /// <summary> |
855 | /// This method is called to obtain the OpenSim inventory object identified | 821 | /// This method is called to obtain the OpenSim inventory object identified |
856 | /// by the supplied URI. This may be either an Item or a Folder, so a suitably | 822 | /// by the supplied URI. This may be either an Item or a Folder, so a suitably |
857 | /// ambiguous return type is employed (Object). This method recurses as | 823 | /// ambiguous return type is employed (Object). This method recurses as |
858 | /// necessary to process the designated hierarchy. | 824 | /// necessary to process the designated hierarchy. |
859 | /// | 825 | /// |
860 | /// If we reach the end of the URI then we return the contextural folder to | 826 | /// If we reach the end of the URI then we return the contextural folder to |
861 | /// our caller. | 827 | /// our caller. |
862 | /// | 828 | /// |
863 | /// If we are not yet at the end of the URI we attempt to find a child folder | 829 | /// If we are not yet at the end of the URI we attempt to find a child folder |
@@ -869,8 +835,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
869 | /// Otherwise we fail the request on the ground of an invalid URI. | 835 | /// Otherwise we fail the request on the ground of an invalid URI. |
870 | /// | 836 | /// |
871 | /// <note> | 837 | /// <note> |
872 | /// This mechanism cannot detect the case where duplicate subtrees satisfy a | 838 | /// This mechanism cannot detect the case where duplicate subtrees satisfy a |
873 | /// request. In such a case the 1st element gets processed. If this is a | 839 | /// request. In such a case the 1st element gets processed. If this is a |
874 | /// problem, then UUID should be used to identify the end-node. This is basic | 840 | /// problem, then UUID should be used to identify the end-node. This is basic |
875 | /// premise of normal inventory processing. The name is an informational, and | 841 | /// premise of normal inventory processing. The name is an informational, and |
876 | /// not a defining, attribute. | 842 | /// not a defining, attribute. |
@@ -880,7 +846,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
880 | 846 | ||
881 | private Object getInventoryNode(InventoryRequestData rdata, InventoryFolderBase folder, int pi) | 847 | private Object getInventoryNode(InventoryRequestData rdata, InventoryFolderBase folder, int pi) |
882 | { | 848 | { |
883 | |||
884 | Rest.Log.DebugFormat("{0} Searching folder {1} {2} [{3}]", MsgId, folder.ID, folder.Name, pi); | 849 | Rest.Log.DebugFormat("{0} Searching folder {1} {2} [{3}]", MsgId, folder.ID, folder.Name, pi); |
885 | 850 | ||
886 | // We have just run off the end of the parameter sequence | 851 | // We have just run off the end of the parameter sequence |
@@ -894,17 +859,19 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
894 | // get us there. | 859 | // get us there. |
895 | 860 | ||
896 | if (rdata.folders != null) | 861 | if (rdata.folders != null) |
862 | { | ||
897 | foreach (InventoryFolderBase f in rdata.folders) | 863 | foreach (InventoryFolderBase f in rdata.folders) |
898 | { | 864 | { |
899 | // Look for the present node in the directory list | 865 | // Look for the present node in the directory list |
900 | if (f.ParentID == folder.ID && | 866 | if (f.ParentID == folder.ID && |
901 | (f.Name == rdata.parameters[pi] || | 867 | (f.Name == rdata.parameters[pi] || |
902 | f.ID.ToString() == rdata.parameters[pi])) | 868 | f.ID.ToString() == rdata.parameters[pi])) |
903 | { | 869 | { |
904 | return getInventoryNode(rdata, f, pi+1); | 870 | return getInventoryNode(rdata, f, pi+1); |
905 | } | 871 | } |
906 | } | 872 | } |
907 | 873 | } | |
874 | |||
908 | // No folders that match. Perhaps this parameter identifies an item? If | 875 | // No folders that match. Perhaps this parameter identifies an item? If |
909 | // it does, then it MUST also be the last name in the sequence. | 876 | // it does, then it MUST also be the last name in the sequence. |
910 | 877 | ||
@@ -916,7 +883,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
916 | InventoryItemBase li = null; | 883 | InventoryItemBase li = null; |
917 | foreach (InventoryItemBase i in rdata.items) | 884 | foreach (InventoryItemBase i in rdata.items) |
918 | { | 885 | { |
919 | if (i.Folder == folder.ID && | 886 | if (i.Folder == folder.ID && |
920 | (i.Name == rdata.parameters[pi] || | 887 | (i.Name == rdata.parameters[pi] || |
921 | i.ID.ToString() == rdata.parameters[pi])) | 888 | i.ID.ToString() == rdata.parameters[pi])) |
922 | { | 889 | { |
@@ -944,11 +911,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
944 | rdata.Fail(Rest.HttpStatusCodeNotFound, Rest.HttpStatusDescNotFound+": resource "+rdata.path+" not found"); | 911 | rdata.Fail(Rest.HttpStatusCodeNotFound, Rest.HttpStatusDescNotFound+": resource "+rdata.path+" not found"); |
945 | 912 | ||
946 | return null; /* Never reached */ | 913 | return null; /* Never reached */ |
947 | |||
948 | } | 914 | } |
949 | 915 | ||
950 | /// <summary> | 916 | /// <summary> |
951 | /// This routine traverse the inventory's structure until the end-point identified | 917 | /// This routine traverse the inventory's structure until the end-point identified |
952 | /// in the URI is reached, the remainder of the inventory (if any) is then formatted | 918 | /// in the URI is reached, the remainder of the inventory (if any) is then formatted |
953 | /// and returned to the requestor. | 919 | /// and returned to the requestor. |
954 | /// | 920 | /// |
@@ -961,14 +927,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
961 | 927 | ||
962 | private void traverseInventory(InventoryRequestData rdata, InventoryFolderBase folder, int pi) | 928 | private void traverseInventory(InventoryRequestData rdata, InventoryFolderBase folder, int pi) |
963 | { | 929 | { |
964 | |||
965 | Rest.Log.DebugFormat("{0} Folder : {1} {2} [{3}]", MsgId, folder.ID, folder.Name, pi); | 930 | Rest.Log.DebugFormat("{0} Folder : {1} {2} [{3}]", MsgId, folder.ID, folder.Name, pi); |
966 | 931 | ||
967 | if (rdata.folders != null) | 932 | if (rdata.folders != null) |
968 | { | 933 | { |
969 | foreach (InventoryFolderBase f in rdata.folders) | 934 | foreach (InventoryFolderBase f in rdata.folders) |
970 | { | 935 | { |
971 | if (f.ParentID == folder.ID && | 936 | if (f.ParentID == folder.ID && |
972 | (f.Name == rdata.parameters[pi] || | 937 | (f.Name == rdata.parameters[pi] || |
973 | f.ID.ToString() == rdata.parameters[pi])) | 938 | f.ID.ToString() == rdata.parameters[pi])) |
974 | { | 939 | { |
@@ -991,13 +956,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
991 | { | 956 | { |
992 | foreach (InventoryItemBase i in rdata.items) | 957 | foreach (InventoryItemBase i in rdata.items) |
993 | { | 958 | { |
994 | if (i.Folder == folder.ID && | 959 | if (i.Folder == folder.ID && |
995 | (i.Name == rdata.parameters[pi] || | 960 | (i.Name == rdata.parameters[pi] || |
996 | i.ID.ToString() == rdata.parameters[pi])) | 961 | i.ID.ToString() == rdata.parameters[pi])) |
997 | { | 962 | { |
998 | // Fetching an Item has a special significance. In this | 963 | // Fetching an Item has a special significance. In this |
999 | // case we also want to fetch the associated asset. | 964 | // case we also want to fetch the associated asset. |
1000 | // To make it interesting, we'll d this via redirection. | 965 | // To make it interesting, we'll d this via redirection. |
1001 | string asseturl = "http://" + rdata.hostname + ":" + rdata.port + | 966 | string asseturl = "http://" + rdata.hostname + ":" + rdata.port + |
1002 | "/admin/assets" + Rest.UrlPathSeparator + i.AssetID.ToString(); | 967 | "/admin/assets" + Rest.UrlPathSeparator + i.AssetID.ToString(); |
1003 | rdata.Redirect(asseturl,Rest.PERMANENT); | 968 | rdata.Redirect(asseturl,Rest.PERMANENT); |
@@ -1007,10 +972,9 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1007 | } | 972 | } |
1008 | } | 973 | } |
1009 | 974 | ||
1010 | Rest.Log.DebugFormat("{0} Inventory does not contain item/folder: <{1}>", | 975 | Rest.Log.DebugFormat("{0} Inventory does not contain item/folder: <{1}>", |
1011 | MsgId, rdata.path); | 976 | MsgId, rdata.path); |
1012 | rdata.Fail(Rest.HttpStatusCodeNotFound,Rest.HttpStatusDescNotFound+": no such item/folder"); | 977 | rdata.Fail(Rest.HttpStatusCodeNotFound,Rest.HttpStatusDescNotFound+": no such item/folder"); |
1013 | |||
1014 | } | 978 | } |
1015 | 979 | ||
1016 | /// <summary> | 980 | /// <summary> |
@@ -1023,7 +987,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1023 | 987 | ||
1024 | private void formatInventory(InventoryRequestData rdata, InventoryFolderBase folder, string indent) | 988 | private void formatInventory(InventoryRequestData rdata, InventoryFolderBase folder, string indent) |
1025 | { | 989 | { |
1026 | |||
1027 | if (Rest.DEBUG) | 990 | if (Rest.DEBUG) |
1028 | { | 991 | { |
1029 | Rest.Log.DebugFormat("{0} Folder : {1} {2} {3}", MsgId, folder.ID, indent, folder.Name); | 992 | Rest.Log.DebugFormat("{0} Folder : {1} {2} {3}", MsgId, folder.ID, indent, folder.Name); |
@@ -1064,7 +1027,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1064 | // End folder item | 1027 | // End folder item |
1065 | 1028 | ||
1066 | rdata.writer.WriteEndElement(); | 1029 | rdata.writer.WriteEndElement(); |
1067 | |||
1068 | } | 1030 | } |
1069 | 1031 | ||
1070 | /// <summary> | 1032 | /// <summary> |
@@ -1073,7 +1035,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1073 | 1035 | ||
1074 | private void formatItem(InventoryRequestData rdata, InventoryItemBase i, string indent) | 1036 | private void formatItem(InventoryRequestData rdata, InventoryItemBase i, string indent) |
1075 | { | 1037 | { |
1076 | |||
1077 | Rest.Log.DebugFormat("{0} Item : {1} {2} {3}", MsgId, i.ID, indent, i.Name); | 1038 | Rest.Log.DebugFormat("{0} Item : {1} {2} {3}", MsgId, i.ID, indent, i.Name); |
1078 | 1039 | ||
1079 | rdata.writer.WriteStartElement(String.Empty,"Item",String.Empty); | 1040 | rdata.writer.WriteStartElement(String.Empty,"Item",String.Empty); |
@@ -1102,11 +1063,10 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1102 | rdata.writer.WriteElementString("Asset",i.AssetID.ToString()); | 1063 | rdata.writer.WriteElementString("Asset",i.AssetID.ToString()); |
1103 | 1064 | ||
1104 | rdata.writer.WriteEndElement(); | 1065 | rdata.writer.WriteEndElement(); |
1105 | |||
1106 | } | 1066 | } |
1107 | 1067 | ||
1108 | /// <summary> | 1068 | /// <summary> |
1109 | /// This method creates a "trashcan" folder to support folder and item | 1069 | /// This method creates a "trashcan" folder to support folder and item |
1110 | /// deletions by this interface. The xisting trash folder is found and | 1070 | /// deletions by this interface. The xisting trash folder is found and |
1111 | /// this folder is created within it. It is called "tmp" to indicate to | 1071 | /// this folder is created within it. It is called "tmp" to indicate to |
1112 | /// the client that it is OK to delete this folder. The REST interface | 1072 | /// the client that it is OK to delete this folder. The REST interface |
@@ -1117,7 +1077,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1117 | 1077 | ||
1118 | private InventoryFolderBase GetTrashCan(InventoryRequestData rdata) | 1078 | private InventoryFolderBase GetTrashCan(InventoryRequestData rdata) |
1119 | { | 1079 | { |
1120 | |||
1121 | InventoryFolderBase TrashCan = null; | 1080 | InventoryFolderBase TrashCan = null; |
1122 | 1081 | ||
1123 | foreach (InventoryFolderBase f in rdata.folders) | 1082 | foreach (InventoryFolderBase f in rdata.folders) |
@@ -1144,16 +1103,15 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1144 | } | 1103 | } |
1145 | } | 1104 | } |
1146 | } | 1105 | } |
1147 | 1106 | ||
1148 | if (TrashCan == null) | 1107 | if (TrashCan == null) |
1149 | { | 1108 | { |
1150 | Rest.Log.DebugFormat("{0} No Trash Can available", MsgId); | 1109 | Rest.Log.DebugFormat("{0} No Trash Can available", MsgId); |
1151 | rdata.Fail(Rest.HttpStatusCodeServerError, | 1110 | rdata.Fail(Rest.HttpStatusCodeServerError, |
1152 | Rest.HttpStatusDescServerError+": unable to create trash can"); | 1111 | Rest.HttpStatusDescServerError+": unable to create trash can"); |
1153 | } | 1112 | } |
1154 | 1113 | ||
1155 | return TrashCan; | 1114 | return TrashCan; |
1156 | |||
1157 | } | 1115 | } |
1158 | 1116 | ||
1159 | /// <summary> | 1117 | /// <summary> |
@@ -1163,11 +1121,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1163 | 1121 | ||
1164 | private bool FolderHasChanged(InventoryFolderBase newf, InventoryFolderBase oldf) | 1122 | private bool FolderHasChanged(InventoryFolderBase newf, InventoryFolderBase oldf) |
1165 | { | 1123 | { |
1166 | return ( newf.Name != oldf.Name | 1124 | return (newf.Name != oldf.Name |
1167 | || newf.ParentID != oldf.ParentID | 1125 | || newf.ParentID != oldf.ParentID |
1168 | || newf.Owner != oldf.Owner | 1126 | || newf.Owner != oldf.Owner |
1169 | || newf.Type != oldf.Type | 1127 | || newf.Type != oldf.Type |
1170 | || newf.Version != oldf.Version | 1128 | || newf.Version != oldf.Version |
1171 | ); | 1129 | ); |
1172 | } | 1130 | } |
1173 | 1131 | ||
@@ -1178,24 +1136,24 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1178 | 1136 | ||
1179 | private bool ItemHasChanged(InventoryItemBase newf, InventoryItemBase oldf) | 1137 | private bool ItemHasChanged(InventoryItemBase newf, InventoryItemBase oldf) |
1180 | { | 1138 | { |
1181 | return ( newf.Name != oldf.Name | 1139 | return (newf.Name != oldf.Name |
1182 | || newf.Folder != oldf.Description | 1140 | || newf.Folder != oldf.Description |
1183 | || newf.Description != oldf.Description | 1141 | || newf.Description != oldf.Description |
1184 | || newf.Owner != oldf.Owner | 1142 | || newf.Owner != oldf.Owner |
1185 | || newf.Creator != oldf.Creator | 1143 | || newf.Creator != oldf.Creator |
1186 | || newf.AssetID != oldf.AssetID | 1144 | || newf.AssetID != oldf.AssetID |
1187 | || newf.GroupID != oldf.GroupID | 1145 | || newf.GroupID != oldf.GroupID |
1188 | || newf.GroupOwned != oldf.GroupOwned | 1146 | || newf.GroupOwned != oldf.GroupOwned |
1189 | || newf.InvType != oldf.InvType | 1147 | || newf.InvType != oldf.InvType |
1190 | || newf.AssetType != oldf.AssetType | 1148 | || newf.AssetType != oldf.AssetType |
1191 | ); | 1149 | ); |
1192 | } | 1150 | } |
1193 | 1151 | ||
1194 | /// <summary> | 1152 | /// <summary> |
1195 | /// This method is called by PUT and POST to create an XmlInventoryCollection | 1153 | /// This method is called by PUT and POST to create an XmlInventoryCollection |
1196 | /// instance that reflects the content of the entity supplied on the request. | 1154 | /// instance that reflects the content of the entity supplied on the request. |
1197 | /// Any elements in the completed collection whose UUID is zero, are | 1155 | /// Any elements in the completed collection whose UUID is zero, are |
1198 | /// considered to be located relative to the end-point identified int he | 1156 | /// considered to be located relative to the end-point identified int he |
1199 | /// URI. In this way, an entire sub-tree can be conveyed in a single REST | 1157 | /// URI. In this way, an entire sub-tree can be conveyed in a single REST |
1200 | /// PUT or POST request. | 1158 | /// PUT or POST request. |
1201 | /// | 1159 | /// |
@@ -1203,26 +1161,24 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1203 | /// has an entity, it is more completely initialized. thus, if no entity was | 1161 | /// has an entity, it is more completely initialized. thus, if no entity was |
1204 | /// provided the collection is valid, but empty. | 1162 | /// provided the collection is valid, but empty. |
1205 | /// | 1163 | /// |
1206 | /// The entity is then scanned and each tag is processed to produce the | 1164 | /// The entity is then scanned and each tag is processed to produce the |
1207 | /// appropriate inventory elements. At the end f the scan, teh XmlInventoryCollection | 1165 | /// appropriate inventory elements. At the end f the scan, teh XmlInventoryCollection |
1208 | /// will reflect the subtree described by the entity. | 1166 | /// will reflect the subtree described by the entity. |
1209 | /// | 1167 | /// |
1210 | /// This is a very flexible mechanism, the entity may contain arbitrary, | 1168 | /// This is a very flexible mechanism, the entity may contain arbitrary, |
1211 | /// discontiguous tree fragments, or may contain single element. The caller is | 1169 | /// discontiguous tree fragments, or may contain single element. The caller is |
1212 | /// responsible for integrating this collection (and ensuring that any | 1170 | /// responsible for integrating this collection (and ensuring that any |
1213 | /// missing parent IDs are resolved). | 1171 | /// missing parent IDs are resolved). |
1214 | /// </summary> | 1172 | /// </summary> |
1215 | 1173 | ||
1216 | internal XmlInventoryCollection ReconstituteEntity(InventoryRequestData rdata) | 1174 | internal XmlInventoryCollection ReconstituteEntity(InventoryRequestData rdata) |
1217 | { | 1175 | { |
1218 | |||
1219 | Rest.Log.DebugFormat("{0} Reconstituting entity", MsgId); | 1176 | Rest.Log.DebugFormat("{0} Reconstituting entity", MsgId); |
1220 | 1177 | ||
1221 | XmlInventoryCollection ic = new XmlInventoryCollection(); | 1178 | XmlInventoryCollection ic = new XmlInventoryCollection(); |
1222 | 1179 | ||
1223 | if (rdata.request.HasEntityBody) | 1180 | if (rdata.request.HasEntityBody) |
1224 | { | 1181 | { |
1225 | |||
1226 | Rest.Log.DebugFormat("{0} Entity present", MsgId); | 1182 | Rest.Log.DebugFormat("{0} Entity present", MsgId); |
1227 | 1183 | ||
1228 | ic.init(rdata); | 1184 | ic.init(rdata); |
@@ -1318,7 +1274,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1318 | Rest.Log.WarnFormat("{0} Unexpected XML parsing error: {1}", MsgId, e.Message); | 1274 | Rest.Log.WarnFormat("{0} Unexpected XML parsing error: {1}", MsgId, e.Message); |
1319 | throw e; | 1275 | throw e; |
1320 | } | 1276 | } |
1321 | |||
1322 | } | 1277 | } |
1323 | else | 1278 | else |
1324 | { | 1279 | { |
@@ -1334,14 +1289,13 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1334 | } | 1289 | } |
1335 | 1290 | ||
1336 | return ic; | 1291 | return ic; |
1337 | |||
1338 | } | 1292 | } |
1339 | 1293 | ||
1340 | /// <summary> | 1294 | /// <summary> |
1341 | /// This method creates an inventory Folder from the | 1295 | /// This method creates an inventory Folder from the |
1342 | /// information supplied in the request's entity. | 1296 | /// information supplied in the request's entity. |
1343 | /// A folder instance is created and initialized to reflect | 1297 | /// A folder instance is created and initialized to reflect |
1344 | /// default values. These values are then overridden | 1298 | /// default values. These values are then overridden |
1345 | /// by information supplied in the entity. | 1299 | /// by information supplied in the entity. |
1346 | /// If context was not explicitly provided, then the | 1300 | /// If context was not explicitly provided, then the |
1347 | /// appropriate ID values are determined. | 1301 | /// appropriate ID values are determined. |
@@ -1349,7 +1303,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1349 | 1303 | ||
1350 | private void CollectFolder(XmlInventoryCollection ic) | 1304 | private void CollectFolder(XmlInventoryCollection ic) |
1351 | { | 1305 | { |
1352 | |||
1353 | Rest.Log.DebugFormat("{0} Interpret folder element", MsgId); | 1306 | Rest.Log.DebugFormat("{0} Interpret folder element", MsgId); |
1354 | 1307 | ||
1355 | InventoryFolderBase result = new InventoryFolderBase(); | 1308 | InventoryFolderBase result = new InventoryFolderBase(); |
@@ -1389,7 +1342,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1389 | result.Version = UInt16.Parse(ic.xml.Value); | 1342 | result.Version = UInt16.Parse(ic.xml.Value); |
1390 | break; | 1343 | break; |
1391 | default : | 1344 | default : |
1392 | Rest.Log.DebugFormat("{0} Folder: unrecognized attribute: {1}:{2}", | 1345 | Rest.Log.DebugFormat("{0} Folder: unrecognized attribute: {1}:{2}", |
1393 | MsgId, ic.xml.Name, ic.xml.Value); | 1346 | MsgId, ic.xml.Name, ic.xml.Value); |
1394 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1347 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1395 | Rest.HttpStatusDescBadRequest+": unrecognized attribute"); | 1348 | Rest.HttpStatusDescBadRequest+": unrecognized attribute"); |
@@ -1411,7 +1364,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1411 | } | 1364 | } |
1412 | else | 1365 | else |
1413 | { | 1366 | { |
1414 | |||
1415 | bool found = false; | 1367 | bool found = false; |
1416 | 1368 | ||
1417 | foreach (InventoryFolderBase parent in ic.rdata.folders) | 1369 | foreach (InventoryFolderBase parent in ic.rdata.folders) |
@@ -1425,7 +1377,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1425 | 1377 | ||
1426 | if (!found) | 1378 | if (!found) |
1427 | { | 1379 | { |
1428 | Rest.Log.ErrorFormat("{0} Invalid parent ID ({1}) in folder {2}", | 1380 | Rest.Log.ErrorFormat("{0} Invalid parent ID ({1}) in folder {2}", |
1429 | MsgId, ic.Item.Folder, result.ID); | 1381 | MsgId, ic.Item.Folder, result.ID); |
1430 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1382 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1431 | Rest.HttpStatusDescBadRequest+": invalid parent"); | 1383 | Rest.HttpStatusDescBadRequest+": invalid parent"); |
@@ -1445,15 +1397,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1445 | // obsolete as a consequence. | 1397 | // obsolete as a consequence. |
1446 | 1398 | ||
1447 | ic.Push(result); | 1399 | ic.Push(result); |
1448 | |||
1449 | } | 1400 | } |
1450 | 1401 | ||
1451 | /// <summary> | 1402 | /// <summary> |
1452 | /// This method is called to handle the construction of an Item | 1403 | /// This method is called to handle the construction of an Item |
1453 | /// instance from the supplied request entity. It is called | 1404 | /// instance from the supplied request entity. It is called |
1454 | /// whenever an Item start tag is detected. | 1405 | /// whenever an Item start tag is detected. |
1455 | /// An instance of an Item is created and initialized to default | 1406 | /// An instance of an Item is created and initialized to default |
1456 | /// values. These values are then overridden from values supplied | 1407 | /// values. These values are then overridden from values supplied |
1457 | /// as attributes to the Item element. | 1408 | /// as attributes to the Item element. |
1458 | /// This item is then stored in the XmlInventoryCollection and | 1409 | /// This item is then stored in the XmlInventoryCollection and |
1459 | /// will be verified by Validate. | 1410 | /// will be verified by Validate. |
@@ -1463,7 +1414,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1463 | 1414 | ||
1464 | private void CollectItem(XmlInventoryCollection ic) | 1415 | private void CollectItem(XmlInventoryCollection ic) |
1465 | { | 1416 | { |
1466 | |||
1467 | Rest.Log.DebugFormat("{0} Interpret item element", MsgId); | 1417 | Rest.Log.DebugFormat("{0} Interpret item element", MsgId); |
1468 | 1418 | ||
1469 | InventoryItemBase result = new InventoryItemBase(); | 1419 | InventoryItemBase result = new InventoryItemBase(); |
@@ -1484,7 +1434,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1484 | { | 1434 | { |
1485 | for (int i = 0; i < ic.xml.AttributeCount; i++) | 1435 | for (int i = 0; i < ic.xml.AttributeCount; i++) |
1486 | { | 1436 | { |
1487 | |||
1488 | ic.xml.MoveToAttribute(i); | 1437 | ic.xml.MoveToAttribute(i); |
1489 | 1438 | ||
1490 | switch (ic.xml.Name) | 1439 | switch (ic.xml.Name) |
@@ -1533,37 +1482,36 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1533 | break; | 1482 | break; |
1534 | 1483 | ||
1535 | default : | 1484 | default : |
1536 | Rest.Log.DebugFormat("{0} Item: Unrecognized attribute: {1}:{2}", | 1485 | Rest.Log.DebugFormat("{0} Item: Unrecognized attribute: {1}:{2}", |
1537 | MsgId, ic.xml.Name, ic.xml.Value); | 1486 | MsgId, ic.xml.Name, ic.xml.Value); |
1538 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1487 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1539 | Rest.HttpStatusDescBadRequest+": unrecognized attribute"); | 1488 | Rest.HttpStatusDescBadRequest+": unrecognized attribute"); |
1540 | break; | 1489 | break; |
1541 | } | 1490 | } |
1542 | } | 1491 | } |
1543 | } | 1492 | } |
1544 | 1493 | ||
1545 | ic.xml.MoveToElement(); | 1494 | ic.xml.MoveToElement(); |
1546 | 1495 | ||
1547 | ic.Push(result); | 1496 | ic.Push(result); |
1548 | |||
1549 | } | 1497 | } |
1550 | 1498 | ||
1551 | /// <summary> | 1499 | /// <summary> |
1552 | /// This method assembles an asset instance from the | 1500 | /// This method assembles an asset instance from the |
1553 | /// information supplied in the request's entity. It is | 1501 | /// information supplied in the request's entity. It is |
1554 | /// called as a result of detecting a start tag for a | 1502 | /// called as a result of detecting a start tag for a |
1555 | /// type of Asset. | 1503 | /// type of Asset. |
1556 | /// The information is collected locally, and an asset | 1504 | /// The information is collected locally, and an asset |
1557 | /// instance is created only if the basic XML parsing | 1505 | /// instance is created only if the basic XML parsing |
1558 | /// completes successfully. | 1506 | /// completes successfully. |
1559 | /// Default values for all parts of the asset are | 1507 | /// Default values for all parts of the asset are |
1560 | /// established before overriding them from the supplied | 1508 | /// established before overriding them from the supplied |
1561 | /// XML. | 1509 | /// XML. |
1562 | /// If an asset has inline=true as an attribute, then | 1510 | /// If an asset has inline=true as an attribute, then |
1563 | /// the element contains the data representing the | 1511 | /// the element contains the data representing the |
1564 | /// asset. This is saved as the data component. | 1512 | /// asset. This is saved as the data component. |
1565 | /// inline=false means that the element's payload is | 1513 | /// inline=false means that the element's payload is |
1566 | /// simply the UUID of the asset referenced by the | 1514 | /// simply the UUID of the asset referenced by the |
1567 | /// item being constructed. | 1515 | /// item being constructed. |
1568 | /// An asset, if created is stored in the | 1516 | /// An asset, if created is stored in the |
1569 | /// XmlInventoryCollection | 1517 | /// XmlInventoryCollection |
@@ -1624,7 +1572,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1624 | break; | 1572 | break; |
1625 | 1573 | ||
1626 | default : | 1574 | default : |
1627 | Rest.Log.DebugFormat("{0} Asset: Unrecognized attribute: {1}:{2}", | 1575 | Rest.Log.DebugFormat("{0} Asset: Unrecognized attribute: {1}:{2}", |
1628 | MsgId, ic.xml.Name, ic.xml.Value); | 1576 | MsgId, ic.xml.Name, ic.xml.Value); |
1629 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1577 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1630 | Rest.HttpStatusDescBadRequest); | 1578 | Rest.HttpStatusDescBadRequest); |
@@ -1637,7 +1585,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1637 | 1585 | ||
1638 | // If this is a reference to an existing asset, just store the | 1586 | // If this is a reference to an existing asset, just store the |
1639 | // asset ID into the item. | 1587 | // asset ID into the item. |
1640 | 1588 | ||
1641 | if (!inline) | 1589 | if (!inline) |
1642 | { | 1590 | { |
1643 | if (ic.Item != null) | 1591 | if (ic.Item != null) |
@@ -1653,13 +1601,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1653 | } | 1601 | } |
1654 | } | 1602 | } |
1655 | 1603 | ||
1656 | // Otherwise, generate an asset ID, store that into the item, and | 1604 | // Otherwise, generate an asset ID, store that into the item, and |
1657 | // create an entry in the asset list for the inlined asset. But | 1605 | // create an entry in the asset list for the inlined asset. But |
1658 | // only if the size is non-zero. | 1606 | // only if the size is non-zero. |
1659 | 1607 | ||
1660 | else | 1608 | else |
1661 | { | 1609 | { |
1662 | |||
1663 | string b64string = null; | 1610 | string b64string = null; |
1664 | 1611 | ||
1665 | // Generate a UUID of none were given, and generally none should | 1612 | // Generate a UUID of none were given, and generally none should |
@@ -1672,17 +1619,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1672 | 1619 | ||
1673 | // Create AssetBase entity to hold the inlined asset | 1620 | // Create AssetBase entity to hold the inlined asset |
1674 | 1621 | ||
1675 | asset = new AssetBase(uuid, name); | 1622 | asset = new AssetBase(uuid, name); |
1676 | 1623 | ||
1677 | asset.Description = desc; | 1624 | asset.Description = desc; |
1678 | asset.Type = type; // type == 0 == texture | 1625 | asset.Type = type; // type == 0 == texture |
1679 | asset.Local = local; | 1626 | asset.Local = local; |
1680 | asset.Temporary = temp; | 1627 | asset.Temporary = temp; |
1681 | 1628 | ||
1682 | b64string = ic.xml.ReadElementContentAsString(); | 1629 | b64string = ic.xml.ReadElementContentAsString(); |
1683 | 1630 | ||
1684 | Rest.Log.DebugFormat("{0} Data length is {1}", MsgId, b64string.Length); | 1631 | Rest.Log.DebugFormat("{0} Data length is {1}", MsgId, b64string.Length); |
1685 | Rest.Log.DebugFormat("{0} Data content starts with: \n\t<{1}>", MsgId, | 1632 | Rest.Log.DebugFormat("{0} Data content starts with: \n\t<{1}>", MsgId, |
1686 | b64string.Substring(0, b64string.Length > 132 ? 132 : b64string.Length)); | 1633 | b64string.Substring(0, b64string.Length > 132 ? 132 : b64string.Length)); |
1687 | 1634 | ||
1688 | asset.Data = Convert.FromBase64String(b64string); | 1635 | asset.Data = Convert.FromBase64String(b64string); |
@@ -1701,22 +1648,19 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1701 | { | 1648 | { |
1702 | ic.Item.AssetID = uuid; | 1649 | ic.Item.AssetID = uuid; |
1703 | } | 1650 | } |
1704 | |||
1705 | } | 1651 | } |
1706 | 1652 | ||
1707 | ic.Push(asset); | 1653 | ic.Push(asset); |
1708 | |||
1709 | } | 1654 | } |
1710 | 1655 | ||
1711 | /// <summary> | 1656 | /// <summary> |
1712 | /// Store any permissions information provided by the request. | 1657 | /// Store any permissions information provided by the request. |
1713 | /// This overrides the default permissions set when the | 1658 | /// This overrides the default permissions set when the |
1714 | /// XmlInventoryCollection object was created. | 1659 | /// XmlInventoryCollection object was created. |
1715 | /// </summary> | 1660 | /// </summary> |
1716 | 1661 | ||
1717 | private void CollectPermissions(XmlInventoryCollection ic) | 1662 | private void CollectPermissions(XmlInventoryCollection ic) |
1718 | { | 1663 | { |
1719 | |||
1720 | if (ic.xml.HasAttributes) | 1664 | if (ic.xml.HasAttributes) |
1721 | { | 1665 | { |
1722 | for (int i = 0; i < ic.xml.AttributeCount; i++) | 1666 | for (int i = 0; i < ic.xml.AttributeCount; i++) |
@@ -1747,7 +1691,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1747 | } | 1691 | } |
1748 | 1692 | ||
1749 | ic.xml.MoveToElement(); | 1693 | ic.xml.MoveToElement(); |
1750 | |||
1751 | } | 1694 | } |
1752 | 1695 | ||
1753 | /// <summary> | 1696 | /// <summary> |
@@ -1762,7 +1705,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1762 | 1705 | ||
1763 | private void Validate(XmlInventoryCollection ic) | 1706 | private void Validate(XmlInventoryCollection ic) |
1764 | { | 1707 | { |
1765 | |||
1766 | // There really should be an item present if we've | 1708 | // There really should be an item present if we've |
1767 | // called validate. So fail if there is not. | 1709 | // called validate. So fail if there is not. |
1768 | 1710 | ||
@@ -1772,7 +1714,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1772 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1714 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1773 | Rest.HttpStatusDescBadRequest+": request parse error"); | 1715 | Rest.HttpStatusDescBadRequest+": request parse error"); |
1774 | } | 1716 | } |
1775 | 1717 | ||
1776 | // Every item is required to have a name (via REST anyway) | 1718 | // Every item is required to have a name (via REST anyway) |
1777 | 1719 | ||
1778 | if (ic.Item.Name == String.Empty) | 1720 | if (ic.Item.Name == String.Empty) |
@@ -1781,19 +1723,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1781 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1723 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1782 | Rest.HttpStatusDescBadRequest+": item name required"); | 1724 | Rest.HttpStatusDescBadRequest+": item name required"); |
1783 | } | 1725 | } |
1784 | 1726 | ||
1785 | // An item MUST have an asset ID. AssetID should never be zero | 1727 | // An item MUST have an asset ID. AssetID should never be zero |
1786 | // here. It should always get set from the information stored | 1728 | // here. It should always get set from the information stored |
1787 | // when the Asset element was processed. | 1729 | // when the Asset element was processed. |
1788 | 1730 | ||
1789 | if (ic.Item.AssetID == LLUUID.Zero) | 1731 | if (ic.Item.AssetID == LLUUID.Zero) |
1790 | { | 1732 | { |
1791 | |||
1792 | Rest.Log.ErrorFormat("{0} Unable to complete request", MsgId); | 1733 | Rest.Log.ErrorFormat("{0} Unable to complete request", MsgId); |
1793 | Rest.Log.InfoFormat("{0} Asset information is missing", MsgId); | 1734 | Rest.Log.InfoFormat("{0} Asset information is missing", MsgId); |
1794 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1735 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1795 | Rest.HttpStatusDescBadRequest+": asset information required"); | 1736 | Rest.HttpStatusDescBadRequest+": asset information required"); |
1796 | |||
1797 | } | 1737 | } |
1798 | 1738 | ||
1799 | // If the item is new, then assign it an ID | 1739 | // If the item is new, then assign it an ID |
@@ -1806,19 +1746,18 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1806 | // If the context is being implied, obtain the current | 1746 | // If the context is being implied, obtain the current |
1807 | // folder item's ID. If it was specified explicitly, make | 1747 | // folder item's ID. If it was specified explicitly, make |
1808 | // sure that theparent folder exists. | 1748 | // sure that theparent folder exists. |
1809 | 1749 | ||
1810 | if (ic.Item.Folder == LLUUID.Zero) | 1750 | if (ic.Item.Folder == LLUUID.Zero) |
1811 | { | 1751 | { |
1812 | ic.Item.Folder = ic.Parent(); | 1752 | ic.Item.Folder = ic.Parent(); |
1813 | } | 1753 | } |
1814 | else | 1754 | else |
1815 | { | 1755 | { |
1816 | |||
1817 | bool found = false; | 1756 | bool found = false; |
1818 | 1757 | ||
1819 | foreach (InventoryFolderBase parent in ic.rdata.folders) | 1758 | foreach (InventoryFolderBase parent in ic.rdata.folders) |
1820 | { | 1759 | { |
1821 | if ( parent.ID == ic.Item.Folder ) | 1760 | if (parent.ID == ic.Item.Folder) |
1822 | { | 1761 | { |
1823 | found = true; | 1762 | found = true; |
1824 | break; | 1763 | break; |
@@ -1827,12 +1766,11 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1827 | 1766 | ||
1828 | if (!found) | 1767 | if (!found) |
1829 | { | 1768 | { |
1830 | Rest.Log.ErrorFormat("{0} Invalid parent ID ({1}) in item {2}", | 1769 | Rest.Log.ErrorFormat("{0} Invalid parent ID ({1}) in item {2}", |
1831 | MsgId, ic.Item.Folder, ic.Item.ID); | 1770 | MsgId, ic.Item.Folder, ic.Item.ID); |
1832 | ic.Fail(Rest.HttpStatusCodeBadRequest, | 1771 | ic.Fail(Rest.HttpStatusCodeBadRequest, |
1833 | Rest.HttpStatusDescBadRequest+": parent information required"); | 1772 | Rest.HttpStatusDescBadRequest+": parent information required"); |
1834 | } | 1773 | } |
1835 | |||
1836 | } | 1774 | } |
1837 | 1775 | ||
1838 | // If this is an inline asset being constructed in the context | 1776 | // If this is an inline asset being constructed in the context |
@@ -1854,13 +1792,12 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1854 | ic.Item.NextPermissions = ic.NextPermissions; | 1792 | ic.Item.NextPermissions = ic.NextPermissions; |
1855 | 1793 | ||
1856 | // If no type was specified for this item, we can attempt to | 1794 | // If no type was specified for this item, we can attempt to |
1857 | // infer something from the file type maybe. This is NOT as | 1795 | // infer something from the file type maybe. This is NOT as |
1858 | // good as having type be specified in the XML. | 1796 | // good as having type be specified in the XML. |
1859 | 1797 | ||
1860 | if (ic.Item.AssetType == (int) AssetType.Unknown || | 1798 | if (ic.Item.AssetType == (int) AssetType.Unknown || |
1861 | ic.Item.InvType == (int) AssetType.Unknown) | 1799 | ic.Item.InvType == (int) AssetType.Unknown) |
1862 | { | 1800 | { |
1863 | |||
1864 | Rest.Log.DebugFormat("{0} Attempting to infer item type", MsgId); | 1801 | Rest.Log.DebugFormat("{0} Attempting to infer item type", MsgId); |
1865 | 1802 | ||
1866 | string[] parts = ic.Item.Name.Split(Rest.CA_PERIOD); | 1803 | string[] parts = ic.Item.Name.Split(Rest.CA_PERIOD); |
@@ -1880,7 +1817,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1880 | 1817 | ||
1881 | if (parts.Length > 1) | 1818 | if (parts.Length > 1) |
1882 | { | 1819 | { |
1883 | Rest.Log.DebugFormat("{0} File type is {1}", | 1820 | Rest.Log.DebugFormat("{0} File type is {1}", |
1884 | MsgId, parts[parts.Length - 1]); | 1821 | MsgId, parts[parts.Length - 1]); |
1885 | switch (parts[parts.Length - 1]) | 1822 | switch (parts[parts.Length - 1]) |
1886 | { | 1823 | { |
@@ -1888,7 +1825,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1888 | case "jpeg-2000" : | 1825 | case "jpeg-2000" : |
1889 | case "jpg2000" : | 1826 | case "jpg2000" : |
1890 | case "jpg-2000" : | 1827 | case "jpg-2000" : |
1891 | Rest.Log.DebugFormat("{0} Type {1} inferred", | 1828 | Rest.Log.DebugFormat("{0} Type {1} inferred", |
1892 | MsgId, parts[parts.Length-1]); | 1829 | MsgId, parts[parts.Length-1]); |
1893 | if (ic.Item.AssetType == (int) AssetType.Unknown) | 1830 | if (ic.Item.AssetType == (int) AssetType.Unknown) |
1894 | ic.Item.AssetType = (int) AssetType.ImageJPEG; | 1831 | ic.Item.AssetType = (int) AssetType.ImageJPEG; |
@@ -1897,7 +1834,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1897 | break; | 1834 | break; |
1898 | case "jpg" : | 1835 | case "jpg" : |
1899 | case "jpeg" : | 1836 | case "jpeg" : |
1900 | Rest.Log.DebugFormat("{0} Type {1} inferred", | 1837 | Rest.Log.DebugFormat("{0} Type {1} inferred", |
1901 | MsgId, parts[parts.Length - 1]); | 1838 | MsgId, parts[parts.Length - 1]); |
1902 | if (ic.Item.AssetType == (int) AssetType.Unknown) | 1839 | if (ic.Item.AssetType == (int) AssetType.Unknown) |
1903 | ic.Item.AssetType = (int) AssetType.ImageJPEG; | 1840 | ic.Item.AssetType = (int) AssetType.ImageJPEG; |
@@ -1938,16 +1875,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1938 | temp = OpenJPEGNet.LoadTGAClass.LoadTGA(tgadata); | 1875 | temp = OpenJPEGNet.LoadTGAClass.LoadTGA(tgadata); |
1939 | ic.Asset.Data = OpenJPEGNet.OpenJPEG.EncodeFromImage(temp, true); | 1876 | ic.Asset.Data = OpenJPEGNet.OpenJPEG.EncodeFromImage(temp, true); |
1940 | } | 1877 | } |
1941 | |||
1942 | ic.reset(); | ||
1943 | 1878 | ||
1879 | ic.reset(); | ||
1944 | } | 1880 | } |
1945 | 1881 | ||
1946 | #region Inventory RequestData extension | 1882 | #region Inventory RequestData extension |
1947 | 1883 | ||
1948 | internal class InventoryRequestData : RequestData | 1884 | internal class InventoryRequestData : RequestData |
1949 | { | 1885 | { |
1950 | |||
1951 | /// <summary> | 1886 | /// <summary> |
1952 | /// These are the inventory specific request/response state | 1887 | /// These are the inventory specific request/response state |
1953 | /// extensions. | 1888 | /// extensions. |
@@ -1965,7 +1900,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1965 | } | 1900 | } |
1966 | 1901 | ||
1967 | /// <summary> | 1902 | /// <summary> |
1968 | /// This is the callback method required by inventory services. The | 1903 | /// This is the callback method required by inventory services. The |
1969 | /// requestor issues an inventory request and then blocks until this | 1904 | /// requestor issues an inventory request and then blocks until this |
1970 | /// method signals the monitor. | 1905 | /// method signals the monitor. |
1971 | /// </summary> | 1906 | /// </summary> |
@@ -1981,7 +1916,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1981 | Monitor.Pulse(this); | 1916 | Monitor.Pulse(this); |
1982 | } | 1917 | } |
1983 | } | 1918 | } |
1984 | |||
1985 | } | 1919 | } |
1986 | 1920 | ||
1987 | #endregion Inventory RequestData extension | 1921 | #endregion Inventory RequestData extension |
@@ -1994,7 +1928,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
1994 | 1928 | ||
1995 | internal class XmlInventoryCollection : InventoryCollection | 1929 | internal class XmlInventoryCollection : InventoryCollection |
1996 | { | 1930 | { |
1997 | |||
1998 | internal InventoryRequestData rdata; | 1931 | internal InventoryRequestData rdata; |
1999 | private Stack<InventoryFolderBase> stk; | 1932 | private Stack<InventoryFolderBase> stk; |
2000 | 1933 | ||
@@ -2087,7 +2020,6 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory | |||
2087 | { | 2020 | { |
2088 | rdata.Fail(code, desc); | 2021 | rdata.Fail(code, desc); |
2089 | } | 2022 | } |
2090 | |||
2091 | } | 2023 | } |
2092 | } | 2024 | } |
2093 | } | 2025 | } |
diff --git a/OpenSim/ApplicationPlugins/Rest/Regions/RestRegionPlugin.cs b/OpenSim/ApplicationPlugins/Rest/Regions/RestRegionPlugin.cs index 5ec2526..1f68d2b 100644 --- a/OpenSim/ApplicationPlugins/Rest/Regions/RestRegionPlugin.cs +++ b/OpenSim/ApplicationPlugins/Rest/Regions/RestRegionPlugin.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
57 | _xmlNs = new XmlSerializerNamespaces(); | 57 | _xmlNs = new XmlSerializerNamespaces(); |
58 | _xmlNs.Add(String.Empty, String.Empty); | 58 | _xmlNs.Add(String.Empty, String.Empty); |
59 | } | 59 | } |
60 | 60 | ||
61 | #region overriding properties | 61 | #region overriding properties |
62 | public override string Name | 62 | public override string Name |
63 | { | 63 | { |
@@ -90,7 +90,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Regions | |||
90 | return; | 90 | return; |
91 | } | 91 | } |
92 | m_log.InfoFormat("{0} REST region plugin enabled", MsgID); | 92 | m_log.InfoFormat("{0} REST region plugin enabled", MsgID); |
93 | 93 | ||
94 | // add REST method handlers | 94 | // add REST method handlers |
95 | AddRestStreamHandler("GET", "/regions/", GetHandler); | 95 | AddRestStreamHandler("GET", "/regions/", GetHandler); |
96 | AddRestStreamHandler("POST", "/regions/", PostHandler); | 96 | AddRestStreamHandler("POST", "/regions/", PostHandler); |
diff --git a/OpenSim/Data/GridDataBase.cs b/OpenSim/Data/GridDataBase.cs index 6480f84..0b56d07 100644 --- a/OpenSim/Data/GridDataBase.cs +++ b/OpenSim/Data/GridDataBase.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Data | |||
39 | public abstract DataResponse AddProfile(RegionProfileData profile); | 39 | public abstract DataResponse AddProfile(RegionProfileData profile); |
40 | public abstract ReservationData GetReservationAtPoint(uint x, uint y); | 40 | public abstract ReservationData GetReservationAtPoint(uint x, uint y); |
41 | public abstract DataResponse UpdateProfile(RegionProfileData profile); | 41 | public abstract DataResponse UpdateProfile(RegionProfileData profile); |
42 | 42 | ||
43 | public abstract void Initialise(); | 43 | public abstract void Initialise(); |
44 | public abstract void Initialise(string connect); | 44 | public abstract void Initialise(string connect); |
45 | public abstract void Dispose(); | 45 | public abstract void Dispose(); |
diff --git a/OpenSim/Data/IGridData.cs b/OpenSim/Data/IGridData.cs index 146288f..c77bbb7 100644 --- a/OpenSim/Data/IGridData.cs +++ b/OpenSim/Data/IGridData.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Data | |||
47 | /// Initialises the interface | 47 | /// Initialises the interface |
48 | /// </summary> | 48 | /// </summary> |
49 | void Initialise(string connect); | 49 | void Initialise(string connect); |
50 | 50 | ||
51 | /// <summary> | 51 | /// <summary> |
52 | /// Returns a sim profile from a regionHandle | 52 | /// Returns a sim profile from a regionHandle |
53 | /// </summary> | 53 | /// </summary> |
@@ -100,7 +100,7 @@ namespace OpenSim.Data | |||
100 | 100 | ||
101 | ReservationData GetReservationAtPoint(uint x, uint y); | 101 | ReservationData GetReservationAtPoint(uint x, uint y); |
102 | } | 102 | } |
103 | 103 | ||
104 | public class GridDataInitialiser : PluginInitialiserBase | 104 | public class GridDataInitialiser : PluginInitialiserBase |
105 | { | 105 | { |
106 | private string connect; | 106 | private string connect; |
diff --git a/OpenSim/Data/ILogData.cs b/OpenSim/Data/ILogData.cs index cfbee88..e22fe06 100644 --- a/OpenSim/Data/ILogData.cs +++ b/OpenSim/Data/ILogData.cs | |||
@@ -73,7 +73,7 @@ namespace OpenSim.Data | |||
73 | /// </summary> | 73 | /// </summary> |
74 | void Initialise(string connect); | 74 | void Initialise(string connect); |
75 | } | 75 | } |
76 | 76 | ||
77 | public class LogDataInitialiser : PluginInitialiserBase | 77 | public class LogDataInitialiser : PluginInitialiserBase |
78 | { | 78 | { |
79 | private string connect; | 79 | private string connect; |
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs index 443907f..e10e3aa 100644 --- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs +++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs | |||
@@ -63,7 +63,7 @@ namespace OpenSim.Data.MSSQL | |||
63 | database.ExecuteResourceSql("CreateAssetsTable.sql"); | 63 | database.ExecuteResourceSql("CreateAssetsTable.sql"); |
64 | return; | 64 | return; |
65 | } | 65 | } |
66 | 66 | ||
67 | } | 67 | } |
68 | 68 | ||
69 | /// <summary> | 69 | /// <summary> |
@@ -230,7 +230,7 @@ namespace OpenSim.Data.MSSQL | |||
230 | } | 230 | } |
231 | 231 | ||
232 | /// <summary> | 232 | /// <summary> |
233 | /// Database provider version. | 233 | /// Database provider version. |
234 | /// </summary> | 234 | /// </summary> |
235 | override public string Version | 235 | override public string Version |
236 | { | 236 | { |
@@ -238,7 +238,7 @@ namespace OpenSim.Data.MSSQL | |||
238 | } | 238 | } |
239 | 239 | ||
240 | /// <summary> | 240 | /// <summary> |
241 | /// The name of this DB provider. | 241 | /// The name of this DB provider. |
242 | /// </summary> | 242 | /// </summary> |
243 | override public string Name | 243 | override public string Name |
244 | { | 244 | { |
diff --git a/OpenSim/Data/MSSQL/MSSQLGridData.cs b/OpenSim/Data/MSSQL/MSSQLGridData.cs index e1de297..423d4aa 100644 --- a/OpenSim/Data/MSSQL/MSSQLGridData.cs +++ b/OpenSim/Data/MSSQL/MSSQLGridData.cs | |||
@@ -51,8 +51,8 @@ namespace OpenSim.Data.MSSQL | |||
51 | 51 | ||
52 | private string m_regionsTableName; | 52 | private string m_regionsTableName; |
53 | 53 | ||
54 | override public void Initialise() | 54 | override public void Initialise() |
55 | { | 55 | { |
56 | m_log.Info("[MSSQLGridData]: " + Name + " cannot be default-initialized!"); | 56 | m_log.Info("[MSSQLGridData]: " + Name + " cannot be default-initialized!"); |
57 | throw new PluginNotInitialisedException (Name); | 57 | throw new PluginNotInitialisedException (Name); |
58 | } | 58 | } |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.MSSQL | |||
87 | } | 87 | } |
88 | 88 | ||
89 | /// <summary> | 89 | /// <summary> |
90 | /// | 90 | /// |
91 | /// </summary> | 91 | /// </summary> |
92 | private void TestTables() | 92 | private void TestTables() |
93 | { | 93 | { |
@@ -114,7 +114,7 @@ namespace OpenSim.Data.MSSQL | |||
114 | } | 114 | } |
115 | 115 | ||
116 | /// <summary> | 116 | /// <summary> |
117 | /// The name of this DB provider. | 117 | /// The name of this DB provider. |
118 | /// </summary> | 118 | /// </summary> |
119 | /// <returns>A string containing the storage system name</returns> | 119 | /// <returns>A string containing the storage system name</returns> |
120 | override public string Name | 120 | override public string Name |
@@ -123,7 +123,7 @@ namespace OpenSim.Data.MSSQL | |||
123 | } | 123 | } |
124 | 124 | ||
125 | /// <summary> | 125 | /// <summary> |
126 | /// Database provider version. | 126 | /// Database provider version. |
127 | /// </summary> | 127 | /// </summary> |
128 | /// <returns>A string containing the storage system version</returns> | 128 | /// <returns>A string containing the storage system version</returns> |
129 | override public string Version | 129 | override public string Version |
@@ -209,7 +209,7 @@ namespace OpenSim.Data.MSSQL | |||
209 | { | 209 | { |
210 | return database.getRegionRow(reader); | 210 | return database.getRegionRow(reader); |
211 | } | 211 | } |
212 | 212 | ||
213 | } | 213 | } |
214 | catch (Exception e) | 214 | catch (Exception e) |
215 | { | 215 | { |
diff --git a/OpenSim/Data/MSSQL/MSSQLLogData.cs b/OpenSim/Data/MSSQL/MSSQLLogData.cs index d260e8c..b284c02 100644 --- a/OpenSim/Data/MSSQL/MSSQLLogData.cs +++ b/OpenSim/Data/MSSQL/MSSQLLogData.cs | |||
@@ -40,14 +40,14 @@ namespace OpenSim.Data.MSSQL | |||
40 | internal class MSSQLLogData : ILogDataPlugin | 40 | internal class MSSQLLogData : ILogDataPlugin |
41 | { | 41 | { |
42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
43 | 43 | ||
44 | /// <summary> | 44 | /// <summary> |
45 | /// The database manager | 45 | /// The database manager |
46 | /// </summary> | 46 | /// </summary> |
47 | public MSSQLManager database; | 47 | public MSSQLManager database; |
48 | 48 | ||
49 | public void Initialise() | 49 | public void Initialise() |
50 | { | 50 | { |
51 | m_log.Info("[MSSQLLogData]: " + Name + " cannot be default-initialized!"); | 51 | m_log.Info("[MSSQLLogData]: " + Name + " cannot be default-initialized!"); |
52 | throw new PluginNotInitialisedException (Name); | 52 | throw new PluginNotInitialisedException (Name); |
53 | } | 53 | } |
diff --git a/OpenSim/Data/MSSQL/MSSQLManager.cs b/OpenSim/Data/MSSQL/MSSQLManager.cs index 9cd9eca..1a053d5 100644 --- a/OpenSim/Data/MSSQL/MSSQLManager.cs +++ b/OpenSim/Data/MSSQL/MSSQLManager.cs | |||
@@ -60,7 +60,7 @@ namespace OpenSim.Data.MSSQL | |||
60 | builder.UserID = userId; | 60 | builder.UserID = userId; |
61 | builder.Password = password; | 61 | builder.Password = password; |
62 | builder.ApplicationName = Assembly.GetEntryAssembly().Location; | 62 | builder.ApplicationName = Assembly.GetEntryAssembly().Location; |
63 | 63 | ||
64 | connectionString = builder.ToString(); | 64 | connectionString = builder.ToString(); |
65 | } | 65 | } |
66 | 66 | ||
@@ -117,7 +117,7 @@ namespace OpenSim.Data.MSSQL | |||
117 | //} | 117 | //} |
118 | 118 | ||
119 | /// <summary> | 119 | /// <summary> |
120 | /// | 120 | /// |
121 | /// </summary> | 121 | /// </summary> |
122 | /// <param name="dt"></param> | 122 | /// <param name="dt"></param> |
123 | /// <param name="name"></param> | 123 | /// <param name="name"></param> |
@@ -376,7 +376,7 @@ namespace OpenSim.Data.MSSQL | |||
376 | } | 376 | } |
377 | 377 | ||
378 | /// <summary> | 378 | /// <summary> |
379 | /// | 379 | /// |
380 | /// </summary> | 380 | /// </summary> |
381 | /// <param name="reader"></param> | 381 | /// <param name="reader"></param> |
382 | /// <returns></returns> | 382 | /// <returns></returns> |
@@ -492,7 +492,7 @@ namespace OpenSim.Data.MSSQL | |||
492 | } | 492 | } |
493 | 493 | ||
494 | /// <summary> | 494 | /// <summary> |
495 | /// | 495 | /// |
496 | /// </summary> | 496 | /// </summary> |
497 | /// <param name="name"></param> | 497 | /// <param name="name"></param> |
498 | /// <returns></returns> | 498 | /// <returns></returns> |
diff --git a/OpenSim/Data/MSSQL/MSSQLUserData.cs b/OpenSim/Data/MSSQL/MSSQLUserData.cs index e832414..e63a9fe 100644 --- a/OpenSim/Data/MSSQL/MSSQLUserData.cs +++ b/OpenSim/Data/MSSQL/MSSQLUserData.cs | |||
@@ -52,8 +52,8 @@ namespace OpenSim.Data.MSSQL | |||
52 | private string m_usersTableName; | 52 | private string m_usersTableName; |
53 | private string m_userFriendsTableName; | 53 | private string m_userFriendsTableName; |
54 | 54 | ||
55 | public override void Initialise() | 55 | public override void Initialise() |
56 | { | 56 | { |
57 | m_log.Info("[MSSQLUserData]: " + Name + " cannot be default-initialized!"); | 57 | m_log.Info("[MSSQLUserData]: " + Name + " cannot be default-initialized!"); |
58 | throw new PluginNotInitialisedException (Name); | 58 | throw new PluginNotInitialisedException (Name); |
59 | } | 59 | } |
@@ -99,11 +99,11 @@ namespace OpenSim.Data.MSSQL | |||
99 | 99 | ||
100 | TestTables(); | 100 | TestTables(); |
101 | } | 101 | } |
102 | 102 | ||
103 | public override void Dispose () {} | 103 | public override void Dispose () {} |
104 | 104 | ||
105 | /// <summary> | 105 | /// <summary> |
106 | /// | 106 | /// |
107 | /// </summary> | 107 | /// </summary> |
108 | /// <returns></returns> | 108 | /// <returns></returns> |
109 | private bool TestTables() | 109 | private bool TestTables() |
@@ -205,7 +205,7 @@ namespace OpenSim.Data.MSSQL | |||
205 | { | 205 | { |
206 | adder.ExecuteNonQuery(); | 206 | adder.ExecuteNonQuery(); |
207 | } | 207 | } |
208 | 208 | ||
209 | using (IDbCommand adder = | 209 | using (IDbCommand adder = |
210 | database.Query( | 210 | database.Query( |
211 | "INSERT INTO " + m_userFriendsTableName + " " + | 211 | "INSERT INTO " + m_userFriendsTableName + " " + |
@@ -351,7 +351,7 @@ namespace OpenSim.Data.MSSQL | |||
351 | } | 351 | } |
352 | 352 | ||
353 | /// <summary> | 353 | /// <summary> |
354 | /// | 354 | /// |
355 | /// </summary> | 355 | /// </summary> |
356 | /// <param name="queryID"></param> | 356 | /// <param name="queryID"></param> |
357 | /// <param name="query"></param> | 357 | /// <param name="query"></param> |
@@ -379,7 +379,7 @@ namespace OpenSim.Data.MSSQL | |||
379 | user.firstName = (string)reader["username"]; | 379 | user.firstName = (string)reader["username"]; |
380 | user.lastName = (string)reader["lastname"]; | 380 | user.lastName = (string)reader["lastname"]; |
381 | returnlist.Add(user); | 381 | returnlist.Add(user); |
382 | } | 382 | } |
383 | } | 383 | } |
384 | } | 384 | } |
385 | catch (Exception e) | 385 | catch (Exception e) |
@@ -406,7 +406,7 @@ namespace OpenSim.Data.MSSQL | |||
406 | returnlist.Add(user); | 406 | returnlist.Add(user); |
407 | } | 407 | } |
408 | } | 408 | } |
409 | } | 409 | } |
410 | catch (Exception e) | 410 | catch (Exception e) |
411 | { | 411 | { |
412 | m_log.Error(e.ToString()); | 412 | m_log.Error(e.ToString()); |
diff --git a/OpenSim/Data/Migration.cs b/OpenSim/Data/Migration.cs index 6857c2c..ecd18ae 100644 --- a/OpenSim/Data/Migration.cs +++ b/OpenSim/Data/Migration.cs | |||
@@ -36,7 +36,7 @@ using log4net; | |||
36 | 36 | ||
37 | namespace OpenSim.Data | 37 | namespace OpenSim.Data |
38 | { | 38 | { |
39 | /// <summary> | 39 | /// <summary> |
40 | /// | 40 | /// |
41 | /// The Migration theory is based on the ruby on rails concept. | 41 | /// The Migration theory is based on the ruby on rails concept. |
42 | /// Each database driver is going to be allowed to have files in | 42 | /// Each database driver is going to be allowed to have files in |
@@ -77,11 +77,11 @@ namespace OpenSim.Data | |||
77 | // private string _subtype; | 77 | // private string _subtype; |
78 | private Assembly _assem; | 78 | private Assembly _assem; |
79 | private Regex _match; | 79 | private Regex _match; |
80 | 80 | ||
81 | private static readonly string _migrations_create = "create table migrations(name varchar(100), version int)"; | 81 | private static readonly string _migrations_create = "create table migrations(name varchar(100), version int)"; |
82 | // private static readonly string _migrations_init = "insert into migrations values('migrations', 1)"; | 82 | // private static readonly string _migrations_init = "insert into migrations values('migrations', 1)"; |
83 | // private static readonly string _migrations_find = "select version from migrations where name='migrations'"; | 83 | // private static readonly string _migrations_find = "select version from migrations where name='migrations'"; |
84 | 84 | ||
85 | public Migration(DbConnection conn, Assembly assem, string type) | 85 | public Migration(DbConnection conn, Assembly assem, string type) |
86 | { | 86 | { |
87 | _type = type; | 87 | _type = type; |
@@ -105,7 +105,7 @@ namespace OpenSim.Data | |||
105 | // clever, eh, we figure out which migrations version we are | 105 | // clever, eh, we figure out which migrations version we are |
106 | int migration_version = FindVersion("migrations"); | 106 | int migration_version = FindVersion("migrations"); |
107 | 107 | ||
108 | if (migration_version > 0) | 108 | if (migration_version > 0) |
109 | return; | 109 | return; |
110 | 110 | ||
111 | // If not, create the migration tables | 111 | // If not, create the migration tables |
@@ -130,14 +130,14 @@ namespace OpenSim.Data | |||
130 | m_log.Info("[MIGRATIONS] NOTE: this may take a while, don't interupt this process!"); | 130 | m_log.Info("[MIGRATIONS] NOTE: this may take a while, don't interupt this process!"); |
131 | 131 | ||
132 | DbCommand cmd = _conn.CreateCommand(); | 132 | DbCommand cmd = _conn.CreateCommand(); |
133 | foreach (KeyValuePair<int, string> kvp in migrations) | 133 | foreach (KeyValuePair<int, string> kvp in migrations) |
134 | { | 134 | { |
135 | int newversion = kvp.Key; | 135 | int newversion = kvp.Key; |
136 | cmd.CommandText = kvp.Value; | 136 | cmd.CommandText = kvp.Value; |
137 | // we need to up the command timeout to infinite as we might be doing long migrations. | 137 | // we need to up the command timeout to infinite as we might be doing long migrations. |
138 | cmd.CommandTimeout = 0; | 138 | cmd.CommandTimeout = 0; |
139 | cmd.ExecuteNonQuery(); | 139 | cmd.ExecuteNonQuery(); |
140 | 140 | ||
141 | if (version == 0) | 141 | if (version == 0) |
142 | { | 142 | { |
143 | InsertVersion(_type, newversion); | 143 | InsertVersion(_type, newversion); |
@@ -158,7 +158,7 @@ namespace OpenSim.Data | |||
158 | // foreach (string s in names) | 158 | // foreach (string s in names) |
159 | // { | 159 | // { |
160 | // Match m = _match.Match(s); | 160 | // Match m = _match.Match(s); |
161 | // if (m.Success) | 161 | // if (m.Success) |
162 | // { | 162 | // { |
163 | // int MigrationVersion = int.Parse(m.Groups[1].ToString()); | 163 | // int MigrationVersion = int.Parse(m.Groups[1].ToString()); |
164 | // if (MigrationVersion > max) | 164 | // if (MigrationVersion > max) |
@@ -168,10 +168,10 @@ namespace OpenSim.Data | |||
168 | // return max; | 168 | // return max; |
169 | // } | 169 | // } |
170 | 170 | ||
171 | public int Version | 171 | public int Version |
172 | { | 172 | { |
173 | get { return FindVersion(_type); } | 173 | get { return FindVersion(_type); } |
174 | set { | 174 | set { |
175 | if (Version < 1) | 175 | if (Version < 1) |
176 | { | 176 | { |
177 | InsertVersion(_type, value); | 177 | InsertVersion(_type, value); |
@@ -179,11 +179,11 @@ namespace OpenSim.Data | |||
179 | else | 179 | else |
180 | { | 180 | { |
181 | UpdateVersion(_type, value); | 181 | UpdateVersion(_type, value); |
182 | } | 182 | } |
183 | } | 183 | } |
184 | } | 184 | } |
185 | 185 | ||
186 | private int FindVersion(string type) | 186 | private int FindVersion(string type) |
187 | { | 187 | { |
188 | int version = 0; | 188 | int version = 0; |
189 | DbCommand cmd = _conn.CreateCommand(); | 189 | DbCommand cmd = _conn.CreateCommand(); |
@@ -206,22 +206,22 @@ namespace OpenSim.Data | |||
206 | return version; | 206 | return version; |
207 | } | 207 | } |
208 | 208 | ||
209 | private void InsertVersion(string type, int version) | 209 | private void InsertVersion(string type, int version) |
210 | { | 210 | { |
211 | DbCommand cmd = _conn.CreateCommand(); | 211 | DbCommand cmd = _conn.CreateCommand(); |
212 | cmd.CommandText = "insert into migrations(name, version) values('" + type + "', " + version + ")"; | 212 | cmd.CommandText = "insert into migrations(name, version) values('" + type + "', " + version + ")"; |
213 | m_log.InfoFormat("[MIGRATIONS] Creating {0} at version {1}", type, version); | 213 | m_log.InfoFormat("[MIGRATIONS] Creating {0} at version {1}", type, version); |
214 | cmd.ExecuteNonQuery(); | 214 | cmd.ExecuteNonQuery(); |
215 | } | 215 | } |
216 | 216 | ||
217 | private void UpdateVersion(string type, int version) | 217 | private void UpdateVersion(string type, int version) |
218 | { | 218 | { |
219 | DbCommand cmd = _conn.CreateCommand(); | 219 | DbCommand cmd = _conn.CreateCommand(); |
220 | cmd.CommandText = "update migrations set version=" + version + " where name='" + type + "'"; | 220 | cmd.CommandText = "update migrations set version=" + version + " where name='" + type + "'"; |
221 | m_log.InfoFormat("[MIGRATIONS] Updating {0} to version {1}", type, version); | 221 | m_log.InfoFormat("[MIGRATIONS] Updating {0} to version {1}", type, version); |
222 | cmd.ExecuteNonQuery(); | 222 | cmd.ExecuteNonQuery(); |
223 | } | 223 | } |
224 | 224 | ||
225 | // private SortedList<int, string> GetAllMigrations() | 225 | // private SortedList<int, string> GetAllMigrations() |
226 | // { | 226 | // { |
227 | // return GetMigrationsAfter(0); | 227 | // return GetMigrationsAfter(0); |
@@ -261,4 +261,4 @@ namespace OpenSim.Data | |||
261 | return migrations; | 261 | return migrations; |
262 | } | 262 | } |
263 | } | 263 | } |
264 | } \ No newline at end of file | 264 | } |
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index cec736a..bdb1571 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs | |||
@@ -144,11 +144,11 @@ namespace OpenSim.Data.MySQL | |||
144 | _dbConnection.GetTableVersion(tableList); | 144 | _dbConnection.GetTableVersion(tableList); |
145 | 145 | ||
146 | // if there is no table, return, migrations will handle it. | 146 | // if there is no table, return, migrations will handle it. |
147 | if (tableList["assets"] == null) | 147 | if (tableList["assets"] == null) |
148 | return; | 148 | return; |
149 | 149 | ||
150 | // if there is a table, and we don't have a migration, set it to 1 | 150 | // if there is a table, and we don't have a migration, set it to 1 |
151 | if (m.Version == 0) | 151 | if (m.Version == 0) |
152 | m.Version = 1; | 152 | m.Version = 1; |
153 | } | 153 | } |
154 | 154 | ||
@@ -272,12 +272,12 @@ namespace OpenSim.Data.MySQL | |||
272 | lock (_dbConnection) | 272 | lock (_dbConnection) |
273 | { | 273 | { |
274 | _dbConnection.CheckConnection(); | 274 | _dbConnection.CheckConnection(); |
275 | 275 | ||
276 | MySqlCommand cmd = | 276 | MySqlCommand cmd = |
277 | new MySqlCommand( | 277 | new MySqlCommand( |
278 | "SELECT id FROM assets WHERE id=?id", | 278 | "SELECT id FROM assets WHERE id=?id", |
279 | _dbConnection.Connection); | 279 | _dbConnection.Connection); |
280 | 280 | ||
281 | cmd.Parameters.AddWithValue("?id", uuid.ToString()); | 281 | cmd.Parameters.AddWithValue("?id", uuid.ToString()); |
282 | 282 | ||
283 | try | 283 | try |
diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs index 8991e02..2ab7d40 100644 --- a/OpenSim/Data/MySQL/MySQLEstateData.cs +++ b/OpenSim/Data/MySQL/MySQLEstateData.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Data.MySQL | |||
51 | private string m_connectionString; | 51 | private string m_connectionString; |
52 | private long m_waitTimeout; | 52 | private long m_waitTimeout; |
53 | private long m_waitTimeoutLeeway = 60 * TimeSpan.TicksPerSecond; | 53 | private long m_waitTimeoutLeeway = 60 * TimeSpan.TicksPerSecond; |
54 | private long m_lastConnectionUse; | 54 | private long m_lastConnectionUse; |
55 | 55 | ||
56 | private FieldInfo[] m_Fields; | 56 | private FieldInfo[] m_Fields; |
57 | private Dictionary<string, FieldInfo> m_FieldMap = | 57 | private Dictionary<string, FieldInfo> m_FieldMap = |
@@ -83,13 +83,13 @@ namespace OpenSim.Data.MySQL | |||
83 | } | 83 | } |
84 | 84 | ||
85 | m_log.Info("[REGION DB]: MySql - connecting: " + displayConnectionString); | 85 | m_log.Info("[REGION DB]: MySql - connecting: " + displayConnectionString); |
86 | 86 | ||
87 | //m_log.Info("[ESTATE DB]: MySql - connecting: "+m_connectionString); | 87 | //m_log.Info("[ESTATE DB]: MySql - connecting: "+m_connectionString); |
88 | 88 | ||
89 | m_connection = new MySqlConnection(m_connectionString); | 89 | m_connection = new MySqlConnection(m_connectionString); |
90 | m_connection.Open(); | 90 | m_connection.Open(); |
91 | 91 | ||
92 | GetWaitTimeout(); | 92 | GetWaitTimeout(); |
93 | 93 | ||
94 | Assembly assem = GetType().Assembly; | 94 | Assembly assem = GetType().Assembly; |
95 | Migration m = new Migration(m_connection, assem, "EstateStore"); | 95 | Migration m = new Migration(m_connection, assem, "EstateStore"); |
@@ -106,7 +106,7 @@ namespace OpenSim.Data.MySQL | |||
106 | m_FieldMap[f.Name.Substring(2)] = f; | 106 | m_FieldMap[f.Name.Substring(2)] = f; |
107 | } | 107 | } |
108 | } | 108 | } |
109 | 109 | ||
110 | private string[] FieldList | 110 | private string[] FieldList |
111 | { | 111 | { |
112 | get { return new List<string>(m_FieldMap.Keys).ToArray(); } | 112 | get { return new List<string>(m_FieldMap.Keys).ToArray(); } |
@@ -116,28 +116,28 @@ namespace OpenSim.Data.MySQL | |||
116 | { | 116 | { |
117 | MySqlCommand cmd = new MySqlCommand(m_waitTimeoutSelect, | 117 | MySqlCommand cmd = new MySqlCommand(m_waitTimeoutSelect, |
118 | m_connection); | 118 | m_connection); |
119 | 119 | ||
120 | using (MySqlDataReader dbReader = | 120 | using (MySqlDataReader dbReader = |
121 | cmd.ExecuteReader(CommandBehavior.SingleRow)) | 121 | cmd.ExecuteReader(CommandBehavior.SingleRow)) |
122 | { | 122 | { |
123 | if (dbReader.Read()) | 123 | if (dbReader.Read()) |
124 | { | 124 | { |
125 | m_waitTimeout | 125 | m_waitTimeout |
126 | = Convert.ToInt32(dbReader["@@wait_timeout"]) * | 126 | = Convert.ToInt32(dbReader["@@wait_timeout"]) * |
127 | TimeSpan.TicksPerSecond + m_waitTimeoutLeeway; | 127 | TimeSpan.TicksPerSecond + m_waitTimeoutLeeway; |
128 | } | 128 | } |
129 | 129 | ||
130 | dbReader.Close(); | 130 | dbReader.Close(); |
131 | cmd.Dispose(); | 131 | cmd.Dispose(); |
132 | } | 132 | } |
133 | 133 | ||
134 | m_lastConnectionUse = System.DateTime.Now.Ticks; | 134 | m_lastConnectionUse = System.DateTime.Now.Ticks; |
135 | 135 | ||
136 | m_log.DebugFormat( | 136 | m_log.DebugFormat( |
137 | "[REGION DB]: Connection wait timeout {0} seconds", | 137 | "[REGION DB]: Connection wait timeout {0} seconds", |
138 | m_waitTimeout / TimeSpan.TicksPerSecond); | 138 | m_waitTimeout / TimeSpan.TicksPerSecond); |
139 | } | 139 | } |
140 | 140 | ||
141 | protected void CheckConnection() | 141 | protected void CheckConnection() |
142 | { | 142 | { |
143 | long timeNow = System.DateTime.Now.Ticks; | 143 | long timeNow = System.DateTime.Now.Ticks; |
@@ -145,17 +145,17 @@ namespace OpenSim.Data.MySQL | |||
145 | m_connection.State != ConnectionState.Open) | 145 | m_connection.State != ConnectionState.Open) |
146 | { | 146 | { |
147 | m_log.DebugFormat("[REGION DB]: Database connection has gone away - reconnecting"); | 147 | m_log.DebugFormat("[REGION DB]: Database connection has gone away - reconnecting"); |
148 | 148 | ||
149 | lock (m_connection) | 149 | lock (m_connection) |
150 | { | 150 | { |
151 | m_connection.Close(); | 151 | m_connection.Close(); |
152 | m_connection = new MySqlConnection(m_connectionString); | 152 | m_connection = new MySqlConnection(m_connectionString); |
153 | m_connection.Open(); | 153 | m_connection.Open(); |
154 | } | 154 | } |
155 | } | 155 | } |
156 | 156 | ||
157 | m_lastConnectionUse = timeNow; | 157 | m_lastConnectionUse = timeNow; |
158 | } | 158 | } |
159 | 159 | ||
160 | public EstateSettings LoadEstateSettings(LLUUID regionID) | 160 | public EstateSettings LoadEstateSettings(LLUUID regionID) |
161 | { | 161 | { |
@@ -210,7 +210,7 @@ namespace OpenSim.Data.MySQL | |||
210 | names.Remove("EstateID"); | 210 | names.Remove("EstateID"); |
211 | 211 | ||
212 | sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( ?"+String.Join(", ?", names.ToArray())+")"; | 212 | sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( ?"+String.Join(", ?", names.ToArray())+")"; |
213 | 213 | ||
214 | cmd.CommandText = sql; | 214 | cmd.CommandText = sql; |
215 | cmd.Parameters.Clear(); | 215 | cmd.Parameters.Clear(); |
216 | 216 | ||
@@ -318,7 +318,7 @@ namespace OpenSim.Data.MySQL | |||
318 | es.ClearBans(); | 318 | es.ClearBans(); |
319 | 319 | ||
320 | CheckConnection(); | 320 | CheckConnection(); |
321 | 321 | ||
322 | MySqlCommand cmd = m_connection.CreateCommand(); | 322 | MySqlCommand cmd = m_connection.CreateCommand(); |
323 | 323 | ||
324 | cmd.CommandText = "select bannedUUID from estateban where EstateID = ?EstateID"; | 324 | cmd.CommandText = "select bannedUUID from estateban where EstateID = ?EstateID"; |
@@ -344,18 +344,18 @@ namespace OpenSim.Data.MySQL | |||
344 | private void SaveBanList(EstateSettings es) | 344 | private void SaveBanList(EstateSettings es) |
345 | { | 345 | { |
346 | CheckConnection(); | 346 | CheckConnection(); |
347 | 347 | ||
348 | MySqlCommand cmd = m_connection.CreateCommand(); | 348 | MySqlCommand cmd = m_connection.CreateCommand(); |
349 | 349 | ||
350 | cmd.CommandText = "delete from estateban where EstateID = ?EstateID"; | 350 | cmd.CommandText = "delete from estateban where EstateID = ?EstateID"; |
351 | cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString()); | 351 | cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString()); |
352 | 352 | ||
353 | cmd.ExecuteNonQuery(); | 353 | cmd.ExecuteNonQuery(); |
354 | 354 | ||
355 | cmd.Parameters.Clear(); | 355 | cmd.Parameters.Clear(); |
356 | 356 | ||
357 | cmd.CommandText = "insert into estateban (EstateID, bannedUUID) values ( ?EstateID, ?bannedUUID )"; | 357 | cmd.CommandText = "insert into estateban (EstateID, bannedUUID) values ( ?EstateID, ?bannedUUID )"; |
358 | 358 | ||
359 | foreach (EstateBan b in es.EstateBans) | 359 | foreach (EstateBan b in es.EstateBans) |
360 | { | 360 | { |
361 | cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString()); | 361 | cmd.Parameters.AddWithValue("?EstateID", es.EstateID.ToString()); |
@@ -369,18 +369,18 @@ namespace OpenSim.Data.MySQL | |||
369 | void SaveUUIDList(uint EstateID, string table, LLUUID[] data) | 369 | void SaveUUIDList(uint EstateID, string table, LLUUID[] data) |
370 | { | 370 | { |
371 | CheckConnection(); | 371 | CheckConnection(); |
372 | 372 | ||
373 | MySqlCommand cmd = m_connection.CreateCommand(); | 373 | MySqlCommand cmd = m_connection.CreateCommand(); |
374 | 374 | ||
375 | cmd.CommandText = "delete from "+table+" where EstateID = ?EstateID"; | 375 | cmd.CommandText = "delete from "+table+" where EstateID = ?EstateID"; |
376 | cmd.Parameters.AddWithValue("?EstateID", EstateID.ToString()); | 376 | cmd.Parameters.AddWithValue("?EstateID", EstateID.ToString()); |
377 | 377 | ||
378 | cmd.ExecuteNonQuery(); | 378 | cmd.ExecuteNonQuery(); |
379 | 379 | ||
380 | cmd.Parameters.Clear(); | 380 | cmd.Parameters.Clear(); |
381 | 381 | ||
382 | cmd.CommandText = "insert into "+table+" (EstateID, uuid) values ( ?EstateID, ?uuid )"; | 382 | cmd.CommandText = "insert into "+table+" (EstateID, uuid) values ( ?EstateID, ?uuid )"; |
383 | 383 | ||
384 | foreach (LLUUID uuid in data) | 384 | foreach (LLUUID uuid in data) |
385 | { | 385 | { |
386 | cmd.Parameters.AddWithValue("?EstateID", EstateID.ToString()); | 386 | cmd.Parameters.AddWithValue("?EstateID", EstateID.ToString()); |
@@ -396,7 +396,7 @@ namespace OpenSim.Data.MySQL | |||
396 | List<LLUUID> uuids = new List<LLUUID>(); | 396 | List<LLUUID> uuids = new List<LLUUID>(); |
397 | 397 | ||
398 | CheckConnection(); | 398 | CheckConnection(); |
399 | 399 | ||
400 | MySqlCommand cmd = m_connection.CreateCommand(); | 400 | MySqlCommand cmd = m_connection.CreateCommand(); |
401 | 401 | ||
402 | cmd.CommandText = "select uuid from "+table+" where EstateID = ?EstateID"; | 402 | cmd.CommandText = "select uuid from "+table+" where EstateID = ?EstateID"; |
@@ -414,7 +414,7 @@ namespace OpenSim.Data.MySQL | |||
414 | uuids.Add(uuid); | 414 | uuids.Add(uuid); |
415 | } | 415 | } |
416 | r.Close(); | 416 | r.Close(); |
417 | 417 | ||
418 | return uuids.ToArray(); | 418 | return uuids.ToArray(); |
419 | } | 419 | } |
420 | } | 420 | } |
diff --git a/OpenSim/Data/MySQL/MySQLGridData.cs b/OpenSim/Data/MySQL/MySQLGridData.cs index 4cddbe5..fcbceb8 100644 --- a/OpenSim/Data/MySQL/MySQLGridData.cs +++ b/OpenSim/Data/MySQL/MySQLGridData.cs | |||
@@ -49,8 +49,8 @@ namespace OpenSim.Data.MySQL | |||
49 | /// </summary> | 49 | /// </summary> |
50 | private MySQLManager database; | 50 | private MySQLManager database; |
51 | 51 | ||
52 | override public void Initialise() | 52 | override public void Initialise() |
53 | { | 53 | { |
54 | m_log.Info("[MySQLGridData]: " + Name + " cannot be default-initialized!"); | 54 | m_log.Info("[MySQLGridData]: " + Name + " cannot be default-initialized!"); |
55 | throw new PluginNotInitialisedException (Name); | 55 | throw new PluginNotInitialisedException (Name); |
56 | } | 56 | } |
@@ -253,7 +253,7 @@ namespace OpenSim.Data.MySQL | |||
253 | return null; | 253 | return null; |
254 | } | 254 | } |
255 | } | 255 | } |
256 | 256 | ||
257 | /// <summary> | 257 | /// <summary> |
258 | /// Returns a sim profile from it's UUID | 258 | /// Returns a sim profile from it's UUID |
259 | /// </summary> | 259 | /// </summary> |
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs index dd4d804..4e8200b 100644 --- a/OpenSim/Data/MySQL/MySQLInventoryData.cs +++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs | |||
@@ -48,8 +48,8 @@ namespace OpenSim.Data.MySQL | |||
48 | /// </summary> | 48 | /// </summary> |
49 | private MySQLManager database; | 49 | private MySQLManager database; |
50 | 50 | ||
51 | public void Initialise() | 51 | public void Initialise() |
52 | { | 52 | { |
53 | m_log.Info("[MySQLInventoryData]: " + Name + " cannot be default-initialized!"); | 53 | m_log.Info("[MySQLInventoryData]: " + Name + " cannot be default-initialized!"); |
54 | throw new PluginNotInitialisedException (Name); | 54 | throw new PluginNotInitialisedException (Name); |
55 | } | 55 | } |
@@ -81,7 +81,7 @@ namespace OpenSim.Data.MySQL | |||
81 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 81 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
82 | string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling"); | 82 | string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling"); |
83 | string settingPort = GridDataMySqlFile.ParseFileReadValue("port"); | 83 | string settingPort = GridDataMySqlFile.ParseFileReadValue("port"); |
84 | 84 | ||
85 | database = | 85 | database = |
86 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, | 86 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, |
87 | settingPort); | 87 | settingPort); |
@@ -147,7 +147,7 @@ namespace OpenSim.Data.MySQL | |||
147 | } | 147 | } |
148 | 148 | ||
149 | /// <summary> | 149 | /// <summary> |
150 | /// | 150 | /// |
151 | /// </summary> | 151 | /// </summary> |
152 | /// <param name="conn">MySQL connection handler</param> | 152 | /// <param name="conn">MySQL connection handler</param> |
153 | /// <param name="m"></param> | 153 | /// <param name="m"></param> |
@@ -180,7 +180,7 @@ namespace OpenSim.Data.MySQL | |||
180 | // ... and set the version | 180 | // ... and set the version |
181 | if (m.Version == 0) | 181 | if (m.Version == 0) |
182 | m.Version = 1; | 182 | m.Version = 1; |
183 | 183 | ||
184 | } | 184 | } |
185 | 185 | ||
186 | #endregion | 186 | #endregion |
@@ -290,7 +290,7 @@ namespace OpenSim.Data.MySQL | |||
290 | } | 290 | } |
291 | } | 291 | } |
292 | 292 | ||
293 | 293 | ||
294 | /// <summary> | 294 | /// <summary> |
295 | /// see <see cref="InventoryItemBase.getUserRootFolder"/> | 295 | /// see <see cref="InventoryItemBase.getUserRootFolder"/> |
296 | /// </summary> | 296 | /// </summary> |
@@ -708,10 +708,10 @@ namespace OpenSim.Data.MySQL | |||
708 | * - We will only need to hit the database twice instead of n times. | 708 | * - We will only need to hit the database twice instead of n times. |
709 | * - We assume the database is well-formed - no stranded/dangling folders, all folders in heirarchy owned | 709 | * - We assume the database is well-formed - no stranded/dangling folders, all folders in heirarchy owned |
710 | * by the same person, each user only has 1 inventory heirarchy | 710 | * by the same person, each user only has 1 inventory heirarchy |
711 | * - The returned list is not ordered, instead of breadth-first ordered | 711 | * - The returned list is not ordered, instead of breadth-first ordered |
712 | There are basically 2 usage cases for getFolderHeirarchy: | 712 | There are basically 2 usage cases for getFolderHeirarchy: |
713 | 1) Getting the user's entire inventory heirarchy when they log in | 713 | 1) Getting the user's entire inventory heirarchy when they log in |
714 | 2) Finding a subfolder heirarchy to delete when emptying the trash. | 714 | 2) Finding a subfolder heirarchy to delete when emptying the trash. |
715 | This implementation will pull all inventory folders from the database, and then prune away any folder that | 715 | This implementation will pull all inventory folders from the database, and then prune away any folder that |
716 | is not part of the requested sub-heirarchy. The theory is that it is cheaper to make 1 request from the | 716 | is not part of the requested sub-heirarchy. The theory is that it is cheaper to make 1 request from the |
717 | database than to make n requests. This pays off only if requested heirarchy is large. | 717 | database than to make n requests. This pays off only if requested heirarchy is large. |
@@ -774,7 +774,7 @@ namespace OpenSim.Data.MySQL | |||
774 | while (reader.Read()) | 774 | while (reader.Read()) |
775 | { | 775 | { |
776 | InventoryFolderBase curFolder = readInventoryFolder(reader); | 776 | InventoryFolderBase curFolder = readInventoryFolder(reader); |
777 | if (hashtable.ContainsKey(curFolder.ParentID)) // Current folder already has a sibling | 777 | if (hashtable.ContainsKey(curFolder.ParentID)) // Current folder already has a sibling |
778 | hashtable[curFolder.ParentID].Add(curFolder); // append to sibling list | 778 | hashtable[curFolder.ParentID].Add(curFolder); // append to sibling list |
779 | else // else current folder has no known (yet) siblings | 779 | else // else current folder has no known (yet) siblings |
780 | { | 780 | { |
diff --git a/OpenSim/Data/MySQL/MySQLLogData.cs b/OpenSim/Data/MySQL/MySQLLogData.cs index 456cfd2..c02016c 100644 --- a/OpenSim/Data/MySQL/MySQLLogData.cs +++ b/OpenSim/Data/MySQL/MySQLLogData.cs | |||
@@ -44,12 +44,12 @@ namespace OpenSim.Data.MySQL | |||
44 | /// </summary> | 44 | /// </summary> |
45 | public MySQLManager database; | 45 | public MySQLManager database; |
46 | 46 | ||
47 | public void Initialise() | 47 | public void Initialise() |
48 | { | 48 | { |
49 | m_log.Info("[MySQLLogData]: " + Name + " cannot be default-initialized!"); | 49 | m_log.Info("[MySQLLogData]: " + Name + " cannot be default-initialized!"); |
50 | throw new PluginNotInitialisedException (Name); | 50 | throw new PluginNotInitialisedException (Name); |
51 | } | 51 | } |
52 | 52 | ||
53 | /// <summary> | 53 | /// <summary> |
54 | /// Artificial constructor called when the plugin is loaded | 54 | /// Artificial constructor called when the plugin is loaded |
55 | /// Uses the obsolete mysql_connection.ini if connect string is empty. | 55 | /// Uses the obsolete mysql_connection.ini if connect string is empty. |
@@ -100,7 +100,7 @@ namespace OpenSim.Data.MySQL | |||
100 | Dictionary<string, string> tableList = new Dictionary<string, string>(); | 100 | Dictionary<string, string> tableList = new Dictionary<string, string>(); |
101 | tableList["logs"] = null; | 101 | tableList["logs"] = null; |
102 | database.GetTableVersion(tableList); | 102 | database.GetTableVersion(tableList); |
103 | 103 | ||
104 | // migrations will handle it | 104 | // migrations will handle it |
105 | if (tableList["logs"] == null) | 105 | if (tableList["logs"] == null) |
106 | return; | 106 | return; |
diff --git a/OpenSim/Data/MySQL/MySQLManager.cs b/OpenSim/Data/MySQL/MySQLManager.cs index 58599a8..6ad6609 100644 --- a/OpenSim/Data/MySQL/MySQLManager.cs +++ b/OpenSim/Data/MySQL/MySQLManager.cs | |||
@@ -55,7 +55,7 @@ namespace OpenSim.Data.MySQL | |||
55 | private string connectionString; | 55 | private string connectionString; |
56 | 56 | ||
57 | private const string m_waitTimeoutSelect = "select @@wait_timeout"; | 57 | private const string m_waitTimeoutSelect = "select @@wait_timeout"; |
58 | 58 | ||
59 | /// <summary> | 59 | /// <summary> |
60 | /// Wait timeout for our connection in ticks. | 60 | /// Wait timeout for our connection in ticks. |
61 | /// </summary> | 61 | /// </summary> |
@@ -70,7 +70,7 @@ namespace OpenSim.Data.MySQL | |||
70 | /// <summary> | 70 | /// <summary> |
71 | /// Holds the last tick time that the connection was used. | 71 | /// Holds the last tick time that the connection was used. |
72 | /// </summary> | 72 | /// </summary> |
73 | private long m_lastConnectionUse; | 73 | private long m_lastConnectionUse; |
74 | 74 | ||
75 | /// <summary> | 75 | /// <summary> |
76 | /// Initialises and creates a new MySQL connection and maintains it. | 76 | /// Initialises and creates a new MySQL connection and maintains it. |
@@ -172,7 +172,7 @@ namespace OpenSim.Data.MySQL | |||
172 | // inaccuracy. | 172 | // inaccuracy. |
173 | m_lastConnectionUse = timeNow; | 173 | m_lastConnectionUse = timeNow; |
174 | } | 174 | } |
175 | 175 | ||
176 | /// <summary> | 176 | /// <summary> |
177 | /// Get the connection being used | 177 | /// Get the connection being used |
178 | /// </summary> | 178 | /// </summary> |
@@ -287,14 +287,14 @@ namespace OpenSim.Data.MySQL | |||
287 | { | 287 | { |
288 | lock (dbcon) | 288 | lock (dbcon) |
289 | { | 289 | { |
290 | CheckConnection(); | 290 | CheckConnection(); |
291 | 291 | ||
292 | MySqlCommand tablesCmd = | 292 | MySqlCommand tablesCmd = |
293 | new MySqlCommand( | 293 | new MySqlCommand( |
294 | "SELECT TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=?dbname", | 294 | "SELECT TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=?dbname", |
295 | dbcon); | 295 | dbcon); |
296 | tablesCmd.Parameters.AddWithValue("?dbname", dbcon.Database); | 296 | tablesCmd.Parameters.AddWithValue("?dbname", dbcon.Database); |
297 | 297 | ||
298 | using (MySqlDataReader tables = tablesCmd.ExecuteReader()) | 298 | using (MySqlDataReader tables = tablesCmd.ExecuteReader()) |
299 | { | 299 | { |
300 | while (tables.Read()) | 300 | while (tables.Read()) |
@@ -541,7 +541,7 @@ namespace OpenSim.Data.MySQL | |||
541 | LLUUID regionID = LLUUID.Zero; | 541 | LLUUID regionID = LLUUID.Zero; |
542 | LLUUID.TryParse(reader["homeRegionID"].ToString(), out regionID); // it's ok if it doesn't work; just use LLUUID.Zero | 542 | LLUUID.TryParse(reader["homeRegionID"].ToString(), out regionID); // it's ok if it doesn't work; just use LLUUID.Zero |
543 | retval.HomeRegionID = regionID; | 543 | retval.HomeRegionID = regionID; |
544 | 544 | ||
545 | retval.Created = Convert.ToInt32(reader["created"].ToString()); | 545 | retval.Created = Convert.ToInt32(reader["created"].ToString()); |
546 | retval.LastLogin = Convert.ToInt32(reader["lastLogin"].ToString()); | 546 | retval.LastLogin = Convert.ToInt32(reader["lastLogin"].ToString()); |
547 | 547 | ||
@@ -1124,7 +1124,7 @@ namespace OpenSim.Data.MySQL | |||
1124 | sql += "?skirt_item, ?skirt_asset)"; | 1124 | sql += "?skirt_item, ?skirt_asset)"; |
1125 | 1125 | ||
1126 | bool returnval = false; | 1126 | bool returnval = false; |
1127 | 1127 | ||
1128 | // we want to send in byte data, which means we can't just pass down strings | 1128 | // we want to send in byte data, which means we can't just pass down strings |
1129 | try { | 1129 | try { |
1130 | MySqlCommand cmd = (MySqlCommand) dbcon.CreateCommand(); | 1130 | MySqlCommand cmd = (MySqlCommand) dbcon.CreateCommand(); |
@@ -1160,7 +1160,7 @@ namespace OpenSim.Data.MySQL | |||
1160 | cmd.Parameters.AddWithValue("?underpants_asset", appearance.UnderPantsAsset.ToString()); | 1160 | cmd.Parameters.AddWithValue("?underpants_asset", appearance.UnderPantsAsset.ToString()); |
1161 | cmd.Parameters.AddWithValue("?skirt_item", appearance.SkirtItem.ToString()); | 1161 | cmd.Parameters.AddWithValue("?skirt_item", appearance.SkirtItem.ToString()); |
1162 | cmd.Parameters.AddWithValue("?skirt_asset", appearance.SkirtAsset.ToString()); | 1162 | cmd.Parameters.AddWithValue("?skirt_asset", appearance.SkirtAsset.ToString()); |
1163 | 1163 | ||
1164 | if (cmd.ExecuteNonQuery() > 0) | 1164 | if (cmd.ExecuteNonQuery() > 0) |
1165 | returnval = true; | 1165 | returnval = true; |
1166 | 1166 | ||
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index 70b6d3c..85af5df 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs | |||
@@ -53,27 +53,27 @@ namespace OpenSim.Data.MySQL | |||
53 | private const string m_terrainSelect = "select * from terrain limit 1"; | 53 | private const string m_terrainSelect = "select * from terrain limit 1"; |
54 | private const string m_landSelect = "select * from land"; | 54 | private const string m_landSelect = "select * from land"; |
55 | private const string m_landAccessListSelect = "select * from landaccesslist"; | 55 | private const string m_landAccessListSelect = "select * from landaccesslist"; |
56 | private const string m_regionSettingsSelect = "select * from regionsettings"; | 56 | private const string m_regionSettingsSelect = "select * from regionsettings"; |
57 | private const string m_waitTimeoutSelect = "select @@wait_timeout"; | 57 | private const string m_waitTimeoutSelect = "select @@wait_timeout"; |
58 | 58 | ||
59 | private MySqlConnection m_connection; | 59 | private MySqlConnection m_connection; |
60 | private string m_connectionString; | 60 | private string m_connectionString; |
61 | 61 | ||
62 | /// <summary> | 62 | /// <summary> |
63 | /// Wait timeout for our connection in ticks. | 63 | /// Wait timeout for our connection in ticks. |
64 | /// </summary> | 64 | /// </summary> |
65 | private long m_waitTimeout; | 65 | private long m_waitTimeout; |
66 | 66 | ||
67 | /// <summary> | 67 | /// <summary> |
68 | /// Make our storage of the timeout this amount smaller than it actually is, to give us a margin on long | 68 | /// Make our storage of the timeout this amount smaller than it actually is, to give us a margin on long |
69 | /// running database operations. | 69 | /// running database operations. |
70 | /// </summary> | 70 | /// </summary> |
71 | private long m_waitTimeoutLeeway = 60 * TimeSpan.TicksPerSecond; | 71 | private long m_waitTimeoutLeeway = 60 * TimeSpan.TicksPerSecond; |
72 | 72 | ||
73 | /// <summary> | 73 | /// <summary> |
74 | /// Holds the last tick time that the connection was used. | 74 | /// Holds the last tick time that the connection was used. |
75 | /// </summary> | 75 | /// </summary> |
76 | private long m_lastConnectionUse; | 76 | private long m_lastConnectionUse; |
77 | 77 | ||
78 | private DataSet m_dataSet; | 78 | private DataSet m_dataSet; |
79 | private MySqlDataAdapter m_primDataAdapter; | 79 | private MySqlDataAdapter m_primDataAdapter; |
@@ -105,7 +105,7 @@ namespace OpenSim.Data.MySQL | |||
105 | public void Initialise(string connectionString) | 105 | public void Initialise(string connectionString) |
106 | { | 106 | { |
107 | m_connectionString = connectionString; | 107 | m_connectionString = connectionString; |
108 | 108 | ||
109 | m_dataSet = new DataSet(); | 109 | m_dataSet = new DataSet(); |
110 | 110 | ||
111 | int passPosition = 0; | 111 | int passPosition = 0; |
@@ -132,8 +132,8 @@ namespace OpenSim.Data.MySQL | |||
132 | m_log.Info("[REGION DB]: MySql - connecting: " + displayConnectionString); | 132 | m_log.Info("[REGION DB]: MySql - connecting: " + displayConnectionString); |
133 | m_connection = new MySqlConnection(m_connectionString); | 133 | m_connection = new MySqlConnection(m_connectionString); |
134 | m_connection.Open(); | 134 | m_connection.Open(); |
135 | 135 | ||
136 | GetWaitTimeout(); | 136 | GetWaitTimeout(); |
137 | 137 | ||
138 | // This actually does the roll forward assembly stuff | 138 | // This actually does the roll forward assembly stuff |
139 | Assembly assem = GetType().Assembly; | 139 | Assembly assem = GetType().Assembly; |
@@ -177,12 +177,11 @@ namespace OpenSim.Data.MySQL | |||
177 | m_dataSet.Tables.Add(m_shapeTable); | 177 | m_dataSet.Tables.Add(m_shapeTable); |
178 | SetupShapeCommands(m_shapeDataAdapter, m_connection); | 178 | SetupShapeCommands(m_shapeDataAdapter, m_connection); |
179 | m_shapeDataAdapter.Fill(m_shapeTable); | 179 | m_shapeDataAdapter.Fill(m_shapeTable); |
180 | |||
181 | 180 | ||
182 | m_itemsTable = createItemsTable(); | 181 | m_itemsTable = createItemsTable(); |
183 | m_dataSet.Tables.Add(m_itemsTable); | 182 | m_dataSet.Tables.Add(m_itemsTable); |
184 | SetupItemsCommands(m_itemsDataAdapter, m_connection); | 183 | SetupItemsCommands(m_itemsDataAdapter, m_connection); |
185 | m_itemsDataAdapter.Fill(m_itemsTable); | 184 | m_itemsDataAdapter.Fill(m_itemsTable); |
186 | 185 | ||
187 | m_terrainTable = createTerrainTable(); | 186 | m_terrainTable = createTerrainTable(); |
188 | m_dataSet.Tables.Add(m_terrainTable); | 187 | m_dataSet.Tables.Add(m_terrainTable); |
@@ -205,58 +204,58 @@ namespace OpenSim.Data.MySQL | |||
205 | m_regionSettingsDataAdapter.Fill(m_regionSettingsTable); | 204 | m_regionSettingsDataAdapter.Fill(m_regionSettingsTable); |
206 | } | 205 | } |
207 | } | 206 | } |
208 | 207 | ||
209 | /// <summary> | 208 | /// <summary> |
210 | /// Get the wait_timeout value for our connection | 209 | /// Get the wait_timeout value for our connection |
211 | /// </summary> | 210 | /// </summary> |
212 | protected void GetWaitTimeout() | 211 | protected void GetWaitTimeout() |
213 | { | 212 | { |
214 | MySqlCommand cmd = new MySqlCommand(m_waitTimeoutSelect, m_connection); | 213 | MySqlCommand cmd = new MySqlCommand(m_waitTimeoutSelect, m_connection); |
215 | 214 | ||
216 | using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow)) | 215 | using (MySqlDataReader dbReader = cmd.ExecuteReader(CommandBehavior.SingleRow)) |
217 | { | 216 | { |
218 | if (dbReader.Read()) | 217 | if (dbReader.Read()) |
219 | { | 218 | { |
220 | m_waitTimeout | 219 | m_waitTimeout |
221 | = Convert.ToInt32(dbReader["@@wait_timeout"]) * TimeSpan.TicksPerSecond + m_waitTimeoutLeeway; | 220 | = Convert.ToInt32(dbReader["@@wait_timeout"]) * TimeSpan.TicksPerSecond + m_waitTimeoutLeeway; |
222 | } | 221 | } |
223 | 222 | ||
224 | dbReader.Close(); | 223 | dbReader.Close(); |
225 | cmd.Dispose(); | 224 | cmd.Dispose(); |
226 | } | 225 | } |
227 | 226 | ||
228 | m_lastConnectionUse = System.DateTime.Now.Ticks; | 227 | m_lastConnectionUse = System.DateTime.Now.Ticks; |
229 | 228 | ||
230 | m_log.DebugFormat( | 229 | m_log.DebugFormat( |
231 | "[REGION DB]: Connection wait timeout {0} seconds", m_waitTimeout / TimeSpan.TicksPerSecond); | 230 | "[REGION DB]: Connection wait timeout {0} seconds", m_waitTimeout / TimeSpan.TicksPerSecond); |
232 | } | 231 | } |
233 | 232 | ||
234 | /// <summary> | 233 | /// <summary> |
235 | /// Should be called before any db operation. This checks to see if the connection has not timed out | 234 | /// Should be called before any db operation. This checks to see if the connection has not timed out |
236 | /// </summary> | 235 | /// </summary> |
237 | protected void CheckConnection() | 236 | protected void CheckConnection() |
238 | { | 237 | { |
239 | //m_log.Debug("[REGION DB]: Checking connection"); | 238 | //m_log.Debug("[REGION DB]: Checking connection"); |
240 | 239 | ||
241 | long timeNow = System.DateTime.Now.Ticks; | 240 | long timeNow = System.DateTime.Now.Ticks; |
242 | if (timeNow - m_lastConnectionUse > m_waitTimeout || m_connection.State != ConnectionState.Open) | 241 | if (timeNow - m_lastConnectionUse > m_waitTimeout || m_connection.State != ConnectionState.Open) |
243 | { | 242 | { |
244 | m_log.DebugFormat("[REGION DB]: Database connection has gone away - reconnecting"); | 243 | m_log.DebugFormat("[REGION DB]: Database connection has gone away - reconnecting"); |
245 | 244 | ||
246 | lock (m_connection) | 245 | lock (m_connection) |
247 | { | 246 | { |
248 | m_connection.Close(); | 247 | m_connection.Close(); |
249 | m_connection = new MySqlConnection(m_connectionString); | 248 | m_connection = new MySqlConnection(m_connectionString); |
250 | m_connection.Open(); | 249 | m_connection.Open(); |
251 | } | 250 | } |
252 | } | 251 | } |
253 | 252 | ||
254 | // Strictly, we should set this after the actual db operation. But it's more convenient to set here rather | 253 | // Strictly, we should set this after the actual db operation. But it's more convenient to set here rather |
255 | // than require the code to call another method - the timeout leeway should be large enough to cover the | 254 | // than require the code to call another method - the timeout leeway should be large enough to cover the |
256 | // inaccuracy. | 255 | // inaccuracy. |
257 | m_lastConnectionUse = timeNow; | 256 | m_lastConnectionUse = timeNow; |
258 | } | 257 | } |
259 | 258 | ||
260 | /// <summary> | 259 | /// <summary> |
261 | /// Given a list of tables, return the version of the tables, as seen in the database | 260 | /// Given a list of tables, return the version of the tables, as seen in the database |
262 | /// </summary> | 261 | /// </summary> |
@@ -271,7 +270,7 @@ namespace OpenSim.Data.MySQL | |||
271 | "SELECT TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=?dbname", | 270 | "SELECT TABLE_NAME, TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=?dbname", |
272 | dbcon); | 271 | dbcon); |
273 | tablesCmd.Parameters.AddWithValue("?dbname", dbcon.Database); | 272 | tablesCmd.Parameters.AddWithValue("?dbname", dbcon.Database); |
274 | 273 | ||
275 | CheckConnection(); | 274 | CheckConnection(); |
276 | using (MySqlDataReader tables = tablesCmd.ExecuteReader()) | 275 | using (MySqlDataReader tables = tablesCmd.ExecuteReader()) |
277 | { | 276 | { |
@@ -465,7 +464,7 @@ namespace OpenSim.Data.MySQL | |||
465 | 464 | ||
466 | lock (m_dataSet) | 465 | lock (m_dataSet) |
467 | { | 466 | { |
468 | CheckConnection(); | 467 | CheckConnection(); |
469 | DataRow[] primsForRegion = prims.Select(byRegion, orderByParent); | 468 | DataRow[] primsForRegion = prims.Select(byRegion, orderByParent); |
470 | m_log.Info("[REGION DB]: " + | 469 | m_log.Info("[REGION DB]: " + |
471 | "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); | 470 | "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); |
@@ -587,10 +586,10 @@ namespace OpenSim.Data.MySQL | |||
587 | using (cmd) | 586 | using (cmd) |
588 | { | 587 | { |
589 | delete.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); | 588 | delete.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); |
590 | 589 | ||
591 | CheckConnection(); | 590 | CheckConnection(); |
592 | delete.ExecuteNonQuery(); | 591 | delete.ExecuteNonQuery(); |
593 | 592 | ||
594 | cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); | 593 | cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); |
595 | cmd.Parameters.Add(new MySqlParameter("?Revision", revision)); | 594 | cmd.Parameters.Add(new MySqlParameter("?Revision", revision)); |
596 | cmd.Parameters.Add(new MySqlParameter("?Heightfield", serializeTerrain(ter))); | 595 | cmd.Parameters.Add(new MySqlParameter("?Heightfield", serializeTerrain(ter))); |
@@ -774,7 +773,7 @@ namespace OpenSim.Data.MySQL | |||
774 | } | 773 | } |
775 | 774 | ||
776 | /// <summary> | 775 | /// <summary> |
777 | /// | 776 | /// |
778 | /// </summary> | 777 | /// </summary> |
779 | /// <param name="regionUUID"></param> | 778 | /// <param name="regionUUID"></param> |
780 | /// <returns></returns> | 779 | /// <returns></returns> |
@@ -805,7 +804,7 @@ namespace OpenSim.Data.MySQL | |||
805 | } | 804 | } |
806 | 805 | ||
807 | /// <summary> | 806 | /// <summary> |
808 | /// | 807 | /// |
809 | /// </summary> | 808 | /// </summary> |
810 | public void Commit() | 809 | public void Commit() |
811 | { | 810 | { |
@@ -845,7 +844,7 @@ namespace OpenSim.Data.MySQL | |||
845 | **********************************************************************/ | 844 | **********************************************************************/ |
846 | 845 | ||
847 | /// <summary> | 846 | /// <summary> |
848 | /// | 847 | /// |
849 | /// </summary> | 848 | /// </summary> |
850 | /// <param name="dt"></param> | 849 | /// <param name="dt"></param> |
851 | /// <param name="name"></param> | 850 | /// <param name="name"></param> |
@@ -1139,7 +1138,7 @@ namespace OpenSim.Data.MySQL | |||
1139 | **********************************************************************/ | 1138 | **********************************************************************/ |
1140 | 1139 | ||
1141 | /// <summary> | 1140 | /// <summary> |
1142 | /// | 1141 | /// |
1143 | /// </summary> | 1142 | /// </summary> |
1144 | /// <param name="row"></param> | 1143 | /// <param name="row"></param> |
1145 | /// <returns></returns> | 1144 | /// <returns></returns> |
@@ -1315,7 +1314,7 @@ namespace OpenSim.Data.MySQL | |||
1315 | } | 1314 | } |
1316 | 1315 | ||
1317 | /// <summary> | 1316 | /// <summary> |
1318 | /// | 1317 | /// |
1319 | /// </summary> | 1318 | /// </summary> |
1320 | /// <param name="row"></param> | 1319 | /// <param name="row"></param> |
1321 | /// <returns></returns> | 1320 | /// <returns></returns> |
@@ -1374,14 +1373,14 @@ namespace OpenSim.Data.MySQL | |||
1374 | newData.UserLookAt = LLVector3.Zero; | 1373 | newData.UserLookAt = LLVector3.Zero; |
1375 | m_log.ErrorFormat("[PARCEL]: unable to get parcel telehub settings for {1}", newData.Name); | 1374 | m_log.ErrorFormat("[PARCEL]: unable to get parcel telehub settings for {1}", newData.Name); |
1376 | } | 1375 | } |
1377 | 1376 | ||
1378 | newData.ParcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); | 1377 | newData.ParcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); |
1379 | 1378 | ||
1380 | return newData; | 1379 | return newData; |
1381 | } | 1380 | } |
1382 | 1381 | ||
1383 | /// <summary> | 1382 | /// <summary> |
1384 | /// | 1383 | /// |
1385 | /// </summary> | 1384 | /// </summary> |
1386 | /// <param name="row"></param> | 1385 | /// <param name="row"></param> |
1387 | /// <returns></returns> | 1386 | /// <returns></returns> |
@@ -1395,7 +1394,7 @@ namespace OpenSim.Data.MySQL | |||
1395 | } | 1394 | } |
1396 | 1395 | ||
1397 | /// <summary> | 1396 | /// <summary> |
1398 | /// | 1397 | /// |
1399 | /// </summary> | 1398 | /// </summary> |
1400 | /// <param name="val"></param> | 1399 | /// <param name="val"></param> |
1401 | /// <returns></returns> | 1400 | /// <returns></returns> |
@@ -1419,7 +1418,7 @@ namespace OpenSim.Data.MySQL | |||
1419 | } | 1418 | } |
1420 | 1419 | ||
1421 | /// <summary> | 1420 | /// <summary> |
1422 | /// | 1421 | /// |
1423 | /// </summary> | 1422 | /// </summary> |
1424 | /// <param name="row"></param> | 1423 | /// <param name="row"></param> |
1425 | /// <param name="prim"></param> | 1424 | /// <param name="prim"></param> |
@@ -1502,7 +1501,7 @@ namespace OpenSim.Data.MySQL | |||
1502 | } | 1501 | } |
1503 | 1502 | ||
1504 | /// <summary> | 1503 | /// <summary> |
1505 | /// | 1504 | /// |
1506 | /// </summary> | 1505 | /// </summary> |
1507 | /// <param name="row"></param> | 1506 | /// <param name="row"></param> |
1508 | /// <param name="taskItem"></param> | 1507 | /// <param name="taskItem"></param> |
@@ -1532,7 +1531,7 @@ namespace OpenSim.Data.MySQL | |||
1532 | } | 1531 | } |
1533 | 1532 | ||
1534 | /// <summary> | 1533 | /// <summary> |
1535 | /// | 1534 | /// |
1536 | /// </summary> | 1535 | /// </summary> |
1537 | private static void fillRegionSettingsRow(DataRow row, RegionSettings settings) | 1536 | private static void fillRegionSettingsRow(DataRow row, RegionSettings settings) |
1538 | { | 1537 | { |
@@ -1573,7 +1572,7 @@ namespace OpenSim.Data.MySQL | |||
1573 | } | 1572 | } |
1574 | 1573 | ||
1575 | /// <summary> | 1574 | /// <summary> |
1576 | /// | 1575 | /// |
1577 | /// </summary> | 1576 | /// </summary> |
1578 | /// <param name="row"></param> | 1577 | /// <param name="row"></param> |
1579 | /// <param name="land"></param> | 1578 | /// <param name="land"></param> |
@@ -1618,7 +1617,7 @@ namespace OpenSim.Data.MySQL | |||
1618 | } | 1617 | } |
1619 | 1618 | ||
1620 | /// <summary> | 1619 | /// <summary> |
1621 | /// | 1620 | /// |
1622 | /// </summary> | 1621 | /// </summary> |
1623 | /// <param name="row"></param> | 1622 | /// <param name="row"></param> |
1624 | /// <param name="entry"></param> | 1623 | /// <param name="entry"></param> |
@@ -1631,7 +1630,7 @@ namespace OpenSim.Data.MySQL | |||
1631 | } | 1630 | } |
1632 | 1631 | ||
1633 | /// <summary> | 1632 | /// <summary> |
1634 | /// | 1633 | /// |
1635 | /// </summary> | 1634 | /// </summary> |
1636 | /// <param name="row"></param> | 1635 | /// <param name="row"></param> |
1637 | /// <returns></returns> | 1636 | /// <returns></returns> |
@@ -1694,7 +1693,7 @@ namespace OpenSim.Data.MySQL | |||
1694 | } | 1693 | } |
1695 | 1694 | ||
1696 | /// <summary> | 1695 | /// <summary> |
1697 | /// | 1696 | /// |
1698 | /// </summary> | 1697 | /// </summary> |
1699 | /// <param name="row"></param> | 1698 | /// <param name="row"></param> |
1700 | /// <param name="prim"></param> | 1699 | /// <param name="prim"></param> |
@@ -1731,7 +1730,7 @@ namespace OpenSim.Data.MySQL | |||
1731 | row["ProfileHollow"] = s.ProfileHollow; | 1730 | row["ProfileHollow"] = s.ProfileHollow; |
1732 | row["Texture"] = s.TextureEntry; | 1731 | row["Texture"] = s.TextureEntry; |
1733 | row["ExtraParams"] = s.ExtraParams; | 1732 | row["ExtraParams"] = s.ExtraParams; |
1734 | 1733 | ||
1735 | try | 1734 | try |
1736 | { | 1735 | { |
1737 | row["State"] = s.State; | 1736 | row["State"] = s.State; |
@@ -1754,7 +1753,7 @@ namespace OpenSim.Data.MySQL | |||
1754 | } | 1753 | } |
1755 | 1754 | ||
1756 | /// <summary> | 1755 | /// <summary> |
1757 | /// | 1756 | /// |
1758 | /// </summary> | 1757 | /// </summary> |
1759 | /// <param name="prim"></param> | 1758 | /// <param name="prim"></param> |
1760 | /// <param name="sceneGroupID"></param> | 1759 | /// <param name="sceneGroupID"></param> |
@@ -1911,7 +1910,7 @@ namespace OpenSim.Data.MySQL | |||
1911 | } | 1910 | } |
1912 | 1911 | ||
1913 | /// <summary> | 1912 | /// <summary> |
1914 | /// | 1913 | /// |
1915 | /// </summary> | 1914 | /// </summary> |
1916 | /// <param name="dt"></param> | 1915 | /// <param name="dt"></param> |
1917 | /// <returns></returns> | 1916 | /// <returns></returns> |
@@ -1973,7 +1972,7 @@ namespace OpenSim.Data.MySQL | |||
1973 | } | 1972 | } |
1974 | 1973 | ||
1975 | /// <summary> | 1974 | /// <summary> |
1976 | /// | 1975 | /// |
1977 | /// </summary> | 1976 | /// </summary> |
1978 | /// <param name="da"></param> | 1977 | /// <param name="da"></param> |
1979 | /// <param name="conn"></param> | 1978 | /// <param name="conn"></param> |
@@ -1994,7 +1993,7 @@ namespace OpenSim.Data.MySQL | |||
1994 | } | 1993 | } |
1995 | 1994 | ||
1996 | /// <summary> | 1995 | /// <summary> |
1997 | /// | 1996 | /// |
1998 | /// </summary> | 1997 | /// </summary> |
1999 | /// <param name="da"></param> | 1998 | /// <param name="da"></param> |
2000 | /// <param name="conn"></param> | 1999 | /// <param name="conn"></param> |
@@ -2027,7 +2026,7 @@ namespace OpenSim.Data.MySQL | |||
2027 | } | 2026 | } |
2028 | 2027 | ||
2029 | /// <summary> | 2028 | /// <summary> |
2030 | /// | 2029 | /// |
2031 | /// </summary> | 2030 | /// </summary> |
2032 | /// <param name="da"></param> | 2031 | /// <param name="da"></param> |
2033 | /// <param name="conn"></param> | 2032 | /// <param name="conn"></param> |
@@ -2038,7 +2037,7 @@ namespace OpenSim.Data.MySQL | |||
2038 | } | 2037 | } |
2039 | 2038 | ||
2040 | /// <summary> | 2039 | /// <summary> |
2041 | /// | 2040 | /// |
2042 | /// </summary> | 2041 | /// </summary> |
2043 | /// <param name="da"></param> | 2042 | /// <param name="da"></param> |
2044 | /// <param name="conn"></param> | 2043 | /// <param name="conn"></param> |
@@ -2052,7 +2051,7 @@ namespace OpenSim.Data.MySQL | |||
2052 | } | 2051 | } |
2053 | 2052 | ||
2054 | /// <summary> | 2053 | /// <summary> |
2055 | /// | 2054 | /// |
2056 | /// </summary> | 2055 | /// </summary> |
2057 | /// <param name="da"></param> | 2056 | /// <param name="da"></param> |
2058 | /// <param name="conn"></param> | 2057 | /// <param name="conn"></param> |
@@ -2063,7 +2062,7 @@ namespace OpenSim.Data.MySQL | |||
2063 | } | 2062 | } |
2064 | 2063 | ||
2065 | /// <summary> | 2064 | /// <summary> |
2066 | /// | 2065 | /// |
2067 | /// </summary> | 2066 | /// </summary> |
2068 | /// <param name="da"></param> | 2067 | /// <param name="da"></param> |
2069 | /// <param name="conn"></param> | 2068 | /// <param name="conn"></param> |
@@ -2082,7 +2081,7 @@ namespace OpenSim.Data.MySQL | |||
2082 | } | 2081 | } |
2083 | 2082 | ||
2084 | /// <summary> | 2083 | /// <summary> |
2085 | /// | 2084 | /// |
2086 | /// </summary> | 2085 | /// </summary> |
2087 | /// <param name="conn">MySQL connection handler</param> | 2086 | /// <param name="conn">MySQL connection handler</param> |
2088 | // private static void InitDB(MySqlConnection conn) | 2087 | // private static void InitDB(MySqlConnection conn) |
@@ -2174,7 +2173,7 @@ namespace OpenSim.Data.MySQL | |||
2174 | // } | 2173 | // } |
2175 | 2174 | ||
2176 | /// <summary> | 2175 | /// <summary> |
2177 | /// | 2176 | /// |
2178 | /// </summary> | 2177 | /// </summary> |
2179 | /// <param name="conn"></param> | 2178 | /// <param name="conn"></param> |
2180 | /// <param name="m"></param> | 2179 | /// <param name="m"></param> |
diff --git a/OpenSim/Data/NHibernate/LLQuaternionUserType.cs b/OpenSim/Data/NHibernate/LLQuaternionUserType.cs index c4f3136..80fb9ff 100644 --- a/OpenSim/Data/NHibernate/LLQuaternionUserType.cs +++ b/OpenSim/Data/NHibernate/LLQuaternionUserType.cs | |||
@@ -72,7 +72,7 @@ namespace OpenSim.Data.NHibernate | |||
72 | public object NullSafeGet(IDataReader rs, string[] names, object owner) | 72 | public object NullSafeGet(IDataReader rs, string[] names, object owner) |
73 | { | 73 | { |
74 | object quat = null; | 74 | object quat = null; |
75 | 75 | ||
76 | int x = rs.GetOrdinal(names[0]); | 76 | int x = rs.GetOrdinal(names[0]); |
77 | int y = rs.GetOrdinal(names[1]); | 77 | int y = rs.GetOrdinal(names[1]); |
78 | int z = rs.GetOrdinal(names[2]); | 78 | int z = rs.GetOrdinal(names[2]); |
@@ -105,10 +105,10 @@ namespace OpenSim.Data.NHibernate | |||
105 | 105 | ||
106 | public SqlType[] SqlTypes | 106 | public SqlType[] SqlTypes |
107 | { | 107 | { |
108 | get { return new SqlType [] { | 108 | get { return new SqlType [] { |
109 | NHibernateUtil.Single.SqlType, | 109 | NHibernateUtil.Single.SqlType, |
110 | NHibernateUtil.Single.SqlType, | 110 | NHibernateUtil.Single.SqlType, |
111 | NHibernateUtil.Single.SqlType, | 111 | NHibernateUtil.Single.SqlType, |
112 | NHibernateUtil.Single.SqlType | 112 | NHibernateUtil.Single.SqlType |
113 | }; } | 113 | }; } |
114 | } | 114 | } |
diff --git a/OpenSim/Data/NHibernate/LLVector3UserType.cs b/OpenSim/Data/NHibernate/LLVector3UserType.cs index b040ca7d..d2df2c4 100644 --- a/OpenSim/Data/NHibernate/LLVector3UserType.cs +++ b/OpenSim/Data/NHibernate/LLVector3UserType.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Data.NHibernate | |||
70 | public object NullSafeGet(IDataReader rs, string[] names, object owner) | 70 | public object NullSafeGet(IDataReader rs, string[] names, object owner) |
71 | { | 71 | { |
72 | object vector = null; | 72 | object vector = null; |
73 | 73 | ||
74 | int x = rs.GetOrdinal(names[0]); | 74 | int x = rs.GetOrdinal(names[0]); |
75 | int y = rs.GetOrdinal(names[1]); | 75 | int y = rs.GetOrdinal(names[1]); |
76 | int z = rs.GetOrdinal(names[2]); | 76 | int z = rs.GetOrdinal(names[2]); |
diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs index 2e9e897..400451f 100644 --- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs +++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs | |||
@@ -93,7 +93,7 @@ namespace OpenSim.Data.NHibernate | |||
93 | 93 | ||
94 | factory = cfg.BuildSessionFactory(); | 94 | factory = cfg.BuildSessionFactory(); |
95 | session = factory.OpenSession(); | 95 | session = factory.OpenSession(); |
96 | 96 | ||
97 | // This actually does the roll forward assembly stuff | 97 | // This actually does the roll forward assembly stuff |
98 | Assembly assem = GetType().Assembly; | 98 | Assembly assem = GetType().Assembly; |
99 | Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "AssetStore"); | 99 | Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "AssetStore"); |
@@ -111,7 +111,7 @@ namespace OpenSim.Data.NHibernate | |||
111 | { | 111 | { |
112 | m_log.ErrorFormat("[NHIBERNATE] no such asset {0}", uuid); | 112 | m_log.ErrorFormat("[NHIBERNATE] no such asset {0}", uuid); |
113 | return null; | 113 | return null; |
114 | } | 114 | } |
115 | catch (Exception e) | 115 | catch (Exception e) |
116 | { | 116 | { |
117 | m_log.Error("[NHIBERNATE] unexpected exception: ", e); | 117 | m_log.Error("[NHIBERNATE] unexpected exception: ", e); |
@@ -121,7 +121,7 @@ namespace OpenSim.Data.NHibernate | |||
121 | 121 | ||
122 | private void Save(AssetBase asset) | 122 | private void Save(AssetBase asset) |
123 | { | 123 | { |
124 | try | 124 | try |
125 | { | 125 | { |
126 | // a is not used anywhere? | 126 | // a is not used anywhere? |
127 | // AssetBase a = session.Load(typeof(AssetBase), asset.FullID) as AssetBase; | 127 | // AssetBase a = session.Load(typeof(AssetBase), asset.FullID) as AssetBase; |
diff --git a/OpenSim/Data/NHibernate/NHibernateManager.cs b/OpenSim/Data/NHibernate/NHibernateManager.cs index 4c5ec01..161ec1d 100644 --- a/OpenSim/Data/NHibernate/NHibernateManager.cs +++ b/OpenSim/Data/NHibernate/NHibernateManager.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Data.NHibernate | |||
51 | // "NHibernate.Driver.SqliteClientDriver"; | 51 | // "NHibernate.Driver.SqliteClientDriver"; |
52 | // cfg.Properties[NHibernate.Cfg.Environment.ConnectionString] = | 52 | // cfg.Properties[NHibernate.Cfg.Environment.ConnectionString] = |
53 | // "URI=file:opensim-nh.db,version=3"; | 53 | // "URI=file:opensim-nh.db,version=3"; |
54 | 54 | ||
55 | // factory = cfg.BuildSessionFactory(); | 55 | // factory = cfg.BuildSessionFactory(); |
56 | } | 56 | } |
57 | 57 | ||
diff --git a/OpenSim/Data/NHibernate/NHibernateRegionData.cs b/OpenSim/Data/NHibernate/NHibernateRegionData.cs index 52db32d..9682d87 100644 --- a/OpenSim/Data/NHibernate/NHibernateRegionData.cs +++ b/OpenSim/Data/NHibernate/NHibernateRegionData.cs | |||
@@ -89,10 +89,10 @@ namespace OpenSim.Data.NHibernate | |||
89 | using (MemoryStream stream = | 89 | using (MemoryStream stream = |
90 | HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) | 90 | HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) |
91 | cfg.AddInputStream(stream); | 91 | cfg.AddInputStream(stream); |
92 | 92 | ||
93 | factory = cfg.BuildSessionFactory(); | 93 | factory = cfg.BuildSessionFactory(); |
94 | session = factory.OpenSession(); | 94 | session = factory.OpenSession(); |
95 | 95 | ||
96 | // This actually does the roll forward assembly stuff | 96 | // This actually does the roll forward assembly stuff |
97 | Assembly assem = GetType().Assembly; | 97 | Assembly assem = GetType().Assembly; |
98 | Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "RegionStore"); | 98 | Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "RegionStore"); |
@@ -113,7 +113,7 @@ namespace OpenSim.Data.NHibernate | |||
113 | { | 113 | { |
114 | return null; | 114 | return null; |
115 | } | 115 | } |
116 | 116 | ||
117 | // This looks inefficient, but it turns out that it isn't | 117 | // This looks inefficient, but it turns out that it isn't |
118 | // based on trial runs with nhibernate 1.2 | 118 | // based on trial runs with nhibernate 1.2 |
119 | private void SaveOrUpdate(SceneObjectPart p) | 119 | private void SaveOrUpdate(SceneObjectPart p) |
@@ -164,7 +164,7 @@ namespace OpenSim.Data.NHibernate | |||
164 | /// <param name="regionUUID">the region UUID</param> | 164 | /// <param name="regionUUID">the region UUID</param> |
165 | public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID) | 165 | public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID) |
166 | { | 166 | { |
167 | try | 167 | try |
168 | { | 168 | { |
169 | foreach (SceneObjectPart part in obj.Children.Values) | 169 | foreach (SceneObjectPart part in obj.Children.Values) |
170 | { | 170 | { |
@@ -173,7 +173,7 @@ namespace OpenSim.Data.NHibernate | |||
173 | } | 173 | } |
174 | session.Flush(); | 174 | session.Flush(); |
175 | } | 175 | } |
176 | catch (Exception e) | 176 | catch (Exception e) |
177 | { | 177 | { |
178 | m_log.Error("Can't save: ", e); | 178 | m_log.Error("Can't save: ", e); |
179 | } | 179 | } |
@@ -196,7 +196,7 @@ namespace OpenSim.Data.NHibernate | |||
196 | group.AddPart(p); | 196 | group.AddPart(p); |
197 | group.RootPart = p; | 197 | group.RootPart = p; |
198 | } | 198 | } |
199 | else | 199 | else |
200 | { | 200 | { |
201 | group.AddPart(p); | 201 | group.AddPart(p); |
202 | } | 202 | } |
@@ -232,7 +232,7 @@ namespace OpenSim.Data.NHibernate | |||
232 | { | 232 | { |
233 | Dictionary<LLUUID, SceneObjectGroup> SOG = new Dictionary<LLUUID, SceneObjectGroup>(); | 233 | Dictionary<LLUUID, SceneObjectGroup> SOG = new Dictionary<LLUUID, SceneObjectGroup>(); |
234 | List<SceneObjectGroup> ret = new List<SceneObjectGroup>(); | 234 | List<SceneObjectGroup> ret = new List<SceneObjectGroup>(); |
235 | 235 | ||
236 | ICriteria criteria = session.CreateCriteria(typeof(SceneObjectPart)); | 236 | ICriteria criteria = session.CreateCriteria(typeof(SceneObjectPart)); |
237 | criteria.Add(Expression.Eq("RegionID", regionUUID)); | 237 | criteria.Add(Expression.Eq("RegionID", regionUUID)); |
238 | criteria.AddOrder( Order.Asc("ParentID") ); | 238 | criteria.AddOrder( Order.Asc("ParentID") ); |
@@ -246,12 +246,12 @@ namespace OpenSim.Data.NHibernate | |||
246 | group.RootPart = p; | 246 | group.RootPart = p; |
247 | SOG.Add(p.ParentUUID, group); | 247 | SOG.Add(p.ParentUUID, group); |
248 | } | 248 | } |
249 | else | 249 | else |
250 | { | 250 | { |
251 | SOG[p.ParentUUID].AddPart(p); | 251 | SOG[p.ParentUUID].AddPart(p); |
252 | } | 252 | } |
253 | // get the inventory | 253 | // get the inventory |
254 | 254 | ||
255 | ICriteria InvCriteria = session.CreateCriteria(typeof(TaskInventoryItem)); | 255 | ICriteria InvCriteria = session.CreateCriteria(typeof(TaskInventoryItem)); |
256 | InvCriteria.Add(Expression.Eq("ParentPartID", p.UUID)); | 256 | InvCriteria.Add(Expression.Eq("ParentPartID", p.UUID)); |
257 | IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>(); | 257 | IList<TaskInventoryItem> inventory = new List<TaskInventoryItem>(); |
@@ -263,7 +263,7 @@ namespace OpenSim.Data.NHibernate | |||
263 | if (inventory.Count > 0) | 263 | if (inventory.Count > 0) |
264 | p.RestoreInventoryItems(inventory); | 264 | p.RestoreInventoryItems(inventory); |
265 | } | 265 | } |
266 | foreach (SceneObjectGroup g in SOG.Values) | 266 | foreach (SceneObjectGroup g in SOG.Values) |
267 | { | 267 | { |
268 | ret.Add(g); | 268 | ret.Add(g); |
269 | } | 269 | } |
@@ -304,7 +304,7 @@ namespace OpenSim.Data.NHibernate | |||
304 | } | 304 | } |
305 | 305 | ||
306 | /// <summary> | 306 | /// <summary> |
307 | /// | 307 | /// |
308 | /// </summary> | 308 | /// </summary> |
309 | /// <param name="globalID"></param> | 309 | /// <param name="globalID"></param> |
310 | public void RemoveLandObject(LLUUID globalID) | 310 | public void RemoveLandObject(LLUUID globalID) |
@@ -313,7 +313,7 @@ namespace OpenSim.Data.NHibernate | |||
313 | } | 313 | } |
314 | 314 | ||
315 | /// <summary> | 315 | /// <summary> |
316 | /// | 316 | /// |
317 | /// </summary> | 317 | /// </summary> |
318 | /// <param name="parcel"></param> | 318 | /// <param name="parcel"></param> |
319 | public void StoreLandObject(ILandObject parcel) | 319 | public void StoreLandObject(ILandObject parcel) |
@@ -322,7 +322,7 @@ namespace OpenSim.Data.NHibernate | |||
322 | } | 322 | } |
323 | 323 | ||
324 | /// <summary> | 324 | /// <summary> |
325 | /// | 325 | /// |
326 | /// </summary> | 326 | /// </summary> |
327 | /// <param name="regionUUID"></param> | 327 | /// <param name="regionUUID"></param> |
328 | /// <returns></returns> | 328 | /// <returns></returns> |
@@ -341,7 +341,7 @@ namespace OpenSim.Data.NHibernate | |||
341 | { | 341 | { |
342 | session.Flush(); | 342 | session.Flush(); |
343 | } | 343 | } |
344 | 344 | ||
345 | /// <summary> | 345 | /// <summary> |
346 | /// Load a region banlist | 346 | /// Load a region banlist |
347 | /// </summary> | 347 | /// </summary> |
@@ -373,7 +373,7 @@ namespace OpenSim.Data.NHibernate | |||
373 | } | 373 | } |
374 | 374 | ||
375 | /// <summary> | 375 | /// <summary> |
376 | /// | 376 | /// |
377 | /// </summary> | 377 | /// </summary> |
378 | /// <param name="val"></param> | 378 | /// <param name="val"></param> |
379 | /// <returns></returns> | 379 | /// <returns></returns> |
@@ -399,17 +399,17 @@ namespace OpenSim.Data.NHibernate | |||
399 | { | 399 | { |
400 | ICriteria criteria = session.CreateCriteria(typeof(TaskInventoryItem)); | 400 | ICriteria criteria = session.CreateCriteria(typeof(TaskInventoryItem)); |
401 | criteria.Add(Expression.Eq("ParentPartID", primID)); | 401 | criteria.Add(Expression.Eq("ParentPartID", primID)); |
402 | try | 402 | try |
403 | { | 403 | { |
404 | foreach (TaskInventoryItem i in criteria.List()) | 404 | foreach (TaskInventoryItem i in criteria.List()) |
405 | { | 405 | { |
406 | session.Delete(i); | 406 | session.Delete(i); |
407 | } | 407 | } |
408 | 408 | ||
409 | foreach (TaskInventoryItem i in items) | 409 | foreach (TaskInventoryItem i in items) |
410 | { | 410 | { |
411 | session.Save(i); | 411 | session.Save(i); |
412 | 412 | ||
413 | } | 413 | } |
414 | session.Flush(); | 414 | session.Flush(); |
415 | } | 415 | } |
diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs index bceae7c..c776474 100644 --- a/OpenSim/Data/NHibernate/NHibernateUserData.cs +++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs | |||
@@ -53,8 +53,8 @@ namespace OpenSim.Data.NHibernate | |||
53 | private ISessionFactory factory; | 53 | private ISessionFactory factory; |
54 | private ISession session; | 54 | private ISession session; |
55 | 55 | ||
56 | public override void Initialise() | 56 | public override void Initialise() |
57 | { | 57 | { |
58 | m_log.Info("[NHibernateUserData]: " + Name + " cannot be default-initialized!"); | 58 | m_log.Info("[NHibernateUserData]: " + Name + " cannot be default-initialized!"); |
59 | throw new PluginNotInitialisedException (Name); | 59 | throw new PluginNotInitialisedException (Name); |
60 | } | 60 | } |
@@ -83,7 +83,7 @@ namespace OpenSim.Data.NHibernate | |||
83 | 83 | ||
84 | factory = cfg.BuildSessionFactory(); | 84 | factory = cfg.BuildSessionFactory(); |
85 | session = factory.OpenSession(); | 85 | session = factory.OpenSession(); |
86 | 86 | ||
87 | // This actually does the roll forward assembly stuff | 87 | // This actually does the roll forward assembly stuff |
88 | Assembly assem = GetType().Assembly; | 88 | Assembly assem = GetType().Assembly; |
89 | Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "UserStore"); | 89 | Migration m = new Migration((System.Data.Common.DbConnection)factory.ConnectionProvider.GetConnection(), assem, dialect, "UserStore"); |
@@ -97,7 +97,7 @@ namespace OpenSim.Data.NHibernate | |||
97 | { | 97 | { |
98 | user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; | 98 | user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; |
99 | } | 99 | } |
100 | catch (ObjectNotFoundException) | 100 | catch (ObjectNotFoundException) |
101 | { | 101 | { |
102 | user = null; | 102 | user = null; |
103 | } | 103 | } |
@@ -109,12 +109,12 @@ namespace OpenSim.Data.NHibernate | |||
109 | { | 109 | { |
110 | UserProfileData user; | 110 | UserProfileData user; |
111 | // TODO: I'm sure I'll have to do something silly here | 111 | // TODO: I'm sure I'll have to do something silly here |
112 | try | 112 | try |
113 | { | 113 | { |
114 | user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; | 114 | user = session.Load(typeof(UserProfileData), uuid) as UserProfileData; |
115 | user.CurrentAgent = GetAgentByUUID(uuid); | 115 | user.CurrentAgent = GetAgentByUUID(uuid); |
116 | } | 116 | } |
117 | catch (ObjectNotFoundException) | 117 | catch (ObjectNotFoundException) |
118 | { | 118 | { |
119 | user = null; | 119 | user = null; |
120 | } | 120 | } |
@@ -144,12 +144,12 @@ namespace OpenSim.Data.NHibernate | |||
144 | } | 144 | } |
145 | else | 145 | else |
146 | { | 146 | { |
147 | try | 147 | try |
148 | { | 148 | { |
149 | UserAgentData old = session.Load(typeof(UserAgentData), uuid) as UserAgentData; | 149 | UserAgentData old = session.Load(typeof(UserAgentData), uuid) as UserAgentData; |
150 | session.Delete(old); | 150 | session.Delete(old); |
151 | } | 151 | } |
152 | catch (ObjectNotFoundException) | 152 | catch (ObjectNotFoundException) |
153 | { | 153 | { |
154 | } | 154 | } |
155 | session.Save(agent); | 155 | session.Save(agent); |
@@ -174,12 +174,12 @@ namespace OpenSim.Data.NHibernate | |||
174 | 174 | ||
175 | override public void AddNewUserAgent(UserAgentData agent) | 175 | override public void AddNewUserAgent(UserAgentData agent) |
176 | { | 176 | { |
177 | try | 177 | try |
178 | { | 178 | { |
179 | UserAgentData old = session.Load(typeof(UserAgentData), agent.ProfileID) as UserAgentData; | 179 | UserAgentData old = session.Load(typeof(UserAgentData), agent.ProfileID) as UserAgentData; |
180 | session.Delete(old); | 180 | session.Delete(old); |
181 | } | 181 | } |
182 | catch (ObjectNotFoundException) | 182 | catch (ObjectNotFoundException) |
183 | { | 183 | { |
184 | } | 184 | } |
185 | session.Save(agent); | 185 | session.Save(agent); |
@@ -287,9 +287,9 @@ namespace OpenSim.Data.NHibernate | |||
287 | 287 | ||
288 | public override void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) | 288 | public override void UpdateUserAppearance(LLUUID user, AvatarAppearance appearance) |
289 | { | 289 | { |
290 | if (appearance == null) | 290 | if (appearance == null) |
291 | return; | 291 | return; |
292 | 292 | ||
293 | appearance.Owner = user; | 293 | appearance.Owner = user; |
294 | 294 | ||
295 | bool exists = ExistsAppearance(user); | 295 | bool exists = ExistsAppearance(user); |
diff --git a/OpenSim/Data/NHibernate/Terrain.cs b/OpenSim/Data/NHibernate/Terrain.cs index a95e45a..608f03e 100644 --- a/OpenSim/Data/NHibernate/Terrain.cs +++ b/OpenSim/Data/NHibernate/Terrain.cs | |||
@@ -32,21 +32,21 @@ using OpenSim.Framework; | |||
32 | using log4net; | 32 | using log4net; |
33 | using libsecondlife; | 33 | using libsecondlife; |
34 | 34 | ||
35 | namespace OpenSim.Data.NHibernate | 35 | namespace OpenSim.Data.NHibernate |
36 | { | 36 | { |
37 | public class Terrain | 37 | public class Terrain |
38 | { | 38 | { |
39 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 39 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
40 | 40 | ||
41 | private double[,] map; | 41 | private double[,] map; |
42 | private LLUUID regionID; | 42 | private LLUUID regionID; |
43 | 43 | ||
44 | public Terrain(LLUUID Region, double[,] array) | 44 | public Terrain(LLUUID Region, double[,] array) |
45 | { | 45 | { |
46 | map = array; | 46 | map = array; |
47 | regionID = Region; | 47 | regionID = Region; |
48 | } | 48 | } |
49 | 49 | ||
50 | public Terrain() | 50 | public Terrain() |
51 | { | 51 | { |
52 | map = new double[Constants.RegionSize, Constants.RegionSize]; | 52 | map = new double[Constants.RegionSize, Constants.RegionSize]; |
@@ -65,7 +65,7 @@ namespace OpenSim.Data.NHibernate | |||
65 | get { return serializeTerrain(map); } | 65 | get { return serializeTerrain(map); } |
66 | set { map = parseTerrain(value); } | 66 | set { map = parseTerrain(value); } |
67 | } | 67 | } |
68 | 68 | ||
69 | public double[,] Doubles | 69 | public double[,] Doubles |
70 | { | 70 | { |
71 | get {return map;} | 71 | get {return map;} |
@@ -76,7 +76,7 @@ namespace OpenSim.Data.NHibernate | |||
76 | { | 76 | { |
77 | double[,] terret = new double[256,256]; | 77 | double[,] terret = new double[256,256]; |
78 | terret.Initialize(); | 78 | terret.Initialize(); |
79 | 79 | ||
80 | MemoryStream str = new MemoryStream(data); | 80 | MemoryStream str = new MemoryStream(data); |
81 | BinaryReader br = new BinaryReader(str); | 81 | BinaryReader br = new BinaryReader(str); |
82 | try { | 82 | try { |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.NHibernate | |||
87 | terret[x, y] = br.ReadDouble(); | 87 | terret[x, y] = br.ReadDouble(); |
88 | } | 88 | } |
89 | } | 89 | } |
90 | } | 90 | } |
91 | catch (Exception e) | 91 | catch (Exception e) |
92 | { | 92 | { |
93 | m_log.Error("Issue parsing Map", e); | 93 | m_log.Error("Issue parsing Map", e); |
@@ -99,7 +99,7 @@ namespace OpenSim.Data.NHibernate | |||
99 | { | 99 | { |
100 | MemoryStream str = new MemoryStream((int)(65536 * sizeof (double))); | 100 | MemoryStream str = new MemoryStream((int)(65536 * sizeof (double))); |
101 | BinaryWriter bw = new BinaryWriter(str); | 101 | BinaryWriter bw = new BinaryWriter(str); |
102 | 102 | ||
103 | // TODO: COMPATIBILITY - Add byte-order conversions | 103 | // TODO: COMPATIBILITY - Add byte-order conversions |
104 | for (int x = 0; x < 256; x++) | 104 | for (int x = 0; x < 256; x++) |
105 | { | 105 | { |
@@ -108,11 +108,11 @@ namespace OpenSim.Data.NHibernate | |||
108 | double height = val[x, y]; | 108 | double height = val[x, y]; |
109 | if (height <= 0.0) | 109 | if (height <= 0.0) |
110 | height = double.Epsilon; | 110 | height = double.Epsilon; |
111 | 111 | ||
112 | bw.Write(height); | 112 | bw.Write(height); |
113 | } | 113 | } |
114 | } | 114 | } |
115 | return str.ToArray(); | 115 | return str.ToArray(); |
116 | } | 116 | } |
117 | } | 117 | } |
118 | } \ No newline at end of file | 118 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs index 99de5cd..9b274f4 100644 --- a/OpenSim/Data/SQLite/SQLiteAssetData.cs +++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs | |||
@@ -141,7 +141,7 @@ namespace OpenSim.Data.SQLite | |||
141 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 141 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); |
142 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 142 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); |
143 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 143 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
144 | 144 | ||
145 | cmd.ExecuteNonQuery(); | 145 | cmd.ExecuteNonQuery(); |
146 | } | 146 | } |
147 | } | 147 | } |
@@ -155,7 +155,7 @@ namespace OpenSim.Data.SQLite | |||
155 | override public void UpdateAsset(AssetBase asset) | 155 | override public void UpdateAsset(AssetBase asset) |
156 | { | 156 | { |
157 | LogAssetLoad(asset); | 157 | LogAssetLoad(asset); |
158 | 158 | ||
159 | lock (this) | 159 | lock (this) |
160 | { | 160 | { |
161 | using (SqliteCommand cmd = new SqliteCommand(UpdateAssetSQL, m_conn)) | 161 | using (SqliteCommand cmd = new SqliteCommand(UpdateAssetSQL, m_conn)) |
@@ -167,7 +167,7 @@ namespace OpenSim.Data.SQLite | |||
167 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); | 167 | cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local)); |
168 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); | 168 | cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary)); |
169 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); | 169 | cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data)); |
170 | 170 | ||
171 | cmd.ExecuteNonQuery(); | 171 | cmd.ExecuteNonQuery(); |
172 | } | 172 | } |
173 | } | 173 | } |
@@ -269,7 +269,7 @@ namespace OpenSim.Data.SQLite | |||
269 | **********************************************************************/ | 269 | **********************************************************************/ |
270 | 270 | ||
271 | /// <summary> | 271 | /// <summary> |
272 | /// | 272 | /// |
273 | /// </summary> | 273 | /// </summary> |
274 | /// <param name="row"></param> | 274 | /// <param name="row"></param> |
275 | /// <returns></returns> | 275 | /// <returns></returns> |
@@ -301,7 +301,7 @@ namespace OpenSim.Data.SQLite | |||
301 | **********************************************************************/ | 301 | **********************************************************************/ |
302 | 302 | ||
303 | /// <summary> | 303 | /// <summary> |
304 | /// | 304 | /// |
305 | /// </summary> | 305 | /// </summary> |
306 | /// <param name="conn"></param> | 306 | /// <param name="conn"></param> |
307 | // private static void InitDB(SqliteConnection conn) | 307 | // private static void InitDB(SqliteConnection conn) |
@@ -312,7 +312,7 @@ namespace OpenSim.Data.SQLite | |||
312 | // } | 312 | // } |
313 | 313 | ||
314 | /// <summary> | 314 | /// <summary> |
315 | /// | 315 | /// |
316 | /// </summary> | 316 | /// </summary> |
317 | /// <param name="conn"></param> | 317 | /// <param name="conn"></param> |
318 | /// <param name="m"></param> | 318 | /// <param name="m"></param> |
@@ -331,10 +331,10 @@ namespace OpenSim.Data.SQLite | |||
331 | m_log.Info("[ASSET DB]: SQLite Database doesn't exist... creating"); | 331 | m_log.Info("[ASSET DB]: SQLite Database doesn't exist... creating"); |
332 | return false; | 332 | return false; |
333 | } | 333 | } |
334 | 334 | ||
335 | // if the tables are here, and we don't have a migration, | 335 | // if the tables are here, and we don't have a migration, |
336 | // set it to 1, as we're migrating off of legacy bits | 336 | // set it to 1, as we're migrating off of legacy bits |
337 | if (m.Version == 0) | 337 | if (m.Version == 0) |
338 | m.Version = 1; | 338 | m.Version = 1; |
339 | 339 | ||
340 | return true; | 340 | return true; |
@@ -343,7 +343,7 @@ namespace OpenSim.Data.SQLite | |||
343 | #region IPlugin interface | 343 | #region IPlugin interface |
344 | 344 | ||
345 | /// <summary> | 345 | /// <summary> |
346 | /// | 346 | /// |
347 | /// </summary> | 347 | /// </summary> |
348 | override public string Version | 348 | override public string Version |
349 | { | 349 | { |
diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs index dc5ba5e..ffe7644 100644 --- a/OpenSim/Data/SQLite/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs | |||
@@ -55,12 +55,12 @@ namespace OpenSim.Data.SQLite | |||
55 | public void Initialise(string connectionString) | 55 | public void Initialise(string connectionString) |
56 | { | 56 | { |
57 | m_connectionString = connectionString; | 57 | m_connectionString = connectionString; |
58 | 58 | ||
59 | m_log.Info("[ESTATE DB]: Sqlite - connecting: "+m_connectionString); | 59 | m_log.Info("[ESTATE DB]: Sqlite - connecting: "+m_connectionString); |
60 | 60 | ||
61 | m_connection = new SqliteConnection(m_connectionString); | 61 | m_connection = new SqliteConnection(m_connectionString); |
62 | m_connection.Open(); | 62 | m_connection.Open(); |
63 | 63 | ||
64 | Assembly assem = GetType().Assembly; | 64 | Assembly assem = GetType().Assembly; |
65 | Migration m = new Migration(m_connection, assem, "EstateStore"); | 65 | Migration m = new Migration(m_connection, assem, "EstateStore"); |
66 | m.Update(); | 66 | m.Update(); |
@@ -77,7 +77,7 @@ namespace OpenSim.Data.SQLite | |||
77 | if (f.Name.Substring(0, 2) == "m_") | 77 | if (f.Name.Substring(0, 2) == "m_") |
78 | m_FieldMap[f.Name.Substring(2)] = f; | 78 | m_FieldMap[f.Name.Substring(2)] = f; |
79 | } | 79 | } |
80 | 80 | ||
81 | private string[] FieldList | 81 | private string[] FieldList |
82 | { | 82 | { |
83 | get { return new List<string>(m_FieldMap.Keys).ToArray(); } | 83 | get { return new List<string>(m_FieldMap.Keys).ToArray(); } |
@@ -134,7 +134,7 @@ namespace OpenSim.Data.SQLite | |||
134 | names.Remove("EstateID"); | 134 | names.Remove("EstateID"); |
135 | 135 | ||
136 | sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( :"+String.Join(", :", names.ToArray())+")"; | 136 | sql = "insert into estate_settings ("+String.Join(",", names.ToArray())+") values ( :"+String.Join(", :", names.ToArray())+")"; |
137 | 137 | ||
138 | cmd.CommandText = sql; | 138 | cmd.CommandText = sql; |
139 | cmd.Parameters.Clear(); | 139 | cmd.Parameters.Clear(); |
140 | 140 | ||
@@ -272,16 +272,16 @@ namespace OpenSim.Data.SQLite | |||
272 | private void SaveBanList(EstateSettings es) | 272 | private void SaveBanList(EstateSettings es) |
273 | { | 273 | { |
274 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 274 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
275 | 275 | ||
276 | cmd.CommandText = "delete from estateban where EstateID = :EstateID"; | 276 | cmd.CommandText = "delete from estateban where EstateID = :EstateID"; |
277 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); | 277 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); |
278 | 278 | ||
279 | cmd.ExecuteNonQuery(); | 279 | cmd.ExecuteNonQuery(); |
280 | 280 | ||
281 | cmd.Parameters.Clear(); | 281 | cmd.Parameters.Clear(); |
282 | 282 | ||
283 | cmd.CommandText = "insert into estateban (EstateID, bannedUUID, bannedIp, bannedIpHostMask, bannedNameMask) values ( :EstateID, :bannedUUID, '', '', '' )"; | 283 | cmd.CommandText = "insert into estateban (EstateID, bannedUUID, bannedIp, bannedIpHostMask, bannedNameMask) values ( :EstateID, :bannedUUID, '', '', '' )"; |
284 | 284 | ||
285 | foreach (EstateBan b in es.EstateBans) | 285 | foreach (EstateBan b in es.EstateBans) |
286 | { | 286 | { |
287 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); | 287 | cmd.Parameters.Add(":EstateID", es.EstateID.ToString()); |
@@ -295,16 +295,16 @@ namespace OpenSim.Data.SQLite | |||
295 | void SaveUUIDList(uint EstateID, string table, LLUUID[] data) | 295 | void SaveUUIDList(uint EstateID, string table, LLUUID[] data) |
296 | { | 296 | { |
297 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); | 297 | SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); |
298 | 298 | ||
299 | cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; | 299 | cmd.CommandText = "delete from "+table+" where EstateID = :EstateID"; |
300 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); | 300 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); |
301 | 301 | ||
302 | cmd.ExecuteNonQuery(); | 302 | cmd.ExecuteNonQuery(); |
303 | 303 | ||
304 | cmd.Parameters.Clear(); | 304 | cmd.Parameters.Clear(); |
305 | 305 | ||
306 | cmd.CommandText = "insert into "+table+" (EstateID, uuid) values ( :EstateID, :uuid )"; | 306 | cmd.CommandText = "insert into "+table+" (EstateID, uuid) values ( :EstateID, :uuid )"; |
307 | 307 | ||
308 | foreach (LLUUID uuid in data) | 308 | foreach (LLUUID uuid in data) |
309 | { | 309 | { |
310 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); | 310 | cmd.Parameters.Add(":EstateID", EstateID.ToString()); |
@@ -336,7 +336,7 @@ namespace OpenSim.Data.SQLite | |||
336 | uuids.Add(uuid); | 336 | uuids.Add(uuid); |
337 | } | 337 | } |
338 | r.Close(); | 338 | r.Close(); |
339 | 339 | ||
340 | return uuids.ToArray(); | 340 | return uuids.ToArray(); |
341 | } | 341 | } |
342 | } | 342 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs index e29b99c..125b6e7 100644 --- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs | |||
@@ -50,8 +50,8 @@ namespace OpenSim.Data.SQLite | |||
50 | private SqliteDataAdapter invItemsDa; | 50 | private SqliteDataAdapter invItemsDa; |
51 | private SqliteDataAdapter invFoldersDa; | 51 | private SqliteDataAdapter invFoldersDa; |
52 | 52 | ||
53 | public void Initialise() | 53 | public void Initialise() |
54 | { | 54 | { |
55 | m_log.Info("[SQLiteInventoryData]: " + Name + " cannot be default-initialized!"); | 55 | m_log.Info("[SQLiteInventoryData]: " + Name + " cannot be default-initialized!"); |
56 | throw new PluginNotInitialisedException (Name); | 56 | throw new PluginNotInitialisedException (Name); |
57 | } | 57 | } |
@@ -105,7 +105,7 @@ namespace OpenSim.Data.SQLite | |||
105 | } | 105 | } |
106 | 106 | ||
107 | /// <summary> | 107 | /// <summary> |
108 | /// | 108 | /// |
109 | /// </summary> | 109 | /// </summary> |
110 | /// <param name="row"></param> | 110 | /// <param name="row"></param> |
111 | /// <returns></returns> | 111 | /// <returns></returns> |
@@ -150,7 +150,7 @@ namespace OpenSim.Data.SQLite | |||
150 | } | 150 | } |
151 | 151 | ||
152 | /// <summary> | 152 | /// <summary> |
153 | /// | 153 | /// |
154 | /// </summary> | 154 | /// </summary> |
155 | /// <param name="row"></param> | 155 | /// <param name="row"></param> |
156 | /// <param name="item"></param> | 156 | /// <param name="item"></param> |
@@ -302,7 +302,7 @@ namespace OpenSim.Data.SQLite | |||
302 | /// <returns>A string containing the DB provider version</returns> | 302 | /// <returns>A string containing the DB provider version</returns> |
303 | public string Version | 303 | public string Version |
304 | { | 304 | { |
305 | get | 305 | get |
306 | { | 306 | { |
307 | Module module = GetType().Module; | 307 | Module module = GetType().Module; |
308 | // string dllName = module.Assembly.ManifestModule.Name; | 308 | // string dllName = module.Assembly.ManifestModule.Name; |
@@ -419,10 +419,10 @@ namespace OpenSim.Data.SQLite | |||
419 | * - We will only need to hit the database twice instead of n times. | 419 | * - We will only need to hit the database twice instead of n times. |
420 | * - We assume the database is well-formed - no stranded/dangling folders, all folders in heirarchy owned | 420 | * - We assume the database is well-formed - no stranded/dangling folders, all folders in heirarchy owned |
421 | * by the same person, each user only has 1 inventory heirarchy | 421 | * by the same person, each user only has 1 inventory heirarchy |
422 | * - The returned list is not ordered, instead of breadth-first ordered | 422 | * - The returned list is not ordered, instead of breadth-first ordered |
423 | There are basically 2 usage cases for getFolderHeirarchy: | 423 | There are basically 2 usage cases for getFolderHeirarchy: |
424 | 1) Getting the user's entire inventory heirarchy when they log in | 424 | 1) Getting the user's entire inventory heirarchy when they log in |
425 | 2) Finding a subfolder heirarchy to delete when emptying the trash. | 425 | 2) Finding a subfolder heirarchy to delete when emptying the trash. |
426 | This implementation will pull all inventory folders from the database, and then prune away any folder that | 426 | This implementation will pull all inventory folders from the database, and then prune away any folder that |
427 | is not part of the requested sub-heirarchy. The theory is that it is cheaper to make 1 request from the | 427 | is not part of the requested sub-heirarchy. The theory is that it is cheaper to make 1 request from the |
428 | database than to make n requests. This pays off only if requested heirarchy is large. | 428 | database than to make n requests. This pays off only if requested heirarchy is large. |
@@ -449,17 +449,17 @@ namespace OpenSim.Data.SQLite | |||
449 | folderRows = inventoryFolderTable.Select(selectExp); | 449 | folderRows = inventoryFolderTable.Select(selectExp); |
450 | } | 450 | } |
451 | 451 | ||
452 | if ( folderRows!=null && folderRows.GetLength(0)>=1 ) // No result means parent folder does not exist | 452 | if (folderRows != null && folderRows.GetLength(0) >= 1) // No result means parent folder does not exist |
453 | { // or has no children | 453 | { // or has no children |
454 | /* if we're querying the root folder, just return an unordered list of all folders in the user's | 454 | /* if we're querying the root folder, just return an unordered list of all folders in the user's |
455 | * inventory | 455 | * inventory |
456 | */ | 456 | */ |
457 | if (parentFolder.ParentID == LLUUID.Zero) | 457 | if (parentFolder.ParentID == LLUUID.Zero) |
458 | { | 458 | { |
459 | foreach (DataRow row in folderRows) | 459 | foreach (DataRow row in folderRows) |
460 | { | 460 | { |
461 | InventoryFolderBase curFolder = buildFolder(row); | 461 | InventoryFolderBase curFolder = buildFolder(row); |
462 | if (curFolder.ID != parentID) // Return all folders except the parent folder of heirarchy | 462 | if (curFolder.ID != parentID) // Return all folders except the parent folder of heirarchy |
463 | folders.Add(buildFolder(row)); | 463 | folders.Add(buildFolder(row)); |
464 | } | 464 | } |
465 | } // If requesting root folder | 465 | } // If requesting root folder |
@@ -481,16 +481,16 @@ namespace OpenSim.Data.SQLite | |||
481 | InventoryFolderBase curFolder = buildFolder(row); | 481 | InventoryFolderBase curFolder = buildFolder(row); |
482 | if (curFolder.ParentID != LLUUID.Zero) // Discard root of tree - not needed | 482 | if (curFolder.ParentID != LLUUID.Zero) // Discard root of tree - not needed |
483 | { | 483 | { |
484 | if ( hashtable.ContainsKey(curFolder.ParentID ) ) | 484 | if (hashtable.ContainsKey(curFolder.ParentID)) |
485 | { | 485 | { |
486 | // Current folder already has a sibling - append to sibling list | 486 | // Current folder already has a sibling - append to sibling list |
487 | hashtable[curFolder.ParentID].Add( curFolder ); | 487 | hashtable[curFolder.ParentID].Add(curFolder); |
488 | } | 488 | } |
489 | else { | 489 | else { |
490 | List<InventoryFolderBase> siblingList = new List<InventoryFolderBase>(); | 490 | List<InventoryFolderBase> siblingList = new List<InventoryFolderBase>(); |
491 | siblingList.Add( curFolder ); | 491 | siblingList.Add(curFolder); |
492 | // Current folder has no known (yet) siblings | 492 | // Current folder has no known (yet) siblings |
493 | hashtable.Add( curFolder.ParentID, siblingList ); | 493 | hashtable.Add(curFolder.ParentID, siblingList); |
494 | } | 494 | } |
495 | } | 495 | } |
496 | } // For all inventory folders | 496 | } // For all inventory folders |
@@ -498,12 +498,12 @@ namespace OpenSim.Data.SQLite | |||
498 | // Note: Could release the ds lock here - we don't access folderRows or the database anymore. | 498 | // Note: Could release the ds lock here - we don't access folderRows or the database anymore. |
499 | // This is somewhat of a moot point as the callers of this function usually lock db anyways. | 499 | // This is somewhat of a moot point as the callers of this function usually lock db anyways. |
500 | 500 | ||
501 | if ( hashtable.ContainsKey( parentID ) ) // if requested folder does have children | 501 | if (hashtable.ContainsKey(parentID)) // if requested folder does have children |
502 | folders.AddRange( hashtable[parentID] ); | 502 | folders.AddRange(hashtable[parentID]); |
503 | 503 | ||
504 | // BreadthFirstSearch build inventory tree **Note: folders.Count is *not* static | 504 | // BreadthFirstSearch build inventory tree **Note: folders.Count is *not* static |
505 | for ( int i = 0; i < folders.Count; i++ ) | 505 | for (int i = 0; i < folders.Count; i++) |
506 | if (hashtable.ContainsKey(folders[i].ID)) | 506 | if (hashtable.ContainsKey(folders[i].ID)) |
507 | folders.AddRange(hashtable[folders[i].ID]); | 507 | folders.AddRange(hashtable[folders[i].ID]); |
508 | 508 | ||
509 | } // if requesting a subfolder heirarchy | 509 | } // if requesting a subfolder heirarchy |
@@ -601,7 +601,7 @@ namespace OpenSim.Data.SQLite | |||
601 | /// Delete all items in the specified folder | 601 | /// Delete all items in the specified folder |
602 | /// </summary> | 602 | /// </summary> |
603 | /// <param name="folderId">id of the folder, whose item content should be deleted</param> | 603 | /// <param name="folderId">id of the folder, whose item content should be deleted</param> |
604 | /// <todo>this is horribly inefficient, but I don't want to ruin the overall structure of this implementation</todo> | 604 | /// <todo>this is horribly inefficient, but I don't want to ruin the overall structure of this implementation</todo> |
605 | private void deleteItemsInFolder(LLUUID folderId) | 605 | private void deleteItemsInFolder(LLUUID folderId) |
606 | { | 606 | { |
607 | List<InventoryItemBase> items = getInventoryInFolder(Util.ToRawUuidString(folderId)); | 607 | List<InventoryItemBase> items = getInventoryInFolder(Util.ToRawUuidString(folderId)); |
@@ -743,7 +743,7 @@ namespace OpenSim.Data.SQLite | |||
743 | } | 743 | } |
744 | 744 | ||
745 | /// <summary> | 745 | /// <summary> |
746 | /// | 746 | /// |
747 | /// </summary> | 747 | /// </summary> |
748 | /// <param name="da"></param> | 748 | /// <param name="da"></param> |
749 | /// <param name="conn"></param> | 749 | /// <param name="conn"></param> |
@@ -765,7 +765,7 @@ namespace OpenSim.Data.SQLite | |||
765 | } | 765 | } |
766 | 766 | ||
767 | /// <summary> | 767 | /// <summary> |
768 | /// | 768 | /// |
769 | /// </summary> | 769 | /// </summary> |
770 | /// <param name="da"></param> | 770 | /// <param name="da"></param> |
771 | /// <param name="conn"></param> | 771 | /// <param name="conn"></param> |
@@ -787,7 +787,7 @@ namespace OpenSim.Data.SQLite | |||
787 | } | 787 | } |
788 | 788 | ||
789 | /// <summary> | 789 | /// <summary> |
790 | /// | 790 | /// |
791 | /// </summary> | 791 | /// </summary> |
792 | /// <param name="row"></param> | 792 | /// <param name="row"></param> |
793 | /// <returns></returns> | 793 | /// <returns></returns> |
@@ -804,7 +804,7 @@ namespace OpenSim.Data.SQLite | |||
804 | } | 804 | } |
805 | 805 | ||
806 | /// <summary> | 806 | /// <summary> |
807 | /// | 807 | /// |
808 | /// </summary> | 808 | /// </summary> |
809 | /// <param name="row"></param> | 809 | /// <param name="row"></param> |
810 | /// <param name="folder"></param> | 810 | /// <param name="folder"></param> |
@@ -819,7 +819,7 @@ namespace OpenSim.Data.SQLite | |||
819 | } | 819 | } |
820 | 820 | ||
821 | /// <summary> | 821 | /// <summary> |
822 | /// | 822 | /// |
823 | /// </summary> | 823 | /// </summary> |
824 | /// <param name="row"></param> | 824 | /// <param name="row"></param> |
825 | /// <param name="folder"></param> | 825 | /// <param name="folder"></param> |
@@ -836,7 +836,7 @@ namespace OpenSim.Data.SQLite | |||
836 | **********************************************************************/ | 836 | **********************************************************************/ |
837 | 837 | ||
838 | /// <summary> | 838 | /// <summary> |
839 | /// | 839 | /// |
840 | /// </summary> | 840 | /// </summary> |
841 | /// <param name="conn"></param> | 841 | /// <param name="conn"></param> |
842 | // private static void InitDB(SqliteConnection conn) | 842 | // private static void InitDB(SqliteConnection conn) |
@@ -852,7 +852,7 @@ namespace OpenSim.Data.SQLite | |||
852 | // } | 852 | // } |
853 | 853 | ||
854 | /// <summary> | 854 | /// <summary> |
855 | /// | 855 | /// |
856 | /// </summary> | 856 | /// </summary> |
857 | /// <param name="conn"></param> | 857 | /// <param name="conn"></param> |
858 | /// <param name="m"></param> | 858 | /// <param name="m"></param> |
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs index b937272..a44b892 100644 --- a/OpenSim/Data/SQLite/SQLiteRegionData.cs +++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs | |||
@@ -501,7 +501,7 @@ namespace OpenSim.Data.SQLite | |||
501 | } | 501 | } |
502 | 502 | ||
503 | /// <summary> | 503 | /// <summary> |
504 | /// | 504 | /// |
505 | /// </summary> | 505 | /// </summary> |
506 | /// <param name="globalID"></param> | 506 | /// <param name="globalID"></param> |
507 | public void RemoveLandObject(LLUUID globalID) | 507 | public void RemoveLandObject(LLUUID globalID) |
@@ -523,7 +523,7 @@ namespace OpenSim.Data.SQLite | |||
523 | } | 523 | } |
524 | 524 | ||
525 | /// <summary> | 525 | /// <summary> |
526 | /// | 526 | /// |
527 | /// </summary> | 527 | /// </summary> |
528 | /// <param name="parcel"></param> | 528 | /// <param name="parcel"></param> |
529 | public void StoreLandObject(ILandObject parcel) | 529 | public void StoreLandObject(ILandObject parcel) |
@@ -564,7 +564,7 @@ namespace OpenSim.Data.SQLite | |||
564 | } | 564 | } |
565 | 565 | ||
566 | /// <summary> | 566 | /// <summary> |
567 | /// | 567 | /// |
568 | /// </summary> | 568 | /// </summary> |
569 | /// <param name="regionUUID"></param> | 569 | /// <param name="regionUUID"></param> |
570 | /// <returns></returns> | 570 | /// <returns></returns> |
@@ -594,7 +594,7 @@ namespace OpenSim.Data.SQLite | |||
594 | } | 594 | } |
595 | 595 | ||
596 | /// <summary> | 596 | /// <summary> |
597 | /// | 597 | /// |
598 | /// </summary> | 598 | /// </summary> |
599 | public void Commit() | 599 | public void Commit() |
600 | { | 600 | { |
@@ -629,7 +629,7 @@ namespace OpenSim.Data.SQLite | |||
629 | **********************************************************************/ | 629 | **********************************************************************/ |
630 | 630 | ||
631 | /// <summary> | 631 | /// <summary> |
632 | /// | 632 | /// |
633 | /// </summary> | 633 | /// </summary> |
634 | /// <param name="dt"></param> | 634 | /// <param name="dt"></param> |
635 | /// <param name="name"></param> | 635 | /// <param name="name"></param> |
@@ -877,7 +877,7 @@ namespace OpenSim.Data.SQLite | |||
877 | **********************************************************************/ | 877 | **********************************************************************/ |
878 | 878 | ||
879 | /// <summary> | 879 | /// <summary> |
880 | /// | 880 | /// |
881 | /// </summary> | 881 | /// </summary> |
882 | /// <param name="row"></param> | 882 | /// <param name="row"></param> |
883 | /// <returns></returns> | 883 | /// <returns></returns> |
@@ -1071,7 +1071,7 @@ namespace OpenSim.Data.SQLite | |||
1071 | newData.UserLookAt = | 1071 | newData.UserLookAt = |
1072 | new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]), | 1072 | new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]), |
1073 | Convert.ToSingle(row["UserLookAtZ"])); | 1073 | Convert.ToSingle(row["UserLookAtZ"])); |
1074 | 1074 | ||
1075 | } | 1075 | } |
1076 | catch (InvalidCastException) | 1076 | catch (InvalidCastException) |
1077 | { | 1077 | { |
@@ -1132,7 +1132,7 @@ namespace OpenSim.Data.SQLite | |||
1132 | } | 1132 | } |
1133 | 1133 | ||
1134 | /// <summary> | 1134 | /// <summary> |
1135 | /// | 1135 | /// |
1136 | /// </summary> | 1136 | /// </summary> |
1137 | /// <param name="val"></param> | 1137 | /// <param name="val"></param> |
1138 | /// <returns></returns> | 1138 | /// <returns></returns> |
@@ -1166,7 +1166,7 @@ namespace OpenSim.Data.SQLite | |||
1166 | // } | 1166 | // } |
1167 | 1167 | ||
1168 | /// <summary> | 1168 | /// <summary> |
1169 | /// | 1169 | /// |
1170 | /// </summary> | 1170 | /// </summary> |
1171 | /// <param name="row"></param> | 1171 | /// <param name="row"></param> |
1172 | /// <param name="prim"></param> | 1172 | /// <param name="prim"></param> |
@@ -1233,7 +1233,7 @@ namespace OpenSim.Data.SQLite | |||
1233 | } | 1233 | } |
1234 | 1234 | ||
1235 | /// <summary> | 1235 | /// <summary> |
1236 | /// | 1236 | /// |
1237 | /// </summary> | 1237 | /// </summary> |
1238 | /// <param name="row"></param> | 1238 | /// <param name="row"></param> |
1239 | /// <param name="taskItem"></param> | 1239 | /// <param name="taskItem"></param> |
@@ -1263,7 +1263,7 @@ namespace OpenSim.Data.SQLite | |||
1263 | } | 1263 | } |
1264 | 1264 | ||
1265 | /// <summary> | 1265 | /// <summary> |
1266 | /// | 1266 | /// |
1267 | /// </summary> | 1267 | /// </summary> |
1268 | /// <param name="row"></param> | 1268 | /// <param name="row"></param> |
1269 | /// <param name="land"></param> | 1269 | /// <param name="land"></param> |
@@ -1308,7 +1308,7 @@ namespace OpenSim.Data.SQLite | |||
1308 | } | 1308 | } |
1309 | 1309 | ||
1310 | /// <summary> | 1310 | /// <summary> |
1311 | /// | 1311 | /// |
1312 | /// </summary> | 1312 | /// </summary> |
1313 | /// <param name="row"></param> | 1313 | /// <param name="row"></param> |
1314 | /// <param name="entry"></param> | 1314 | /// <param name="entry"></param> |
@@ -1321,7 +1321,7 @@ namespace OpenSim.Data.SQLite | |||
1321 | } | 1321 | } |
1322 | 1322 | ||
1323 | /// <summary> | 1323 | /// <summary> |
1324 | /// | 1324 | /// |
1325 | /// </summary> | 1325 | /// </summary> |
1326 | /// <param name="row"></param> | 1326 | /// <param name="row"></param> |
1327 | /// <returns></returns> | 1327 | /// <returns></returns> |
@@ -1376,7 +1376,7 @@ namespace OpenSim.Data.SQLite | |||
1376 | } | 1376 | } |
1377 | 1377 | ||
1378 | /// <summary> | 1378 | /// <summary> |
1379 | /// | 1379 | /// |
1380 | /// </summary> | 1380 | /// </summary> |
1381 | /// <param name="row"></param> | 1381 | /// <param name="row"></param> |
1382 | /// <param name="prim"></param> | 1382 | /// <param name="prim"></param> |
@@ -1418,7 +1418,7 @@ namespace OpenSim.Data.SQLite | |||
1418 | } | 1418 | } |
1419 | 1419 | ||
1420 | /// <summary> | 1420 | /// <summary> |
1421 | /// | 1421 | /// |
1422 | /// </summary> | 1422 | /// </summary> |
1423 | /// <param name="prim"></param> | 1423 | /// <param name="prim"></param> |
1424 | /// <param name="sceneGroupID"></param> | 1424 | /// <param name="sceneGroupID"></param> |
@@ -1574,7 +1574,7 @@ namespace OpenSim.Data.SQLite | |||
1574 | } | 1574 | } |
1575 | 1575 | ||
1576 | /// <summary> | 1576 | /// <summary> |
1577 | /// | 1577 | /// |
1578 | /// </summary> | 1578 | /// </summary> |
1579 | /// <param name="dt">Data Table</param> | 1579 | /// <param name="dt">Data Table</param> |
1580 | /// <returns></returns> | 1580 | /// <returns></returns> |
@@ -1631,7 +1631,7 @@ namespace OpenSim.Data.SQLite | |||
1631 | } | 1631 | } |
1632 | 1632 | ||
1633 | /// <summary> | 1633 | /// <summary> |
1634 | /// | 1634 | /// |
1635 | /// </summary> | 1635 | /// </summary> |
1636 | /// <param name="da"></param> | 1636 | /// <param name="da"></param> |
1637 | /// <param name="conn"></param> | 1637 | /// <param name="conn"></param> |
@@ -1650,7 +1650,7 @@ namespace OpenSim.Data.SQLite | |||
1650 | } | 1650 | } |
1651 | 1651 | ||
1652 | /// <summary> | 1652 | /// <summary> |
1653 | /// | 1653 | /// |
1654 | /// </summary> | 1654 | /// </summary> |
1655 | /// <param name="da"></param> | 1655 | /// <param name="da"></param> |
1656 | /// <param name="conn"></param> | 1656 | /// <param name="conn"></param> |
@@ -1669,7 +1669,7 @@ namespace OpenSim.Data.SQLite | |||
1669 | } | 1669 | } |
1670 | 1670 | ||
1671 | /// <summary> | 1671 | /// <summary> |
1672 | /// | 1672 | /// |
1673 | /// </summary> | 1673 | /// </summary> |
1674 | /// <param name="da"></param> | 1674 | /// <param name="da"></param> |
1675 | /// <param name="conn"></param> | 1675 | /// <param name="conn"></param> |
@@ -1680,7 +1680,7 @@ namespace OpenSim.Data.SQLite | |||
1680 | } | 1680 | } |
1681 | 1681 | ||
1682 | /// <summary> | 1682 | /// <summary> |
1683 | /// | 1683 | /// |
1684 | /// </summary> | 1684 | /// </summary> |
1685 | /// <param name="da"></param> | 1685 | /// <param name="da"></param> |
1686 | /// <param name="conn"></param> | 1686 | /// <param name="conn"></param> |
@@ -1694,7 +1694,7 @@ namespace OpenSim.Data.SQLite | |||
1694 | } | 1694 | } |
1695 | 1695 | ||
1696 | /// <summary> | 1696 | /// <summary> |
1697 | /// | 1697 | /// |
1698 | /// </summary> | 1698 | /// </summary> |
1699 | /// <param name="da"></param> | 1699 | /// <param name="da"></param> |
1700 | /// <param name="conn"></param> | 1700 | /// <param name="conn"></param> |
@@ -1705,7 +1705,7 @@ namespace OpenSim.Data.SQLite | |||
1705 | } | 1705 | } |
1706 | 1706 | ||
1707 | /// <summary> | 1707 | /// <summary> |
1708 | /// | 1708 | /// |
1709 | /// </summary> | 1709 | /// </summary> |
1710 | /// <param name="da"></param> | 1710 | /// <param name="da"></param> |
1711 | /// <param name="conn"></param> | 1711 | /// <param name="conn"></param> |
@@ -1799,7 +1799,7 @@ namespace OpenSim.Data.SQLite | |||
1799 | // } | 1799 | // } |
1800 | 1800 | ||
1801 | /// <summary> | 1801 | /// <summary> |
1802 | /// | 1802 | /// |
1803 | /// </summary> | 1803 | /// </summary> |
1804 | /// <param name="conn"></param> | 1804 | /// <param name="conn"></param> |
1805 | /// <param name="m"></param> | 1805 | /// <param name="m"></param> |
@@ -1845,8 +1845,8 @@ namespace OpenSim.Data.SQLite | |||
1845 | // if we've gotten this far, and our version is still 0, | 1845 | // if we've gotten this far, and our version is still 0, |
1846 | // it's because the migration was never done, so | 1846 | // it's because the migration was never done, so |
1847 | // initialize to 1 just to sync up to where we should be. | 1847 | // initialize to 1 just to sync up to where we should be. |
1848 | 1848 | ||
1849 | if (m.Version == 0) | 1849 | if (m.Version == 0) |
1850 | m.Version = 1; | 1850 | m.Version = 1; |
1851 | 1851 | ||
1852 | // pDa.Fill(tmpDS, "prims"); | 1852 | // pDa.Fill(tmpDS, "prims"); |
diff --git a/OpenSim/Data/SQLite/SQLiteUserData.cs b/OpenSim/Data/SQLite/SQLiteUserData.cs index 910d313..08a97f09 100644 --- a/OpenSim/Data/SQLite/SQLiteUserData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserData.cs | |||
@@ -65,8 +65,8 @@ namespace OpenSim.Data.SQLite | |||
65 | private SqliteDataAdapter daf; | 65 | private SqliteDataAdapter daf; |
66 | SqliteConnection g_conn; | 66 | SqliteConnection g_conn; |
67 | 67 | ||
68 | public override void Initialise() | 68 | public override void Initialise() |
69 | { | 69 | { |
70 | m_log.Info("[SQLiteUserData]: " + Name + " cannot be default-initialized!"); | 70 | m_log.Info("[SQLiteUserData]: " + Name + " cannot be default-initialized!"); |
71 | throw new PluginNotInitialisedException (Name); | 71 | throw new PluginNotInitialisedException (Name); |
72 | } | 72 | } |
@@ -93,7 +93,7 @@ namespace OpenSim.Data.SQLite | |||
93 | 93 | ||
94 | Assembly assem = GetType().Assembly; | 94 | Assembly assem = GetType().Assembly; |
95 | Migration m = new Migration(g_conn, assem, "UserStore"); | 95 | Migration m = new Migration(g_conn, assem, "UserStore"); |
96 | 96 | ||
97 | // TODO: remove this after rev 6000 | 97 | // TODO: remove this after rev 6000 |
98 | TestTables(conn, m); | 98 | TestTables(conn, m); |
99 | 99 | ||
@@ -130,7 +130,7 @@ namespace OpenSim.Data.SQLite | |||
130 | return; | 130 | return; |
131 | } | 131 | } |
132 | 132 | ||
133 | public override void Dispose () {} | 133 | public override void Dispose () {} |
134 | 134 | ||
135 | /// <summary> | 135 | /// <summary> |
136 | /// see IUserDataPlugin, | 136 | /// see IUserDataPlugin, |
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLite | |||
308 | } | 308 | } |
309 | 309 | ||
310 | /// <summary> | 310 | /// <summary> |
311 | /// | 311 | /// |
312 | /// </summary> | 312 | /// </summary> |
313 | /// <param name="queryID"></param> | 313 | /// <param name="queryID"></param> |
314 | /// <param name="query"></param> | 314 | /// <param name="query"></param> |
@@ -570,7 +570,7 @@ namespace OpenSim.Data.SQLite | |||
570 | } | 570 | } |
571 | return aa; | 571 | return aa; |
572 | } | 572 | } |
573 | 573 | ||
574 | /// <summary> | 574 | /// <summary> |
575 | /// Update a user appearence | 575 | /// Update a user appearence |
576 | /// </summary> | 576 | /// </summary> |
@@ -802,7 +802,7 @@ namespace OpenSim.Data.SQLite | |||
802 | } | 802 | } |
803 | 803 | ||
804 | /// <summary> | 804 | /// <summary> |
805 | /// | 805 | /// |
806 | /// </summary> | 806 | /// </summary> |
807 | /// <param name="row"></param> | 807 | /// <param name="row"></param> |
808 | /// <param name="user"></param> | 808 | /// <param name="user"></param> |
@@ -853,7 +853,7 @@ namespace OpenSim.Data.SQLite | |||
853 | } | 853 | } |
854 | 854 | ||
855 | /// <summary> | 855 | /// <summary> |
856 | /// | 856 | /// |
857 | /// </summary> | 857 | /// </summary> |
858 | /// <param name="row"></param> | 858 | /// <param name="row"></param> |
859 | /// <returns></returns> | 859 | /// <returns></returns> |
@@ -881,7 +881,7 @@ namespace OpenSim.Data.SQLite | |||
881 | } | 881 | } |
882 | 882 | ||
883 | /// <summary> | 883 | /// <summary> |
884 | /// | 884 | /// |
885 | /// </summary> | 885 | /// </summary> |
886 | /// <param name="row"></param> | 886 | /// <param name="row"></param> |
887 | /// <param name="ua"></param> | 887 | /// <param name="ua"></param> |
@@ -914,7 +914,7 @@ namespace OpenSim.Data.SQLite | |||
914 | **********************************************************************/ | 914 | **********************************************************************/ |
915 | 915 | ||
916 | /// <summary> | 916 | /// <summary> |
917 | /// | 917 | /// |
918 | /// </summary> | 918 | /// </summary> |
919 | /// <param name="da"></param> | 919 | /// <param name="da"></param> |
920 | /// <param name="conn"></param> | 920 | /// <param name="conn"></param> |
@@ -933,7 +933,7 @@ namespace OpenSim.Data.SQLite | |||
933 | } | 933 | } |
934 | 934 | ||
935 | /// <summary> | 935 | /// <summary> |
936 | /// | 936 | /// |
937 | /// </summary> | 937 | /// </summary> |
938 | /// <param name="daf"></param> | 938 | /// <param name="daf"></param> |
939 | /// <param name="conn"></param> | 939 | /// <param name="conn"></param> |
@@ -954,7 +954,7 @@ namespace OpenSim.Data.SQLite | |||
954 | } | 954 | } |
955 | 955 | ||
956 | /// <summary> | 956 | /// <summary> |
957 | /// | 957 | /// |
958 | /// </summary> | 958 | /// </summary> |
959 | /// <param name="conn"></param> | 959 | /// <param name="conn"></param> |
960 | private static void InitDB(SqliteConnection conn) | 960 | private static void InitDB(SqliteConnection conn) |
@@ -990,7 +990,7 @@ namespace OpenSim.Data.SQLite | |||
990 | } | 990 | } |
991 | 991 | ||
992 | /// <summary> | 992 | /// <summary> |
993 | /// | 993 | /// |
994 | /// </summary> | 994 | /// </summary> |
995 | /// <param name="conn"></param> | 995 | /// <param name="conn"></param> |
996 | /// <param name="m"></param> | 996 | /// <param name="m"></param> |
@@ -1016,7 +1016,7 @@ namespace OpenSim.Data.SQLite | |||
1016 | return false; | 1016 | return false; |
1017 | } | 1017 | } |
1018 | 1018 | ||
1019 | if (m.Version == 0) | 1019 | if (m.Version == 0) |
1020 | m.Version = 1; | 1020 | m.Version = 1; |
1021 | 1021 | ||
1022 | return true; | 1022 | return true; |
diff --git a/OpenSim/Data/UserDataBase.cs b/OpenSim/Data/UserDataBase.cs index e604bfd..b984c10 100644 --- a/OpenSim/Data/UserDataBase.cs +++ b/OpenSim/Data/UserDataBase.cs | |||
@@ -75,7 +75,7 @@ namespace OpenSim.Data | |||
75 | public abstract void AddAttachment(LLUUID user, LLUUID item); | 75 | public abstract void AddAttachment(LLUUID user, LLUUID item); |
76 | public abstract void RemoveAttachment(LLUUID user, LLUUID item); | 76 | public abstract void RemoveAttachment(LLUUID user, LLUUID item); |
77 | public abstract List<LLUUID> GetAttachments(LLUUID user); | 77 | public abstract List<LLUUID> GetAttachments(LLUUID user); |
78 | 78 | ||
79 | public abstract string Version {get;} | 79 | public abstract string Version {get;} |
80 | public abstract string Name {get;} | 80 | public abstract string Name {get;} |
81 | public abstract void Initialise(string connect); | 81 | public abstract void Initialise(string connect); |
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs index 4456138..3133f83 100644 --- a/OpenSim/Framework/AvatarAppearance.cs +++ b/OpenSim/Framework/AvatarAppearance.cs | |||
@@ -371,7 +371,7 @@ namespace OpenSim.Framework | |||
371 | VisualParams = (byte[])h["visual_params"]; | 371 | VisualParams = (byte[])h["visual_params"]; |
372 | Texture = new LLObject.TextureEntry((byte[])h["texture"], 0, ((byte[])h["texture"]).Length); | 372 | Texture = new LLObject.TextureEntry((byte[])h["texture"], 0, ((byte[])h["texture"]).Length); |
373 | AvatarHeight = (float)Convert.ToDouble((string)h["avatar_height"]); | 373 | AvatarHeight = (float)Convert.ToDouble((string)h["avatar_height"]); |
374 | 374 | ||
375 | m_wearables = new AvatarWearable[MAX_WEARABLES]; | 375 | m_wearables = new AvatarWearable[MAX_WEARABLES]; |
376 | for (int i = 0; i < MAX_WEARABLES; i++) | 376 | for (int i = 0; i < MAX_WEARABLES; i++) |
377 | { | 377 | { |
diff --git a/OpenSim/Framework/Cache.cs b/OpenSim/Framework/Cache.cs index d002530..427072d 100644 --- a/OpenSim/Framework/Cache.cs +++ b/OpenSim/Framework/Cache.cs | |||
@@ -380,7 +380,7 @@ namespace Opensim.Framework | |||
380 | default: | 380 | default: |
381 | return; | 381 | return; |
382 | } | 382 | } |
383 | 383 | ||
384 | Store(index, data, container); | 384 | Store(index, data, container); |
385 | } | 385 | } |
386 | 386 | ||
@@ -403,7 +403,7 @@ namespace Opensim.Framework | |||
403 | if ((m_Flags & CacheFlags.AllowUpdate) != 0) | 403 | if ((m_Flags & CacheFlags.AllowUpdate) != 0) |
404 | { | 404 | { |
405 | item = GetItem(index); | 405 | item = GetItem(index); |
406 | 406 | ||
407 | item.hits++; | 407 | item.hits++; |
408 | item.lastUsed = DateTime.Now; | 408 | item.lastUsed = DateTime.Now; |
409 | if (m_DefaultTTL.Ticks != 0) | 409 | if (m_DefaultTTL.Ticks != 0) |
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 6eff690..e924b3f 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs | |||
@@ -143,10 +143,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
143 | public void Clear() | 143 | public void Clear() |
144 | { | 144 | { |
145 | m_log.Info("[ASSET CACHE]: Clearing Asset cache"); | 145 | m_log.Info("[ASSET CACHE]: Clearing Asset cache"); |
146 | 146 | ||
147 | if (StatsManager.SimExtraStats != null) | 147 | if (StatsManager.SimExtraStats != null) |
148 | StatsManager.SimExtraStats.ClearAssetCacheStatistics(); | 148 | StatsManager.SimExtraStats.ClearAssetCacheStatistics(); |
149 | 149 | ||
150 | Initialize(); | 150 | Initialize(); |
151 | } | 151 | } |
152 | 152 | ||
@@ -365,9 +365,9 @@ namespace OpenSim.Framework.Communications.Cache | |||
365 | } | 365 | } |
366 | } | 366 | } |
367 | else | 367 | else |
368 | { | 368 | { |
369 | if (!Assets.ContainsKey(asset.FullID)) | 369 | if (!Assets.ContainsKey(asset.FullID)) |
370 | { | 370 | { |
371 | AssetInfo assetInf = new AssetInfo(asset); | 371 | AssetInfo assetInf = new AssetInfo(asset); |
372 | Assets.Add(assetInf.FullID, assetInf); | 372 | Assets.Add(assetInf.FullID, assetInf); |
373 | 373 | ||
@@ -382,7 +382,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
382 | } | 382 | } |
383 | } | 383 | } |
384 | 384 | ||
385 | /// <summary> | 385 | /// <summary> |
386 | /// Allows you to clear a specific asset by uuid out | 386 | /// Allows you to clear a specific asset by uuid out |
387 | /// of the asset cache. This is needed because the osdynamic | 387 | /// of the asset cache. This is needed because the osdynamic |
388 | /// texture code grows the asset cache without bounds. The | 388 | /// texture code grows the asset cache without bounds. The |
@@ -399,8 +399,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
399 | if (Textures.ContainsKey(uuid)) | 399 | if (Textures.ContainsKey(uuid)) |
400 | { | 400 | { |
401 | Textures.Remove(uuid); | 401 | Textures.Remove(uuid); |
402 | } | 402 | } |
403 | else if (Assets.ContainsKey(uuid)) | 403 | else if (Assets.ContainsKey(uuid)) |
404 | { | 404 | { |
405 | Assets.Remove(uuid); | 405 | Assets.Remove(uuid); |
406 | } | 406 | } |
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs index ed5b896..2c8e685 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
57 | /// <param name="req"></param> | 57 | /// <param name="req"></param> |
58 | /// <returns></returns> | 58 | /// <returns></returns> |
59 | /// <exception cref="System.Exception"> | 59 | /// <exception cref="System.Exception"> |
60 | /// Thrown if the request failed for some other reason than that the | 60 | /// Thrown if the request failed for some other reason than that the |
61 | /// asset cannot be found. | 61 | /// asset cannot be found. |
62 | /// </exception> | 62 | /// </exception> |
63 | protected abstract AssetBase GetAsset(AssetRequest req); | 63 | protected abstract AssetBase GetAsset(AssetRequest req); |
@@ -70,7 +70,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
70 | protected virtual void ProcessRequest(AssetRequest req) | 70 | protected virtual void ProcessRequest(AssetRequest req) |
71 | { | 71 | { |
72 | AssetBase asset; | 72 | AssetBase asset; |
73 | 73 | ||
74 | try | 74 | try |
75 | { | 75 | { |
76 | asset = GetAsset(req); | 76 | asset = GetAsset(req); |
@@ -78,12 +78,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
78 | catch (Exception e) | 78 | catch (Exception e) |
79 | { | 79 | { |
80 | m_log.ErrorFormat("[ASSET]: Asset request for {0} threw exception {1}", req.AssetID, e); | 80 | m_log.ErrorFormat("[ASSET]: Asset request for {0} threw exception {1}", req.AssetID, e); |
81 | 81 | ||
82 | if (StatsManager.SimExtraStats != null) | 82 | if (StatsManager.SimExtraStats != null) |
83 | StatsManager.SimExtraStats.AddAssetServiceRequestFailure(); | 83 | StatsManager.SimExtraStats.AddAssetServiceRequestFailure(); |
84 | 84 | ||
85 | m_receiver.AssetNotFound(req.AssetID, req.IsTexture); | 85 | m_receiver.AssetNotFound(req.AssetID, req.IsTexture); |
86 | 86 | ||
87 | return; | 87 | return; |
88 | } | 88 | } |
89 | 89 | ||
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index 57f5e76..c337907 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -91,8 +91,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
91 | get { return m_session_id; } | 91 | get { return m_session_id; } |
92 | set { m_session_id = value; } | 92 | set { m_session_id = value; } |
93 | } | 93 | } |
94 | private LLUUID m_session_id = LLUUID.Zero; | 94 | private LLUUID m_session_id = LLUUID.Zero; |
95 | 95 | ||
96 | /// <summary> | 96 | /// <summary> |
97 | /// Constructor | 97 | /// Constructor |
98 | /// </summary> | 98 | /// </summary> |
@@ -172,7 +172,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
172 | } | 172 | } |
173 | } | 173 | } |
174 | } | 174 | } |
175 | 175 | ||
176 | /// <summary> | 176 | /// <summary> |
177 | /// Drop all cached inventory. | 177 | /// Drop all cached inventory. |
178 | /// </summary> | 178 | /// </summary> |
diff --git a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs index 4206cae..9cccf66 100644 --- a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs +++ b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs | |||
@@ -60,7 +60,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
60 | rc.AddQueryParameter("texture"); | 60 | rc.AddQueryParameter("texture"); |
61 | 61 | ||
62 | rc.RequestMethod = "GET"; | 62 | rc.RequestMethod = "GET"; |
63 | 63 | ||
64 | Stream s = rc.Request(); | 64 | Stream s = rc.Request(); |
65 | 65 | ||
66 | if (s.Length > 0) | 66 | if (s.Length > 0) |
diff --git a/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs b/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs index d7de9d6..61cfc1a 100644 --- a/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs +++ b/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs | |||
@@ -37,19 +37,19 @@ namespace OpenSim.Framework.Communications.Cache | |||
37 | public class InventoryFolderImpl : InventoryFolderBase | 37 | public class InventoryFolderImpl : InventoryFolderBase |
38 | { | 38 | { |
39 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 39 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
40 | 40 | ||
41 | public static readonly string PATH_DELIMITER = "/"; | 41 | public static readonly string PATH_DELIMITER = "/"; |
42 | 42 | ||
43 | /// <summary> | 43 | /// <summary> |
44 | /// Items that are contained in this folder | 44 | /// Items that are contained in this folder |
45 | /// </summary> | 45 | /// </summary> |
46 | public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>(); | 46 | public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>(); |
47 | 47 | ||
48 | /// <summary> | 48 | /// <summary> |
49 | /// Child folders that are contained in this folder | 49 | /// Child folders that are contained in this folder |
50 | /// </summary> | 50 | /// </summary> |
51 | public Dictionary<LLUUID, InventoryFolderImpl> SubFolders = new Dictionary<LLUUID, InventoryFolderImpl>(); | 51 | public Dictionary<LLUUID, InventoryFolderImpl> SubFolders = new Dictionary<LLUUID, InventoryFolderImpl>(); |
52 | 52 | ||
53 | // Constructors | 53 | // Constructors |
54 | public InventoryFolderImpl(InventoryFolderBase folderbase) | 54 | public InventoryFolderImpl(InventoryFolderBase folderbase) |
55 | { | 55 | { |
@@ -195,15 +195,15 @@ namespace OpenSim.Framework.Communications.Cache | |||
195 | 195 | ||
196 | return null; | 196 | return null; |
197 | } | 197 | } |
198 | 198 | ||
199 | /// <summary> | 199 | /// <summary> |
200 | /// Find a folder given a PATH_DELIMITOR delimited path starting from this folder | 200 | /// Find a folder given a PATH_DELIMITOR delimited path starting from this folder |
201 | /// | 201 | /// |
202 | /// This method does not handle paths that contain multiple delimitors | 202 | /// This method does not handle paths that contain multiple delimitors |
203 | /// | 203 | /// |
204 | /// FIXME: We do not yet handle situations where folders have the same name. We could handle this by some | 204 | /// FIXME: We do not yet handle situations where folders have the same name. We could handle this by some |
205 | /// XPath like expression | 205 | /// XPath like expression |
206 | /// | 206 | /// |
207 | /// FIXME: Delimitors which occur in names themselves are not currently escapable. | 207 | /// FIXME: Delimitors which occur in names themselves are not currently escapable. |
208 | /// </summary> | 208 | /// </summary> |
209 | /// <param name="path"> | 209 | /// <param name="path"> |
@@ -214,7 +214,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
214 | { | 214 | { |
215 | if (path == string.Empty) | 215 | if (path == string.Empty) |
216 | return this; | 216 | return this; |
217 | 217 | ||
218 | string[] components = path.Split(new string[] { PATH_DELIMITER }, 2, StringSplitOptions.None); | 218 | string[] components = path.Split(new string[] { PATH_DELIMITER }, 2, StringSplitOptions.None); |
219 | 219 | ||
220 | lock (SubFolders) | 220 | lock (SubFolders) |
@@ -228,19 +228,19 @@ namespace OpenSim.Framework.Communications.Cache | |||
228 | return folder; | 228 | return folder; |
229 | } | 229 | } |
230 | } | 230 | } |
231 | 231 | ||
232 | // We didn't find a folder with the given name | 232 | // We didn't find a folder with the given name |
233 | return null; | 233 | return null; |
234 | } | 234 | } |
235 | 235 | ||
236 | /// <summary> | 236 | /// <summary> |
237 | /// Find an item given a PATH_DELIMITOR delimited path starting from this folder. | 237 | /// Find an item given a PATH_DELIMITOR delimited path starting from this folder. |
238 | /// | 238 | /// |
239 | /// This method does not handle paths that contain multiple delimitors | 239 | /// This method does not handle paths that contain multiple delimitors |
240 | /// | 240 | /// |
241 | /// FIXME: We do not yet handle situations where folders or items have the same name. We could handle this by some | 241 | /// FIXME: We do not yet handle situations where folders or items have the same name. We could handle this by some |
242 | /// XPath like expression | 242 | /// XPath like expression |
243 | /// | 243 | /// |
244 | /// FIXME: Delimitors which occur in names themselves are not currently escapable. | 244 | /// FIXME: Delimitors which occur in names themselves are not currently escapable. |
245 | /// </summary> | 245 | /// </summary> |
246 | /// <param name="path"> | 246 | /// <param name="path"> |
@@ -248,7 +248,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
248 | /// </param> | 248 | /// </param> |
249 | /// <returns>null if the item is not found</returns> | 249 | /// <returns>null if the item is not found</returns> |
250 | public InventoryItemBase FindItemByPath(string path) | 250 | public InventoryItemBase FindItemByPath(string path) |
251 | { | 251 | { |
252 | string[] components = path.Split(new string[] { PATH_DELIMITER }, 2, StringSplitOptions.None); | 252 | string[] components = path.Split(new string[] { PATH_DELIMITER }, 2, StringSplitOptions.None); |
253 | 253 | ||
254 | if (components.Length == 1) | 254 | if (components.Length == 1) |
@@ -263,7 +263,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
263 | } | 263 | } |
264 | } | 264 | } |
265 | else | 265 | else |
266 | { | 266 | { |
267 | lock (SubFolders) | 267 | lock (SubFolders) |
268 | { | 268 | { |
269 | foreach (InventoryFolderImpl folder in SubFolders.Values) | 269 | foreach (InventoryFolderImpl folder in SubFolders.Values) |
@@ -273,10 +273,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
273 | } | 273 | } |
274 | } | 274 | } |
275 | } | 275 | } |
276 | 276 | ||
277 | // We didn't find an item or intermediate folder with the given name | 277 | // We didn't find an item or intermediate folder with the given name |
278 | return null; | 278 | return null; |
279 | } | 279 | } |
280 | 280 | ||
281 | /// <summary> | 281 | /// <summary> |
282 | /// Return a copy of the list of child items in this folder | 282 | /// Return a copy of the list of child items in this folder |
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs index 1360aa3..4e3840b 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs | |||
@@ -90,7 +90,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
90 | 90 | ||
91 | m_log.WarnFormat( | 91 | m_log.WarnFormat( |
92 | "[USER CACHE]: Tried to remove the profile of user {0}, but this was not in the scene", userId); | 92 | "[USER CACHE]: Tried to remove the profile of user {0}, but this was not in the scene", userId); |
93 | 93 | ||
94 | return false; | 94 | return false; |
95 | } | 95 | } |
96 | 96 | ||
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index 1aa8eb0..24fe0f4 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -422,7 +422,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
422 | mapLayer.Right = 5000; | 422 | mapLayer.Right = 5000; |
423 | mapLayer.Top = 5000; | 423 | mapLayer.Top = 5000; |
424 | mapLayer.ImageID = new LLUUID("00000000-0000-1111-9999-000000000006"); | 424 | mapLayer.ImageID = new LLUUID("00000000-0000-1111-9999-000000000006"); |
425 | 425 | ||
426 | return mapLayer; | 426 | return mapLayer; |
427 | } | 427 | } |
428 | 428 | ||
@@ -783,7 +783,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
783 | 783 | ||
784 | // TODO: probably make this a better set of extensions here | 784 | // TODO: probably make this a better set of extensions here |
785 | string extension = ".jp2"; | 785 | string extension = ".jp2"; |
786 | if (m_invType != "image") | 786 | if (m_invType != "image") |
787 | { | 787 | { |
788 | extension = ".dat"; | 788 | extension = ".dat"; |
789 | } | 789 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDRemoteParcelResponse.cs b/OpenSim/Framework/Communications/Capabilities/LLSDRemoteParcelResponse.cs index 1c8f27f..b0e2b8f 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDRemoteParcelResponse.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDRemoteParcelResponse.cs | |||
@@ -34,7 +34,7 @@ namespace OpenSim.Framework.Communications.Capabilities | |||
34 | public class LLSDRemoteParcelResponse | 34 | public class LLSDRemoteParcelResponse |
35 | { | 35 | { |
36 | public LLUUID parcel_id; | 36 | public LLUUID parcel_id; |
37 | 37 | ||
38 | public LLSDRemoteParcelResponse() | 38 | public LLSDRemoteParcelResponse() |
39 | { | 39 | { |
40 | } | 40 | } |
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs index 2bfe045..08dbc80 100644 --- a/OpenSim/Framework/Communications/CommunicationsManager.cs +++ b/OpenSim/Framework/Communications/CommunicationsManager.cs | |||
@@ -41,26 +41,26 @@ namespace OpenSim.Framework.Communications | |||
41 | public class CommunicationsManager | 41 | public class CommunicationsManager |
42 | { | 42 | { |
43 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 43 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
44 | 44 | ||
45 | protected Dictionary<LLUUID, string[]> m_nameRequestCache = new Dictionary<LLUUID, string[]>(); | 45 | protected Dictionary<LLUUID, string[]> m_nameRequestCache = new Dictionary<LLUUID, string[]>(); |
46 | 46 | ||
47 | public IUserService UserService | 47 | public IUserService UserService |
48 | { | 48 | { |
49 | get { return m_userService; } | 49 | get { return m_userService; } |
50 | } | 50 | } |
51 | protected IUserService m_userService; | 51 | protected IUserService m_userService; |
52 | 52 | ||
53 | public IGridServices GridService | 53 | public IGridServices GridService |
54 | { | 54 | { |
55 | get { return m_gridService; } | 55 | get { return m_gridService; } |
56 | } | 56 | } |
57 | protected IGridServices m_gridService; | 57 | protected IGridServices m_gridService; |
58 | 58 | ||
59 | public IInterRegionCommunications InterRegion | 59 | public IInterRegionCommunications InterRegion |
60 | { | 60 | { |
61 | get { return m_interRegion; } | 61 | get { return m_interRegion; } |
62 | } | 62 | } |
63 | protected IInterRegionCommunications m_interRegion; | 63 | protected IInterRegionCommunications m_interRegion; |
64 | 64 | ||
65 | public UserProfileCacheService UserProfileCacheService | 65 | public UserProfileCacheService UserProfileCacheService |
66 | { | 66 | { |
@@ -68,36 +68,36 @@ namespace OpenSim.Framework.Communications | |||
68 | } | 68 | } |
69 | protected UserProfileCacheService m_userProfileCacheService; | 69 | protected UserProfileCacheService m_userProfileCacheService; |
70 | 70 | ||
71 | // protected AgentAssetTransactionsManager m_transactionsManager; | 71 | // protected AgentAssetTransactionsManager m_transactionsManager; |
72 | 72 | ||
73 | // public AgentAssetTransactionsManager TransactionsManager | 73 | // public AgentAssetTransactionsManager TransactionsManager |
74 | // { | 74 | // { |
75 | // get { return m_transactionsManager; } | 75 | // get { return m_transactionsManager; } |
76 | // } | 76 | // } |
77 | 77 | ||
78 | public IAvatarService AvatarService | 78 | public IAvatarService AvatarService |
79 | { | 79 | { |
80 | get { return m_avatarService; } | 80 | get { return m_avatarService; } |
81 | } | 81 | } |
82 | protected IAvatarService m_avatarService; | 82 | protected IAvatarService m_avatarService; |
83 | 83 | ||
84 | public AssetCache AssetCache | 84 | public AssetCache AssetCache |
85 | { | 85 | { |
86 | get { return m_assetCache; } | 86 | get { return m_assetCache; } |
87 | } | 87 | } |
88 | protected AssetCache m_assetCache; | 88 | protected AssetCache m_assetCache; |
89 | 89 | ||
90 | public IInterServiceInventoryServices InterServiceInventoryService | 90 | public IInterServiceInventoryServices InterServiceInventoryService |
91 | { | 91 | { |
92 | get { return m_interServiceInventoryService; } | 92 | get { return m_interServiceInventoryService; } |
93 | } | 93 | } |
94 | protected IInterServiceInventoryServices m_interServiceInventoryService; | 94 | protected IInterServiceInventoryServices m_interServiceInventoryService; |
95 | 95 | ||
96 | public NetworkServersInfo NetworkServersInfo | 96 | public NetworkServersInfo NetworkServersInfo |
97 | { | 97 | { |
98 | get { return m_networkServersInfo; } | 98 | get { return m_networkServersInfo; } |
99 | } | 99 | } |
100 | protected NetworkServersInfo m_networkServersInfo; | 100 | protected NetworkServersInfo m_networkServersInfo; |
101 | 101 | ||
102 | /// <summary> | 102 | /// <summary> |
103 | /// Constructor | 103 | /// Constructor |
@@ -138,7 +138,7 @@ namespace OpenSim.Framework.Communications | |||
138 | return null; | 138 | return null; |
139 | } | 139 | } |
140 | } | 140 | } |
141 | 141 | ||
142 | public IInventoryServices InventoryService | 142 | public IInventoryServices InventoryService |
143 | { | 143 | { |
144 | get | 144 | get |
diff --git a/OpenSim/Framework/Communications/IGridServices.cs b/OpenSim/Framework/Communications/IGridServices.cs index 509f408..fcc0db5 100644 --- a/OpenSim/Framework/Communications/IGridServices.cs +++ b/OpenSim/Framework/Communications/IGridServices.cs | |||
@@ -33,7 +33,7 @@ namespace OpenSim.Framework.Communications | |||
33 | public interface IGridServices | 33 | public interface IGridServices |
34 | { | 34 | { |
35 | string gdebugRegionName { get; set; } | 35 | string gdebugRegionName { get; set; } |
36 | 36 | ||
37 | /// <summary> | 37 | /// <summary> |
38 | /// Register a region with the grid service. | 38 | /// Register a region with the grid service. |
39 | /// </summary> | 39 | /// </summary> |
@@ -41,7 +41,7 @@ namespace OpenSim.Framework.Communications | |||
41 | /// <returns></returns> | 41 | /// <returns></returns> |
42 | /// <exception cref="System.Exception">Thrown if region registration failed</exception> | 42 | /// <exception cref="System.Exception">Thrown if region registration failed</exception> |
43 | RegionCommsListener RegisterRegion(RegionInfo regionInfos); | 43 | RegionCommsListener RegisterRegion(RegionInfo regionInfos); |
44 | 44 | ||
45 | bool DeregisterRegion(RegionInfo regionInfo); | 45 | bool DeregisterRegion(RegionInfo regionInfo); |
46 | 46 | ||
47 | /// <summary> | 47 | /// <summary> |
@@ -51,7 +51,7 @@ namespace OpenSim.Framework.Communications | |||
51 | /// <param name="y"></param> | 51 | /// <param name="y"></param> |
52 | /// <returns></returns> | 52 | /// <returns></returns> |
53 | List<SimpleRegionInfo> RequestNeighbours(uint x, uint y); | 53 | List<SimpleRegionInfo> RequestNeighbours(uint x, uint y); |
54 | 54 | ||
55 | RegionInfo RequestNeighbourInfo(ulong regionHandle); | 55 | RegionInfo RequestNeighbourInfo(ulong regionHandle); |
56 | RegionInfo RequestNeighbourInfo(LLUUID regionID); | 56 | RegionInfo RequestNeighbourInfo(LLUUID regionID); |
57 | RegionInfo RequestClosestRegion(string regionName); | 57 | RegionInfo RequestClosestRegion(string regionName); |
diff --git a/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs b/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs index 24213f2..a1f4c2e 100644 --- a/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInterServiceInventoryServices.cs | |||
@@ -32,22 +32,22 @@ namespace OpenSim.Framework.Communications | |||
32 | { | 32 | { |
33 | /// <summary> | 33 | /// <summary> |
34 | /// Inventory operations used between grid services. | 34 | /// Inventory operations used between grid services. |
35 | /// </summary> | 35 | /// </summary> |
36 | public interface IInterServiceInventoryServices | 36 | public interface IInterServiceInventoryServices |
37 | { | 37 | { |
38 | /// <summary> | 38 | /// <summary> |
39 | /// Create a new inventory for the given user. | 39 | /// Create a new inventory for the given user. |
40 | /// </summary> | 40 | /// </summary> |
41 | /// <param name="user"></param> | 41 | /// <param name="user"></param> |
42 | /// <returns>true if the inventory was successfully created, false otherwise</returns> | 42 | /// <returns>true if the inventory was successfully created, false otherwise</returns> |
43 | bool CreateNewUserInventory(LLUUID user); | 43 | bool CreateNewUserInventory(LLUUID user); |
44 | 44 | ||
45 | /// <summary> | 45 | /// <summary> |
46 | /// Returns a list of all the folders in a given user's inventory. | 46 | /// Returns a list of all the folders in a given user's inventory. |
47 | /// </summary> | 47 | /// </summary> |
48 | /// <param name="userId"></param> | 48 | /// <param name="userId"></param> |
49 | /// <returns>A flat list of the user's inventory folder tree, | 49 | /// <returns>A flat list of the user's inventory folder tree, |
50 | /// null if there is no inventory for this user</returns> | 50 | /// null if there is no inventory for this user</returns> |
51 | List<InventoryFolderBase> GetInventorySkeleton(LLUUID userId); | 51 | List<InventoryFolderBase> GetInventorySkeleton(LLUUID userId); |
52 | } | 52 | } |
53 | } | 53 | } |
diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index 08a2c5f..b00b1bf 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs | |||
@@ -41,12 +41,12 @@ namespace OpenSim.Framework.Communications | |||
41 | /// Defines all the operations one can perform on a user's inventory. | 41 | /// Defines all the operations one can perform on a user's inventory. |
42 | /// </summary> | 42 | /// </summary> |
43 | public interface IInventoryServices | 43 | public interface IInventoryServices |
44 | { | 44 | { |
45 | string Host | 45 | string Host |
46 | { | 46 | { |
47 | get; | 47 | get; |
48 | } | 48 | } |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// Request the inventory for a user. This is an asynchronous operation that will call the callback when the | 51 | /// Request the inventory for a user. This is an asynchronous operation that will call the callback when the |
52 | /// inventory has been received | 52 | /// inventory has been received |
diff --git a/OpenSim/Framework/Communications/ISecureInventoryService.cs b/OpenSim/Framework/Communications/ISecureInventoryService.cs index 3608c56..bd962d1 100644 --- a/OpenSim/Framework/Communications/ISecureInventoryService.cs +++ b/OpenSim/Framework/Communications/ISecureInventoryService.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Framework.Communications | |||
40 | { | 40 | { |
41 | get; | 41 | get; |
42 | } | 42 | } |
43 | 43 | ||
44 | /// <summary> | 44 | /// <summary> |
45 | /// Request the inventory for a user. This is an asynchronous operation that will call the callback when the | 45 | /// Request the inventory for a user. This is an asynchronous operation that will call the callback when the |
46 | /// inventory has been received | 46 | /// inventory has been received |
@@ -102,14 +102,14 @@ namespace OpenSim.Framework.Communications | |||
102 | /// Does the given user have an inventory structure? | 102 | /// Does the given user have an inventory structure? |
103 | /// </summary> | 103 | /// </summary> |
104 | /// <param name="userID"></param> | 104 | /// <param name="userID"></param> |
105 | /// <returns></returns> | 105 | /// <returns></returns> |
106 | bool HasInventoryForUser(LLUUID userID); | 106 | bool HasInventoryForUser(LLUUID userID); |
107 | 107 | ||
108 | /// <summary> | 108 | /// <summary> |
109 | /// Retrieve the root inventory folder for the given user. | 109 | /// Retrieve the root inventory folder for the given user. |
110 | /// </summary> | 110 | /// </summary> |
111 | /// <param name="userID"></param> | 111 | /// <param name="userID"></param> |
112 | /// <returns>null if no root folder was found</returns> | 112 | /// <returns>null if no root folder was found</returns> |
113 | InventoryFolderBase RequestRootFolder(LLUUID userID); | 113 | InventoryFolderBase RequestRootFolder(LLUUID userID); |
114 | } | 114 | } |
115 | } | 115 | } |
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs index 40701f0..c76c078 100644 --- a/OpenSim/Framework/Communications/InventoryServiceBase.cs +++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs | |||
@@ -53,14 +53,14 @@ namespace OpenSim.Framework.Communications | |||
53 | /// <param name="provider">The filename to the user server plugin DLL</param> | 53 | /// <param name="provider">The filename to the user server plugin DLL</param> |
54 | public void AddPlugin(string provider, string connect) | 54 | public void AddPlugin(string provider, string connect) |
55 | { | 55 | { |
56 | PluginLoader<IInventoryDataPlugin> loader = | 56 | PluginLoader<IInventoryDataPlugin> loader = |
57 | new PluginLoader<IInventoryDataPlugin> (new InventoryDataInitialiser (connect)); | 57 | new PluginLoader<IInventoryDataPlugin> (new InventoryDataInitialiser (connect)); |
58 | 58 | ||
59 | // loader will try to load all providers (MySQL, MSSQL, etc) | 59 | // loader will try to load all providers (MySQL, MSSQL, etc) |
60 | // unless it is constrainted to the correct "Provider" entry in the addin.xml | 60 | // unless it is constrainted to the correct "Provider" entry in the addin.xml |
61 | loader.Add ("/OpenSim/InventoryData", new PluginProviderFilter (provider)); | 61 | loader.Add ("/OpenSim/InventoryData", new PluginProviderFilter (provider)); |
62 | loader.Load(); | 62 | loader.Load(); |
63 | 63 | ||
64 | m_plugins = loader.Plugins; | 64 | m_plugins = loader.Plugins; |
65 | } | 65 | } |
66 | 66 | ||
diff --git a/OpenSim/Framework/Communications/LoginService.cs b/OpenSim/Framework/Communications/LoginService.cs index fd5f139..40064d3 100644 --- a/OpenSim/Framework/Communications/LoginService.cs +++ b/OpenSim/Framework/Communications/LoginService.cs | |||
@@ -79,7 +79,7 @@ namespace OpenSim.Framework.Communications | |||
79 | /// <param name="response">The existing response</param> | 79 | /// <param name="response">The existing response</param> |
80 | /// <param name="theUser">The user profile</param> | 80 | /// <param name="theUser">The user profile</param> |
81 | public abstract void CustomiseResponse(LoginResponse response, UserProfileData theUser, string startLocationRequest); | 81 | public abstract void CustomiseResponse(LoginResponse response, UserProfileData theUser, string startLocationRequest); |
82 | 82 | ||
83 | /// <summary> | 83 | /// <summary> |
84 | /// If the user is already logged in, try to notify the region that the user they've got is dead. | 84 | /// If the user is already logged in, try to notify the region that the user they've got is dead. |
85 | /// </summary> | 85 | /// </summary> |
@@ -206,12 +206,11 @@ namespace OpenSim.Framework.Communications | |||
206 | userProfile.CurrentAgent.AgentOnline = false; | 206 | userProfile.CurrentAgent.AgentOnline = false; |
207 | 207 | ||
208 | m_userManager.CommitAgent(ref userProfile); | 208 | m_userManager.CommitAgent(ref userProfile); |
209 | 209 | ||
210 | // try to tell the region that their user is dead. | 210 | // try to tell the region that their user is dead. |
211 | LogOffUser(userProfile, " XMLRPC You were logged off because you logged in from another location"); | 211 | LogOffUser(userProfile, " XMLRPC You were logged off because you logged in from another location"); |
212 | 212 | ||
213 | // Reject the login | 213 | // Reject the login |
214 | |||
215 | 214 | ||
216 | m_log.InfoFormat( | 215 | m_log.InfoFormat( |
217 | "[LOGIN END]: XMLRPC Notifying user {0} {1} that they are already logged in", | 216 | "[LOGIN END]: XMLRPC Notifying user {0} {1} that they are already logged in", |
@@ -293,7 +292,7 @@ namespace OpenSim.Framework.Communications | |||
293 | //return logResponse.ToXmlRpcResponse(); | 292 | //return logResponse.ToXmlRpcResponse(); |
294 | } | 293 | } |
295 | 294 | ||
296 | userProfile.LastLogin = userProfile.CurrentAgent.LoginTime; | 295 | userProfile.LastLogin = userProfile.CurrentAgent.LoginTime; |
297 | CommitAgent(ref userProfile); | 296 | CommitAgent(ref userProfile); |
298 | 297 | ||
299 | // If we reach this point, then the login has successfully logged onto the grid | 298 | // If we reach this point, then the login has successfully logged onto the grid |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index f477df4..feeb666 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -57,11 +57,11 @@ namespace OpenSim.Framework.Communications | |||
57 | PluginLoader<IUserDataPlugin> loader = | 57 | PluginLoader<IUserDataPlugin> loader = |
58 | new PluginLoader<IUserDataPlugin> (new UserDataInitialiser (connect)); | 58 | new PluginLoader<IUserDataPlugin> (new UserDataInitialiser (connect)); |
59 | 59 | ||
60 | // loader will try to load all providers (MySQL, MSSQL, etc) | 60 | // loader will try to load all providers (MySQL, MSSQL, etc) |
61 | // unless it is constrainted to the correct "Provider" entry in the addin.xml | 61 | // unless it is constrainted to the correct "Provider" entry in the addin.xml |
62 | loader.Add ("/OpenSim/UserData", new PluginProviderFilter (provider)); | 62 | loader.Add ("/OpenSim/UserData", new PluginProviderFilter (provider)); |
63 | loader.Load(); | 63 | loader.Load(); |
64 | 64 | ||
65 | _plugins = loader.Plugins; | 65 | _plugins = loader.Plugins; |
66 | } | 66 | } |
67 | 67 | ||
diff --git a/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs b/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs index 2154e1e..89f52cf 100644 --- a/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs +++ b/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Framework.Configuration.XML | |||
46 | 46 | ||
47 | private void LoadDataToClass() | 47 | private void LoadDataToClass() |
48 | { | 48 | { |
49 | rootNode = doc.SelectSingleNode("Root"); | 49 | rootNode = doc.SelectSingleNode("Root"); |
50 | if (null == rootNode) | 50 | if (null == rootNode) |
51 | throw new Exception("Error: Invalid .xml File. Missing <Root>"); | 51 | throw new Exception("Error: Invalid .xml File. Missing <Root>"); |
52 | 52 | ||
@@ -135,4 +135,4 @@ namespace OpenSim.Framework.Configuration.XML | |||
135 | doc = null; | 135 | doc = null; |
136 | } | 136 | } |
137 | } | 137 | } |
138 | } \ No newline at end of file | 138 | } |
diff --git a/OpenSim/Framework/Console/ConsoleBase.cs b/OpenSim/Framework/Console/ConsoleBase.cs index f21127b..89fd77d 100644 --- a/OpenSim/Framework/Console/ConsoleBase.cs +++ b/OpenSim/Framework/Console/ConsoleBase.cs | |||
@@ -42,7 +42,7 @@ namespace OpenSim.Framework.Console | |||
42 | private readonly object m_syncRoot = new object(); | 42 | private readonly object m_syncRoot = new object(); |
43 | 43 | ||
44 | public conscmd_callback m_cmdParser; | 44 | public conscmd_callback m_cmdParser; |
45 | 45 | ||
46 | /// <summary> | 46 | /// <summary> |
47 | /// The default prompt text. | 47 | /// The default prompt text. |
48 | /// </summary> | 48 | /// </summary> |
@@ -249,7 +249,7 @@ namespace OpenSim.Framework.Console | |||
249 | { | 249 | { |
250 | line = System.Console.ReadLine(); | 250 | line = System.Console.ReadLine(); |
251 | } | 251 | } |
252 | 252 | ||
253 | return line; | 253 | return line; |
254 | } | 254 | } |
255 | catch (Exception e) | 255 | catch (Exception e) |
diff --git a/OpenSim/Framework/Console/ConsolePluginCommand.cs b/OpenSim/Framework/Console/ConsolePluginCommand.cs index b3f1c93..bf70645 100644 --- a/OpenSim/Framework/Console/ConsolePluginCommand.cs +++ b/OpenSim/Framework/Console/ConsolePluginCommand.cs | |||
@@ -30,10 +30,10 @@ using System; | |||
30 | namespace OpenSim.Framework.Console | 30 | namespace OpenSim.Framework.Console |
31 | { | 31 | { |
32 | public delegate void ConsoleCommand(string[] comParams); | 32 | public delegate void ConsoleCommand(string[] comParams); |
33 | 33 | ||
34 | /// <summary> | 34 | /// <summary> |
35 | /// Holder object for a new console plugin command | 35 | /// Holder object for a new console plugin command |
36 | /// | 36 | /// |
37 | /// Override the methods like Run and IsHelpfull (but the defaults might work ok.) | 37 | /// Override the methods like Run and IsHelpfull (but the defaults might work ok.) |
38 | /// </summary> | 38 | /// </summary> |
39 | public class ConsolePluginCommand | 39 | public class ConsolePluginCommand |
@@ -52,10 +52,10 @@ namespace OpenSim.Framework.Console | |||
52 | private string[] m_cmdText; | 52 | private string[] m_cmdText; |
53 | 53 | ||
54 | /// <summary> | 54 | /// <summary> |
55 | /// Construct a new ConsolePluginCommand | 55 | /// Construct a new ConsolePluginCommand |
56 | /// | 56 | /// |
57 | /// for use with OpenSim.RegisterConsolePluginCommand(myCmd); | 57 | /// for use with OpenSim.RegisterConsolePluginCommand(myCmd); |
58 | /// | 58 | /// |
59 | /// </summary> | 59 | /// </summary> |
60 | /// <param name="command">in the form of "showme new commands"</param> | 60 | /// <param name="command">in the form of "showme new commands"</param> |
61 | /// <param name="dlg">ommand delegate used in running</param> | 61 | /// <param name="dlg">ommand delegate used in running</param> |
@@ -68,13 +68,13 @@ namespace OpenSim.Framework.Console | |||
68 | } | 68 | } |
69 | 69 | ||
70 | /// <summary> | 70 | /// <summary> |
71 | /// Returns the match length this command has upon the 'cmdWithParams' | 71 | /// Returns the match length this command has upon the 'cmdWithParams' |
72 | /// At least a higher number for "show plugin status" then "show" would return | 72 | /// At least a higher number for "show plugin status" then "show" would return |
73 | /// This is used to have multi length command verbs | 73 | /// This is used to have multi length command verbs |
74 | /// | 74 | /// |
75 | /// @see OopenSim.RunPluginCommands | 75 | /// @see OopenSim.RunPluginCommands |
76 | /// It will only run the one with the highest number | 76 | /// It will only run the one with the highest number |
77 | /// | 77 | /// |
78 | /// </summary> | 78 | /// </summary> |
79 | public int matchLength(string cmdWithParams) | 79 | public int matchLength(string cmdWithParams) |
80 | { | 80 | { |
@@ -106,8 +106,8 @@ namespace OpenSim.Framework.Console | |||
106 | } | 106 | } |
107 | currentParam++; | 107 | currentParam++; |
108 | } | 108 | } |
109 | 109 | ||
110 | } | 110 | } |
111 | string[] sendCmdParams = cmdParams; | 111 | string[] sendCmdParams = cmdParams; |
112 | if (skipParams > 0) | 112 | if (skipParams > 0) |
113 | { | 113 | { |
diff --git a/OpenSim/Framework/Console/OpenSimAppender.cs b/OpenSim/Framework/Console/OpenSimAppender.cs index 2527977..fa26d22 100644 --- a/OpenSim/Framework/Console/OpenSimAppender.cs +++ b/OpenSim/Framework/Console/OpenSimAppender.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Framework.Console | |||
39 | { | 39 | { |
40 | override protected void Append(LoggingEvent le) | 40 | override protected void Append(LoggingEvent le) |
41 | { | 41 | { |
42 | try | 42 | try |
43 | { | 43 | { |
44 | string loggingMessage = RenderLoggingEvent(le); | 44 | string loggingMessage = RenderLoggingEvent(le); |
45 | 45 | ||
@@ -47,7 +47,7 @@ namespace OpenSim.Framework.Console | |||
47 | 47 | ||
48 | Regex RE = new Regex(regex, RegexOptions.Multiline); | 48 | Regex RE = new Regex(regex, RegexOptions.Multiline); |
49 | MatchCollection matches = RE.Matches(loggingMessage); | 49 | MatchCollection matches = RE.Matches(loggingMessage); |
50 | 50 | ||
51 | // Get some direct matches $1 $4 is a | 51 | // Get some direct matches $1 $4 is a |
52 | if (matches.Count == 1) | 52 | if (matches.Count == 1) |
53 | { | 53 | { |
diff --git a/OpenSim/Framework/IAssetProvider.cs b/OpenSim/Framework/IAssetProvider.cs index 00d290e..ec70554 100644 --- a/OpenSim/Framework/IAssetProvider.cs +++ b/OpenSim/Framework/IAssetProvider.cs | |||
@@ -37,7 +37,7 @@ namespace OpenSim.Framework | |||
37 | bool ExistsAsset(LLUUID uuid); | 37 | bool ExistsAsset(LLUUID uuid); |
38 | void Initialise(string connect); | 38 | void Initialise(string connect); |
39 | } | 39 | } |
40 | 40 | ||
41 | public class AssetDataInitialiser : PluginInitialiserBase | 41 | public class AssetDataInitialiser : PluginInitialiserBase |
42 | { | 42 | { |
43 | private string connect; | 43 | private string connect; |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 536050c..71b8eb0 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Framework | |||
62 | public delegate void ModifyTerrain( | 62 | public delegate void ModifyTerrain( |
63 | float height, float seconds, byte size, byte action, float north, float west, float south, float east, | 63 | float height, float seconds, byte size, byte action, float north, float west, float south, float east, |
64 | IClientAPI remoteClient); | 64 | IClientAPI remoteClient); |
65 | 65 | ||
66 | public delegate void SetAppearance(byte[] texture, List<byte> visualParamList); | 66 | public delegate void SetAppearance(byte[] texture, List<byte> visualParamList); |
67 | 67 | ||
68 | public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID); | 68 | public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID); |
@@ -295,7 +295,7 @@ namespace OpenSim.Framework | |||
295 | public delegate void EstateTeleportOneUserHomeRequest(IClientAPI remoteClient, LLUUID invoice, LLUUID senderID, LLUUID prey); | 295 | public delegate void EstateTeleportOneUserHomeRequest(IClientAPI remoteClient, LLUUID invoice, LLUUID senderID, LLUUID prey); |
296 | public delegate void RegionHandleRequest(IClientAPI remoteClient, LLUUID regionID); | 296 | public delegate void RegionHandleRequest(IClientAPI remoteClient, LLUUID regionID); |
297 | public delegate void ParcelInfoRequest(IClientAPI remoteClient, LLUUID parcelID); | 297 | public delegate void ParcelInfoRequest(IClientAPI remoteClient, LLUUID parcelID); |
298 | 298 | ||
299 | public delegate void ScriptReset(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID); | 299 | public delegate void ScriptReset(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID); |
300 | public delegate void GetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID); | 300 | public delegate void GetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID); |
301 | public delegate void SetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID, bool running); | 301 | public delegate void SetScriptRunning(IClientAPI remoteClient, LLUUID objectID, LLUUID itemID, bool running); |
@@ -322,9 +322,9 @@ namespace OpenSim.Framework | |||
322 | ulong ActiveGroupPowers { get; } | 322 | ulong ActiveGroupPowers { get; } |
323 | 323 | ||
324 | ulong GetGroupPowers(LLUUID groupID); | 324 | ulong GetGroupPowers(LLUUID groupID); |
325 | 325 | ||
326 | string FirstName { get; } | 326 | string FirstName { get; } |
327 | 327 | ||
328 | string LastName { get; } | 328 | string LastName { get; } |
329 | 329 | ||
330 | IScene Scene { get; } | 330 | IScene Scene { get; } |
@@ -501,7 +501,7 @@ namespace OpenSim.Framework | |||
501 | event EstateDebugRegionRequest OnEstateDebugRegionRequest; | 501 | event EstateDebugRegionRequest OnEstateDebugRegionRequest; |
502 | event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; | 502 | event EstateTeleportOneUserHomeRequest OnEstateTeleportOneUserHomeRequest; |
503 | event UUIDNameRequest OnUUIDGroupNameRequest; | 503 | event UUIDNameRequest OnUUIDGroupNameRequest; |
504 | 504 | ||
505 | event RegionHandleRequest OnRegionHandleRequest; | 505 | event RegionHandleRequest OnRegionHandleRequest; |
506 | event ParcelInfoRequest OnParcelInfoRequest; | 506 | event ParcelInfoRequest OnParcelInfoRequest; |
507 | 507 | ||
@@ -724,10 +724,10 @@ namespace OpenSim.Framework | |||
724 | ClientInfo GetClientInfo(); | 724 | ClientInfo GetClientInfo(); |
725 | void SetClientInfo(ClientInfo info); | 725 | void SetClientInfo(ClientInfo info); |
726 | void Terminate(); | 726 | void Terminate(); |
727 | 727 | ||
728 | void SendSetFollowCamProperties(LLUUID objectID, SortedDictionary<int, float> parameters); | 728 | void SendSetFollowCamProperties(LLUUID objectID, SortedDictionary<int, float> parameters); |
729 | void SendClearFollowCamProperties(LLUUID objectID); | 729 | void SendClearFollowCamProperties(LLUUID objectID); |
730 | 730 | ||
731 | void SendRegionHandle(LLUUID regoinID, ulong handle); | 731 | void SendRegionHandle(LLUUID regoinID, ulong handle); |
732 | void SendParcelInfo(RegionInfo info, LandData land, LLUUID parcelID, uint x, uint y); | 732 | void SendParcelInfo(RegionInfo info, LandData land, LLUUID parcelID, uint x, uint y); |
733 | } | 733 | } |
diff --git a/OpenSim/Framework/IInventoryData.cs b/OpenSim/Framework/IInventoryData.cs index 0d4c555..1c62b0b 100644 --- a/OpenSim/Framework/IInventoryData.cs +++ b/OpenSim/Framework/IInventoryData.cs | |||
@@ -132,7 +132,7 @@ namespace OpenSim.Framework | |||
132 | /// <param name="folder">The id of the folder</param> | 132 | /// <param name="folder">The id of the folder</param> |
133 | void deleteInventoryFolder(LLUUID folder); | 133 | void deleteInventoryFolder(LLUUID folder); |
134 | } | 134 | } |
135 | 135 | ||
136 | public class InventoryDataInitialiser : PluginInitialiserBase | 136 | public class InventoryDataInitialiser : PluginInitialiserBase |
137 | { | 137 | { |
138 | private string connect; | 138 | private string connect; |
diff --git a/OpenSim/Framework/IPlugin.cs b/OpenSim/Framework/IPlugin.cs index f739177..1eb1c06 100644 --- a/OpenSim/Framework/IPlugin.cs +++ b/OpenSim/Framework/IPlugin.cs | |||
@@ -38,7 +38,7 @@ namespace OpenSim.Framework | |||
38 | public PluginNotInitialisedException (string msg) : base(msg) {} | 38 | public PluginNotInitialisedException (string msg) : base(msg) {} |
39 | public PluginNotInitialisedException (string msg, Exception e) : base(msg, e) {} | 39 | public PluginNotInitialisedException (string msg, Exception e) : base(msg, e) {} |
40 | } | 40 | } |
41 | 41 | ||
42 | /// <summary> | 42 | /// <summary> |
43 | /// This interface, describes a generic plugin | 43 | /// This interface, describes a generic plugin |
44 | /// </summary> | 44 | /// </summary> |
@@ -63,17 +63,17 @@ namespace OpenSim.Framework | |||
63 | } | 63 | } |
64 | 64 | ||
65 | /// <summary> | 65 | /// <summary> |
66 | /// Any plugins which need to pass parameters to their initialisers must | 66 | /// Any plugins which need to pass parameters to their initialisers must |
67 | /// inherit this class and use it to set the PluginLoader Initialiser property | 67 | /// inherit this class and use it to set the PluginLoader Initialiser property |
68 | /// </summary> | 68 | /// </summary> |
69 | public class PluginInitialiserBase | 69 | public class PluginInitialiserBase |
70 | { | 70 | { |
71 | // this would be a lot simpler if C# supported currying or typedefs | 71 | // this would be a lot simpler if C# supported currying or typedefs |
72 | 72 | ||
73 | // default initialisation | 73 | // default initialisation |
74 | public virtual void Initialise (IPlugin plugin) | 74 | public virtual void Initialise (IPlugin plugin) |
75 | { | 75 | { |
76 | plugin.Initialise(); | 76 | plugin.Initialise(); |
77 | } | 77 | } |
78 | } | 78 | } |
79 | 79 | ||
diff --git a/OpenSim/Framework/IUserData.cs b/OpenSim/Framework/IUserData.cs index 5ecb482..f74c0db 100644 --- a/OpenSim/Framework/IUserData.cs +++ b/OpenSim/Framework/IUserData.cs | |||
@@ -170,7 +170,7 @@ namespace OpenSim.Framework | |||
170 | void RemoveAttachment(LLUUID user, LLUUID item); | 170 | void RemoveAttachment(LLUUID user, LLUUID item); |
171 | List<LLUUID> GetAttachments(LLUUID user); | 171 | List<LLUUID> GetAttachments(LLUUID user); |
172 | } | 172 | } |
173 | 173 | ||
174 | public class UserDataInitialiser : PluginInitialiserBase | 174 | public class UserDataInitialiser : PluginInitialiserBase |
175 | { | 175 | { |
176 | private string connect; | 176 | private string connect; |
diff --git a/OpenSim/Framework/LandData.cs b/OpenSim/Framework/LandData.cs index 8c1e1a1..a875a50 100644 --- a/OpenSim/Framework/LandData.cs +++ b/OpenSim/Framework/LandData.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Framework | |||
39 | private uint _auctionID = 0; //Unemplemented. If set to 0, not being auctioned | 39 | private uint _auctionID = 0; //Unemplemented. If set to 0, not being auctioned |
40 | private LLUUID _authBuyerID = LLUUID.Zero; //Unemplemented. Authorized Buyer's UUID | 40 | private LLUUID _authBuyerID = LLUUID.Zero; //Unemplemented. Authorized Buyer's UUID |
41 | private Parcel.ParcelCategory _category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category | 41 | private Parcel.ParcelCategory _category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category |
42 | private int _claimDate = 0; | 42 | private int _claimDate = 0; |
43 | private int _claimPrice = 0; //Unemplemented | 43 | private int _claimPrice = 0; //Unemplemented |
44 | private LLUUID _globalID = LLUUID.Zero; | 44 | private LLUUID _globalID = LLUUID.Zero; |
45 | private LLUUID _groupID = LLUUID.Zero; //Unemplemented | 45 | private LLUUID _groupID = LLUUID.Zero; //Unemplemented |
@@ -77,7 +77,7 @@ namespace OpenSim.Framework | |||
77 | private LLUUID _snapshotID = LLUUID.Zero; | 77 | private LLUUID _snapshotID = LLUUID.Zero; |
78 | private LLVector3 _userLocation = new LLVector3(); | 78 | private LLVector3 _userLocation = new LLVector3(); |
79 | private LLVector3 _userLookAt = new LLVector3(); | 79 | private LLVector3 _userLookAt = new LLVector3(); |
80 | 80 | ||
81 | public LLVector3 AABBMax { | 81 | public LLVector3 AABBMax { |
82 | get { | 82 | get { |
83 | return _AABBMax; | 83 | return _AABBMax; |
@@ -459,4 +459,4 @@ namespace OpenSim.Framework | |||
459 | return landData; | 459 | return landData; |
460 | } | 460 | } |
461 | } | 461 | } |
462 | } \ No newline at end of file | 462 | } |
diff --git a/OpenSim/Framework/LandStatReportItem.cs b/OpenSim/Framework/LandStatReportItem.cs index 3a92253..8c7ee7b 100644 --- a/OpenSim/Framework/LandStatReportItem.cs +++ b/OpenSim/Framework/LandStatReportItem.cs | |||
@@ -49,6 +49,6 @@ namespace OpenSim.Framework | |||
49 | { | 49 | { |
50 | 50 | ||
51 | } | 51 | } |
52 | 52 | ||
53 | } | 53 | } |
54 | } | 54 | } |
diff --git a/OpenSim/Framework/PluginLoader.cs b/OpenSim/Framework/PluginLoader.cs index 7ceb0b2..cabce1b 100644 --- a/OpenSim/Framework/PluginLoader.cs +++ b/OpenSim/Framework/PluginLoader.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Framework | |||
47 | } | 47 | } |
48 | 48 | ||
49 | /// <summary> | 49 | /// <summary> |
50 | /// Classes wishing to impose constraints on plugin loading must implement | 50 | /// Classes wishing to impose constraints on plugin loading must implement |
51 | /// this class and pass it to PluginLoader AddConstraint() | 51 | /// this class and pass it to PluginLoader AddConstraint() |
52 | /// </summary> | 52 | /// </summary> |
53 | public interface IPluginConstraint | 53 | public interface IPluginConstraint |
@@ -75,46 +75,46 @@ namespace OpenSim.Framework | |||
75 | private List<T> loaded = new List<T>(); | 75 | private List<T> loaded = new List<T>(); |
76 | private List<string> extpoints = new List<string>(); | 76 | private List<string> extpoints = new List<string>(); |
77 | private PluginInitialiserBase initialiser; | 77 | private PluginInitialiserBase initialiser; |
78 | 78 | ||
79 | private Dictionary<string,IPluginConstraint> constraints | 79 | private Dictionary<string,IPluginConstraint> constraints |
80 | = new Dictionary<string,IPluginConstraint>(); | 80 | = new Dictionary<string,IPluginConstraint>(); |
81 | 81 | ||
82 | private Dictionary<string,IPluginFilter> filters | 82 | private Dictionary<string,IPluginFilter> filters |
83 | = new Dictionary<string,IPluginFilter>(); | 83 | = new Dictionary<string,IPluginFilter>(); |
84 | 84 | ||
85 | private static readonly ILog log | 85 | private static readonly ILog log |
86 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 86 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
87 | 87 | ||
88 | public PluginInitialiserBase Initialiser | 88 | public PluginInitialiserBase Initialiser |
89 | { | 89 | { |
90 | set { initialiser = value; } | 90 | set { initialiser = value; } |
91 | get { return initialiser; } | 91 | get { return initialiser; } |
92 | } | 92 | } |
93 | 93 | ||
94 | public List<T> Plugins | 94 | public List<T> Plugins |
95 | { | 95 | { |
96 | get { return loaded; } | 96 | get { return loaded; } |
97 | } | 97 | } |
98 | 98 | ||
99 | public T Plugin | 99 | public T Plugin |
100 | { | 100 | { |
101 | get { return (loaded.Count == 1)? loaded [0] : default (T); } | 101 | get { return (loaded.Count == 1)? loaded [0] : default (T); } |
102 | } | 102 | } |
103 | 103 | ||
104 | public PluginLoader () | 104 | public PluginLoader () |
105 | { | 105 | { |
106 | Initialiser = new PluginInitialiserBase(); | 106 | Initialiser = new PluginInitialiserBase(); |
107 | initialise_plugin_dir_ ("."); | 107 | initialise_plugin_dir_ ("."); |
108 | } | 108 | } |
109 | 109 | ||
110 | public PluginLoader (PluginInitialiserBase init) | 110 | public PluginLoader (PluginInitialiserBase init) |
111 | { | 111 | { |
112 | Initialiser = init; | 112 | Initialiser = init; |
113 | initialise_plugin_dir_ ("."); | 113 | initialise_plugin_dir_ ("."); |
114 | } | 114 | } |
115 | 115 | ||
116 | public PluginLoader (PluginInitialiserBase init, string dir) | 116 | public PluginLoader (PluginInitialiserBase init, string dir) |
117 | { | 117 | { |
118 | Initialiser = init; | 118 | Initialiser = init; |
119 | initialise_plugin_dir_ (dir); | 119 | initialise_plugin_dir_ (dir); |
120 | } | 120 | } |
@@ -123,7 +123,7 @@ namespace OpenSim.Framework | |||
123 | { | 123 | { |
124 | if (extpoints.Contains (extpoint)) | 124 | if (extpoints.Contains (extpoint)) |
125 | return; | 125 | return; |
126 | 126 | ||
127 | extpoints.Add (extpoint); | 127 | extpoints.Add (extpoint); |
128 | } | 128 | } |
129 | 129 | ||
@@ -156,7 +156,7 @@ namespace OpenSim.Framework | |||
156 | } | 156 | } |
157 | 157 | ||
158 | public void Load () | 158 | public void Load () |
159 | { | 159 | { |
160 | foreach (string ext in extpoints) | 160 | foreach (string ext in extpoints) |
161 | { | 161 | { |
162 | log.Info("[PLUGINS]: Loading extension point " + ext); | 162 | log.Info("[PLUGINS]: Loading extension point " + ext); |
@@ -169,17 +169,17 @@ namespace OpenSim.Framework | |||
169 | } | 169 | } |
170 | 170 | ||
171 | IPluginFilter filter = null; | 171 | IPluginFilter filter = null; |
172 | 172 | ||
173 | if (filters.ContainsKey (ext)) | 173 | if (filters.ContainsKey (ext)) |
174 | filter = filters [ext]; | 174 | filter = filters [ext]; |
175 | 175 | ||
176 | foreach (PluginExtensionNode node in AddinManager.GetExtensionNodes (ext)) | 176 | foreach (PluginExtensionNode node in AddinManager.GetExtensionNodes (ext)) |
177 | { | 177 | { |
178 | log.Info("[PLUGINS]: Trying plugin " + node.Path); | 178 | log.Info("[PLUGINS]: Trying plugin " + node.Path); |
179 | 179 | ||
180 | if ((filter != null) && (filter.Apply (node) == false)) | 180 | if ((filter != null) && (filter.Apply (node) == false)) |
181 | continue; | 181 | continue; |
182 | 182 | ||
183 | T plugin = (T) node.CreateInstance(); | 183 | T plugin = (T) node.CreateInstance(); |
184 | Initialiser.Initialise (plugin); | 184 | Initialiser.Initialise (plugin); |
185 | Plugins.Add (plugin); | 185 | Plugins.Add (plugin); |
@@ -219,7 +219,7 @@ namespace OpenSim.Framework | |||
219 | private void on_addinloaderror_(object sender, AddinErrorEventArgs args) | 219 | private void on_addinloaderror_(object sender, AddinErrorEventArgs args) |
220 | { | 220 | { |
221 | if (args.Exception == null) | 221 | if (args.Exception == null) |
222 | log.Error ("[PLUGINS]: Plugin Error: " | 222 | log.Error ("[PLUGINS]: Plugin Error: " |
223 | + args.Message); | 223 | + args.Message); |
224 | else | 224 | else |
225 | log.Error ("[PLUGINS]: Plugin Error: " | 225 | log.Error ("[PLUGINS]: Plugin Error: " |
@@ -229,7 +229,7 @@ namespace OpenSim.Framework | |||
229 | 229 | ||
230 | private void clear_registry_ () | 230 | private void clear_registry_ () |
231 | { | 231 | { |
232 | // The Mono addin manager (in Mono.Addins.dll version 0.2.0.0) | 232 | // The Mono addin manager (in Mono.Addins.dll version 0.2.0.0) |
233 | // occasionally seems to corrupt its addin cache | 233 | // occasionally seems to corrupt its addin cache |
234 | // Hence, as a temporary solution we'll remove it before each startup | 234 | // Hence, as a temporary solution we'll remove it before each startup |
235 | try | 235 | try |
@@ -252,7 +252,7 @@ namespace OpenSim.Framework | |||
252 | } | 252 | } |
253 | } | 253 | } |
254 | 254 | ||
255 | private static TextWriter prev_console_; | 255 | private static TextWriter prev_console_; |
256 | public void suppress_console_output_ (bool save) | 256 | public void suppress_console_output_ (bool save) |
257 | { | 257 | { |
258 | if (save) | 258 | if (save) |
@@ -262,7 +262,7 @@ namespace OpenSim.Framework | |||
262 | } | 262 | } |
263 | else | 263 | else |
264 | { | 264 | { |
265 | if (prev_console_ != null) | 265 | if (prev_console_ != null) |
266 | System.Console.SetOut(prev_console_); | 266 | System.Console.SetOut(prev_console_); |
267 | } | 267 | } |
268 | } | 268 | } |
@@ -283,7 +283,7 @@ namespace OpenSim.Framework | |||
283 | 283 | ||
284 | public Type TypeObject | 284 | public Type TypeObject |
285 | { | 285 | { |
286 | get | 286 | get |
287 | { | 287 | { |
288 | if (typeobj != null) | 288 | if (typeobj != null) |
289 | return typeobj; | 289 | return typeobj; |
@@ -295,9 +295,9 @@ namespace OpenSim.Framework | |||
295 | } | 295 | } |
296 | } | 296 | } |
297 | 297 | ||
298 | public object CreateInstance () | 298 | public object CreateInstance () |
299 | { | 299 | { |
300 | return Activator.CreateInstance (TypeObject); | 300 | return Activator.CreateInstance (TypeObject); |
301 | } | 301 | } |
302 | } | 302 | } |
303 | 303 | ||
@@ -305,29 +305,29 @@ namespace OpenSim.Framework | |||
305 | /// Constraint that bounds the number of plugins to be loaded. | 305 | /// Constraint that bounds the number of plugins to be loaded. |
306 | /// </summary> | 306 | /// </summary> |
307 | public class PluginCountConstraint : IPluginConstraint | 307 | public class PluginCountConstraint : IPluginConstraint |
308 | { | 308 | { |
309 | private int min; | 309 | private int min; |
310 | private int max; | 310 | private int max; |
311 | 311 | ||
312 | public PluginCountConstraint (int exact) | 312 | public PluginCountConstraint (int exact) |
313 | { | 313 | { |
314 | min = exact; | 314 | min = exact; |
315 | max = exact; | 315 | max = exact; |
316 | } | ||
317 | |||
318 | public PluginCountConstraint (int minimum, int maximum) | ||
319 | { | ||
320 | min = minimum; | ||
321 | max = maximum; | ||
316 | } | 322 | } |
317 | 323 | ||
318 | public PluginCountConstraint (int minimum, int maximum) | 324 | public string Message |
319 | { | 325 | { |
320 | min = minimum; | 326 | get |
321 | max = maximum; | 327 | { |
322 | } | 328 | return "The number of plugins is constrained to the interval [" |
323 | 329 | + min + ", " + max + "]"; | |
324 | public string Message | 330 | } |
325 | { | ||
326 | get | ||
327 | { | ||
328 | return "The number of plugins is constrained to the interval [" | ||
329 | + min + ", " + max + "]"; | ||
330 | } | ||
331 | } | 331 | } |
332 | 332 | ||
333 | public bool Apply (string extpoint) | 333 | public bool Apply (string extpoint) |
@@ -340,7 +340,7 @@ namespace OpenSim.Framework | |||
340 | return true; | 340 | return true; |
341 | } | 341 | } |
342 | } | 342 | } |
343 | 343 | ||
344 | /// <summary> | 344 | /// <summary> |
345 | /// Filters out which plugin to load based on its "Provider", which is name given by in the addin.xml | 345 | /// Filters out which plugin to load based on its "Provider", which is name given by in the addin.xml |
346 | /// </summary> | 346 | /// </summary> |
@@ -348,7 +348,7 @@ namespace OpenSim.Framework | |||
348 | { | 348 | { |
349 | private string provider; | 349 | private string provider; |
350 | 350 | ||
351 | public PluginProviderFilter (string p) | 351 | public PluginProviderFilter (string p) |
352 | { | 352 | { |
353 | provider = p; | 353 | provider = p; |
354 | } | 354 | } |
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index ef74b54..f244b51 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs | |||
@@ -128,7 +128,7 @@ namespace OpenSim.Framework | |||
128 | [XmlIgnore] private bool _flexiEntry = false; | 128 | [XmlIgnore] private bool _flexiEntry = false; |
129 | [XmlIgnore] private bool _lightEntry = false; | 129 | [XmlIgnore] private bool _lightEntry = false; |
130 | [XmlIgnore] private bool _sculptEntry = false; | 130 | [XmlIgnore] private bool _sculptEntry = false; |
131 | 131 | ||
132 | public byte ProfileCurve | 132 | public byte ProfileCurve |
133 | { | 133 | { |
134 | get { return (byte)((byte)HollowShape | (byte)ProfileShape); } | 134 | get { return (byte)((byte)HollowShape | (byte)ProfileShape); } |
@@ -185,10 +185,10 @@ namespace OpenSim.Framework | |||
185 | [XmlIgnore] | 185 | [XmlIgnore] |
186 | public LLObject.TextureEntry Textures | 186 | public LLObject.TextureEntry Textures |
187 | { | 187 | { |
188 | get | 188 | get |
189 | { | 189 | { |
190 | //m_log.DebugFormat("[PRIMITIVE BASE SHAPE]: get m_textureEntry length {0}", m_textureEntry.Length); | 190 | //m_log.DebugFormat("[PRIMITIVE BASE SHAPE]: get m_textureEntry length {0}", m_textureEntry.Length); |
191 | return new LLObject.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); | 191 | return new LLObject.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); |
192 | } | 192 | } |
193 | 193 | ||
194 | set { m_textureEntry = value.ToBytes(); } | 194 | set { m_textureEntry = value.ToBytes(); } |
@@ -198,12 +198,12 @@ namespace OpenSim.Framework | |||
198 | { | 198 | { |
199 | get { return m_textureEntry; } | 199 | get { return m_textureEntry; } |
200 | 200 | ||
201 | set | 201 | set |
202 | { | 202 | { |
203 | if (value == null) | 203 | if (value == null) |
204 | m_textureEntry = new byte[1]; | 204 | m_textureEntry = new byte[1]; |
205 | else | 205 | else |
206 | m_textureEntry = value; | 206 | m_textureEntry = value; |
207 | } | 207 | } |
208 | } | 208 | } |
209 | 209 | ||
@@ -302,7 +302,7 @@ namespace OpenSim.Framework | |||
302 | _profileBegin = LLObject.PackBeginCut(profileRange.X); | 302 | _profileBegin = LLObject.PackBeginCut(profileRange.X); |
303 | _profileEnd = LLObject.PackEndCut(profileRange.Y); | 303 | _profileEnd = LLObject.PackEndCut(profileRange.Y); |
304 | } | 304 | } |
305 | 305 | ||
306 | public byte[] ExtraParams | 306 | public byte[] ExtraParams |
307 | { | 307 | { |
308 | get | 308 | get |
@@ -941,7 +941,7 @@ namespace OpenSim.Framework | |||
941 | 941 | ||
942 | return data; | 942 | return data; |
943 | } | 943 | } |
944 | 944 | ||
945 | public void ReadFlexiData(byte[] data, int pos) | 945 | public void ReadFlexiData(byte[] data, int pos) |
946 | { | 946 | { |
947 | if (data.Length-pos >= 16) | 947 | if (data.Length-pos >= 16) |
@@ -972,7 +972,7 @@ namespace OpenSim.Framework | |||
972 | _flexiForceZ = 0f; | 972 | _flexiForceZ = 0f; |
973 | } | 973 | } |
974 | } | 974 | } |
975 | 975 | ||
976 | public byte[] GetFlexiBytes() | 976 | public byte[] GetFlexiBytes() |
977 | { | 977 | { |
978 | byte[] data = new byte[16]; | 978 | byte[] data = new byte[16]; |
@@ -991,7 +991,7 @@ namespace OpenSim.Framework | |||
991 | 991 | ||
992 | return data; | 992 | return data; |
993 | } | 993 | } |
994 | 994 | ||
995 | public void ReadLightData(byte[] data, int pos) | 995 | public void ReadLightData(byte[] data, int pos) |
996 | { | 996 | { |
997 | if (data.Length - pos >= 16) | 997 | if (data.Length - pos >= 16) |
@@ -1021,7 +1021,7 @@ namespace OpenSim.Framework | |||
1021 | _lightIntensity = 0f; | 1021 | _lightIntensity = 0f; |
1022 | } | 1022 | } |
1023 | } | 1023 | } |
1024 | 1024 | ||
1025 | public byte[] GetLightBytes() | 1025 | public byte[] GetLightBytes() |
1026 | { | 1026 | { |
1027 | byte[] data = new byte[16]; | 1027 | byte[] data = new byte[16]; |
diff --git a/OpenSim/Framework/RegionCommsListener.cs b/OpenSim/Framework/RegionCommsListener.cs index 0b50a81..2d0be15 100644 --- a/OpenSim/Framework/RegionCommsListener.cs +++ b/OpenSim/Framework/RegionCommsListener.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Framework | |||
47 | private RegionUp handlerRegionUp = null; // OnRegionUp; | 47 | private RegionUp handlerRegionUp = null; // OnRegionUp; |
48 | private LogOffUser handlerLogOffUser = null; | 48 | private LogOffUser handlerLogOffUser = null; |
49 | private GetLandData handlerGetLandData = null; | 49 | private GetLandData handlerGetLandData = null; |
50 | 50 | ||
51 | #region IRegionCommsListener Members | 51 | #region IRegionCommsListener Members |
52 | 52 | ||
53 | public event ExpectUserDelegate OnExpectUser; | 53 | public event ExpectUserDelegate OnExpectUser; |
@@ -228,13 +228,13 @@ namespace OpenSim.Framework | |||
228 | 228 | ||
229 | return false; | 229 | return false; |
230 | } | 230 | } |
231 | 231 | ||
232 | public LandData TriggerGetLandData(uint x, uint y) | 232 | public LandData TriggerGetLandData(uint x, uint y) |
233 | { | 233 | { |
234 | handlerGetLandData = OnGetLandData; | 234 | handlerGetLandData = OnGetLandData; |
235 | if (handlerGetLandData != null) | 235 | if (handlerGetLandData != null) |
236 | return handlerGetLandData(x, y); | 236 | return handlerGetLandData(x, y); |
237 | 237 | ||
238 | return null; | 238 | return null; |
239 | } | 239 | } |
240 | } | 240 | } |
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index 1d9d9ec..716849c 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -50,7 +50,7 @@ namespace OpenSim.Framework | |||
50 | set { m_httpPort = value; } | 50 | set { m_httpPort = value; } |
51 | } | 51 | } |
52 | protected uint m_httpPort; | 52 | protected uint m_httpPort; |
53 | 53 | ||
54 | /// <summary> | 54 | /// <summary> |
55 | /// A well-formed URI for the host region server (namely "http://" + ExternalHostName) | 55 | /// A well-formed URI for the host region server (namely "http://" + ExternalHostName) |
56 | /// </summary> | 56 | /// </summary> |
@@ -58,17 +58,17 @@ namespace OpenSim.Framework | |||
58 | { | 58 | { |
59 | get { return m_serverURI; } | 59 | get { return m_serverURI; } |
60 | set { m_serverURI = value; } | 60 | set { m_serverURI = value; } |
61 | } | 61 | } |
62 | protected string m_serverURI; | 62 | protected string m_serverURI; |
63 | 63 | ||
64 | protected bool Allow_Alternate_Ports; | 64 | protected bool Allow_Alternate_Ports; |
65 | public bool m_allow_alternate_ports; | 65 | public bool m_allow_alternate_ports; |
66 | protected string m_externalHostName; | 66 | protected string m_externalHostName; |
67 | 67 | ||
68 | protected IPEndPoint m_internalEndPoint; | 68 | protected IPEndPoint m_internalEndPoint; |
69 | protected uint? m_regionLocX; | 69 | protected uint? m_regionLocX; |
70 | protected uint? m_regionLocY; | 70 | protected uint? m_regionLocY; |
71 | protected uint m_remotingPort; | 71 | protected uint m_remotingPort; |
72 | public LLUUID RegionID = LLUUID.Zero; | 72 | public LLUUID RegionID = LLUUID.Zero; |
73 | public string RemotingAddress; | 73 | public string RemotingAddress; |
74 | 74 | ||
@@ -404,11 +404,11 @@ namespace OpenSim.Framework | |||
404 | configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING, | 404 | configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING, |
405 | "(Sandbox Mode Only)Password for Master Avatar account", | 405 | "(Sandbox Mode Only)Password for Master Avatar account", |
406 | MasterAvatarSandboxPassword, true); | 406 | MasterAvatarSandboxPassword, true); |
407 | configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 407 | configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
408 | "Last Map UUID", lastMapUUID.ToString(), true); | 408 | "Last Map UUID", lastMapUUID.ToString(), true); |
409 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 409 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
410 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); | 410 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); |
411 | 411 | ||
412 | } | 412 | } |
413 | 413 | ||
414 | public void loadConfigurationOptions() | 414 | public void loadConfigurationOptions() |
@@ -454,15 +454,14 @@ namespace OpenSim.Framework | |||
454 | shouldMasterAvatarDetailsBeAsked); | 454 | shouldMasterAvatarDetailsBeAsked); |
455 | configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | 455 | configMember.addConfigurationOption("lastmap_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
456 | "Last Map UUID", lastMapUUID.ToString(), true); | 456 | "Last Map UUID", lastMapUUID.ToString(), true); |
457 | 457 | ||
458 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 458 | configMember.addConfigurationOption("lastmap_refresh", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
459 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); | 459 | "Last Map Refresh", Util.UnixTimeSinceEpoch().ToString(), true); |
460 | |||
461 | } | 460 | } |
462 | 461 | ||
463 | public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) | 462 | public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) |
464 | { | 463 | { |
465 | if (MasterAvatarAssignedUUID == LLUUID.Zero) | 464 | return MasterAvatarAssignedUUID == LLUUID.Zero; |
466 | { | 465 | { |
467 | return true; | 466 | return true; |
468 | } | 467 | } |
diff --git a/OpenSim/Framework/RegionSettings.cs b/OpenSim/Framework/RegionSettings.cs index d157bac..b6e466d 100644 --- a/OpenSim/Framework/RegionSettings.cs +++ b/OpenSim/Framework/RegionSettings.cs | |||
@@ -139,7 +139,7 @@ namespace OpenSim.Framework | |||
139 | { | 139 | { |
140 | case "region_flags": | 140 | case "region_flags": |
141 | Simulator.RegionFlags flags = (Simulator.RegionFlags)(uint)value; | 141 | Simulator.RegionFlags flags = (Simulator.RegionFlags)(uint)value; |
142 | 142 | ||
143 | m_BlockTerraform = | 143 | m_BlockTerraform = |
144 | (flags & Simulator.RegionFlags.BlockTerraform) != 0; | 144 | (flags & Simulator.RegionFlags.BlockTerraform) != 0; |
145 | m_BlockFly = | 145 | m_BlockFly = |
@@ -246,7 +246,7 @@ namespace OpenSim.Framework | |||
246 | } | 246 | } |
247 | 247 | ||
248 | private bool m_BlockTerraform = false; | 248 | private bool m_BlockTerraform = false; |
249 | 249 | ||
250 | public bool BlockTerraform | 250 | public bool BlockTerraform |
251 | { | 251 | { |
252 | get { return m_BlockTerraform; } | 252 | get { return m_BlockTerraform; } |
@@ -254,7 +254,7 @@ namespace OpenSim.Framework | |||
254 | } | 254 | } |
255 | 255 | ||
256 | private bool m_BlockFly = false; | 256 | private bool m_BlockFly = false; |
257 | 257 | ||
258 | public bool BlockFly | 258 | public bool BlockFly |
259 | { | 259 | { |
260 | get { return m_BlockFly; } | 260 | get { return m_BlockFly; } |
@@ -262,7 +262,7 @@ namespace OpenSim.Framework | |||
262 | } | 262 | } |
263 | 263 | ||
264 | private bool m_AllowDamage = false; | 264 | private bool m_AllowDamage = false; |
265 | 265 | ||
266 | public bool AllowDamage | 266 | public bool AllowDamage |
267 | { | 267 | { |
268 | get { return m_AllowDamage; } | 268 | get { return m_AllowDamage; } |
@@ -270,7 +270,7 @@ namespace OpenSim.Framework | |||
270 | } | 270 | } |
271 | 271 | ||
272 | private bool m_RestrictPushing = false; | 272 | private bool m_RestrictPushing = false; |
273 | 273 | ||
274 | public bool RestrictPushing | 274 | public bool RestrictPushing |
275 | { | 275 | { |
276 | get { return m_RestrictPushing; } | 276 | get { return m_RestrictPushing; } |
@@ -278,7 +278,7 @@ namespace OpenSim.Framework | |||
278 | } | 278 | } |
279 | 279 | ||
280 | private bool m_AllowLandResell = true; | 280 | private bool m_AllowLandResell = true; |
281 | 281 | ||
282 | public bool AllowLandResell | 282 | public bool AllowLandResell |
283 | { | 283 | { |
284 | get { return m_AllowLandResell; } | 284 | get { return m_AllowLandResell; } |
@@ -286,7 +286,7 @@ namespace OpenSim.Framework | |||
286 | } | 286 | } |
287 | 287 | ||
288 | private bool m_AllowLandJoinDivide = true; | 288 | private bool m_AllowLandJoinDivide = true; |
289 | 289 | ||
290 | public bool AllowLandJoinDivide | 290 | public bool AllowLandJoinDivide |
291 | { | 291 | { |
292 | get { return m_AllowLandJoinDivide; } | 292 | get { return m_AllowLandJoinDivide; } |
@@ -294,7 +294,7 @@ namespace OpenSim.Framework | |||
294 | } | 294 | } |
295 | 295 | ||
296 | private bool m_BlockShowInSearch = false; | 296 | private bool m_BlockShowInSearch = false; |
297 | 297 | ||
298 | public bool BlockShowInSearch | 298 | public bool BlockShowInSearch |
299 | { | 299 | { |
300 | get { return m_BlockShowInSearch; } | 300 | get { return m_BlockShowInSearch; } |
@@ -302,7 +302,7 @@ namespace OpenSim.Framework | |||
302 | } | 302 | } |
303 | 303 | ||
304 | private int m_AgentLimit = 40; | 304 | private int m_AgentLimit = 40; |
305 | 305 | ||
306 | public int AgentLimit | 306 | public int AgentLimit |
307 | { | 307 | { |
308 | get { return m_AgentLimit; } | 308 | get { return m_AgentLimit; } |
@@ -310,7 +310,7 @@ namespace OpenSim.Framework | |||
310 | } | 310 | } |
311 | 311 | ||
312 | private double m_ObjectBonus = 1.0; | 312 | private double m_ObjectBonus = 1.0; |
313 | 313 | ||
314 | public double ObjectBonus | 314 | public double ObjectBonus |
315 | { | 315 | { |
316 | get { return m_ObjectBonus; } | 316 | get { return m_ObjectBonus; } |
@@ -318,7 +318,7 @@ namespace OpenSim.Framework | |||
318 | } | 318 | } |
319 | 319 | ||
320 | private int m_Maturity = 1; | 320 | private int m_Maturity = 1; |
321 | 321 | ||
322 | public int Maturity | 322 | public int Maturity |
323 | { | 323 | { |
324 | get { return m_Maturity; } | 324 | get { return m_Maturity; } |
@@ -326,7 +326,7 @@ namespace OpenSim.Framework | |||
326 | } | 326 | } |
327 | 327 | ||
328 | private bool m_DisableScripts = false; | 328 | private bool m_DisableScripts = false; |
329 | 329 | ||
330 | public bool DisableScripts | 330 | public bool DisableScripts |
331 | { | 331 | { |
332 | get { return m_DisableScripts; } | 332 | get { return m_DisableScripts; } |
@@ -334,7 +334,7 @@ namespace OpenSim.Framework | |||
334 | } | 334 | } |
335 | 335 | ||
336 | private bool m_DisableCollisions = false; | 336 | private bool m_DisableCollisions = false; |
337 | 337 | ||
338 | public bool DisableCollisions | 338 | public bool DisableCollisions |
339 | { | 339 | { |
340 | get { return m_DisableCollisions; } | 340 | get { return m_DisableCollisions; } |
@@ -342,7 +342,7 @@ namespace OpenSim.Framework | |||
342 | } | 342 | } |
343 | 343 | ||
344 | private bool m_DisablePhysics = false; | 344 | private bool m_DisablePhysics = false; |
345 | 345 | ||
346 | public bool DisablePhysics | 346 | public bool DisablePhysics |
347 | { | 347 | { |
348 | get { return m_DisablePhysics; } | 348 | get { return m_DisablePhysics; } |
@@ -350,7 +350,7 @@ namespace OpenSim.Framework | |||
350 | } | 350 | } |
351 | 351 | ||
352 | private LLUUID m_TerrainTexture1 = LLUUID.Zero; | 352 | private LLUUID m_TerrainTexture1 = LLUUID.Zero; |
353 | 353 | ||
354 | public LLUUID TerrainTexture1 | 354 | public LLUUID TerrainTexture1 |
355 | { | 355 | { |
356 | get { return m_TerrainTexture1; } | 356 | get { return m_TerrainTexture1; } |
@@ -358,7 +358,7 @@ namespace OpenSim.Framework | |||
358 | } | 358 | } |
359 | 359 | ||
360 | private LLUUID m_TerrainTexture2 = LLUUID.Zero; | 360 | private LLUUID m_TerrainTexture2 = LLUUID.Zero; |
361 | 361 | ||
362 | public LLUUID TerrainTexture2 | 362 | public LLUUID TerrainTexture2 |
363 | { | 363 | { |
364 | get { return m_TerrainTexture2; } | 364 | get { return m_TerrainTexture2; } |
@@ -366,7 +366,7 @@ namespace OpenSim.Framework | |||
366 | } | 366 | } |
367 | 367 | ||
368 | private LLUUID m_TerrainTexture3 = LLUUID.Zero; | 368 | private LLUUID m_TerrainTexture3 = LLUUID.Zero; |
369 | 369 | ||
370 | public LLUUID TerrainTexture3 | 370 | public LLUUID TerrainTexture3 |
371 | { | 371 | { |
372 | get { return m_TerrainTexture3; } | 372 | get { return m_TerrainTexture3; } |
@@ -374,7 +374,7 @@ namespace OpenSim.Framework | |||
374 | } | 374 | } |
375 | 375 | ||
376 | private LLUUID m_TerrainTexture4 = LLUUID.Zero; | 376 | private LLUUID m_TerrainTexture4 = LLUUID.Zero; |
377 | 377 | ||
378 | public LLUUID TerrainTexture4 | 378 | public LLUUID TerrainTexture4 |
379 | { | 379 | { |
380 | get { return m_TerrainTexture4; } | 380 | get { return m_TerrainTexture4; } |
@@ -382,7 +382,7 @@ namespace OpenSim.Framework | |||
382 | } | 382 | } |
383 | 383 | ||
384 | private double m_Elevation1NW = 10; | 384 | private double m_Elevation1NW = 10; |
385 | 385 | ||
386 | public double Elevation1NW | 386 | public double Elevation1NW |
387 | { | 387 | { |
388 | get { return m_Elevation1NW; } | 388 | get { return m_Elevation1NW; } |
@@ -390,7 +390,7 @@ namespace OpenSim.Framework | |||
390 | } | 390 | } |
391 | 391 | ||
392 | private double m_Elevation2NW = 60; | 392 | private double m_Elevation2NW = 60; |
393 | 393 | ||
394 | public double Elevation2NW | 394 | public double Elevation2NW |
395 | { | 395 | { |
396 | get { return m_Elevation2NW; } | 396 | get { return m_Elevation2NW; } |
@@ -398,7 +398,7 @@ namespace OpenSim.Framework | |||
398 | } | 398 | } |
399 | 399 | ||
400 | private double m_Elevation1NE = 10; | 400 | private double m_Elevation1NE = 10; |
401 | 401 | ||
402 | public double Elevation1NE | 402 | public double Elevation1NE |
403 | { | 403 | { |
404 | get { return m_Elevation1NE; } | 404 | get { return m_Elevation1NE; } |
@@ -406,7 +406,7 @@ namespace OpenSim.Framework | |||
406 | } | 406 | } |
407 | 407 | ||
408 | private double m_Elevation2NE = 60; | 408 | private double m_Elevation2NE = 60; |
409 | 409 | ||
410 | public double Elevation2NE | 410 | public double Elevation2NE |
411 | { | 411 | { |
412 | get { return m_Elevation2NE; } | 412 | get { return m_Elevation2NE; } |
@@ -414,7 +414,7 @@ namespace OpenSim.Framework | |||
414 | } | 414 | } |
415 | 415 | ||
416 | private double m_Elevation1SE = 10; | 416 | private double m_Elevation1SE = 10; |
417 | 417 | ||
418 | public double Elevation1SE | 418 | public double Elevation1SE |
419 | { | 419 | { |
420 | get { return m_Elevation1SE; } | 420 | get { return m_Elevation1SE; } |
@@ -422,7 +422,7 @@ namespace OpenSim.Framework | |||
422 | } | 422 | } |
423 | 423 | ||
424 | private double m_Elevation2SE = 60; | 424 | private double m_Elevation2SE = 60; |
425 | 425 | ||
426 | public double Elevation2SE | 426 | public double Elevation2SE |
427 | { | 427 | { |
428 | get { return m_Elevation2SE; } | 428 | get { return m_Elevation2SE; } |
@@ -430,7 +430,7 @@ namespace OpenSim.Framework | |||
430 | } | 430 | } |
431 | 431 | ||
432 | private double m_Elevation1SW = 10; | 432 | private double m_Elevation1SW = 10; |
433 | 433 | ||
434 | public double Elevation1SW | 434 | public double Elevation1SW |
435 | { | 435 | { |
436 | get { return m_Elevation1SW; } | 436 | get { return m_Elevation1SW; } |
@@ -438,7 +438,7 @@ namespace OpenSim.Framework | |||
438 | } | 438 | } |
439 | 439 | ||
440 | private double m_Elevation2SW = 60; | 440 | private double m_Elevation2SW = 60; |
441 | 441 | ||
442 | public double Elevation2SW | 442 | public double Elevation2SW |
443 | { | 443 | { |
444 | get { return m_Elevation2SW; } | 444 | get { return m_Elevation2SW; } |
@@ -446,7 +446,7 @@ namespace OpenSim.Framework | |||
446 | } | 446 | } |
447 | 447 | ||
448 | private double m_WaterHeight = 20; | 448 | private double m_WaterHeight = 20; |
449 | 449 | ||
450 | public double WaterHeight | 450 | public double WaterHeight |
451 | { | 451 | { |
452 | get { return m_WaterHeight; } | 452 | get { return m_WaterHeight; } |
@@ -454,7 +454,7 @@ namespace OpenSim.Framework | |||
454 | } | 454 | } |
455 | 455 | ||
456 | private double m_TerrainRaiseLimit = 100; | 456 | private double m_TerrainRaiseLimit = 100; |
457 | 457 | ||
458 | public double TerrainRaiseLimit | 458 | public double TerrainRaiseLimit |
459 | { | 459 | { |
460 | get { return m_TerrainRaiseLimit; } | 460 | get { return m_TerrainRaiseLimit; } |
@@ -462,7 +462,7 @@ namespace OpenSim.Framework | |||
462 | } | 462 | } |
463 | 463 | ||
464 | private double m_TerrainLowerLimit = -100; | 464 | private double m_TerrainLowerLimit = -100; |
465 | 465 | ||
466 | public double TerrainLowerLimit | 466 | public double TerrainLowerLimit |
467 | { | 467 | { |
468 | get { return m_TerrainLowerLimit; } | 468 | get { return m_TerrainLowerLimit; } |
@@ -470,7 +470,7 @@ namespace OpenSim.Framework | |||
470 | } | 470 | } |
471 | 471 | ||
472 | private bool m_UseEstateSun = true; | 472 | private bool m_UseEstateSun = true; |
473 | 473 | ||
474 | public bool UseEstateSun | 474 | public bool UseEstateSun |
475 | { | 475 | { |
476 | get { return m_UseEstateSun; } | 476 | get { return m_UseEstateSun; } |
@@ -478,7 +478,7 @@ namespace OpenSim.Framework | |||
478 | } | 478 | } |
479 | 479 | ||
480 | private bool m_Sandbox = false; | 480 | private bool m_Sandbox = false; |
481 | 481 | ||
482 | public bool Sandbox | 482 | public bool Sandbox |
483 | { | 483 | { |
484 | get { return m_Sandbox; } | 484 | get { return m_Sandbox; } |
@@ -502,7 +502,7 @@ namespace OpenSim.Framework | |||
502 | } | 502 | } |
503 | 503 | ||
504 | private bool m_FixedSun = false; | 504 | private bool m_FixedSun = false; |
505 | 505 | ||
506 | public bool FixedSun | 506 | public bool FixedSun |
507 | { | 507 | { |
508 | get { return m_FixedSun; } | 508 | get { return m_FixedSun; } |
@@ -510,7 +510,7 @@ namespace OpenSim.Framework | |||
510 | } | 510 | } |
511 | 511 | ||
512 | private double m_SunPosition = 0.0; | 512 | private double m_SunPosition = 0.0; |
513 | 513 | ||
514 | public double SunPosition | 514 | public double SunPosition |
515 | { | 515 | { |
516 | get { return m_SunPosition; } | 516 | get { return m_SunPosition; } |
@@ -518,7 +518,7 @@ namespace OpenSim.Framework | |||
518 | } | 518 | } |
519 | 519 | ||
520 | private LLUUID m_Covenant = LLUUID.Zero; | 520 | private LLUUID m_Covenant = LLUUID.Zero; |
521 | 521 | ||
522 | public LLUUID Covenant | 522 | public LLUUID Covenant |
523 | { | 523 | { |
524 | get { return m_Covenant; } | 524 | get { return m_Covenant; } |
diff --git a/OpenSim/Framework/Servers/BaseHttpServer.cs b/OpenSim/Framework/Servers/BaseHttpServer.cs index 952fb31..c3bd085 100644 --- a/OpenSim/Framework/Servers/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/BaseHttpServer.cs | |||
@@ -172,7 +172,7 @@ namespace OpenSim.Framework.Servers | |||
172 | OSHttpResponse response = new OSHttpResponse(context.Response); | 172 | OSHttpResponse response = new OSHttpResponse(context.Response); |
173 | 173 | ||
174 | // This is the REST agent interface. We require an agent to properly identify | 174 | // This is the REST agent interface. We require an agent to properly identify |
175 | // itself. If the REST handler recognizes the prefix it will attempt to | 175 | // itself. If the REST handler recognizes the prefix it will attempt to |
176 | // satisfy the request. If it is not recognizable, and no damage has occurred | 176 | // satisfy the request. If it is not recognizable, and no damage has occurred |
177 | // the request can be passed through to the other handlers. This is a low | 177 | // the request can be passed through to the other handlers. This is a low |
178 | // probability event; if a request is matched it is normally expected to be | 178 | // probability event; if a request is matched it is normally expected to be |
@@ -650,7 +650,7 @@ namespace OpenSim.Framework.Servers | |||
650 | } | 650 | } |
651 | 651 | ||
652 | response.AddHeader("Content-type", contentType); | 652 | response.AddHeader("Content-type", contentType); |
653 | 653 | ||
654 | byte[] buffer; | 654 | byte[] buffer; |
655 | 655 | ||
656 | if (!contentType.Contains("image")) | 656 | if (!contentType.Contains("image")) |
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs index e901b68..33081b9 100644 --- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs +++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs | |||
@@ -89,7 +89,7 @@ namespace OpenSim.Framework.Servers | |||
89 | 89 | ||
90 | m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics); | 90 | m_periodicDiagnosticsTimer.Elapsed += new ElapsedEventHandler(LogDiagnostics); |
91 | m_periodicDiagnosticsTimer.Enabled = true; | 91 | m_periodicDiagnosticsTimer.Enabled = true; |
92 | 92 | ||
93 | // Add ourselves to thread monitoring. This thread will go on to become the console listening thread | 93 | // Add ourselves to thread monitoring. This thread will go on to become the console listening thread |
94 | Thread.CurrentThread.Name = "ConsoleThread"; | 94 | Thread.CurrentThread.Name = "ConsoleThread"; |
95 | ThreadTracker.Add(Thread.CurrentThread); | 95 | ThreadTracker.Add(Thread.CurrentThread); |
@@ -102,15 +102,15 @@ namespace OpenSim.Framework.Servers | |||
102 | { | 102 | { |
103 | StringBuilder sb = new StringBuilder("DIAGNOSTICS\n\n"); | 103 | StringBuilder sb = new StringBuilder("DIAGNOSTICS\n\n"); |
104 | sb.Append(GetUptimeReport()); | 104 | sb.Append(GetUptimeReport()); |
105 | 105 | ||
106 | if (m_stats != null) | 106 | if (m_stats != null) |
107 | { | 107 | { |
108 | sb.Append(m_stats.Report()); | 108 | sb.Append(m_stats.Report()); |
109 | } | 109 | } |
110 | 110 | ||
111 | m_log.Debug(sb); | 111 | m_log.Debug(sb); |
112 | } | 112 | } |
113 | 113 | ||
114 | /// <summary> | 114 | /// <summary> |
115 | /// Return a report about the uptime of this server | 115 | /// Return a report about the uptime of this server |
116 | /// </summary> | 116 | /// </summary> |
@@ -120,10 +120,10 @@ namespace OpenSim.Framework.Servers | |||
120 | StringBuilder sb = new StringBuilder(String.Format("Time now is {0}\n", DateTime.Now)); | 120 | StringBuilder sb = new StringBuilder(String.Format("Time now is {0}\n", DateTime.Now)); |
121 | sb.Append(String.Format("Server has been running since {0}, {1}\n", m_startuptime.DayOfWeek, m_startuptime)); | 121 | sb.Append(String.Format("Server has been running since {0}, {1}\n", m_startuptime.DayOfWeek, m_startuptime)); |
122 | sb.Append(String.Format("That is an elapsed time of {0}\n", DateTime.Now - m_startuptime)); | 122 | sb.Append(String.Format("That is an elapsed time of {0}\n", DateTime.Now - m_startuptime)); |
123 | 123 | ||
124 | return sb.ToString(); | 124 | return sb.ToString(); |
125 | } | 125 | } |
126 | 126 | ||
127 | /// <summary> | 127 | /// <summary> |
128 | /// Set the level of log notices being echoed to the console | 128 | /// Set the level of log notices being echoed to the console |
129 | /// </summary> | 129 | /// </summary> |
@@ -133,7 +133,7 @@ namespace OpenSim.Framework.Servers | |||
133 | ILoggerRepository repository = LogManager.GetRepository(); | 133 | ILoggerRepository repository = LogManager.GetRepository(); |
134 | IAppender[] appenders = repository.GetAppenders(); | 134 | IAppender[] appenders = repository.GetAppenders(); |
135 | OpenSimAppender consoleAppender = null; | 135 | OpenSimAppender consoleAppender = null; |
136 | 136 | ||
137 | foreach (IAppender appender in appenders) | 137 | foreach (IAppender appender in appenders) |
138 | { | 138 | { |
139 | if (appender.Name == "Console") | 139 | if (appender.Name == "Console") |
@@ -142,13 +142,13 @@ namespace OpenSim.Framework.Servers | |||
142 | break; | 142 | break; |
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | if (null == consoleAppender) | 146 | if (null == consoleAppender) |
147 | { | 147 | { |
148 | Notice("No appender named Console found (see the log4net config file for this executable)!"); | 148 | Notice("No appender named Console found (see the log4net config file for this executable)!"); |
149 | return; | 149 | return; |
150 | } | 150 | } |
151 | 151 | ||
152 | if (setParams.Length > 0) | 152 | if (setParams.Length > 0) |
153 | { | 153 | { |
154 | Level consoleLevel = repository.LevelMap[setParams[0]]; | 154 | Level consoleLevel = repository.LevelMap[setParams[0]]; |
@@ -160,12 +160,12 @@ namespace OpenSim.Framework.Servers | |||
160 | "{0} is not a valid logging level. Valid logging levels are ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF", | 160 | "{0} is not a valid logging level. Valid logging levels are ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF", |
161 | setParams[0])); | 161 | setParams[0])); |
162 | } | 162 | } |
163 | 163 | ||
164 | // If there is no threshold set then the threshold is effectively everything. | 164 | // If there is no threshold set then the threshold is effectively everything. |
165 | Level thresholdLevel | 165 | Level thresholdLevel |
166 | = (null != consoleAppender.Threshold ? consoleAppender.Threshold : log4net.Core.Level.All); | 166 | = (null != consoleAppender.Threshold ? consoleAppender.Threshold : log4net.Core.Level.All); |
167 | 167 | ||
168 | Notice(String.Format("Console log level is {0}", thresholdLevel)); | 168 | Notice(String.Format("Console log level is {0}", thresholdLevel)); |
169 | } | 169 | } |
170 | 170 | ||
171 | /// <summary> | 171 | /// <summary> |
@@ -203,7 +203,7 @@ namespace OpenSim.Framework.Servers | |||
203 | Notice(""); | 203 | Notice(""); |
204 | Notice("quit - equivalent to shutdown."); | 204 | Notice("quit - equivalent to shutdown."); |
205 | 205 | ||
206 | Notice("set log level [level] - change the console logging level only. For example, off or debug."); | 206 | Notice("set log level [level] - change the console logging level only. For example, off or debug."); |
207 | Notice("show info - show server information (e.g. startup path)."); | 207 | Notice("show info - show server information (e.g. startup path)."); |
208 | 208 | ||
209 | if (m_stats != null) | 209 | if (m_stats != null) |
@@ -219,7 +219,7 @@ namespace OpenSim.Framework.Servers | |||
219 | case "set": | 219 | case "set": |
220 | Set(cmdparams); | 220 | Set(cmdparams); |
221 | break; | 221 | break; |
222 | 222 | ||
223 | case "show": | 223 | case "show": |
224 | if (cmdparams.Length > 0) | 224 | if (cmdparams.Length > 0) |
225 | { | 225 | { |
@@ -232,8 +232,8 @@ namespace OpenSim.Framework.Servers | |||
232 | Shutdown(); | 232 | Shutdown(); |
233 | break; | 233 | break; |
234 | } | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | /// <summary> | 237 | /// <summary> |
238 | /// Set an OpenSim parameter | 238 | /// Set an OpenSim parameter |
239 | /// </summary> | 239 | /// </summary> |
@@ -245,15 +245,15 @@ namespace OpenSim.Framework.Servers | |||
245 | // Temporary while we only have one command which takes at least two parameters | 245 | // Temporary while we only have one command which takes at least two parameters |
246 | if (setArgs.Length < 2) | 246 | if (setArgs.Length < 2) |
247 | return; | 247 | return; |
248 | 248 | ||
249 | if (setArgs[0] == "log" && setArgs[1] == "level") | 249 | if (setArgs[0] == "log" && setArgs[1] == "level") |
250 | { | 250 | { |
251 | string[] setParams = new string[setArgs.Length - 2]; | 251 | string[] setParams = new string[setArgs.Length - 2]; |
252 | Array.Copy(setArgs, 2, setParams, 0, setArgs.Length - 2); | 252 | Array.Copy(setArgs, 2, setParams, 0, setArgs.Length - 2); |
253 | 253 | ||
254 | SetConsoleLogLevel(setParams); | 254 | SetConsoleLogLevel(setParams); |
255 | } | 255 | } |
256 | } | 256 | } |
257 | 257 | ||
258 | /// <summary> | 258 | /// <summary> |
259 | /// Outputs to the console information about the region | 259 | /// Outputs to the console information about the region |
@@ -276,7 +276,7 @@ namespace OpenSim.Framework.Servers | |||
276 | Notice(m_stats.Report()); | 276 | Notice(m_stats.Report()); |
277 | } | 277 | } |
278 | break; | 278 | break; |
279 | 279 | ||
280 | case "threads": | 280 | case "threads": |
281 | List<Thread> threads = ThreadTracker.GetThreads(); | 281 | List<Thread> threads = ThreadTracker.GetThreads(); |
282 | if (threads == null) | 282 | if (threads == null) |
@@ -291,7 +291,7 @@ namespace OpenSim.Framework.Servers | |||
291 | Notice("ID: " + t.ManagedThreadId.ToString() + ", Name: " + t.Name + ", Alive: " + t.IsAlive.ToString() + ", Pri: " + t.Priority.ToString() + ", State: " + t.ThreadState.ToString()); | 291 | Notice("ID: " + t.ManagedThreadId.ToString() + ", Name: " + t.Name + ", Alive: " + t.IsAlive.ToString() + ", Pri: " + t.Priority.ToString() + ", State: " + t.ThreadState.ToString()); |
292 | } | 292 | } |
293 | } | 293 | } |
294 | break; | 294 | break; |
295 | 295 | ||
296 | case "uptime": | 296 | case "uptime": |
297 | Notice(GetUptimeReport()); | 297 | Notice(GetUptimeReport()); |
@@ -301,7 +301,7 @@ namespace OpenSim.Framework.Servers | |||
301 | Notice("Version: " + m_version); | 301 | Notice("Version: " + m_version); |
302 | break; | 302 | break; |
303 | } | 303 | } |
304 | } | 304 | } |
305 | 305 | ||
306 | /// <summary> | 306 | /// <summary> |
307 | /// Console output is only possible if a console has been established. | 307 | /// Console output is only possible if a console has been established. |
diff --git a/OpenSim/Framework/Servers/OSHttpHandler.cs b/OpenSim/Framework/Servers/OSHttpHandler.cs index 66fff3e..838f29a 100644 --- a/OpenSim/Framework/Servers/OSHttpHandler.cs +++ b/OpenSim/Framework/Servers/OSHttpHandler.cs | |||
@@ -72,21 +72,21 @@ namespace OpenSim.Framework.Servers | |||
72 | /// Regular expression used to match against method of | 72 | /// Regular expression used to match against method of |
73 | /// the incoming HTTP request. If you want to match any string | 73 | /// the incoming HTTP request. If you want to match any string |
74 | /// either use '.*' or null. To match on the empty string use | 74 | /// either use '.*' or null. To match on the empty string use |
75 | /// '^$'. | 75 | /// '^$'. |
76 | /// </summary> | 76 | /// </summary> |
77 | public virtual Regex Method | 77 | public virtual Regex Method |
78 | { | 78 | { |
79 | get { return _method; } | 79 | get { return _method; } |
80 | } | 80 | } |
81 | protected Regex _method; | 81 | protected Regex _method; |
82 | 82 | ||
83 | /// <summary> | 83 | /// <summary> |
84 | /// Regular expression used to match against path of the | 84 | /// Regular expression used to match against path of the |
85 | /// incoming HTTP request. If you want to match any string | 85 | /// incoming HTTP request. If you want to match any string |
86 | /// either use '.*' or null. To match on the emtpy string use | 86 | /// either use '.*' or null. To match on the emtpy string use |
87 | /// '^$'. | 87 | /// '^$'. |
88 | /// </summary> | 88 | /// </summary> |
89 | public virtual Regex Path | 89 | public virtual Regex Path |
90 | { | 90 | { |
91 | get { return _path; } | 91 | get { return _path; } |
92 | } | 92 | } |
@@ -97,7 +97,7 @@ namespace OpenSim.Framework.Servers | |||
97 | /// allowing us to match on URI query fields. | 97 | /// allowing us to match on URI query fields. |
98 | /// </summary> | 98 | /// </summary> |
99 | public virtual Dictionary<string, Regex> Query | 99 | public virtual Dictionary<string, Regex> Query |
100 | { | 100 | { |
101 | get { return _query; } | 101 | get { return _query; } |
102 | } | 102 | } |
103 | protected Dictionary<string, Regex> _query; | 103 | protected Dictionary<string, Regex> _query; |
@@ -107,7 +107,7 @@ namespace OpenSim.Framework.Servers | |||
107 | /// allowing us to match on HTTP header fields. | 107 | /// allowing us to match on HTTP header fields. |
108 | /// </summary> | 108 | /// </summary> |
109 | public virtual Dictionary<string, Regex> Headers | 109 | public virtual Dictionary<string, Regex> Headers |
110 | { | 110 | { |
111 | get { return _headers; } | 111 | get { return _headers; } |
112 | } | 112 | } |
113 | protected Dictionary<string, Regex> _headers; | 113 | protected Dictionary<string, Regex> _headers; |
@@ -137,7 +137,7 @@ namespace OpenSim.Framework.Servers | |||
137 | /// <param name="contentType">null or content type | 137 | /// <param name="contentType">null or content type |
138 | /// regex</param> | 138 | /// regex</param> |
139 | /// <param name="whitelist">null or IP address regex</param> | 139 | /// <param name="whitelist">null or IP address regex</param> |
140 | public OSHttpHandler(Regex method, Regex path, Dictionary<string, Regex> query, | 140 | public OSHttpHandler(Regex method, Regex path, Dictionary<string, Regex> query, |
141 | Dictionary<string, Regex> headers, Regex contentType, Regex whitelist) | 141 | Dictionary<string, Regex> headers, Regex contentType, Regex whitelist) |
142 | { | 142 | { |
143 | _method = method; | 143 | _method = method; |
@@ -155,7 +155,7 @@ namespace OpenSim.Framework.Servers | |||
155 | 155 | ||
156 | /// <summary> | 156 | /// <summary> |
157 | /// Process an incoming OSHttpRequest that matched our | 157 | /// Process an incoming OSHttpRequest that matched our |
158 | /// requirements. | 158 | /// requirements. |
159 | /// </summary> | 159 | /// </summary> |
160 | /// <returns> | 160 | /// <returns> |
161 | /// OSHttpHandlerResult.Pass if we are after all not | 161 | /// OSHttpHandlerResult.Pass if we are after all not |
@@ -180,4 +180,4 @@ namespace OpenSim.Framework.Servers | |||
180 | return sw.ToString(); | 180 | return sw.ToString(); |
181 | } | 181 | } |
182 | } | 182 | } |
183 | } \ No newline at end of file | 183 | } |
diff --git a/OpenSim/Framework/Servers/OSHttpHttpHandler.cs b/OpenSim/Framework/Servers/OSHttpHttpHandler.cs index 66120c3..e08df85 100644 --- a/OpenSim/Framework/Servers/OSHttpHttpHandler.cs +++ b/OpenSim/Framework/Servers/OSHttpHttpHandler.cs | |||
@@ -58,7 +58,7 @@ namespace OpenSim.Framework.Servers | |||
58 | /// <param name="headers">null or dictionary with header | 58 | /// <param name="headers">null or dictionary with header |
59 | /// regexs</param> | 59 | /// regexs</param> |
60 | /// <param name="whitelist">null or IP address whitelist</param> | 60 | /// <param name="whitelist">null or IP address whitelist</param> |
61 | public OSHttpHttpHandler(GenericHTTPMethod handler, Regex method, Regex path, | 61 | public OSHttpHttpHandler(GenericHTTPMethod handler, Regex method, Regex path, |
62 | Dictionary<string, Regex> query, | 62 | Dictionary<string, Regex> query, |
63 | Dictionary<string, Regex> headers, Regex whitelist) | 63 | Dictionary<string, Regex> headers, Regex whitelist) |
64 | : base(method, path, query, headers, new Regex(@"^text/html", RegexOptions.IgnoreCase | RegexOptions.Compiled), | 64 | : base(method, path, query, headers, new Regex(@"^text/html", RegexOptions.IgnoreCase | RegexOptions.Compiled), |
@@ -71,7 +71,7 @@ namespace OpenSim.Framework.Servers | |||
71 | /// Instantiate an HTTP handler. | 71 | /// Instantiate an HTTP handler. |
72 | /// </summary> | 72 | /// </summary> |
73 | /// <param name="handler">a GenericHTTPMethod</param> | 73 | /// <param name="handler">a GenericHTTPMethod</param> |
74 | public OSHttpHttpHandler(GenericHTTPMethod handler) | 74 | public OSHttpHttpHandler(GenericHTTPMethod handler) |
75 | : this(handler, new Regex(@"^GET$", RegexOptions.IgnoreCase | RegexOptions.Compiled), null, null, null, null) | 75 | : this(handler, new Regex(@"^GET$", RegexOptions.IgnoreCase | RegexOptions.Compiled), null, null, null, null) |
76 | { | 76 | { |
77 | } | 77 | } |
@@ -79,7 +79,7 @@ namespace OpenSim.Framework.Servers | |||
79 | /// <summary> | 79 | /// <summary> |
80 | /// Invoked by OSHttpRequestPump. | 80 | /// Invoked by OSHttpRequestPump. |
81 | /// </summary> | 81 | /// </summary> |
82 | public override OSHttpHandlerResult Process(OSHttpRequest request) | 82 | public override OSHttpHandlerResult Process(OSHttpRequest request) |
83 | { | 83 | { |
84 | // call handler method | 84 | // call handler method |
85 | Hashtable responseData = _handler(request.Query); | 85 | Hashtable responseData = _handler(request.Query); |
@@ -110,7 +110,7 @@ namespace OpenSim.Framework.Servers | |||
110 | } | 110 | } |
111 | 111 | ||
112 | response.AddHeader("Content-type", contentType); | 112 | response.AddHeader("Content-type", contentType); |
113 | 113 | ||
114 | byte[] buffer; | 114 | byte[] buffer; |
115 | 115 | ||
116 | if (!contentType.Contains("image")) | 116 | if (!contentType.Contains("image")) |
@@ -142,4 +142,4 @@ namespace OpenSim.Framework.Servers | |||
142 | return OSHttpHandlerResult.Done; | 142 | return OSHttpHandlerResult.Done; |
143 | } | 143 | } |
144 | } | 144 | } |
145 | } \ No newline at end of file | 145 | } |
diff --git a/OpenSim/Framework/Servers/OSHttpRequest.cs b/OpenSim/Framework/Servers/OSHttpRequest.cs index 0a82a04..01e71c8 100644 --- a/OpenSim/Framework/Servers/OSHttpRequest.cs +++ b/OpenSim/Framework/Servers/OSHttpRequest.cs | |||
@@ -38,42 +38,35 @@ namespace OpenSim.Framework.Servers | |||
38 | { | 38 | { |
39 | public class OSHttpRequest | 39 | public class OSHttpRequest |
40 | { | 40 | { |
41 | |||
42 | |||
43 | public string[] AcceptTypes | 41 | public string[] AcceptTypes |
44 | { | 42 | { |
45 | get { return _acceptTypes; } | 43 | get { return _acceptTypes; } |
46 | } | 44 | } |
47 | private string[] _acceptTypes; | 45 | private string[] _acceptTypes; |
48 | 46 | ||
49 | |||
50 | public Encoding ContentEncoding | 47 | public Encoding ContentEncoding |
51 | { | 48 | { |
52 | get { return _contentEncoding; } | 49 | get { return _contentEncoding; } |
53 | } | 50 | } |
54 | private Encoding _contentEncoding; | 51 | private Encoding _contentEncoding; |
55 | 52 | ||
56 | |||
57 | public long ContentLength | 53 | public long ContentLength |
58 | { | 54 | { |
59 | get { return _contentLength64; } | 55 | get { return _contentLength64; } |
60 | } | 56 | } |
61 | private long _contentLength64; | 57 | private long _contentLength64; |
62 | 58 | ||
63 | |||
64 | public long ContentLength64 | 59 | public long ContentLength64 |
65 | { | 60 | { |
66 | get { return ContentLength; } | 61 | get { return ContentLength; } |
67 | } | 62 | } |
68 | 63 | ||
69 | |||
70 | public string ContentType | 64 | public string ContentType |
71 | { | 65 | { |
72 | get { return _contentType; } | 66 | get { return _contentType; } |
73 | } | 67 | } |
74 | private string _contentType; | 68 | private string _contentType; |
75 | 69 | ||
76 | |||
77 | // public CookieCollection Cookies | 70 | // public CookieCollection Cookies |
78 | // { | 71 | // { |
79 | // get { return _cookies; } | 72 | // get { return _cookies; } |
@@ -92,63 +85,54 @@ namespace OpenSim.Framework.Servers | |||
92 | } | 85 | } |
93 | private string _httpMethod; | 86 | private string _httpMethod; |
94 | 87 | ||
95 | |||
96 | public Stream InputStream | 88 | public Stream InputStream |
97 | { | 89 | { |
98 | get { return _inputStream; } | 90 | get { return _inputStream; } |
99 | } | 91 | } |
100 | private Stream _inputStream; | 92 | private Stream _inputStream; |
101 | 93 | ||
102 | |||
103 | // public bool IsSecureConnection | 94 | // public bool IsSecureConnection |
104 | // { | 95 | // { |
105 | // get { return _isSecureConnection; } | 96 | // get { return _isSecureConnection; } |
106 | // } | 97 | // } |
107 | // private bool _isSecureConnection; | 98 | // private bool _isSecureConnection; |
108 | 99 | ||
109 | |||
110 | // public bool IsAuthenticated | 100 | // public bool IsAuthenticated |
111 | // { | 101 | // { |
112 | // get { return _isAuthenticated; } | 102 | // get { return _isAuthenticated; } |
113 | // } | 103 | // } |
114 | // private bool _isAuthenticated; | 104 | // private bool _isAuthenticated; |
115 | 105 | ||
116 | |||
117 | public bool HasEntityBody | 106 | public bool HasEntityBody |
118 | { | 107 | { |
119 | get { return _hasbody; } | 108 | get { return _hasbody; } |
120 | } | 109 | } |
121 | private bool _hasbody; | 110 | private bool _hasbody; |
122 | 111 | ||
123 | |||
124 | public bool KeepAlive | 112 | public bool KeepAlive |
125 | { | 113 | { |
126 | get { return _keepAlive; } | 114 | get { return _keepAlive; } |
127 | } | 115 | } |
128 | private bool _keepAlive; | 116 | private bool _keepAlive; |
129 | 117 | ||
130 | |||
131 | public string RawUrl | 118 | public string RawUrl |
132 | { | 119 | { |
133 | get { return _rawUrl; } | 120 | get { return _rawUrl; } |
134 | } | 121 | } |
135 | private string _rawUrl; | 122 | private string _rawUrl; |
136 | 123 | ||
137 | |||
138 | public Uri Url | 124 | public Uri Url |
139 | { | 125 | { |
140 | get { return _url; } | 126 | get { return _url; } |
141 | } | 127 | } |
142 | private Uri _url; | 128 | private Uri _url; |
143 | 129 | ||
144 | |||
145 | public string UserAgent | 130 | public string UserAgent |
146 | { | 131 | { |
147 | get { return _userAgent; } | 132 | get { return _userAgent; } |
148 | } | 133 | } |
149 | private string _userAgent; | 134 | private string _userAgent; |
150 | 135 | ||
151 | |||
152 | public NameValueCollection QueryString | 136 | public NameValueCollection QueryString |
153 | { | 137 | { |
154 | get { return _queryString; } | 138 | get { return _queryString; } |
@@ -161,28 +145,24 @@ namespace OpenSim.Framework.Servers | |||
161 | } | 145 | } |
162 | private Hashtable _query; | 146 | private Hashtable _query; |
163 | 147 | ||
164 | |||
165 | public IPEndPoint RemoteIPEndPoint | 148 | public IPEndPoint RemoteIPEndPoint |
166 | { | 149 | { |
167 | get { return _ipEndPoint; } | 150 | get { return _ipEndPoint; } |
168 | } | 151 | } |
169 | private IPEndPoint _ipEndPoint; | 152 | private IPEndPoint _ipEndPoint; |
170 | 153 | ||
171 | |||
172 | internal HttpRequest HttpRequest | 154 | internal HttpRequest HttpRequest |
173 | { | 155 | { |
174 | get { return _request; } | 156 | get { return _request; } |
175 | } | 157 | } |
176 | private HttpRequest _request; | 158 | private HttpRequest _request; |
177 | 159 | ||
178 | |||
179 | internal HttpClientContext HttpClientContext | 160 | internal HttpClientContext HttpClientContext |
180 | { | 161 | { |
181 | get { return _context; } | 162 | get { return _context; } |
182 | } | 163 | } |
183 | private HttpClientContext _context; | 164 | private HttpClientContext _context; |
184 | 165 | ||
185 | |||
186 | /// <summary> | 166 | /// <summary> |
187 | /// Internal whiteboard for handlers to store temporary stuff | 167 | /// Internal whiteboard for handlers to store temporary stuff |
188 | /// into. | 168 | /// into. |
@@ -193,12 +173,10 @@ namespace OpenSim.Framework.Servers | |||
193 | } | 173 | } |
194 | private Dictionary<string, object> _whiteboard = new Dictionary<string, object>(); | 174 | private Dictionary<string, object> _whiteboard = new Dictionary<string, object>(); |
195 | 175 | ||
196 | |||
197 | public OSHttpRequest() | 176 | public OSHttpRequest() |
198 | { | 177 | { |
199 | } | 178 | } |
200 | 179 | ||
201 | |||
202 | public OSHttpRequest(HttpListenerRequest req) | 180 | public OSHttpRequest(HttpListenerRequest req) |
203 | { | 181 | { |
204 | _acceptTypes = req.AcceptTypes; | 182 | _acceptTypes = req.AcceptTypes; |
diff --git a/OpenSim/Framework/Servers/OSHttpRequestPump.cs b/OpenSim/Framework/Servers/OSHttpRequestPump.cs index 8d4dc0d..b4270b3 100644 --- a/OpenSim/Framework/Servers/OSHttpRequestPump.cs +++ b/OpenSim/Framework/Servers/OSHttpRequestPump.cs | |||
@@ -39,7 +39,6 @@ using System.Threading; | |||
39 | using log4net; | 39 | using log4net; |
40 | using HttpServer; | 40 | using HttpServer; |
41 | 41 | ||
42 | |||
43 | namespace OpenSim.Framework.Servers | 42 | namespace OpenSim.Framework.Servers |
44 | { | 43 | { |
45 | /// <summary> | 44 | /// <summary> |
@@ -58,13 +57,12 @@ namespace OpenSim.Framework.Servers | |||
58 | protected Thread _engine; | 57 | protected Thread _engine; |
59 | 58 | ||
60 | private int _id; | 59 | private int _id; |
61 | 60 | ||
62 | public string EngineID | 61 | public string EngineID |
63 | { | 62 | { |
64 | get { return String.Format("{0} pump {1}", _server.EngineID, _id); } | 63 | get { return String.Format("{0} pump {1}", _server.EngineID, _id); } |
65 | } | 64 | } |
66 | 65 | ||
67 | |||
68 | public OSHttpRequestPump(OSHttpServer server, OSHttpRequestQueue queue, int id) | 66 | public OSHttpRequestPump(OSHttpServer server, OSHttpRequestQueue queue, int id) |
69 | { | 67 | { |
70 | _server = server; | 68 | _server = server; |
@@ -77,7 +75,6 @@ namespace OpenSim.Framework.Servers | |||
77 | _engine.Start(); | 75 | _engine.Start(); |
78 | 76 | ||
79 | ThreadTracker.Add(_engine); | 77 | ThreadTracker.Add(_engine); |
80 | |||
81 | } | 78 | } |
82 | 79 | ||
83 | public static OSHttpRequestPump[] Pumps(OSHttpServer server, OSHttpRequestQueue queue, int poolSize) | 80 | public static OSHttpRequestPump[] Pumps(OSHttpServer server, OSHttpRequestQueue queue, int poolSize) |
@@ -104,21 +101,22 @@ namespace OpenSim.Framework.Servers | |||
104 | public void Engine() | 101 | public void Engine() |
105 | { | 102 | { |
106 | OSHttpRequest req = null; | 103 | OSHttpRequest req = null; |
107 | 104 | ||
108 | while (true) | 105 | while (true) |
109 | { | 106 | { |
110 | try { | 107 | try |
108 | { | ||
111 | // dequeue an OSHttpRequest from OSHttpServer's | 109 | // dequeue an OSHttpRequest from OSHttpServer's |
112 | // request queue | 110 | // request queue |
113 | req = _queue.Dequeue(); | 111 | req = _queue.Dequeue(); |
114 | 112 | ||
115 | // get a copy of the list of registered handlers | 113 | // get a copy of the list of registered handlers |
116 | List<OSHttpHandler> handlers = _server.OSHttpHandlers; | 114 | List<OSHttpHandler> handlers = _server.OSHttpHandlers; |
117 | 115 | ||
118 | // prune list and have it sorted from most | 116 | // prune list and have it sorted from most |
119 | // specific to least specific | 117 | // specific to least specific |
120 | handlers = MatchHandlers(req, handlers); | 118 | handlers = MatchHandlers(req, handlers); |
121 | 119 | ||
122 | // process req: we try each handler in turn until | 120 | // process req: we try each handler in turn until |
123 | // we are either out of handlers or get back a | 121 | // we are either out of handlers or get back a |
124 | // Pass or Done | 122 | // Pass or Done |
@@ -126,18 +124,18 @@ namespace OpenSim.Framework.Servers | |||
126 | foreach (OSHttpHandler h in handlers) | 124 | foreach (OSHttpHandler h in handlers) |
127 | { | 125 | { |
128 | rc = h.Process(req); | 126 | rc = h.Process(req); |
129 | 127 | ||
130 | // Pass: handler did not process the request, | 128 | // Pass: handler did not process the request, |
131 | // try next handler | 129 | // try next handler |
132 | if (OSHttpHandlerResult.Pass == rc) continue; | 130 | if (OSHttpHandlerResult.Pass == rc) continue; |
133 | 131 | ||
134 | // Handled: handler has processed the request | 132 | // Handled: handler has processed the request |
135 | if (OSHttpHandlerResult.Done == rc) break; | 133 | if (OSHttpHandlerResult.Done == rc) break; |
136 | 134 | ||
137 | // hmm, something went wrong | 135 | // hmm, something went wrong |
138 | throw new Exception(String.Format("[{0}] got unexpected OSHttpHandlerResult {1}", EngineID, rc)); | 136 | throw new Exception(String.Format("[{0}] got unexpected OSHttpHandlerResult {1}", EngineID, rc)); |
139 | } | 137 | } |
140 | 138 | ||
141 | if (OSHttpHandlerResult.Unprocessed == rc) | 139 | if (OSHttpHandlerResult.Unprocessed == rc) |
142 | { | 140 | { |
143 | _log.InfoFormat("[{0}] OSHttpHandler: no handler registered for {1}", EngineID, req); | 141 | _log.InfoFormat("[{0}] OSHttpHandler: no handler registered for {1}", EngineID, req); |
@@ -190,7 +188,7 @@ namespace OpenSim.Framework.Servers | |||
190 | if (null != remote) | 188 | if (null != remote) |
191 | { | 189 | { |
192 | Match epm = h.IPEndPointWhitelist.Match(remote.ToString()); | 190 | Match epm = h.IPEndPointWhitelist.Match(remote.ToString()); |
193 | if (!epm.Success) | 191 | if (!epm.Success) |
194 | { | 192 | { |
195 | scoredHandlers.Remove(h); | 193 | scoredHandlers.Remove(h); |
196 | continue; | 194 | continue; |
@@ -201,7 +199,7 @@ namespace OpenSim.Framework.Servers | |||
201 | if (null != h.Method) | 199 | if (null != h.Method) |
202 | { | 200 | { |
203 | Match m = h.Method.Match(req.HttpMethod); | 201 | Match m = h.Method.Match(req.HttpMethod); |
204 | if (!m.Success) | 202 | if (!m.Success) |
205 | { | 203 | { |
206 | scoredHandlers.Remove(h); | 204 | scoredHandlers.Remove(h); |
207 | continue; | 205 | continue; |
@@ -213,7 +211,7 @@ namespace OpenSim.Framework.Servers | |||
213 | if (null != h.Path) | 211 | if (null != h.Path) |
214 | { | 212 | { |
215 | Match m = h.Path.Match(req.RawUrl); | 213 | Match m = h.Path.Match(req.RawUrl); |
216 | if (!m.Success) | 214 | if (!m.Success) |
217 | { | 215 | { |
218 | scoredHandlers.Remove(h); | 216 | scoredHandlers.Remove(h); |
219 | continue; | 217 | continue; |
@@ -272,14 +270,15 @@ namespace OpenSim.Framework.Servers | |||
272 | { | 270 | { |
273 | return 0; | 271 | return 0; |
274 | } | 272 | } |
275 | 273 | ||
276 | // does the content of collection[tag] match | 274 | // does the content of collection[tag] match |
277 | // the supplied regex? | 275 | // the supplied regex? |
278 | Match cm = regexs[tag].Match(collection[tag]); | 276 | Match cm = regexs[tag].Match(collection[tag]); |
279 | if (!cm.Success) { | 277 | if (!cm.Success) |
278 | { | ||
280 | return 0; | 279 | return 0; |
281 | } | 280 | } |
282 | 281 | ||
283 | // ok: matches | 282 | // ok: matches |
284 | matched++; | 283 | matched++; |
285 | continue; | 284 | continue; |
@@ -288,7 +287,7 @@ namespace OpenSim.Framework.Servers | |||
288 | return matched; | 287 | return matched; |
289 | } | 288 | } |
290 | 289 | ||
291 | [ConditionalAttribute("DEBUGGING")] | 290 | [ConditionalAttribute("DEBUGGING")] |
292 | private void LogDumpHandlerList(List<OSHttpHandler> l) | 291 | private void LogDumpHandlerList(List<OSHttpHandler> l) |
293 | { | 292 | { |
294 | _log.DebugFormat("[{0}] OSHttpHandlerList dump:", EngineID); | 293 | _log.DebugFormat("[{0}] OSHttpHandlerList dump:", EngineID); |
diff --git a/OpenSim/Framework/Servers/OSHttpRequestQueue.cs b/OpenSim/Framework/Servers/OSHttpRequestQueue.cs index f6f1829..94f7b32 100644 --- a/OpenSim/Framework/Servers/OSHttpRequestQueue.cs +++ b/OpenSim/Framework/Servers/OSHttpRequestQueue.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Framework.Servers | |||
40 | { | 40 | { |
41 | private object _syncObject = new object(); | 41 | private object _syncObject = new object(); |
42 | 42 | ||
43 | new public void Enqueue(OSHttpRequest req) | 43 | new public void Enqueue(OSHttpRequest req) |
44 | { | 44 | { |
45 | lock (_syncObject) | 45 | lock (_syncObject) |
46 | { | 46 | { |
@@ -48,7 +48,7 @@ namespace OpenSim.Framework.Servers | |||
48 | Monitor.Pulse(_syncObject); | 48 | Monitor.Pulse(_syncObject); |
49 | } | 49 | } |
50 | } | 50 | } |
51 | 51 | ||
52 | new public OSHttpRequest Dequeue() | 52 | new public OSHttpRequest Dequeue() |
53 | { | 53 | { |
54 | OSHttpRequest req = null; | 54 | OSHttpRequest req = null; |
@@ -65,4 +65,4 @@ namespace OpenSim.Framework.Servers | |||
65 | return req; | 65 | return req; |
66 | } | 66 | } |
67 | } | 67 | } |
68 | } \ No newline at end of file | 68 | } |
diff --git a/OpenSim/Framework/Servers/OSHttpResponse.cs b/OpenSim/Framework/Servers/OSHttpResponse.cs index eb7e400..21d1e2b 100644 --- a/OpenSim/Framework/Servers/OSHttpResponse.cs +++ b/OpenSim/Framework/Servers/OSHttpResponse.cs | |||
@@ -56,15 +56,15 @@ namespace OpenSim.Framework.Servers | |||
56 | /// </summary> | 56 | /// </summary> |
57 | /// <remarks> | 57 | /// <remarks> |
58 | /// Setting this property will also set IsContentTypeSet to | 58 | /// Setting this property will also set IsContentTypeSet to |
59 | /// true. | 59 | /// true. |
60 | /// </remarks> | 60 | /// </remarks> |
61 | public string ContentType | 61 | public string ContentType |
62 | { | 62 | { |
63 | get | 63 | get |
64 | { | 64 | { |
65 | if (HttpServer) | 65 | if (HttpServer) |
66 | return _httpResponse.ContentType; | 66 | return _httpResponse.ContentType; |
67 | else | 67 | else |
68 | return _httpListenerResponse.ContentType; | 68 | return _httpListenerResponse.ContentType; |
69 | } | 69 | } |
70 | set | 70 | set |
@@ -100,11 +100,11 @@ namespace OpenSim.Framework.Servers | |||
100 | /// </summary> | 100 | /// </summary> |
101 | public long ContentLength | 101 | public long ContentLength |
102 | { | 102 | { |
103 | get | 103 | get |
104 | { | 104 | { |
105 | if (HttpServer) | 105 | if (HttpServer) |
106 | return _httpResponse.ContentLength; | 106 | return _httpResponse.ContentLength; |
107 | else | 107 | else |
108 | return _httpListenerResponse.ContentLength64; | 108 | return _httpListenerResponse.ContentLength64; |
109 | } | 109 | } |
110 | set | 110 | set |
@@ -130,11 +130,11 @@ namespace OpenSim.Framework.Servers | |||
130 | /// </summary> | 130 | /// </summary> |
131 | public Encoding ContentEncoding | 131 | public Encoding ContentEncoding |
132 | { | 132 | { |
133 | get | 133 | get |
134 | { | 134 | { |
135 | if (HttpServer) | 135 | if (HttpServer) |
136 | return _httpResponse.Encoding; | 136 | return _httpResponse.Encoding; |
137 | else | 137 | else |
138 | return _httpListenerResponse.ContentEncoding; | 138 | return _httpListenerResponse.ContentEncoding; |
139 | } | 139 | } |
140 | 140 | ||
@@ -142,7 +142,7 @@ namespace OpenSim.Framework.Servers | |||
142 | { | 142 | { |
143 | if (HttpServer) | 143 | if (HttpServer) |
144 | _httpResponse.Encoding = value; | 144 | _httpResponse.Encoding = value; |
145 | else | 145 | else |
146 | _httpListenerResponse.ContentEncoding = value; | 146 | _httpListenerResponse.ContentEncoding = value; |
147 | } | 147 | } |
148 | } | 148 | } |
@@ -152,8 +152,8 @@ namespace OpenSim.Framework.Servers | |||
152 | /// </summary> | 152 | /// </summary> |
153 | public WebHeaderCollection Headers | 153 | public WebHeaderCollection Headers |
154 | { | 154 | { |
155 | get | 155 | get |
156 | { | 156 | { |
157 | if (HttpServer) | 157 | if (HttpServer) |
158 | return null; | 158 | return null; |
159 | else | 159 | else |
@@ -166,10 +166,10 @@ namespace OpenSim.Framework.Servers | |||
166 | /// </summary> | 166 | /// </summary> |
167 | public bool KeepAlive | 167 | public bool KeepAlive |
168 | { | 168 | { |
169 | get | 169 | get |
170 | { | 170 | { |
171 | if (HttpServer) | 171 | if (HttpServer) |
172 | return _httpResponse.Connection == ConnectionType.KeepAlive; | 172 | return _httpResponse.Connection == ConnectionType.KeepAlive; |
173 | else | 173 | else |
174 | return _httpListenerResponse.KeepAlive; | 174 | return _httpListenerResponse.KeepAlive; |
175 | } | 175 | } |
@@ -178,7 +178,7 @@ namespace OpenSim.Framework.Servers | |||
178 | { | 178 | { |
179 | if (HttpServer) | 179 | if (HttpServer) |
180 | _httpResponse.Connection = ConnectionType.KeepAlive; | 180 | _httpResponse.Connection = ConnectionType.KeepAlive; |
181 | else | 181 | else |
182 | _httpListenerResponse.KeepAlive = value; | 182 | _httpListenerResponse.KeepAlive = value; |
183 | } | 183 | } |
184 | } | 184 | } |
@@ -191,8 +191,8 @@ namespace OpenSim.Framework.Servers | |||
191 | /// </remarks> | 191 | /// </remarks> |
192 | public Stream OutputStream | 192 | public Stream OutputStream |
193 | { | 193 | { |
194 | get | 194 | get |
195 | { | 195 | { |
196 | if (HttpServer) | 196 | if (HttpServer) |
197 | return _httpResponse.Body; | 197 | return _httpResponse.Body; |
198 | else | 198 | else |
@@ -205,10 +205,10 @@ namespace OpenSim.Framework.Servers | |||
205 | /// </summary> | 205 | /// </summary> |
206 | public Stream Body | 206 | public Stream Body |
207 | { | 207 | { |
208 | get | 208 | get |
209 | { | 209 | { |
210 | if (HttpServer) | 210 | if (HttpServer) |
211 | return _httpResponse.Body; | 211 | return _httpResponse.Body; |
212 | throw new Exception("[OSHttpResponse] mixed .NET and HttpServer access"); | 212 | throw new Exception("[OSHttpResponse] mixed .NET and HttpServer access"); |
213 | } | 213 | } |
214 | } | 214 | } |
@@ -228,18 +228,18 @@ namespace OpenSim.Framework.Servers | |||
228 | } | 228 | } |
229 | } | 229 | } |
230 | 230 | ||
231 | 231 | ||
232 | /// <summary> | 232 | /// <summary> |
233 | /// Chunk transfers. | 233 | /// Chunk transfers. |
234 | /// </summary> | 234 | /// </summary> |
235 | public bool SendChunked | 235 | public bool SendChunked |
236 | { | 236 | { |
237 | get | 237 | get |
238 | { | 238 | { |
239 | if (HttpServer) | 239 | if (HttpServer) |
240 | return _httpResponse.Chunked; | 240 | return _httpResponse.Chunked; |
241 | else | 241 | else |
242 | return _httpListenerResponse.SendChunked; | 242 | return _httpListenerResponse.SendChunked; |
243 | } | 243 | } |
244 | 244 | ||
245 | set | 245 | set |
@@ -256,12 +256,12 @@ namespace OpenSim.Framework.Servers | |||
256 | /// </summary> | 256 | /// </summary> |
257 | public int StatusCode | 257 | public int StatusCode |
258 | { | 258 | { |
259 | get | 259 | get |
260 | { | 260 | { |
261 | if (HttpServer) | 261 | if (HttpServer) |
262 | return (int)_httpResponse.Status; | 262 | return (int)_httpResponse.Status; |
263 | else | 263 | else |
264 | return _httpListenerResponse.StatusCode; | 264 | return _httpListenerResponse.StatusCode; |
265 | } | 265 | } |
266 | 266 | ||
267 | set | 267 | set |
@@ -279,12 +279,12 @@ namespace OpenSim.Framework.Servers | |||
279 | /// </summary> | 279 | /// </summary> |
280 | public string StatusDescription | 280 | public string StatusDescription |
281 | { | 281 | { |
282 | get | 282 | get |
283 | { | 283 | { |
284 | if (HttpServer) | 284 | if (HttpServer) |
285 | return _httpResponse.Reason; | 285 | return _httpResponse.Reason; |
286 | else | 286 | else |
287 | return _httpListenerResponse.StatusDescription; | 287 | return _httpListenerResponse.StatusDescription; |
288 | } | 288 | } |
289 | 289 | ||
290 | set | 290 | set |
@@ -331,7 +331,7 @@ namespace OpenSim.Framework.Servers | |||
331 | /// object. | 331 | /// object. |
332 | /// </summary | 332 | /// </summary |
333 | /// <param name="req">Incoming OSHttpRequest to which we are | 333 | /// <param name="req">Incoming OSHttpRequest to which we are |
334 | /// replying</param> | 334 | /// replying</param> |
335 | public OSHttpResponse(OSHttpRequest req) | 335 | public OSHttpResponse(OSHttpRequest req) |
336 | { | 336 | { |
337 | _httpResponse = new HttpResponse(req.HttpClientContext, req.HttpRequest); | 337 | _httpResponse = new HttpResponse(req.HttpClientContext, req.HttpRequest); |
@@ -343,7 +343,7 @@ namespace OpenSim.Framework.Servers | |||
343 | /// <param name="key">string containing the header field | 343 | /// <param name="key">string containing the header field |
344 | /// name</param> | 344 | /// name</param> |
345 | /// <param name="value">string containing the header field | 345 | /// <param name="value">string containing the header field |
346 | /// value</param> | 346 | /// value</param> |
347 | public void AddHeader(string key, string value) | 347 | public void AddHeader(string key, string value) |
348 | { | 348 | { |
349 | if (HttpServer) | 349 | if (HttpServer) |
@@ -361,8 +361,8 @@ namespace OpenSim.Framework.Servers | |||
361 | { | 361 | { |
362 | _httpResponse.Body.Flush(); | 362 | _httpResponse.Body.Flush(); |
363 | _httpResponse.Send(); | 363 | _httpResponse.Send(); |
364 | } | 364 | } |
365 | else | 365 | else |
366 | { | 366 | { |
367 | OutputStream.Close(); | 367 | OutputStream.Close(); |
368 | } | 368 | } |
diff --git a/OpenSim/Framework/Servers/OSHttpServer.cs b/OpenSim/Framework/Servers/OSHttpServer.cs index e0d26ff..40f4229 100644 --- a/OpenSim/Framework/Servers/OSHttpServer.cs +++ b/OpenSim/Framework/Servers/OSHttpServer.cs | |||
@@ -80,7 +80,7 @@ namespace OpenSim.Framework.Servers | |||
80 | get { return _isSecure; } | 80 | get { return _isSecure; } |
81 | } | 81 | } |
82 | 82 | ||
83 | public int QueueSize | 83 | public int QueueSize |
84 | { | 84 | { |
85 | get { return _pumps.Length; } | 85 | get { return _pumps.Length; } |
86 | } | 86 | } |
@@ -91,7 +91,7 @@ namespace OpenSim.Framework.Servers | |||
91 | protected List<OSHttpHandler> _httpHandlers = new List<OSHttpHandler>(); | 91 | protected List<OSHttpHandler> _httpHandlers = new List<OSHttpHandler>(); |
92 | public List<OSHttpHandler> OSHttpHandlers | 92 | public List<OSHttpHandler> OSHttpHandlers |
93 | { | 93 | { |
94 | get | 94 | get |
95 | { | 95 | { |
96 | lock (_httpHandlers) | 96 | lock (_httpHandlers) |
97 | { | 97 | { |
@@ -175,7 +175,7 @@ namespace OpenSim.Framework.Servers | |||
175 | _listener.RequestHandler += OnHttpRequest; | 175 | _listener.RequestHandler += OnHttpRequest; |
176 | _listener.Start(QueueSize); | 176 | _listener.Start(QueueSize); |
177 | _log.InfoFormat("[{0}] HTTP server started", EngineID); | 177 | _log.InfoFormat("[{0}] HTTP server started", EngineID); |
178 | 178 | ||
179 | lock (_syncObject) Monitor.Wait(_syncObject); | 179 | lock (_syncObject) Monitor.Wait(_syncObject); |
180 | } | 180 | } |
181 | catch (Exception ex) | 181 | catch (Exception ex) |
@@ -196,7 +196,7 @@ namespace OpenSim.Framework.Servers | |||
196 | /// and regular expressions to match against header values</param> | 196 | /// and regular expressions to match against header values</param> |
197 | public void AddHandler(OSHttpHandler handler) | 197 | public void AddHandler(OSHttpHandler handler) |
198 | { | 198 | { |
199 | lock (_httpHandlers) | 199 | lock (_httpHandlers) |
200 | { | 200 | { |
201 | if (_httpHandlers.Contains(handler)) | 201 | if (_httpHandlers.Contains(handler)) |
202 | { | 202 | { |
diff --git a/OpenSim/Framework/Servers/OSHttpXmlRpcHandler.cs b/OpenSim/Framework/Servers/OSHttpXmlRpcHandler.cs index f3f056a..996e5dc 100644 --- a/OpenSim/Framework/Servers/OSHttpXmlRpcHandler.cs +++ b/OpenSim/Framework/Servers/OSHttpXmlRpcHandler.cs | |||
@@ -54,16 +54,16 @@ namespace OpenSim.Framework.Servers | |||
54 | protected bool XmlRpcMethodMatch(OSHttpRequest req) | 54 | protected bool XmlRpcMethodMatch(OSHttpRequest req) |
55 | { | 55 | { |
56 | XmlRpcRequest xmlRpcRequest = null; | 56 | XmlRpcRequest xmlRpcRequest = null; |
57 | 57 | ||
58 | // check whether req is already reified | 58 | // check whether req is already reified |
59 | // if not: reify (and post to whiteboard) | 59 | // if not: reify (and post to whiteboard) |
60 | try | 60 | try |
61 | { | 61 | { |
62 | if (req.Whiteboard.ContainsKey("xmlrequest")) | 62 | if (req.Whiteboard.ContainsKey("xmlrequest")) |
63 | { | 63 | { |
64 | xmlRpcRequest = req.Whiteboard["xmlrequest"] as XmlRpcRequest; | 64 | xmlRpcRequest = req.Whiteboard["xmlrequest"] as XmlRpcRequest; |
65 | } | 65 | } |
66 | else | 66 | else |
67 | { | 67 | { |
68 | StreamReader body = new StreamReader(req.InputStream); | 68 | StreamReader body = new StreamReader(req.InputStream); |
69 | string requestBody = body.ReadToEnd(); | 69 | string requestBody = body.ReadToEnd(); |
@@ -76,22 +76,22 @@ namespace OpenSim.Framework.Servers | |||
76 | _log.ErrorFormat("[OSHttpXmlRpcHandler] failed to deserialize XmlRpcRequest from {0}", req.ToString()); | 76 | _log.ErrorFormat("[OSHttpXmlRpcHandler] failed to deserialize XmlRpcRequest from {0}", req.ToString()); |
77 | return false; | 77 | return false; |
78 | } | 78 | } |
79 | 79 | ||
80 | // check against methodName | 80 | // check against methodName |
81 | if ((null != xmlRpcRequest) | 81 | if ((null != xmlRpcRequest) |
82 | && !String.IsNullOrEmpty(xmlRpcRequest.MethodName) | 82 | && !String.IsNullOrEmpty(xmlRpcRequest.MethodName) |
83 | && xmlRpcRequest.MethodName == _methodName) | 83 | && xmlRpcRequest.MethodName == _methodName) |
84 | { | 84 | { |
85 | _log.DebugFormat("[OSHttpXmlRpcHandler] located handler {0} for {1}", _methodName, req.ToString()); | 85 | _log.DebugFormat("[OSHttpXmlRpcHandler] located handler {0} for {1}", _methodName, req.ToString()); |
86 | return true; | 86 | return true; |
87 | } | 87 | } |
88 | 88 | ||
89 | return false; | 89 | return false; |
90 | } | 90 | } |
91 | 91 | ||
92 | // contains handler for processing XmlRpc Request | 92 | // contains handler for processing XmlRpc Request |
93 | private XmlRpcMethod _handler; | 93 | private XmlRpcMethod _handler; |
94 | 94 | ||
95 | // contains XmlRpc method name | 95 | // contains XmlRpc method name |
96 | private string _methodName; | 96 | private string _methodName; |
97 | 97 | ||
@@ -112,9 +112,9 @@ namespace OpenSim.Framework.Servers | |||
112 | /// can be null, in which case they are not taken into account | 112 | /// can be null, in which case they are not taken into account |
113 | /// when the handler is being looked up. | 113 | /// when the handler is being looked up. |
114 | /// </remarks> | 114 | /// </remarks> |
115 | public OSHttpXmlRpcHandler(XmlRpcMethod handler, string methodName, Regex path, | 115 | public OSHttpXmlRpcHandler(XmlRpcMethod handler, string methodName, Regex path, |
116 | Dictionary<string, Regex> headers, Regex whitelist) | 116 | Dictionary<string, Regex> headers, Regex whitelist) |
117 | : base(new Regex(@"^POST$", RegexOptions.IgnoreCase | RegexOptions.Compiled), path, null, headers, | 117 | : base(new Regex(@"^POST$", RegexOptions.IgnoreCase | RegexOptions.Compiled), path, null, headers, |
118 | new Regex(@"^(text|application)/xml", RegexOptions.IgnoreCase | RegexOptions.Compiled), | 118 | new Regex(@"^(text|application)/xml", RegexOptions.IgnoreCase | RegexOptions.Compiled), |
119 | whitelist) | 119 | whitelist) |
120 | { | 120 | { |
@@ -138,7 +138,7 @@ namespace OpenSim.Framework.Servers | |||
138 | /// <summary> | 138 | /// <summary> |
139 | /// Invoked by OSHttpRequestPump. | 139 | /// Invoked by OSHttpRequestPump. |
140 | /// </summary> | 140 | /// </summary> |
141 | public override OSHttpHandlerResult Process(OSHttpRequest request) | 141 | public override OSHttpHandlerResult Process(OSHttpRequest request) |
142 | { | 142 | { |
143 | XmlRpcResponse xmlRpcResponse; | 143 | XmlRpcResponse xmlRpcResponse; |
144 | string responseString; | 144 | string responseString; |
@@ -148,13 +148,13 @@ namespace OpenSim.Framework.Servers | |||
148 | 148 | ||
149 | 149 | ||
150 | OSHttpResponse resp = new OSHttpResponse(request); | 150 | OSHttpResponse resp = new OSHttpResponse(request); |
151 | try | 151 | try |
152 | { | 152 | { |
153 | // reified XmlRpcRequest must still be on the whiteboard | 153 | // reified XmlRpcRequest must still be on the whiteboard |
154 | XmlRpcRequest xmlRpcRequest = request.Whiteboard["xmlrequest"] as XmlRpcRequest; | 154 | XmlRpcRequest xmlRpcRequest = request.Whiteboard["xmlrequest"] as XmlRpcRequest; |
155 | xmlRpcResponse = _handler(xmlRpcRequest); | 155 | xmlRpcResponse = _handler(xmlRpcRequest); |
156 | responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse); | 156 | responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse); |
157 | 157 | ||
158 | resp.ContentType = "text/xml"; | 158 | resp.ContentType = "text/xml"; |
159 | byte[] buffer = Encoding.UTF8.GetBytes(responseString); | 159 | byte[] buffer = Encoding.UTF8.GetBytes(responseString); |
160 | 160 | ||
@@ -176,4 +176,4 @@ namespace OpenSim.Framework.Servers | |||
176 | return OSHttpHandlerResult.Done; | 176 | return OSHttpHandlerResult.Done; |
177 | } | 177 | } |
178 | } | 178 | } |
179 | } \ No newline at end of file | 179 | } |
diff --git a/OpenSim/Framework/Servers/RestSessionService.cs b/OpenSim/Framework/Servers/RestSessionService.cs index 1ed349f..1cfb425 100644 --- a/OpenSim/Framework/Servers/RestSessionService.cs +++ b/OpenSim/Framework/Servers/RestSessionService.cs | |||
@@ -151,7 +151,7 @@ namespace OpenSim.Framework.Servers | |||
151 | private CheckIdentityMethod m_smethod; | 151 | private CheckIdentityMethod m_smethod; |
152 | 152 | ||
153 | public RestDeserialiseSecureHandler( | 153 | public RestDeserialiseSecureHandler( |
154 | string httpMethod, string path, | 154 | string httpMethod, string path, |
155 | RestDeserialiseMethod<TRequest, TResponse> method, CheckIdentityMethod smethod) | 155 | RestDeserialiseMethod<TRequest, TResponse> method, CheckIdentityMethod smethod) |
156 | : base(httpMethod, path) | 156 | : base(httpMethod, path) |
157 | { | 157 | { |
@@ -196,7 +196,7 @@ namespace OpenSim.Framework.Servers | |||
196 | /// <param name="method"></param> | 196 | /// <param name="method"></param> |
197 | /// <param name="tmethod"></param> | 197 | /// <param name="tmethod"></param> |
198 | private RestDeserialiseMethod<TRequest, TResponse> m_method; | 198 | private RestDeserialiseMethod<TRequest, TResponse> m_method; |
199 | 199 | ||
200 | /// <summary> | 200 | /// <summary> |
201 | /// The method used to check whether a request is trusted. | 201 | /// The method used to check whether a request is trusted. |
202 | /// </summary> | 202 | /// </summary> |
diff --git a/OpenSim/Framework/Statistics/BaseStatsCollector.cs b/OpenSim/Framework/Statistics/BaseStatsCollector.cs index c888f4c..1e59983 100644 --- a/OpenSim/Framework/Statistics/BaseStatsCollector.cs +++ b/OpenSim/Framework/Statistics/BaseStatsCollector.cs | |||
@@ -24,10 +24,10 @@ | |||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using System; | 28 | using System; |
29 | using System.Text; | 29 | using System.Text; |
30 | 30 | ||
31 | namespace OpenSim.Framework.Statistics | 31 | namespace OpenSim.Framework.Statistics |
32 | { | 32 | { |
33 | /// <summary> | 33 | /// <summary> |
@@ -44,7 +44,7 @@ namespace OpenSim.Framework.Statistics | |||
44 | string.Format( | 44 | string.Format( |
45 | "Allocated to OpenSim : {0} MB" + Environment.NewLine, | 45 | "Allocated to OpenSim : {0} MB" + Environment.NewLine, |
46 | Math.Round(GC.GetTotalMemory(false) / 1024.0 / 1024.0))); | 46 | Math.Round(GC.GetTotalMemory(false) / 1024.0 / 1024.0))); |
47 | 47 | ||
48 | return sb.ToString(); | 48 | return sb.ToString(); |
49 | } | 49 | } |
50 | } | 50 | } |
diff --git a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs index 06b3185..58d5621 100644 --- a/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs +++ b/OpenSim/Framework/Statistics/SimExtraStatsCollector.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Framework.Statistics | |||
40 | public class SimExtraStatsCollector : BaseStatsCollector | 40 | public class SimExtraStatsCollector : BaseStatsCollector |
41 | { | 41 | { |
42 | private long abnormalClientThreadTerminations; | 42 | private long abnormalClientThreadTerminations; |
43 | 43 | ||
44 | private long assetsInCache; | 44 | private long assetsInCache; |
45 | private long texturesInCache; | 45 | private long texturesInCache; |
46 | private long assetCacheMemoryUsage; | 46 | private long assetCacheMemoryUsage; |
@@ -49,7 +49,7 @@ namespace OpenSim.Framework.Statistics | |||
49 | 49 | ||
50 | private long assetServiceRequestFailures; | 50 | private long assetServiceRequestFailures; |
51 | private long inventoryServiceRetrievalFailures; | 51 | private long inventoryServiceRetrievalFailures; |
52 | 52 | ||
53 | private float timeDilation; | 53 | private float timeDilation; |
54 | private float simFps; | 54 | private float simFps; |
55 | private float physicsFps; | 55 | private float physicsFps; |
@@ -70,8 +70,8 @@ namespace OpenSim.Framework.Statistics | |||
70 | private float pendingDownloads; | 70 | private float pendingDownloads; |
71 | private float pendingUploads; | 71 | private float pendingUploads; |
72 | private float activeScripts; | 72 | private float activeScripts; |
73 | private float scriptLinesPerSecond; | 73 | private float scriptLinesPerSecond; |
74 | 74 | ||
75 | /// <summary> | 75 | /// <summary> |
76 | /// Number of times that a client thread terminated because of an exception | 76 | /// Number of times that a client thread terminated because of an exception |
77 | /// </summary> | 77 | /// </summary> |
@@ -79,7 +79,7 @@ namespace OpenSim.Framework.Statistics | |||
79 | 79 | ||
80 | /// <summary> | 80 | /// <summary> |
81 | /// These statistics are being collected by push rather than pull. Pull would be simpler, but I had the | 81 | /// These statistics are being collected by push rather than pull. Pull would be simpler, but I had the |
82 | /// notion of providing some flow statistics (which pull wouldn't give us). Though admittedly these | 82 | /// notion of providing some flow statistics (which pull wouldn't give us). Though admittedly these |
83 | /// haven't yet been implemented... :) | 83 | /// haven't yet been implemented... :) |
84 | /// </summary> | 84 | /// </summary> |
85 | public long AssetsInCache { get { return assetsInCache; } } | 85 | public long AssetsInCache { get { return assetsInCache; } } |
@@ -101,19 +101,19 @@ namespace OpenSim.Framework.Statistics | |||
101 | /// as a failure | 101 | /// as a failure |
102 | /// </summary> | 102 | /// </summary> |
103 | public long AssetServiceRequestFailures { get { return assetServiceRequestFailures; } } | 103 | public long AssetServiceRequestFailures { get { return assetServiceRequestFailures; } } |
104 | 104 | ||
105 | /// <summary> | 105 | /// <summary> |
106 | /// Number of known failures to retrieve avatar inventory from the inventory service. This does not | 106 | /// Number of known failures to retrieve avatar inventory from the inventory service. This does not |
107 | /// cover situations where the inventory service accepts the request but never returns any data, since | 107 | /// cover situations where the inventory service accepts the request but never returns any data, since |
108 | /// we do not yet timeout this situation. | 108 | /// we do not yet timeout this situation. |
109 | /// </summary> | 109 | /// </summary> |
110 | public long InventoryServiceRetrievalFailures { get { return inventoryServiceRetrievalFailures; } } | 110 | public long InventoryServiceRetrievalFailures { get { return inventoryServiceRetrievalFailures; } } |
111 | 111 | ||
112 | /// <summary> | 112 | /// <summary> |
113 | /// Retrieve the total frame time (in ms) of the last frame | 113 | /// Retrieve the total frame time (in ms) of the last frame |
114 | /// </summary> | 114 | /// </summary> |
115 | //public float TotalFrameTime { get { return totalFrameTime; } } | 115 | //public float TotalFrameTime { get { return totalFrameTime; } } |
116 | 116 | ||
117 | /// <summary> | 117 | /// <summary> |
118 | /// Retrieve the physics update component (in ms) of the last frame | 118 | /// Retrieve the physics update component (in ms) of the last frame |
119 | /// </summary> | 119 | /// </summary> |
@@ -124,7 +124,7 @@ namespace OpenSim.Framework.Statistics | |||
124 | /// </summary> | 124 | /// </summary> |
125 | private IDictionary<LLUUID, PacketQueueStatsCollector> packetQueueStatsCollectors | 125 | private IDictionary<LLUUID, PacketQueueStatsCollector> packetQueueStatsCollectors |
126 | = new Dictionary<LLUUID, PacketQueueStatsCollector>(); | 126 | = new Dictionary<LLUUID, PacketQueueStatsCollector>(); |
127 | 127 | ||
128 | public void AddAbnormalClientThreadTermination() | 128 | public void AddAbnormalClientThreadTermination() |
129 | { | 129 | { |
130 | abnormalClientThreadTerminations++; | 130 | abnormalClientThreadTerminations++; |
@@ -146,7 +146,7 @@ namespace OpenSim.Framework.Statistics | |||
146 | textureCacheMemoryUsage += image.Data.Length; | 146 | textureCacheMemoryUsage += image.Data.Length; |
147 | } | 147 | } |
148 | } | 148 | } |
149 | 149 | ||
150 | /// <summary> | 150 | /// <summary> |
151 | /// Signal that the asset cache can be cleared. | 151 | /// Signal that the asset cache can be cleared. |
152 | /// </summary> | 152 | /// </summary> |
@@ -167,7 +167,7 @@ namespace OpenSim.Framework.Statistics | |||
167 | { | 167 | { |
168 | assetServiceRequestFailures++; | 168 | assetServiceRequestFailures++; |
169 | } | 169 | } |
170 | 170 | ||
171 | public void AddInventoryServiceRetrievalFailure() | 171 | public void AddInventoryServiceRetrievalFailure() |
172 | { | 172 | { |
173 | inventoryServiceRetrievalFailures++; | 173 | inventoryServiceRetrievalFailures++; |
@@ -199,18 +199,18 @@ namespace OpenSim.Framework.Statistics | |||
199 | packetQueueStatsCollectors.Remove(uuid); | 199 | packetQueueStatsCollectors.Remove(uuid); |
200 | } | 200 | } |
201 | } | 201 | } |
202 | 202 | ||
203 | /// <summary> | 203 | /// <summary> |
204 | /// This is the method on which the classic sim stats reporter (which collects stats for | 204 | /// This is the method on which the classic sim stats reporter (which collects stats for |
205 | /// client purposes) sends information to listeners. | 205 | /// client purposes) sends information to listeners. |
206 | /// </summary> | 206 | /// </summary> |
207 | /// <param name="pack"></param> | 207 | /// <param name="pack"></param> |
208 | public void ReceiveClassicSimStatsPacket(SimStatsPacket statsPacket) | 208 | public void ReceiveClassicSimStatsPacket(SimStatsPacket statsPacket) |
209 | { | 209 | { |
210 | // FIXME: Really shouldn't rely on the probably arbitrary order in which | 210 | // FIXME: Really shouldn't rely on the probably arbitrary order in which |
211 | // stats are packed into the packet | 211 | // stats are packed into the packet |
212 | timeDilation = statsPacket.Stat[0].StatValue; | 212 | timeDilation = statsPacket.Stat[0].StatValue; |
213 | simFps = statsPacket.Stat[1].StatValue; | 213 | simFps = statsPacket.Stat[1].StatValue; |
214 | physicsFps = statsPacket.Stat[2].StatValue; | 214 | physicsFps = statsPacket.Stat[2].StatValue; |
215 | agentUpdates = statsPacket.Stat[3].StatValue; | 215 | agentUpdates = statsPacket.Stat[3].StatValue; |
216 | rootAgents = statsPacket.Stat[4].StatValue; | 216 | rootAgents = statsPacket.Stat[4].StatValue; |
@@ -231,7 +231,7 @@ namespace OpenSim.Framework.Statistics | |||
231 | activeScripts = statsPacket.Stat[19].StatValue; | 231 | activeScripts = statsPacket.Stat[19].StatValue; |
232 | scriptLinesPerSecond = statsPacket.Stat[20].StatValue; | 232 | scriptLinesPerSecond = statsPacket.Stat[20].StatValue; |
233 | } | 233 | } |
234 | 234 | ||
235 | /// <summary> | 235 | /// <summary> |
236 | /// Report back collected statistical information. | 236 | /// Report back collected statistical information. |
237 | /// </summary> | 237 | /// </summary> |
@@ -248,10 +248,10 @@ Texture cache contains {2,6} texture assets using {3,10} K | |||
248 | Blocked client requests for missing textures: {4} | 248 | Blocked client requests for missing textures: {4} |
249 | Asset service request failures: {5}"+ Environment.NewLine, | 249 | Asset service request failures: {5}"+ Environment.NewLine, |
250 | AssetsInCache, Math.Round(AssetCacheMemoryUsage / 1024.0), | 250 | AssetsInCache, Math.Round(AssetCacheMemoryUsage / 1024.0), |
251 | TexturesInCache, Math.Round(TextureCacheMemoryUsage / 1024.0), | 251 | TexturesInCache, Math.Round(TextureCacheMemoryUsage / 1024.0), |
252 | BlockedMissingTextureRequests, | 252 | BlockedMissingTextureRequests, |
253 | AssetServiceRequestFailures)); | 253 | AssetServiceRequestFailures)); |
254 | 254 | ||
255 | sb.Append(Environment.NewLine); | 255 | sb.Append(Environment.NewLine); |
256 | sb.Append("CONNECTION STATISTICS"); | 256 | sb.Append("CONNECTION STATISTICS"); |
257 | sb.Append(Environment.NewLine); | 257 | sb.Append(Environment.NewLine); |
@@ -267,7 +267,7 @@ Asset service request failures: {5}"+ Environment.NewLine, | |||
267 | string.Format( | 267 | string.Format( |
268 | "Initial inventory caching failures: {0}" + Environment.NewLine, | 268 | "Initial inventory caching failures: {0}" + Environment.NewLine, |
269 | InventoryServiceRetrievalFailures)); | 269 | InventoryServiceRetrievalFailures)); |
270 | 270 | ||
271 | sb.Append(Environment.NewLine); | 271 | sb.Append(Environment.NewLine); |
272 | sb.Append("FRAME STATISTICS"); | 272 | sb.Append("FRAME STATISTICS"); |
273 | sb.Append(Environment.NewLine); | 273 | sb.Append(Environment.NewLine); |
@@ -278,18 +278,18 @@ Asset service request failures: {5}"+ Environment.NewLine, | |||
278 | "{0,6:0.00} {1,6:0} {2,6:0.0} {3,6:0.0} {4,6:0} {5,6:0} {6,6:0} {7,6:0} {8,6:0} {9,6:0}", | 278 | "{0,6:0.00} {1,6:0} {2,6:0.0} {3,6:0.0} {4,6:0} {5,6:0} {6,6:0} {7,6:0} {8,6:0} {9,6:0}", |
279 | timeDilation, simFps, physicsFps, agentUpdates, rootAgents, | 279 | timeDilation, simFps, physicsFps, agentUpdates, rootAgents, |
280 | childAgents, totalPrims, activePrims, activeScripts, scriptLinesPerSecond)); | 280 | childAgents, totalPrims, activePrims, activeScripts, scriptLinesPerSecond)); |
281 | 281 | ||
282 | sb.Append(Environment.NewLine); | 282 | sb.Append(Environment.NewLine); |
283 | sb.Append(Environment.NewLine); | 283 | sb.Append(Environment.NewLine); |
284 | // There is no script frame time currently because we don't yet collect it | 284 | // There is no script frame time currently because we don't yet collect it |
285 | sb.Append("PktsIn PktOut PendDl PendUl UnackB TotlFt NetFt PhysFt OthrFt AgntFt ImgsFt"); | 285 | sb.Append("PktsIn PktOut PendDl PendUl UnackB TotlFt NetFt PhysFt OthrFt AgntFt ImgsFt"); |
286 | sb.Append(Environment.NewLine); | 286 | sb.Append(Environment.NewLine); |
287 | sb.Append( | 287 | sb.Append( |
288 | string.Format( | 288 | string.Format( |
289 | "{0,6:0} {1,6:0} {2,6:0} {3,6:0} {4,6:0} {5,6:0.0} {6,6:0.0} {7,6:0.0} {8,6:0.0} {9,6:0.0} {10,6:0.0}", | 289 | "{0,6:0} {1,6:0} {2,6:0} {3,6:0} {4,6:0} {5,6:0.0} {6,6:0.0} {7,6:0.0} {8,6:0.0} {9,6:0.0} {10,6:0.0}", |
290 | inPacketsPerSecond, outPacketsPerSecond, pendingDownloads, pendingUploads, unackedBytes, totalFrameTime, | 290 | inPacketsPerSecond, outPacketsPerSecond, pendingDownloads, pendingUploads, unackedBytes, totalFrameTime, |
291 | netFrameTime, physicsFrameTime, otherFrameTime, agentFrameTime, imageFrameTime)); | 291 | netFrameTime, physicsFrameTime, otherFrameTime, agentFrameTime, imageFrameTime)); |
292 | sb.Append(Environment.NewLine); | 292 | sb.Append(Environment.NewLine); |
293 | 293 | ||
294 | /* | 294 | /* |
295 | sb.Append(Environment.NewLine); | 295 | sb.Append(Environment.NewLine); |
@@ -311,7 +311,7 @@ Asset service request failures: {5}"+ Environment.NewLine, | |||
311 | */ | 311 | */ |
312 | 312 | ||
313 | sb.Append(base.Report()); | 313 | sb.Append(base.Report()); |
314 | 314 | ||
315 | return sb.ToString(); | 315 | return sb.ToString(); |
316 | } | 316 | } |
317 | } | 317 | } |
diff --git a/OpenSim/Framework/TaskInventoryItem.cs b/OpenSim/Framework/TaskInventoryItem.cs index 9b497ab..fc84041 100644 --- a/OpenSim/Framework/TaskInventoryItem.cs +++ b/OpenSim/Framework/TaskInventoryItem.cs | |||
@@ -226,7 +226,7 @@ namespace OpenSim.Framework | |||
226 | private LLUUID _permsGranter; | 226 | private LLUUID _permsGranter; |
227 | private int _permsMask; | 227 | private int _permsMask; |
228 | private int _type = 0; | 228 | private int _type = 0; |
229 | 229 | ||
230 | public LLUUID AssetID { | 230 | public LLUUID AssetID { |
231 | get { | 231 | get { |
232 | return _assetID; | 232 | return _assetID; |
@@ -437,4 +437,4 @@ namespace OpenSim.Framework | |||
437 | _parentPartID = partID; | 437 | _parentPartID = partID; |
438 | } | 438 | } |
439 | } | 439 | } |
440 | } \ No newline at end of file | 440 | } |
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index bc35fa6..2a21221 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -716,7 +716,7 @@ namespace OpenSim.Framework | |||
716 | XmlRpcRequest client = new XmlRpcRequest(methodName, args); | 716 | XmlRpcRequest client = new XmlRpcRequest(methodName, args); |
717 | return client.Send(url, 6000); | 717 | return client.Send(url, 6000); |
718 | } | 718 | } |
719 | 719 | ||
720 | // used for RemoteParcelRequest (for "About Landmark") | 720 | // used for RemoteParcelRequest (for "About Landmark") |
721 | public static LLUUID BuildFakeParcelID(ulong regionHandle, uint x, uint y) { | 721 | public static LLUUID BuildFakeParcelID(ulong regionHandle, uint x, uint y) { |
722 | byte[] bytes = { | 722 | byte[] bytes = { |
@@ -726,7 +726,7 @@ namespace OpenSim.Framework | |||
726 | (byte)(y >> 24), (byte)(y >> 16), (byte)(y >> 8), (byte)y }; | 726 | (byte)(y >> 24), (byte)(y >> 16), (byte)(y >> 8), (byte)y }; |
727 | return new LLUUID(bytes, 0); | 727 | return new LLUUID(bytes, 0); |
728 | } | 728 | } |
729 | 729 | ||
730 | public static void ParseFakeParcelID(LLUUID parcelID, out ulong regionHandle, out uint x, out uint y) { | 730 | public static void ParseFakeParcelID(LLUUID parcelID, out ulong regionHandle, out uint x, out uint y) { |
731 | byte[] bytes = parcelID.GetBytes(); | 731 | byte[] bytes = parcelID.GetBytes(); |
732 | regionHandle = Helpers.BytesToUInt64(bytes); | 732 | regionHandle = Helpers.BytesToUInt64(bytes); |
diff --git a/OpenSim/Grid/AssetServer/Main.cs b/OpenSim/Grid/AssetServer/Main.cs index 4a4f8bf..6d46048 100644 --- a/OpenSim/Grid/AssetServer/Main.cs +++ b/OpenSim/Grid/AssetServer/Main.cs | |||
@@ -83,7 +83,7 @@ namespace OpenSim.Grid.AssetServer | |||
83 | public override void Startup() | 83 | public override void Startup() |
84 | { | 84 | { |
85 | base.Startup(); | 85 | base.Startup(); |
86 | 86 | ||
87 | AssetConfig config = new AssetConfig("ASSET SERVER", (Path.Combine(Util.configDir(), "AssetServer_Config.xml"))); | 87 | AssetConfig config = new AssetConfig("ASSET SERVER", (Path.Combine(Util.configDir(), "AssetServer_Config.xml"))); |
88 | 88 | ||
89 | m_log.Info("[ASSET]: Setting up asset DB"); | 89 | m_log.Info("[ASSET]: Setting up asset DB"); |
@@ -115,17 +115,17 @@ namespace OpenSim.Grid.AssetServer | |||
115 | 115 | ||
116 | public IAssetProviderPlugin LoadDatabasePlugin(string provider, string connect) | 116 | public IAssetProviderPlugin LoadDatabasePlugin(string provider, string connect) |
117 | { | 117 | { |
118 | PluginLoader<IAssetProviderPlugin> loader = | 118 | PluginLoader<IAssetProviderPlugin> loader = |
119 | new PluginLoader<IAssetProviderPlugin> (new AssetDataInitialiser (connect)); | 119 | new PluginLoader<IAssetProviderPlugin> (new AssetDataInitialiser (connect)); |
120 | 120 | ||
121 | // loader will try to load all providers (MySQL, MSSQL, etc) | 121 | // loader will try to load all providers (MySQL, MSSQL, etc) |
122 | // unless it is constrainted to the correct "Provider" entry in the addin.xml | 122 | // unless it is constrainted to the correct "Provider" entry in the addin.xml |
123 | loader.Add ("/OpenSim/AssetData", new PluginProviderFilter (provider)); | 123 | loader.Add ("/OpenSim/AssetData", new PluginProviderFilter (provider)); |
124 | loader.Load(); | 124 | loader.Load(); |
125 | 125 | ||
126 | return loader.Plugin; | 126 | return loader.Plugin; |
127 | } | 127 | } |
128 | 128 | ||
129 | public void setupDB(AssetConfig config) | 129 | public void setupDB(AssetConfig config) |
130 | { | 130 | { |
131 | try | 131 | try |
diff --git a/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs b/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs index eed4621..a36d396 100644 --- a/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs +++ b/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs | |||
@@ -40,17 +40,17 @@ namespace OpenSim.Grid.Communications.OGS1 | |||
40 | public class OGS1InterServiceInventoryService : IInterServiceInventoryServices | 40 | public class OGS1InterServiceInventoryService : IInterServiceInventoryServices |
41 | { | 41 | { |
42 | protected Uri m_inventoryServerUrl; | 42 | protected Uri m_inventoryServerUrl; |
43 | 43 | ||
44 | public OGS1InterServiceInventoryService(Uri inventoryServerUrl) | 44 | public OGS1InterServiceInventoryService(Uri inventoryServerUrl) |
45 | { | 45 | { |
46 | m_inventoryServerUrl = inventoryServerUrl; | 46 | m_inventoryServerUrl = inventoryServerUrl; |
47 | } | 47 | } |
48 | 48 | ||
49 | /// <summary> | 49 | /// <summary> |
50 | /// <see cref="OpenSim.Framework.Communications.IInterServiceInventoryServices"/> | 50 | /// <see cref="OpenSim.Framework.Communications.IInterServiceInventoryServices"/> |
51 | /// </summary> | 51 | /// </summary> |
52 | /// <param name="userId"></param> | 52 | /// <param name="userId"></param> |
53 | /// <returns></returns> | 53 | /// <returns></returns> |
54 | public bool CreateNewUserInventory(LLUUID userId) | 54 | public bool CreateNewUserInventory(LLUUID userId) |
55 | { | 55 | { |
56 | return SynchronousRestObjectPoster.BeginPostObject<Guid, bool>( | 56 | return SynchronousRestObjectPoster.BeginPostObject<Guid, bool>( |
diff --git a/OpenSim/Grid/GridServer/GridManager.cs b/OpenSim/Grid/GridServer/GridManager.cs index 3101a38..98abd53 100644 --- a/OpenSim/Grid/GridServer/GridManager.cs +++ b/OpenSim/Grid/GridServer/GridManager.cs | |||
@@ -61,20 +61,20 @@ namespace OpenSim.Grid.GridServer | |||
61 | /// <param name="provider">The name of the grid server plugin DLL</param> | 61 | /// <param name="provider">The name of the grid server plugin DLL</param> |
62 | public void AddPlugin(string provider, string connect) | 62 | public void AddPlugin(string provider, string connect) |
63 | { | 63 | { |
64 | PluginLoader<IGridDataPlugin> gridloader = | 64 | PluginLoader<IGridDataPlugin> gridloader = |
65 | new PluginLoader<IGridDataPlugin> (new GridDataInitialiser (connect)); | 65 | new PluginLoader<IGridDataPlugin> (new GridDataInitialiser (connect)); |
66 | 66 | ||
67 | PluginLoader<ILogDataPlugin> logloader = | 67 | PluginLoader<ILogDataPlugin> logloader = |
68 | new PluginLoader<ILogDataPlugin> (new LogDataInitialiser (connect)); | 68 | new PluginLoader<ILogDataPlugin> (new LogDataInitialiser (connect)); |
69 | 69 | ||
70 | // loader will try to load all providers (MySQL, MSSQL, etc) | 70 | // loader will try to load all providers (MySQL, MSSQL, etc) |
71 | // unless it is constrainted to the correct "Provider" entry in the addin.xml | 71 | // unless it is constrainted to the correct "Provider" entry in the addin.xml |
72 | gridloader.Add ("/OpenSim/GridData", new PluginProviderFilter (provider)); | 72 | gridloader.Add ("/OpenSim/GridData", new PluginProviderFilter (provider)); |
73 | logloader.Add ("/OpenSim/LogData", new PluginProviderFilter (provider)); | 73 | logloader.Add ("/OpenSim/LogData", new PluginProviderFilter (provider)); |
74 | 74 | ||
75 | gridloader.Load(); | 75 | gridloader.Load(); |
76 | logloader.Load(); | 76 | logloader.Load(); |
77 | 77 | ||
78 | _plugins = gridloader.Plugins; | 78 | _plugins = gridloader.Plugins; |
79 | _logplugins = logloader.Plugins; | 79 | _logplugins = logloader.Plugins; |
80 | } | 80 | } |
@@ -382,7 +382,7 @@ namespace OpenSim.Grid.GridServer | |||
382 | string logMsg = e.Message; | 382 | string logMsg = e.Message; |
383 | if (e.InnerException != null) | 383 | if (e.InnerException != null) |
384 | logMsg += ", " + e.InnerException.Message; | 384 | logMsg += ", " + e.InnerException.Message; |
385 | 385 | ||
386 | m_log.WarnFormat("[LOGIN END]: {0}", logMsg); | 386 | m_log.WarnFormat("[LOGIN END]: {0}", logMsg); |
387 | 387 | ||
388 | return e.XmlRpcErrorResponse; | 388 | return e.XmlRpcErrorResponse; |
diff --git a/OpenSim/Grid/GridServer/IGridPlugin.cs b/OpenSim/Grid/GridServer/IGridPlugin.cs index 71c357b..e2557c0 100644 --- a/OpenSim/Grid/GridServer/IGridPlugin.cs +++ b/OpenSim/Grid/GridServer/IGridPlugin.cs | |||
@@ -34,7 +34,7 @@ namespace OpenSim.Grid.GridServer | |||
34 | { | 34 | { |
35 | void Initialise(GridServerBase gridServer); | 35 | void Initialise(GridServerBase gridServer); |
36 | } | 36 | } |
37 | 37 | ||
38 | public class GridPluginInitialiser : PluginInitialiserBase | 38 | public class GridPluginInitialiser : PluginInitialiserBase |
39 | { | 39 | { |
40 | private GridServerBase server; | 40 | private GridServerBase server; |
diff --git a/OpenSim/Grid/InventoryServer/GridInventoryService.cs b/OpenSim/Grid/InventoryServer/GridInventoryService.cs index 643cf4d..e4d43d4 100644 --- a/OpenSim/Grid/InventoryServer/GridInventoryService.cs +++ b/OpenSim/Grid/InventoryServer/GridInventoryService.cs | |||
@@ -84,12 +84,12 @@ namespace OpenSim.Grid.InventoryServer | |||
84 | { | 84 | { |
85 | return true; | 85 | return true; |
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
89 | m_log.WarnFormat( | 89 | m_log.WarnFormat( |
90 | "[GRID AGENT INVENTORY]: Rejecting request since source {0} was not in the list of trusted sources", | 90 | "[GRID AGENT INVENTORY]: Rejecting request since source {0} was not in the list of trusted sources", |
91 | peer); | 91 | peer); |
92 | 92 | ||
93 | return false; | 93 | return false; |
94 | } | 94 | } |
95 | else | 95 | else |
@@ -110,7 +110,7 @@ namespace OpenSim.Grid.InventoryServer | |||
110 | if (m_doLookup) | 110 | if (m_doLookup) |
111 | { | 111 | { |
112 | m_log.InfoFormat("[GRID AGENT INVENTORY]: checking authed session {0} {1}", session_id, avatar_id); | 112 | m_log.InfoFormat("[GRID AGENT INVENTORY]: checking authed session {0} {1}", session_id, avatar_id); |
113 | 113 | ||
114 | if (m_session_cache.getCachedSession(session_id, avatar_id) == null) | 114 | if (m_session_cache.getCachedSession(session_id, avatar_id) == null) |
115 | { | 115 | { |
116 | // cache miss, ask userserver | 116 | // cache miss, ask userserver |
@@ -137,7 +137,7 @@ namespace OpenSim.Grid.InventoryServer | |||
137 | m_log.Info("[GRID AGENT INVENTORY]: got authed session from cache"); | 137 | m_log.Info("[GRID AGENT INVENTORY]: got authed session from cache"); |
138 | return true; | 138 | return true; |
139 | } | 139 | } |
140 | 140 | ||
141 | m_log.Warn("[GRID AGENT INVENTORY]: unknown session_id, request rejected"); | 141 | m_log.Warn("[GRID AGENT INVENTORY]: unknown session_id, request rejected"); |
142 | return false; | 142 | return false; |
143 | } | 143 | } |
diff --git a/OpenSim/Grid/InventoryServer/Main.cs b/OpenSim/Grid/InventoryServer/Main.cs index 7e6a29b..a77c570 100644 --- a/OpenSim/Grid/InventoryServer/Main.cs +++ b/OpenSim/Grid/InventoryServer/Main.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Grid.InventoryServer | |||
65 | public override void Startup() | 65 | public override void Startup() |
66 | { | 66 | { |
67 | base.Startup(); | 67 | base.Startup(); |
68 | 68 | ||
69 | InventoryConfig config = new InventoryConfig(LogName, (Path.Combine(Util.configDir(), "InventoryServer_Config.xml"))); | 69 | InventoryConfig config = new InventoryConfig(LogName, (Path.Combine(Util.configDir(), "InventoryServer_Config.xml"))); |
70 | 70 | ||
71 | m_inventoryService = new GridInventoryService(config.UserServerURL); | 71 | m_inventoryService = new GridInventoryService(config.UserServerURL); |
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs index 210e195..06bcee2 100644 --- a/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs +++ b/OpenSim/Grid/Manager/OpenGridServices.Manager/ConnectToGridServerDialog.cs | |||
@@ -43,10 +43,10 @@ namespace OpenGridServices.Manager | |||
43 | { | 43 | { |
44 | case Gtk.ResponseType.Ok: | 44 | case Gtk.ResponseType.Ok: |
45 | MainClass.PendingOperations.Enqueue("connect_to_gridserver " + this.entry1.Text + " " + this.entry2.Text + " " + this.entry3.Text); | 45 | MainClass.PendingOperations.Enqueue("connect_to_gridserver " + this.entry1.Text + " " + this.entry2.Text + " " + this.entry3.Text); |
46 | break; | 46 | break; |
47 | 47 | ||
48 | case Gtk.ResponseType.Cancel: | 48 | case Gtk.ResponseType.Cancel: |
49 | break; | 49 | break; |
50 | } | 50 | } |
51 | this.Hide(); | 51 | this.Hide(); |
52 | } | 52 | } |
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs index cf44ac2..c39e72a 100644 --- a/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs +++ b/OpenSim/Grid/Manager/OpenGridServices.Manager/GridServerConnectionManager.cs | |||
@@ -41,9 +41,9 @@ namespace OpenGridServices.Manager | |||
41 | private string ServerURL; | 41 | private string ServerURL; |
42 | public LLUUID SessionID; | 42 | public LLUUID SessionID; |
43 | public bool connected=false; | 43 | public bool connected=false; |
44 | 44 | ||
45 | public RegionBlock[][] WorldMap; | 45 | public RegionBlock[][] WorldMap; |
46 | 46 | ||
47 | public bool Connect(string GridServerURL, string username, string password) | 47 | public bool Connect(string GridServerURL, string username, string password) |
48 | { | 48 | { |
49 | try | 49 | try |
@@ -76,14 +76,14 @@ namespace OpenGridServices.Manager | |||
76 | return false; | 76 | return false; |
77 | } | 77 | } |
78 | } | 78 | } |
79 | 79 | ||
80 | public void DownloadMap() | 80 | public void DownloadMap() |
81 | { | 81 | { |
82 | System.Net.WebClient mapdownloader = new WebClient(); | 82 | System.Net.WebClient mapdownloader = new WebClient(); |
83 | Stream regionliststream = mapdownloader.OpenRead(ServerURL + "/regionlist"); | 83 | Stream regionliststream = mapdownloader.OpenRead(ServerURL + "/regionlist"); |
84 | 84 | ||
85 | RegionBlock TempRegionData; | 85 | RegionBlock TempRegionData; |
86 | 86 | ||
87 | XmlDocument doc = new XmlDocument(); | 87 | XmlDocument doc = new XmlDocument(); |
88 | doc.Load(regionliststream); | 88 | doc.Load(regionliststream); |
89 | regionliststream.Close(); | 89 | regionliststream.Close(); |
@@ -105,12 +105,12 @@ namespace OpenGridServices.Manager | |||
105 | } | 105 | } |
106 | } | 106 | } |
107 | } | 107 | } |
108 | 108 | ||
109 | public bool RestartServer() | 109 | public bool RestartServer() |
110 | { | 110 | { |
111 | return true; | 111 | return true; |
112 | } | 112 | } |
113 | 113 | ||
114 | public bool ShutdownServer() | 114 | public bool ShutdownServer() |
115 | { | 115 | { |
116 | try | 116 | try |
@@ -137,7 +137,7 @@ namespace OpenGridServices.Manager | |||
137 | return false; | 137 | return false; |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
141 | public void DisconnectServer() | 141 | public void DisconnectServer() |
142 | { | 142 | { |
143 | this.connected=false; | 143 | this.connected=false; |
diff --git a/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs b/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs index 7700229..f081665 100644 --- a/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs +++ b/OpenSim/Grid/Manager/OpenGridServices.Manager/Main.cs | |||
@@ -38,9 +38,9 @@ namespace OpenGridServices.Manager | |||
38 | public static BlockingQueue<string> PendingOperations = new BlockingQueue<string>(); | 38 | public static BlockingQueue<string> PendingOperations = new BlockingQueue<string>(); |
39 | 39 | ||
40 | private static Thread OperationsRunner; | 40 | private static Thread OperationsRunner; |
41 | 41 | ||
42 | private static GridServerConnectionManager gridserverConn; | 42 | private static GridServerConnectionManager gridserverConn; |
43 | 43 | ||
44 | private static MainWindow win; | 44 | private static MainWindow win; |
45 | 45 | ||
46 | public static void DoMainLoop() | 46 | public static void DoMainLoop() |
@@ -79,7 +79,7 @@ namespace OpenGridServices.Manager | |||
79 | win.SetStatus("Could not connect"); | 79 | win.SetStatus("Could not connect"); |
80 | } | 80 | } |
81 | break; | 81 | break; |
82 | 82 | ||
83 | case "restart_gridserver": | 83 | case "restart_gridserver": |
84 | win.SetStatus("Restarting grid server..."); | 84 | win.SetStatus("Restarting grid server..."); |
85 | if (gridserverConn.RestartServer()) | 85 | if (gridserverConn.RestartServer()) |
@@ -93,7 +93,7 @@ namespace OpenGridServices.Manager | |||
93 | win.SetStatus("Error restarting grid server!!!"); | 93 | win.SetStatus("Error restarting grid server!!!"); |
94 | } | 94 | } |
95 | break; | 95 | break; |
96 | 96 | ||
97 | case "shutdown_gridserver": | 97 | case "shutdown_gridserver": |
98 | win.SetStatus("Shutting down grid server..."); | 98 | win.SetStatus("Shutting down grid server..."); |
99 | if (gridserverConn.ShutdownServer()) | 99 | if (gridserverConn.ShutdownServer()) |
@@ -108,7 +108,7 @@ namespace OpenGridServices.Manager | |||
108 | win.SetStatus("Could not shutdown grid server!!!"); | 108 | win.SetStatus("Could not shutdown grid server!!!"); |
109 | } | 109 | } |
110 | break; | 110 | break; |
111 | 111 | ||
112 | case "disconnect_gridserver": | 112 | case "disconnect_gridserver": |
113 | gridserverConn.DisconnectServer(); | 113 | gridserverConn.DisconnectServer(); |
114 | win.SetGridServerConnected(false); | 114 | win.SetGridServerConnected(false); |
diff --git a/OpenSim/Grid/MessagingServer/Main.cs b/OpenSim/Grid/MessagingServer/Main.cs index de20d01..c80d48c 100644 --- a/OpenSim/Grid/MessagingServer/Main.cs +++ b/OpenSim/Grid/MessagingServer/Main.cs | |||
@@ -83,14 +83,12 @@ namespace OpenSim.Grid.MessagingServer | |||
83 | public override void Startup() | 83 | public override void Startup() |
84 | { | 84 | { |
85 | base.Startup(); | 85 | base.Startup(); |
86 | 86 | ||
87 | Cfg = new MessageServerConfig("MESSAGING SERVER", (Path.Combine(Util.configDir(), "MessagingServer_Config.xml"))); | 87 | Cfg = new MessageServerConfig("MESSAGING SERVER", (Path.Combine(Util.configDir(), "MessagingServer_Config.xml"))); |
88 | 88 | ||
89 | m_log.Info("[REGION]: Starting HTTP process"); | 89 | m_log.Info("[REGION]: Starting HTTP process"); |
90 | m_httpServer = new BaseHttpServer(Cfg.HttpPort); | 90 | m_httpServer = new BaseHttpServer(Cfg.HttpPort); |
91 | 91 | ||
92 | |||
93 | |||
94 | msgsvc = new MessageService(Cfg); | 92 | msgsvc = new MessageService(Cfg); |
95 | 93 | ||
96 | if (msgsvc.registerWithUserServer()) | 94 | if (msgsvc.registerWithUserServer()) |
@@ -123,7 +121,6 @@ namespace OpenSim.Grid.MessagingServer | |||
123 | switch (what) | 121 | switch (what) |
124 | { | 122 | { |
125 | case "user": | 123 | case "user": |
126 | |||
127 | try | 124 | try |
128 | { | 125 | { |
129 | //userID = | 126 | //userID = |
@@ -161,8 +158,6 @@ namespace OpenSim.Grid.MessagingServer | |||
161 | m_console.Notice("Region cache cleared! Cleared " + entries.ToString() + " entries"); | 158 | m_console.Notice("Region cache cleared! Cleared " + entries.ToString() + " entries"); |
162 | break; | 159 | break; |
163 | } | 160 | } |
164 | |||
165 | |||
166 | } | 161 | } |
167 | 162 | ||
168 | public override void Shutdown() | 163 | public override void Shutdown() |
diff --git a/OpenSim/Grid/MessagingServer/PresenceBackreferenceEntry.cs b/OpenSim/Grid/MessagingServer/PresenceBackreferenceEntry.cs index 5f60871..281beb9 100644 --- a/OpenSim/Grid/MessagingServer/PresenceBackreferenceEntry.cs +++ b/OpenSim/Grid/MessagingServer/PresenceBackreferenceEntry.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Grid.MessagingServer | |||
62 | } | 62 | } |
63 | return result; | 63 | return result; |
64 | } | 64 | } |
65 | 65 | ||
66 | public int Count | 66 | public int Count |
67 | { | 67 | { |
68 | get | 68 | get |
diff --git a/OpenSim/Grid/ScriptServer/FakeScene.cs b/OpenSim/Grid/ScriptServer/FakeScene.cs index 89e7efb..ef88a9d 100644 --- a/OpenSim/Grid/ScriptServer/FakeScene.cs +++ b/OpenSim/Grid/ScriptServer/FakeScene.cs | |||
@@ -45,7 +45,6 @@ namespace OpenSim.Grid.ScriptServer | |||
45 | regInfo, authen, commsMan, sceneGridService, assetCach, storeManager, httpServer, | 45 | regInfo, authen, commsMan, sceneGridService, assetCach, storeManager, httpServer, |
46 | moduleLoader, dumpAssetsToFile, physicalPrim, sendTasksToChild, config, "") | 46 | moduleLoader, dumpAssetsToFile, physicalPrim, sendTasksToChild, config, "") |
47 | { | 47 | { |
48 | |||
49 | } | 48 | } |
50 | 49 | ||
51 | // What does a scene have to do? :P | 50 | // What does a scene have to do? :P |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServerMain.cs b/OpenSim/Grid/ScriptServer/ScriptServerMain.cs index 844f27d..63bdea8 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServerMain.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServerMain.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.Grid.ScriptServer | |||
57 | internal TCPServer m_TCPServer; | 57 | internal TCPServer m_TCPServer; |
58 | internal TRPC_Remote RPC; | 58 | internal TRPC_Remote RPC; |
59 | 59 | ||
60 | public ScriptServerMain() | 60 | public ScriptServerMain() |
61 | { | 61 | { |
62 | m_console = CreateConsole(); | 62 | m_console = CreateConsole(); |
63 | 63 | ||
@@ -68,7 +68,6 @@ namespace OpenSim.Grid.ScriptServer | |||
68 | Engine = ScriptEngines.LoadEngine("DotNetEngine"); | 68 | Engine = ScriptEngines.LoadEngine("DotNetEngine"); |
69 | 69 | ||
70 | Engine.InitializeEngine(null, null, false, Engine.GetScriptManager()); | 70 | Engine.InitializeEngine(null, null, false, Engine.GetScriptManager()); |
71 | |||
72 | 71 | ||
73 | // Set up server | 72 | // Set up server |
74 | //m_RemotingServer = new RemotingServer(listenPort, "DotNetEngine"); | 73 | //m_RemotingServer = new RemotingServer(listenPort, "DotNetEngine"); |
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 9b74dbc..9a3e431 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs | |||
@@ -90,7 +90,7 @@ namespace OpenSim.Grid.UserServer | |||
90 | public override void Startup() | 90 | public override void Startup() |
91 | { | 91 | { |
92 | base.Startup(); | 92 | base.Startup(); |
93 | 93 | ||
94 | Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml"))); | 94 | Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml"))); |
95 | 95 | ||
96 | m_stats = StatsManager.StartCollectingUserStats(); | 96 | m_stats = StatsManager.StartCollectingUserStats(); |
@@ -101,11 +101,11 @@ namespace OpenSim.Grid.UserServer | |||
101 | 101 | ||
102 | m_gridInfoService = new GridInfoService(); | 102 | m_gridInfoService = new GridInfoService(); |
103 | 103 | ||
104 | m_interServiceInventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); | 104 | m_interServiceInventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); |
105 | 105 | ||
106 | m_loginService = new UserLoginService( | 106 | m_loginService = new UserLoginService( |
107 | m_userManager, m_interServiceInventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); | 107 | m_userManager, m_interServiceInventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); |
108 | 108 | ||
109 | m_messagesService = new MessageServersConnector(); | 109 | m_messagesService = new MessageServersConnector(); |
110 | 110 | ||
111 | m_loginService.OnUserLoggedInAtLocation += NotifyMessageServersUserLoggedInToLocation; | 111 | m_loginService.OnUserLoggedInAtLocation += NotifyMessageServersUserLoggedInToLocation; |
@@ -151,7 +151,6 @@ namespace OpenSim.Grid.UserServer | |||
151 | 151 | ||
152 | m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/get_grid_info", m_gridInfoService.RestGetGridInfoMethod)); | 152 | m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/get_grid_info", m_gridInfoService.RestGetGridInfoMethod)); |
153 | m_httpServer.AddXmlRPCHandler("get_grid_info", m_gridInfoService.XmlRpcGridInfoMethod); | 153 | m_httpServer.AddXmlRPCHandler("get_grid_info", m_gridInfoService.XmlRpcGridInfoMethod); |
154 | |||
155 | 154 | ||
156 | m_httpServer.AddStreamHandler( | 155 | m_httpServer.AddStreamHandler( |
157 | new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod)); | 156 | new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod)); |
@@ -188,7 +187,7 @@ namespace OpenSim.Grid.UserServer | |||
188 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + String.Empty); | 187 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + String.Empty); |
189 | 188 | ||
190 | LLUUID userID = new LLUUID(); | 189 | LLUUID userID = new LLUUID(); |
191 | 190 | ||
192 | try | 191 | try |
193 | { | 192 | { |
194 | userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); | 193 | userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); |
@@ -199,7 +198,7 @@ namespace OpenSim.Grid.UserServer | |||
199 | } | 198 | } |
200 | 199 | ||
201 | try | 200 | try |
202 | { | 201 | { |
203 | if (!m_interServiceInventoryService.CreateNewUserInventory(userID)) | 202 | if (!m_interServiceInventoryService.CreateNewUserInventory(userID)) |
204 | { | 203 | { |
205 | throw new Exception( | 204 | throw new Exception( |
@@ -245,9 +244,9 @@ namespace OpenSim.Grid.UserServer | |||
245 | // requester.ReturnResponseVal = TestResponse; | 244 | // requester.ReturnResponseVal = TestResponse; |
246 | // requester.BeginPostObject<LLUUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); | 245 | // requester.BeginPostObject<LLUUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); |
247 | SynchronousRestObjectPoster.BeginPostObject<LLUUID, List<InventoryFolderBase>>( | 246 | SynchronousRestObjectPoster.BeginPostObject<LLUUID, List<InventoryFolderBase>>( |
248 | "POST", Cfg.InventoryUrl + "RootFolders/", m_lastCreatedUser); | 247 | "POST", Cfg.InventoryUrl + "RootFolders/", m_lastCreatedUser); |
249 | break; | 248 | break; |
250 | 249 | ||
251 | case "logoff-user": | 250 | case "logoff-user": |
252 | 251 | ||
253 | if (cmdparams.Length >= 3) | 252 | if (cmdparams.Length >= 3) |
@@ -279,7 +278,7 @@ namespace OpenSim.Grid.UserServer | |||
279 | m_loginService.LogOffUser(theUser, message); | 278 | m_loginService.LogOffUser(theUser, message); |
280 | 279 | ||
281 | theUser.CurrentAgent.AgentOnline = false; | 280 | theUser.CurrentAgent.AgentOnline = false; |
282 | 281 | ||
283 | m_loginService.CommitAgent(ref theUser); | 282 | m_loginService.CommitAgent(ref theUser); |
284 | } | 283 | } |
285 | else | 284 | else |
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 0e61b3c..8488e22 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Grid.UserServer | |||
46 | public class UserLoginService : LoginService | 46 | public class UserLoginService : LoginService |
47 | { | 47 | { |
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | protected IInterServiceInventoryServices m_inventoryService; | 50 | protected IInterServiceInventoryServices m_inventoryService; |
51 | 51 | ||
52 | public event UserLoggedInAtLocation OnUserLoggedInAtLocation; | 52 | public event UserLoggedInAtLocation OnUserLoggedInAtLocation; |
@@ -63,7 +63,7 @@ namespace OpenSim.Grid.UserServer | |||
63 | m_config = config; | 63 | m_config = config; |
64 | m_inventoryService = inventoryService; | 64 | m_inventoryService = inventoryService; |
65 | } | 65 | } |
66 | 66 | ||
67 | public override void LogOffUser(UserProfileData theUser, string message) | 67 | public override void LogOffUser(UserProfileData theUser, string message) |
68 | { | 68 | { |
69 | RegionProfileData SimInfo = null; | 69 | RegionProfileData SimInfo = null; |
@@ -72,7 +72,7 @@ namespace OpenSim.Grid.UserServer | |||
72 | SimInfo = RegionProfileData.RequestSimProfileData( | 72 | SimInfo = RegionProfileData.RequestSimProfileData( |
73 | theUser.CurrentAgent.Handle, m_config.GridServerURL, | 73 | theUser.CurrentAgent.Handle, m_config.GridServerURL, |
74 | m_config.GridSendKey, m_config.GridRecvKey); | 74 | m_config.GridSendKey, m_config.GridRecvKey); |
75 | 75 | ||
76 | if (SimInfo == null) | 76 | if (SimInfo == null) |
77 | { | 77 | { |
78 | m_log.Error("[GRID]: Region user was in isn't currently logged in"); | 78 | m_log.Error("[GRID]: Region user was in isn't currently logged in"); |
@@ -84,7 +84,7 @@ namespace OpenSim.Grid.UserServer | |||
84 | m_log.Error("[GRID]: Unable to look up region to log user off"); | 84 | m_log.Error("[GRID]: Unable to look up region to log user off"); |
85 | return; | 85 | return; |
86 | } | 86 | } |
87 | 87 | ||
88 | // Prepare notification | 88 | // Prepare notification |
89 | Hashtable SimParams = new Hashtable(); | 89 | Hashtable SimParams = new Hashtable(); |
90 | SimParams["agent_id"] = theUser.ID.ToString(); | 90 | SimParams["agent_id"] = theUser.ID.ToString(); |
@@ -101,7 +101,7 @@ namespace OpenSim.Grid.UserServer | |||
101 | m_log.InfoFormat( | 101 | m_log.InfoFormat( |
102 | "[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}", | 102 | "[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}", |
103 | SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI, theUser.FirstName + " " + theUser.SurName); | 103 | SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI, theUser.FirstName + " " + theUser.SurName); |
104 | 104 | ||
105 | try | 105 | try |
106 | { | 106 | { |
107 | XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams); | 107 | XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams); |
@@ -306,8 +306,6 @@ namespace OpenSim.Grid.UserServer | |||
306 | theUser.FirstName, theUser.SurName); | 306 | theUser.FirstName, theUser.SurName); |
307 | } | 307 | } |
308 | } | 308 | } |
309 | |||
310 | |||
311 | } | 309 | } |
312 | } | 310 | } |
313 | catch (Exception) | 311 | catch (Exception) |
@@ -419,7 +417,7 @@ namespace OpenSim.Grid.UserServer | |||
419 | else | 417 | else |
420 | { | 418 | { |
421 | response.CreateDeadRegionResponse(); | 419 | response.CreateDeadRegionResponse(); |
422 | } | 420 | } |
423 | } | 421 | } |
424 | 422 | ||
425 | catch (Exception e) | 423 | catch (Exception e) |
@@ -432,11 +430,11 @@ namespace OpenSim.Grid.UserServer | |||
432 | 430 | ||
433 | // See LoginService | 431 | // See LoginService |
434 | protected override InventoryData GetInventorySkeleton(LLUUID userID) | 432 | protected override InventoryData GetInventorySkeleton(LLUUID userID) |
435 | { | 433 | { |
436 | m_log.DebugFormat( | 434 | m_log.DebugFormat( |
437 | "[LOGIN]: Contacting inventory service at {0} for inventory skeleton of user {1}", | 435 | "[LOGIN]: Contacting inventory service at {0} for inventory skeleton of user {1}", |
438 | m_config.InventoryUrl, userID); | 436 | m_config.InventoryUrl, userID); |
439 | 437 | ||
440 | List<InventoryFolderBase> folders = m_inventoryService.GetInventorySkeleton(userID); | 438 | List<InventoryFolderBase> folders = m_inventoryService.GetInventorySkeleton(userID); |
441 | 439 | ||
442 | if (null == folders || folders.Count == 0) | 440 | if (null == folders || folders.Count == 0) |
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index b1d95da..760dfe3 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs | |||
@@ -413,7 +413,7 @@ namespace OpenSim.Grid.UserServer | |||
413 | 413 | ||
414 | return ProfileToXmlRPCResponse(userProfile); | 414 | return ProfileToXmlRPCResponse(userProfile); |
415 | } | 415 | } |
416 | 416 | ||
417 | public XmlRpcResponse XmlRPCGetAgentMethodUUID(XmlRpcRequest request) | 417 | public XmlRpcResponse XmlRPCGetAgentMethodUUID(XmlRpcRequest request) |
418 | { | 418 | { |
419 | XmlRpcResponse response = new XmlRpcResponse(); | 419 | XmlRpcResponse response = new XmlRpcResponse(); |
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index 4df6415..59ac161 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs | |||
@@ -95,7 +95,7 @@ namespace OpenSim | |||
95 | } | 95 | } |
96 | 96 | ||
97 | private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself | 97 | private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself |
98 | 98 | ||
99 | /// <summary> | 99 | /// <summary> |
100 | /// Global exception handler -- all unhandlet exceptions end up here :) | 100 | /// Global exception handler -- all unhandlet exceptions end up here :) |
101 | /// </summary> | 101 | /// </summary> |
diff --git a/OpenSim/Region/Application/IApplicationPlugin.cs b/OpenSim/Region/Application/IApplicationPlugin.cs index 2e3122f..4fd93e8 100644 --- a/OpenSim/Region/Application/IApplicationPlugin.cs +++ b/OpenSim/Region/Application/IApplicationPlugin.cs | |||
@@ -33,7 +33,7 @@ namespace OpenSim | |||
33 | { | 33 | { |
34 | void Initialise(OpenSimBase openSim); | 34 | void Initialise(OpenSimBase openSim); |
35 | } | 35 | } |
36 | 36 | ||
37 | public class ApplicationPluginInitialiser : PluginInitialiserBase | 37 | public class ApplicationPluginInitialiser : PluginInitialiserBase |
38 | { | 38 | { |
39 | private OpenSimBase server; | 39 | private OpenSimBase server; |
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index 4664b0b..cc2d993 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -90,8 +90,8 @@ namespace OpenSim | |||
90 | m_log.InfoFormat("[OPENSIM MAIN]: Running in {0} mode", (m_sandbox ? "sandbox" : "grid")); | 90 | m_log.InfoFormat("[OPENSIM MAIN]: Running in {0} mode", (m_sandbox ? "sandbox" : "grid")); |
91 | 91 | ||
92 | m_console = new ConsoleBase("Region", this); | 92 | m_console = new ConsoleBase("Region", this); |
93 | MainConsole.Instance = m_console; | 93 | MainConsole.Instance = m_console; |
94 | 94 | ||
95 | base.Startup(); | 95 | base.Startup(); |
96 | 96 | ||
97 | //Run Startup Commands | 97 | //Run Startup Commands |
@@ -116,9 +116,9 @@ namespace OpenSim | |||
116 | PrintFileToConsole("startuplogo.txt"); | 116 | PrintFileToConsole("startuplogo.txt"); |
117 | RegisterCmd("echoTest", RunEchoTest, "this echos your command args to see how they are parsed"); | 117 | RegisterCmd("echoTest", RunEchoTest, "this echos your command args to see how they are parsed"); |
118 | RegisterCmd("kickuser", KickUserCommand, "kickuser [first] [last] - attempts to log off a user from any region we are serving"); | 118 | RegisterCmd("kickuser", KickUserCommand, "kickuser [first] [last] - attempts to log off a user from any region we are serving"); |
119 | 119 | ||
120 | // For now, start at the 'root' level by default | 120 | // For now, start at the 'root' level by default |
121 | ChangeSelectedRegion(new string[] {"root"}); | 121 | ChangeSelectedRegion(new string[] {"root"}); |
122 | } | 122 | } |
123 | 123 | ||
124 | private void RunAutoTimerScript(object sender, EventArgs e) | 124 | private void RunAutoTimerScript(object sender, EventArgs e) |
@@ -135,7 +135,7 @@ namespace OpenSim | |||
135 | { | 135 | { |
136 | for (int i = 0; i < cmdparams.Length; i++) | 136 | for (int i = 0; i < cmdparams.Length; i++) |
137 | { | 137 | { |
138 | m_log.Info("[EchoTest]: <arg" + i + ">"+cmdparams[i]+"</arg" + i + ">"); | 138 | m_log.Info("[EchoTest]: <arg" + i + ">"+cmdparams[i]+"</arg" + i + ">"); |
139 | } | 139 | } |
140 | } | 140 | } |
141 | 141 | ||
@@ -214,7 +214,7 @@ namespace OpenSim | |||
214 | { | 214 | { |
215 | base.RunCmd(command, cmdparams); | 215 | base.RunCmd(command, cmdparams); |
216 | RunPluginCommands(command , cmdparams); | 216 | RunPluginCommands(command , cmdparams); |
217 | 217 | ||
218 | switch (command) | 218 | switch (command) |
219 | { | 219 | { |
220 | case "clear-assets": | 220 | case "clear-assets": |
@@ -255,7 +255,7 @@ namespace OpenSim | |||
255 | m_console.Notice(" debug scene [scripting] [collision] [physics] - Enable/Disable debug stuff, each can be True/False"); | 255 | m_console.Notice(" debug scene [scripting] [collision] [physics] - Enable/Disable debug stuff, each can be True/False"); |
256 | m_console.Notice("edit-scale [prim name] [x] [y] [z] - resize given prim"); | 256 | m_console.Notice("edit-scale [prim name] [x] [y] [z] - resize given prim"); |
257 | m_console.Notice("export-map [filename] - save image of world map"); | 257 | m_console.Notice("export-map [filename] - save image of world map"); |
258 | m_console.Notice("force-update - force an update of prims in the scene"); | 258 | m_console.Notice("force-update - force an update of prims in the scene"); |
259 | m_console.Notice("restart - disconnects all clients and restarts the sims in the instance."); | 259 | m_console.Notice("restart - disconnects all clients and restarts the sims in the instance."); |
260 | m_console.Notice("remove-region [name] - remove a region"); | 260 | m_console.Notice("remove-region [name] - remove a region"); |
261 | m_console.Notice("load-xml [filename] - load prims from XML (DEPRECATED)"); | 261 | m_console.Notice("load-xml [filename] - load prims from XML (DEPRECATED)"); |
@@ -273,14 +273,14 @@ namespace OpenSim | |||
273 | m_console.Notice("config set section field value - set a config value"); | 273 | m_console.Notice("config set section field value - set a config value"); |
274 | m_console.Notice("config get section field - get a config value"); | 274 | m_console.Notice("config get section field - get a config value"); |
275 | m_console.Notice("config save - save OpenSim.ini"); | 275 | m_console.Notice("config save - save OpenSim.ini"); |
276 | m_console.Notice("terrain help - show help for terrain commands."); | 276 | m_console.Notice("terrain help - show help for terrain commands."); |
277 | ShowPluginCommandsHelp(CombineParams(cmdparams, 0), m_console); | 277 | ShowPluginCommandsHelp(CombineParams(cmdparams, 0), m_console); |
278 | 278 | ||
279 | if (m_sandbox) | 279 | if (m_sandbox) |
280 | { | 280 | { |
281 | m_console.Notice(""); | 281 | m_console.Notice(""); |
282 | m_console.Notice("create user - adds a new user."); | 282 | m_console.Notice("create user - adds a new user."); |
283 | } | 283 | } |
284 | 284 | ||
285 | break; | 285 | break; |
286 | 286 | ||
@@ -314,11 +314,11 @@ namespace OpenSim | |||
314 | case "load-oar": | 314 | case "load-oar": |
315 | LoadOar(cmdparams); | 315 | LoadOar(cmdparams); |
316 | break; | 316 | break; |
317 | 317 | ||
318 | case "save-oar": | 318 | case "save-oar": |
319 | SaveOar(cmdparams); | 319 | SaveOar(cmdparams); |
320 | break; | 320 | break; |
321 | 321 | ||
322 | case "save-inv": | 322 | case "save-inv": |
323 | SaveInv(cmdparams); | 323 | SaveInv(cmdparams); |
324 | break; | 324 | break; |
@@ -343,13 +343,13 @@ namespace OpenSim | |||
343 | break; | 343 | break; |
344 | 344 | ||
345 | case "create": | 345 | case "create": |
346 | Create(cmdparams); | 346 | Create(cmdparams); |
347 | break; | 347 | break; |
348 | 348 | ||
349 | case "create-region": | 349 | case "create-region": |
350 | CreateRegion(new RegionInfo(cmdparams[0], "Regions/" + cmdparams[1],false), true); | 350 | CreateRegion(new RegionInfo(cmdparams[0], "Regions/" + cmdparams[1],false), true); |
351 | break; | 351 | break; |
352 | 352 | ||
353 | case "remove-region": | 353 | case "remove-region": |
354 | string regName = CombineParams(cmdparams, 0); | 354 | string regName = CombineParams(cmdparams, 0); |
355 | 355 | ||
@@ -441,7 +441,7 @@ namespace OpenSim | |||
441 | } | 441 | } |
442 | } | 442 | } |
443 | break; | 443 | break; |
444 | 444 | ||
445 | case "modules": | 445 | case "modules": |
446 | if (cmdparams.Length > 0) | 446 | if (cmdparams.Length > 0) |
447 | { | 447 | { |
@@ -488,7 +488,7 @@ namespace OpenSim | |||
488 | m_commsManager.AddInventoryService(cmdparams[0]); | 488 | m_commsManager.AddInventoryService(cmdparams[0]); |
489 | } | 489 | } |
490 | break; | 490 | break; |
491 | 491 | ||
492 | default: | 492 | default: |
493 | string[] tmpPluginArgs = new string[cmdparams.Length + 1]; | 493 | string[] tmpPluginArgs = new string[cmdparams.Length + 1]; |
494 | cmdparams.CopyTo(tmpPluginArgs, 1); | 494 | cmdparams.CopyTo(tmpPluginArgs, 1); |
@@ -498,7 +498,7 @@ namespace OpenSim | |||
498 | break; | 498 | break; |
499 | } | 499 | } |
500 | } | 500 | } |
501 | 501 | ||
502 | /// <summary> | 502 | /// <summary> |
503 | /// Change the currently selected region. The selected region is that operated upon by single region commands. | 503 | /// Change the currently selected region. The selected region is that operated upon by single region commands. |
504 | /// </summary> | 504 | /// </summary> |
@@ -515,13 +515,13 @@ namespace OpenSim | |||
515 | else | 515 | else |
516 | { | 516 | { |
517 | m_console.Error("Usage: change-region <region name>"); | 517 | m_console.Error("Usage: change-region <region name>"); |
518 | } | 518 | } |
519 | 519 | ||
520 | string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName); | 520 | string regionName = (m_sceneManager.CurrentScene == null ? "root" : m_sceneManager.CurrentScene.RegionInfo.RegionName); |
521 | m_console.Notice(String.Format("Currently selected region is {0}", regionName)); | 521 | m_console.Notice(String.Format("Currently selected region is {0}", regionName)); |
522 | m_console.DefaultPrompt = String.Format("Region ({0}) ", regionName); | 522 | m_console.DefaultPrompt = String.Format("Region ({0}) ", regionName); |
523 | } | 523 | } |
524 | 524 | ||
525 | /// <summary> | 525 | /// <summary> |
526 | /// Execute switch for some of the create commands | 526 | /// Execute switch for some of the create commands |
527 | /// </summary> | 527 | /// </summary> |
@@ -530,7 +530,7 @@ namespace OpenSim | |||
530 | { | 530 | { |
531 | if (args.Length == 0) | 531 | if (args.Length == 0) |
532 | return; | 532 | return; |
533 | 533 | ||
534 | switch (args[0]) | 534 | switch (args[0]) |
535 | { | 535 | { |
536 | case "user": | 536 | case "user": |
@@ -547,7 +547,7 @@ namespace OpenSim | |||
547 | { | 547 | { |
548 | if (args.Length == 0) | 548 | if (args.Length == 0) |
549 | return; | 549 | return; |
550 | 550 | ||
551 | switch (args[0]) | 551 | switch (args[0]) |
552 | { | 552 | { |
553 | case "packet": | 553 | case "packet": |
@@ -566,7 +566,7 @@ namespace OpenSim | |||
566 | } | 566 | } |
567 | 567 | ||
568 | break; | 568 | break; |
569 | 569 | ||
570 | case "scene": | 570 | case "scene": |
571 | if (args.Length == 4) | 571 | if (args.Length == 4) |
572 | { | 572 | { |
@@ -580,11 +580,11 @@ namespace OpenSim | |||
580 | bool collisionsOn = !Convert.ToBoolean(args[2]); | 580 | bool collisionsOn = !Convert.ToBoolean(args[2]); |
581 | bool physicsOn = !Convert.ToBoolean(args[3]); | 581 | bool physicsOn = !Convert.ToBoolean(args[3]); |
582 | m_sceneManager.CurrentScene.SetSceneCoreDebug(scriptingOn, collisionsOn, physicsOn); | 582 | m_sceneManager.CurrentScene.SetSceneCoreDebug(scriptingOn, collisionsOn, physicsOn); |
583 | 583 | ||
584 | m_console.Notice( | 584 | m_console.Notice( |
585 | "CONSOLE", | 585 | "CONSOLE", |
586 | String.Format( | 586 | String.Format( |
587 | "Set debug scene scripting = {0}, collisions = {1}, physics = {2}", | 587 | "Set debug scene scripting = {0}, collisions = {1}, physics = {2}", |
588 | !scriptingOn, !collisionsOn, !physicsOn)); | 588 | !scriptingOn, !collisionsOn, !physicsOn)); |
589 | } | 589 | } |
590 | } | 590 | } |
@@ -592,9 +592,9 @@ namespace OpenSim | |||
592 | { | 592 | { |
593 | m_console.Error("debug scene <scripting> <collisions> <physics> (where inside <> is true/false)"); | 593 | m_console.Error("debug scene <scripting> <collisions> <physics> (where inside <> is true/false)"); |
594 | } | 594 | } |
595 | 595 | ||
596 | break; | 596 | break; |
597 | 597 | ||
598 | default: | 598 | default: |
599 | m_console.Error("Unknown debug"); | 599 | m_console.Error("Unknown debug"); |
600 | break; | 600 | break; |
@@ -666,7 +666,7 @@ namespace OpenSim | |||
666 | break; | 666 | break; |
667 | } | 667 | } |
668 | } | 668 | } |
669 | 669 | ||
670 | /// <summary> | 670 | /// <summary> |
671 | /// Create a new user | 671 | /// Create a new user |
672 | /// </summary> | 672 | /// </summary> |
@@ -697,7 +697,7 @@ namespace OpenSim | |||
697 | 697 | ||
698 | if ( cmdparams.Length < 6 ) | 698 | if ( cmdparams.Length < 6 ) |
699 | regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString())); | 699 | regY = Convert.ToUInt32(MainConsole.Instance.CmdPrompt("Start Region Y", regY.ToString())); |
700 | else regY = Convert.ToUInt32(cmdparams[5]); | 700 | else regY = Convert.ToUInt32(cmdparams[5]); |
701 | 701 | ||
702 | if (null == m_commsManager.UserService.GetUserProfile(firstName, lastName)) | 702 | if (null == m_commsManager.UserService.GetUserProfile(firstName, lastName)) |
703 | { | 703 | { |
@@ -706,9 +706,9 @@ namespace OpenSim | |||
706 | else | 706 | else |
707 | { | 707 | { |
708 | m_log.ErrorFormat("[CONSOLE]: A user with the name {0} {1} already exists!", firstName, lastName); | 708 | m_log.ErrorFormat("[CONSOLE]: A user with the name {0} {1} already exists!", firstName, lastName); |
709 | } | 709 | } |
710 | } | 710 | } |
711 | 711 | ||
712 | protected void SaveXml(string[] cmdparams) | 712 | protected void SaveXml(string[] cmdparams) |
713 | { | 713 | { |
714 | m_log.Error("[CONSOLE]: PLEASE NOTE, save-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use save-xml2, please file a mantis detailing the reason."); | 714 | m_log.Error("[CONSOLE]: PLEASE NOTE, save-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use save-xml2, please file a mantis detailing the reason."); |
@@ -721,8 +721,8 @@ namespace OpenSim | |||
721 | { | 721 | { |
722 | m_sceneManager.SaveCurrentSceneToXml(DEFAULT_PRIM_BACKUP_FILENAME); | 722 | m_sceneManager.SaveCurrentSceneToXml(DEFAULT_PRIM_BACKUP_FILENAME); |
723 | } | 723 | } |
724 | } | 724 | } |
725 | 725 | ||
726 | protected void LoadXml(string[] cmdparams) | 726 | protected void LoadXml(string[] cmdparams) |
727 | { | 727 | { |
728 | m_log.Error("[CONSOLE]: PLEASE NOTE, load-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use load-xml2, please file a mantis detailing the reason."); | 728 | m_log.Error("[CONSOLE]: PLEASE NOTE, load-xml is DEPRECATED and may be REMOVED soon. If you are using this and there is some reason you can't use load-xml2, please file a mantis detailing the reason."); |
@@ -758,8 +758,8 @@ namespace OpenSim | |||
758 | { | 758 | { |
759 | m_sceneManager.LoadCurrentSceneFromXml(DEFAULT_PRIM_BACKUP_FILENAME, false, loadOffset); | 759 | m_sceneManager.LoadCurrentSceneFromXml(DEFAULT_PRIM_BACKUP_FILENAME, false, loadOffset); |
760 | } | 760 | } |
761 | } | 761 | } |
762 | 762 | ||
763 | protected void SaveXml2(string[] cmdparams) | 763 | protected void SaveXml2(string[] cmdparams) |
764 | { | 764 | { |
765 | if (cmdparams.Length > 0) | 765 | if (cmdparams.Length > 0) |
@@ -771,7 +771,7 @@ namespace OpenSim | |||
771 | m_sceneManager.SaveCurrentSceneToXml2(DEFAULT_PRIM_BACKUP_FILENAME); | 771 | m_sceneManager.SaveCurrentSceneToXml2(DEFAULT_PRIM_BACKUP_FILENAME); |
772 | } | 772 | } |
773 | } | 773 | } |
774 | 774 | ||
775 | protected void LoadXml2(string[] cmdparams) | 775 | protected void LoadXml2(string[] cmdparams) |
776 | { | 776 | { |
777 | if (cmdparams.Length > 0) | 777 | if (cmdparams.Length > 0) |
@@ -782,8 +782,8 @@ namespace OpenSim | |||
782 | { | 782 | { |
783 | m_sceneManager.LoadCurrentSceneFromXml2(DEFAULT_PRIM_BACKUP_FILENAME); | 783 | m_sceneManager.LoadCurrentSceneFromXml2(DEFAULT_PRIM_BACKUP_FILENAME); |
784 | } | 784 | } |
785 | } | 785 | } |
786 | 786 | ||
787 | /// <summary> | 787 | /// <summary> |
788 | /// Load a whole region from an opensim archive. | 788 | /// Load a whole region from an opensim archive. |
789 | /// </summary> | 789 | /// </summary> |
@@ -800,9 +800,9 @@ namespace OpenSim | |||
800 | else | 800 | else |
801 | { | 801 | { |
802 | m_sceneManager.LoadArchiveToCurrentScene(DEFAULT_OAR_BACKUP_FILENAME); | 802 | m_sceneManager.LoadArchiveToCurrentScene(DEFAULT_OAR_BACKUP_FILENAME); |
803 | } | 803 | } |
804 | } | 804 | } |
805 | 805 | ||
806 | /// <summary> | 806 | /// <summary> |
807 | /// Save a region to a file, including all the assets needed to restore it. | 807 | /// Save a region to a file, including all the assets needed to restore it. |
808 | /// </summary> | 808 | /// </summary> |
@@ -819,8 +819,8 @@ namespace OpenSim | |||
819 | else | 819 | else |
820 | { | 820 | { |
821 | m_sceneManager.SaveCurrentSceneToArchive(DEFAULT_OAR_BACKUP_FILENAME); | 821 | m_sceneManager.SaveCurrentSceneToArchive(DEFAULT_OAR_BACKUP_FILENAME); |
822 | } | 822 | } |
823 | } | 823 | } |
824 | 824 | ||
825 | private static string CombineParams(string[] commandParams, int pos) | 825 | private static string CombineParams(string[] commandParams, int pos) |
826 | { | 826 | { |
@@ -835,7 +835,7 @@ namespace OpenSim | |||
835 | 835 | ||
836 | /// <summary> | 836 | /// <summary> |
837 | /// Runs the best matching plugin command | 837 | /// Runs the best matching plugin command |
838 | /// | 838 | /// |
839 | /// returns true if a match was found, false otherwise. | 839 | /// returns true if a match was found, false otherwise. |
840 | /// </summary> | 840 | /// </summary> |
841 | public bool RunPluginCommands(string cmd, string[] withParams) | 841 | public bool RunPluginCommands(string cmd, string[] withParams) |
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 0ac8cd7..983773a 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim | |||
70 | /// The file used to load and save an opensim archive if no filename has been specified | 70 | /// The file used to load and save an opensim archive if no filename has been specified |
71 | /// </summary> | 71 | /// </summary> |
72 | protected const string DEFAULT_OAR_BACKUP_FILENAME = "scene_oar.tar.gz"; | 72 | protected const string DEFAULT_OAR_BACKUP_FILENAME = "scene_oar.tar.gz"; |
73 | 73 | ||
74 | /// <summary> | 74 | /// <summary> |
75 | /// The file to load and save inventory if no filename has been specified | 75 | /// The file to load and save inventory if no filename has been specified |
76 | /// </summary> | 76 | /// </summary> |
@@ -161,7 +161,7 @@ namespace OpenSim | |||
161 | m_config = new OpenSimConfigSource(); | 161 | m_config = new OpenSimConfigSource(); |
162 | m_config.Source = new IniConfigSource(); | 162 | m_config.Source = new IniConfigSource(); |
163 | // IConfigSource icong; | 163 | // IConfigSource icong; |
164 | 164 | ||
165 | //check for .INI file (either default or name passed in command line) | 165 | //check for .INI file (either default or name passed in command line) |
166 | if (File.Exists(Application.iniFilePath)) | 166 | if (File.Exists(Application.iniFilePath)) |
167 | { | 167 | { |
@@ -338,7 +338,7 @@ namespace OpenSim | |||
338 | 338 | ||
339 | protected void LoadPlugins() | 339 | protected void LoadPlugins() |
340 | { | 340 | { |
341 | PluginLoader<IApplicationPlugin> loader = | 341 | PluginLoader<IApplicationPlugin> loader = |
342 | new PluginLoader<IApplicationPlugin> (new ApplicationPluginInitialiser (this)); | 342 | new PluginLoader<IApplicationPlugin> (new ApplicationPluginInitialiser (this)); |
343 | 343 | ||
344 | loader.Load ("/OpenSim/Startup"); | 344 | loader.Load ("/OpenSim/Startup"); |
@@ -351,7 +351,7 @@ namespace OpenSim | |||
351 | public override void Startup() | 351 | public override void Startup() |
352 | { | 352 | { |
353 | base.Startup(); | 353 | base.Startup(); |
354 | 354 | ||
355 | m_stats = StatsManager.StartCollectingSimExtraStats(); | 355 | m_stats = StatsManager.StartCollectingSimExtraStats(); |
356 | 356 | ||
357 | // StandAlone mode? m_sandbox is determined by !startupConfig.GetBoolean("gridmode", false) | 357 | // StandAlone mode? m_sandbox is determined by !startupConfig.GetBoolean("gridmode", false) |
@@ -586,7 +586,7 @@ namespace OpenSim | |||
586 | public void handleRestartRegion(RegionInfo whichRegion) | 586 | public void handleRestartRegion(RegionInfo whichRegion) |
587 | { | 587 | { |
588 | m_log.Error("[OPENSIM MAIN]: Got restart signal from SceneManager"); | 588 | m_log.Error("[OPENSIM MAIN]: Got restart signal from SceneManager"); |
589 | 589 | ||
590 | // Shutting down the client server | 590 | // Shutting down the client server |
591 | bool foundClientServer = false; | 591 | bool foundClientServer = false; |
592 | int clientServerElement = 0; | 592 | int clientServerElement = 0; |
@@ -660,7 +660,7 @@ namespace OpenSim | |||
660 | } | 660 | } |
661 | 661 | ||
662 | #endregion | 662 | #endregion |
663 | 663 | ||
664 | /// <summary> | 664 | /// <summary> |
665 | /// Save inventory to a file. | 665 | /// Save inventory to a file. |
666 | /// </summary> | 666 | /// </summary> |
@@ -668,49 +668,49 @@ namespace OpenSim | |||
668 | protected void SaveInv(string[] cmdparams) | 668 | protected void SaveInv(string[] cmdparams) |
669 | { | 669 | { |
670 | m_log.Error("[CONSOLE]: This command has not yet been implemented!"); | 670 | m_log.Error("[CONSOLE]: This command has not yet been implemented!"); |
671 | 671 | ||
672 | if (cmdparams.Length < 3) | 672 | if (cmdparams.Length < 3) |
673 | { | 673 | { |
674 | m_log.Error("[CONSOLE]: usage is save-inv <first name> <last name> <inventory path> [<save file path>]"); | 674 | m_log.Error("[CONSOLE]: usage is save-inv <first name> <last name> <inventory path> [<save file path>]"); |
675 | return; | 675 | return; |
676 | } | 676 | } |
677 | 677 | ||
678 | string firstName = cmdparams[0]; | 678 | string firstName = cmdparams[0]; |
679 | string lastName = cmdparams[1]; | 679 | string lastName = cmdparams[1]; |
680 | string invPath = cmdparams[2]; | 680 | string invPath = cmdparams[2]; |
681 | //string savePath = (cmdparams.Length > 3 ? cmdparams[3] : DEFAULT_INV_BACKUP_FILENAME); | 681 | //string savePath = (cmdparams.Length > 3 ? cmdparams[3] : DEFAULT_INV_BACKUP_FILENAME); |
682 | 682 | ||
683 | UserProfileData userProfile = m_commsManager.UserService.GetUserProfile(firstName, lastName); | 683 | UserProfileData userProfile = m_commsManager.UserService.GetUserProfile(firstName, lastName); |
684 | if (null == userProfile) | 684 | if (null == userProfile) |
685 | { | 685 | { |
686 | m_log.ErrorFormat("[CONSOLE]: Failed to find user {0} {1}", firstName, lastName); | 686 | m_log.ErrorFormat("[CONSOLE]: Failed to find user {0} {1}", firstName, lastName); |
687 | return; | 687 | return; |
688 | } | 688 | } |
689 | 689 | ||
690 | CachedUserInfo userInfo = m_commsManager.UserProfileCacheService.GetUserDetails(userProfile.ID); | 690 | CachedUserInfo userInfo = m_commsManager.UserProfileCacheService.GetUserDetails(userProfile.ID); |
691 | if (null == userInfo) | 691 | if (null == userInfo) |
692 | { | 692 | { |
693 | m_log.ErrorFormat("[CONSOLE]: Failed to find user info for {0} {1} {2}", firstName, lastName, userProfile.ID); | 693 | m_log.ErrorFormat("[CONSOLE]: Failed to find user info for {0} {1} {2}", firstName, lastName, userProfile.ID); |
694 | return; | 694 | return; |
695 | } | 695 | } |
696 | 696 | ||
697 | InventoryFolderImpl inventoryFolder = null; | 697 | InventoryFolderImpl inventoryFolder = null; |
698 | InventoryItemBase inventoryItem = null; | 698 | InventoryItemBase inventoryItem = null; |
699 | 699 | ||
700 | if (userInfo.HasReceivedInventory) | 700 | if (userInfo.HasReceivedInventory) |
701 | { | 701 | { |
702 | // Eliminate double slashes and any leading / on the path. This might be better done within InventoryFolderImpl | 702 | // Eliminate double slashes and any leading / on the path. This might be better done within InventoryFolderImpl |
703 | // itself (possibly at a small loss in efficiency). | 703 | // itself (possibly at a small loss in efficiency). |
704 | string[] components | 704 | string[] components |
705 | = invPath.Split(new string[] { InventoryFolderImpl.PATH_DELIMITER }, StringSplitOptions.RemoveEmptyEntries); | 705 | = invPath.Split(new string[] { InventoryFolderImpl.PATH_DELIMITER }, StringSplitOptions.RemoveEmptyEntries); |
706 | invPath = String.Empty; | 706 | invPath = String.Empty; |
707 | foreach (string c in components) | 707 | foreach (string c in components) |
708 | { | 708 | { |
709 | invPath += c + InventoryFolderImpl.PATH_DELIMITER; | 709 | invPath += c + InventoryFolderImpl.PATH_DELIMITER; |
710 | } | 710 | } |
711 | 711 | ||
712 | invPath = invPath.Remove(invPath.LastIndexOf(InventoryFolderImpl.PATH_DELIMITER)); | 712 | invPath = invPath.Remove(invPath.LastIndexOf(InventoryFolderImpl.PATH_DELIMITER)); |
713 | 713 | ||
714 | // Annoyingly Split actually returns the original string if the input string consists only of delimiters | 714 | // Annoyingly Split actually returns the original string if the input string consists only of delimiters |
715 | // Therefore if we still start with a / after the split, then we need the root folder | 715 | // Therefore if we still start with a / after the split, then we need the root folder |
716 | if (invPath.StartsWith(InventoryFolderImpl.PATH_DELIMITER)) | 716 | if (invPath.StartsWith(InventoryFolderImpl.PATH_DELIMITER)) |
@@ -718,10 +718,10 @@ namespace OpenSim | |||
718 | inventoryFolder = userInfo.RootFolder; | 718 | inventoryFolder = userInfo.RootFolder; |
719 | } | 719 | } |
720 | else | 720 | else |
721 | { | 721 | { |
722 | inventoryFolder = userInfo.RootFolder.FindFolderByPath(invPath); | 722 | inventoryFolder = userInfo.RootFolder.FindFolderByPath(invPath); |
723 | } | 723 | } |
724 | 724 | ||
725 | // The path may point to an item instead | 725 | // The path may point to an item instead |
726 | if (inventoryFolder == null) | 726 | if (inventoryFolder == null) |
727 | { | 727 | { |
@@ -733,7 +733,7 @@ namespace OpenSim | |||
733 | m_log.ErrorFormat("[CONSOLE]: Have not yet received inventory info for user {0} {1} {2}", firstName, lastName, userProfile.ID); | 733 | m_log.ErrorFormat("[CONSOLE]: Have not yet received inventory info for user {0} {1} {2}", firstName, lastName, userProfile.ID); |
734 | return; | 734 | return; |
735 | } | 735 | } |
736 | 736 | ||
737 | if (null != inventoryFolder) | 737 | if (null != inventoryFolder) |
738 | { | 738 | { |
739 | m_log.InfoFormat("[CONSOLE]: Found folder {0} {1} at {2}", inventoryFolder.Name, inventoryFolder.ID, invPath); | 739 | m_log.InfoFormat("[CONSOLE]: Found folder {0} {1} at {2}", inventoryFolder.Name, inventoryFolder.ID, invPath); |
@@ -746,8 +746,8 @@ namespace OpenSim | |||
746 | { | 746 | { |
747 | m_log.ErrorFormat("[CONSOLE]: Could not find inventory entry at path {0}", invPath); | 747 | m_log.ErrorFormat("[CONSOLE]: Could not find inventory entry at path {0}", invPath); |
748 | return; | 748 | return; |
749 | } | 749 | } |
750 | } | 750 | } |
751 | 751 | ||
752 | /// <summary> | 752 | /// <summary> |
753 | /// Performs any last-minute sanity checking and shuts down the region server | 753 | /// Performs any last-minute sanity checking and shuts down the region server |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index b14b3db..3c24fb6 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -230,7 +230,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
230 | 230 | ||
231 | private RegionHandleRequest handlerRegionHandleRequest = null; // OnRegionHandleRequest | 231 | private RegionHandleRequest handlerRegionHandleRequest = null; // OnRegionHandleRequest |
232 | private ParcelInfoRequest handlerParcelInfoRequest = null; // OnParcelInfoRequest | 232 | private ParcelInfoRequest handlerParcelInfoRequest = null; // OnParcelInfoRequest |
233 | 233 | ||
234 | private ScriptAnswer handlerScriptAnswer = null; | 234 | private ScriptAnswer handlerScriptAnswer = null; |
235 | private RequestPayPrice handlerRequestPayPrice = null; | 235 | private RequestPayPrice handlerRequestPayPrice = null; |
236 | private ObjectDeselect handlerObjectDetach = null; | 236 | private ObjectDeselect handlerObjectDetach = null; |
@@ -366,7 +366,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
366 | 366 | ||
367 | public LLClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, LLPacketServer packServer, | 367 | public LLClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, LLPacketServer packServer, |
368 | AgentCircuitManager authenSessions, LLUUID agentId, LLUUID sessionId, uint circuitCode, EndPoint proxyEP) | 368 | AgentCircuitManager authenSessions, LLUUID agentId, LLUUID sessionId, uint circuitCode, EndPoint proxyEP) |
369 | { | 369 | { |
370 | m_moneyBalance = 1000; | 370 | m_moneyBalance = 1000; |
371 | 371 | ||
372 | m_channelVersion = Helpers.StringToField(scene.GetSimulatorVersion()); | 372 | m_channelVersion = Helpers.StringToField(scene.GetSimulatorVersion()); |
@@ -378,7 +378,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
378 | 378 | ||
379 | m_networkServer = packServer; | 379 | m_networkServer = packServer; |
380 | // m_inventoryCache = inventoryCache; | 380 | // m_inventoryCache = inventoryCache; |
381 | m_authenticateSessionsHandler = authenSessions; | 381 | m_authenticateSessionsHandler = authenSessions; |
382 | 382 | ||
383 | m_agentId = agentId; | 383 | m_agentId = agentId; |
384 | m_sessionId = sessionId; | 384 | m_sessionId = sessionId; |
@@ -404,8 +404,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
404 | m_clientThread.IsBackground = true; | 404 | m_clientThread.IsBackground = true; |
405 | m_clientThread.Start(); | 405 | m_clientThread.Start(); |
406 | ThreadTracker.Add(m_clientThread); | 406 | ThreadTracker.Add(m_clientThread); |
407 | 407 | ||
408 | m_log.Info("[CLIENT]: Started up new thread to handle client UDP session"); | 408 | m_log.Info("[CLIENT]: Started up new thread to handle client UDP session"); |
409 | } | 409 | } |
410 | 410 | ||
411 | public void SetDebug(int newDebug) | 411 | public void SetDebug(int newDebug) |
@@ -457,9 +457,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
457 | public void Close(bool shutdownCircuit) | 457 | public void Close(bool shutdownCircuit) |
458 | { | 458 | { |
459 | m_log.DebugFormat( | 459 | m_log.DebugFormat( |
460 | "[CLIENT]: Close has been called with shutdownCircuit = {0} on scene {1}", | 460 | "[CLIENT]: Close has been called with shutdownCircuit = {0} on scene {1}", |
461 | shutdownCircuit, m_scene.RegionInfo.RegionName); | 461 | shutdownCircuit, m_scene.RegionInfo.RegionName); |
462 | 462 | ||
463 | m_PacketHandler.Flush(); | 463 | m_PacketHandler.Flush(); |
464 | 464 | ||
465 | // raise an event on the packet server to Shutdown the circuit | 465 | // raise an event on the packet server to Shutdown the circuit |
@@ -639,7 +639,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
639 | # endregion | 639 | # endregion |
640 | 640 | ||
641 | protected int m_terrainCheckerCount = 0; | 641 | protected int m_terrainCheckerCount = 0; |
642 | 642 | ||
643 | /// <summary> | 643 | /// <summary> |
644 | /// Event handler for check client timer | 644 | /// Event handler for check client timer |
645 | /// Checks to ensure that the client is still connected. If the client has failed to respond to many pings | 645 | /// Checks to ensure that the client is still connected. If the client has failed to respond to many pings |
@@ -652,15 +652,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
652 | if (m_PacketHandler.PacketsReceived == m_PacketHandler.PacketsReceivedReported) | 652 | if (m_PacketHandler.PacketsReceived == m_PacketHandler.PacketsReceivedReported) |
653 | { | 653 | { |
654 | m_probesWithNoIngressPackets++; | 654 | m_probesWithNoIngressPackets++; |
655 | if ((m_probesWithNoIngressPackets > 30 && !m_clientBlocked) | 655 | if ((m_probesWithNoIngressPackets > 30 && !m_clientBlocked) |
656 | || (m_probesWithNoIngressPackets > 90 && m_clientBlocked)) | 656 | || (m_probesWithNoIngressPackets > 90 && m_clientBlocked)) |
657 | { | 657 | { |
658 | if (OnConnectionClosed != null) | 658 | if (OnConnectionClosed != null) |
659 | { | 659 | { |
660 | m_log.WarnFormat( | 660 | m_log.WarnFormat( |
661 | "[CLIENT]: Client for agent {0} {1} has stopped responding to pings. Closing connection", | 661 | "[CLIENT]: Client for agent {0} {1} has stopped responding to pings. Closing connection", |
662 | Name, AgentId); | 662 | Name, AgentId); |
663 | 663 | ||
664 | OnConnectionClosed(this); | 664 | OnConnectionClosed(this); |
665 | } | 665 | } |
666 | } | 666 | } |
@@ -694,7 +694,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
694 | m_clientPingTimer = new Timer(5000); | 694 | m_clientPingTimer = new Timer(5000); |
695 | m_clientPingTimer.Elapsed += new ElapsedEventHandler(CheckClientConnectivity); | 695 | m_clientPingTimer.Elapsed += new ElapsedEventHandler(CheckClientConnectivity); |
696 | m_clientPingTimer.Enabled = true; | 696 | m_clientPingTimer.Enabled = true; |
697 | 697 | ||
698 | m_scene.AddNewClient(this, true); | 698 | m_scene.AddNewClient(this, true); |
699 | } | 699 | } |
700 | 700 | ||
@@ -764,7 +764,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
764 | 764 | ||
765 | LLQueItem item = new LLQueItem(); | 765 | LLQueItem item = new LLQueItem(); |
766 | item.Packet = packet; | 766 | item.Packet = packet; |
767 | 767 | ||
768 | m_PacketHandler.ProcessOutPacket(item); | 768 | m_PacketHandler.ProcessOutPacket(item); |
769 | 769 | ||
770 | // There may be a better way to do this. Perhaps kick? Not sure this propogates notifications to | 770 | // There may be a better way to do this. Perhaps kick? Not sure this propogates notifications to |
@@ -1091,7 +1091,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1091 | for (int y = 0; y < 16; y++) | 1091 | for (int y = 0; y < 16; y++) |
1092 | { | 1092 | { |
1093 | // For some terrains, sending more than one terrain patch at once results in a libsecondlife exception | 1093 | // For some terrains, sending more than one terrain patch at once results in a libsecondlife exception |
1094 | // see http://opensimulator.org/mantis/view.php?id=1662 | 1094 | // see http://opensimulator.org/mantis/view.php?id=1662 |
1095 | //for (int x = 0; x < 16; x += 4) | 1095 | //for (int x = 0; x < 16; x += 4) |
1096 | //{ | 1096 | //{ |
1097 | // SendLayerPacket(map, y, x); | 1097 | // SendLayerPacket(map, y, x); |
@@ -1113,7 +1113,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1113 | /// <summary> | 1113 | /// <summary> |
1114 | /// Sends a set of four patches (x, x+1, ..., x+3) to the client | 1114 | /// Sends a set of four patches (x, x+1, ..., x+3) to the client |
1115 | /// </summary> | 1115 | /// </summary> |
1116 | /// <param name="map">heightmap</param> | 1116 | /// <param name="map">heightmap</param> |
1117 | /// <param name="px">X coordinate for patches 0..12</param> | 1117 | /// <param name="px">X coordinate for patches 0..12</param> |
1118 | /// <param name="py">Y coordinate for patches 0..15</param> | 1118 | /// <param name="py">Y coordinate for patches 0..15</param> |
1119 | // private void SendLayerPacket(float[] map, int y, int x) | 1119 | // private void SendLayerPacket(float[] map, int y, int x) |
@@ -1147,7 +1147,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1147 | 1147 | ||
1148 | LayerDataPacket layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches); | 1148 | LayerDataPacket layerpack = LLClientView.TerrainManager.CreateLandPacket(map, patches); |
1149 | layerpack.Header.Zerocoded = true; | 1149 | layerpack.Header.Zerocoded = true; |
1150 | 1150 | ||
1151 | OutPacket(layerpack, ThrottleOutPacketType.Land); | 1151 | OutPacket(layerpack, ThrottleOutPacketType.Land); |
1152 | } | 1152 | } |
1153 | catch (Exception e) | 1153 | catch (Exception e) |
@@ -1157,7 +1157,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1157 | } | 1157 | } |
1158 | 1158 | ||
1159 | /// <summary> | 1159 | /// <summary> |
1160 | /// Tell the client that the given neighbour region is ready to receive a child agent. | 1160 | /// Tell the client that the given neighbour region is ready to receive a child agent. |
1161 | /// </summary> | 1161 | /// </summary> |
1162 | /// <param name="neighbourHandle"></param> | 1162 | /// <param name="neighbourHandle"></param> |
1163 | /// <param name="neighbourIP"></param> | 1163 | /// <param name="neighbourIP"></param> |
@@ -3405,7 +3405,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3405 | } | 3405 | } |
3406 | 3406 | ||
3407 | /// <summary> | 3407 | /// <summary> |
3408 | /// | 3408 | /// |
3409 | /// </summary> | 3409 | /// </summary> |
3410 | /// <param name="client"></param> | 3410 | /// <param name="client"></param> |
3411 | /// <returns></returns> | 3411 | /// <returns></returns> |
@@ -3682,7 +3682,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3682 | 3682 | ||
3683 | /// <summary> | 3683 | /// <summary> |
3684 | /// returns a byte array of the client set throttles Gets multiplied by the multiplier | 3684 | /// returns a byte array of the client set throttles Gets multiplied by the multiplier |
3685 | /// | 3685 | /// |
3686 | /// </summary> | 3686 | /// </summary> |
3687 | /// <param name="multiplier">non 1 multiplier for subdividing the throttles between individual regions</param> | 3687 | /// <param name="multiplier">non 1 multiplier for subdividing the throttles between individual regions</param> |
3688 | /// <returns></returns> | 3688 | /// <returns></returns> |
@@ -3691,7 +3691,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3691 | return m_PacketHandler.PacketQueue.GetThrottlesPacked(multiplier); | 3691 | return m_PacketHandler.PacketQueue.GetThrottlesPacked(multiplier); |
3692 | } | 3692 | } |
3693 | /// <summary> | 3693 | /// <summary> |
3694 | /// sets the throttles from values supplied by the client | 3694 | /// sets the throttles from values supplied by the client |
3695 | /// </summary> | 3695 | /// </summary> |
3696 | /// <param name="throttles"></param> | 3696 | /// <param name="throttles"></param> |
3697 | public void SetChildAgentThrottle(byte[] throttles) | 3697 | public void SetChildAgentThrottle(byte[] throttles) |
@@ -5291,24 +5291,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5291 | 5291 | ||
5292 | case PacketType.RegionHandleRequest: | 5292 | case PacketType.RegionHandleRequest: |
5293 | RegionHandleRequestPacket rhrPack = (RegionHandleRequestPacket)Pack; | 5293 | RegionHandleRequestPacket rhrPack = (RegionHandleRequestPacket)Pack; |
5294 | 5294 | ||
5295 | handlerRegionHandleRequest = OnRegionHandleRequest; | 5295 | handlerRegionHandleRequest = OnRegionHandleRequest; |
5296 | if (handlerRegionHandleRequest != null) | 5296 | if (handlerRegionHandleRequest != null) |
5297 | { | 5297 | { |
5298 | handlerRegionHandleRequest(this, rhrPack.RequestBlock.RegionID); | 5298 | handlerRegionHandleRequest(this, rhrPack.RequestBlock.RegionID); |
5299 | } | 5299 | } |
5300 | break; | 5300 | break; |
5301 | 5301 | ||
5302 | case PacketType.ParcelInfoRequest: | 5302 | case PacketType.ParcelInfoRequest: |
5303 | ParcelInfoRequestPacket pirPack = (ParcelInfoRequestPacket)Pack; | 5303 | ParcelInfoRequestPacket pirPack = (ParcelInfoRequestPacket)Pack; |
5304 | 5304 | ||
5305 | handlerParcelInfoRequest = OnParcelInfoRequest; | 5305 | handlerParcelInfoRequest = OnParcelInfoRequest; |
5306 | if (handlerParcelInfoRequest != null) | 5306 | if (handlerParcelInfoRequest != null) |
5307 | { | 5307 | { |
5308 | handlerParcelInfoRequest(this, pirPack.Data.ParcelID); | 5308 | handlerParcelInfoRequest(this, pirPack.Data.ParcelID); |
5309 | } | 5309 | } |
5310 | break; | 5310 | break; |
5311 | 5311 | ||
5312 | case PacketType.ParcelAccessListRequest: | 5312 | case PacketType.ParcelAccessListRequest: |
5313 | ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack; | 5313 | ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack; |
5314 | 5314 | ||
@@ -6277,10 +6277,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6277 | } | 6277 | } |
6278 | 6278 | ||
6279 | #endregion | 6279 | #endregion |
6280 | 6280 | ||
6281 | 6281 | ||
6282 | #region Camera | 6282 | #region Camera |
6283 | 6283 | ||
6284 | public void SendSetFollowCamProperties (LLUUID objectID, SortedDictionary<int, float> parameters) | 6284 | public void SendSetFollowCamProperties (LLUUID objectID, SortedDictionary<int, float> parameters) |
6285 | { | 6285 | { |
6286 | SetFollowCamPropertiesPacket packet = (SetFollowCamPropertiesPacket)PacketPool.Instance.GetPacket(PacketType.SetFollowCamProperties); | 6286 | SetFollowCamPropertiesPacket packet = (SetFollowCamPropertiesPacket)PacketPool.Instance.GetPacket(PacketType.SetFollowCamProperties); |
@@ -6292,7 +6292,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6292 | SetFollowCamPropertiesPacket.CameraPropertyBlock block = new SetFollowCamPropertiesPacket.CameraPropertyBlock(); | 6292 | SetFollowCamPropertiesPacket.CameraPropertyBlock block = new SetFollowCamPropertiesPacket.CameraPropertyBlock(); |
6293 | block.Type = pair.Key; | 6293 | block.Type = pair.Key; |
6294 | block.Value = pair.Value; | 6294 | block.Value = pair.Value; |
6295 | 6295 | ||
6296 | camPropBlock[idx++] = block; | 6296 | camPropBlock[idx++] = block; |
6297 | } | 6297 | } |
6298 | packet.CameraProperty = camPropBlock; | 6298 | packet.CameraProperty = camPropBlock; |
@@ -6314,7 +6314,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6314 | reply.ReplyBlock.RegionHandle = handle; | 6314 | reply.ReplyBlock.RegionHandle = handle; |
6315 | OutPacket(reply, ThrottleOutPacketType.Land); | 6315 | OutPacket(reply, ThrottleOutPacketType.Land); |
6316 | } | 6316 | } |
6317 | 6317 | ||
6318 | public void SendParcelInfo(RegionInfo info, LandData land, LLUUID parcelID, uint x, uint y) | 6318 | public void SendParcelInfo(RegionInfo info, LandData land, LLUUID parcelID, uint x, uint y) |
6319 | { | 6319 | { |
6320 | ParcelInfoReplyPacket reply = (ParcelInfoReplyPacket)PacketPool.Instance.GetPacket(PacketType.ParcelInfoReply); | 6320 | ParcelInfoReplyPacket reply = (ParcelInfoReplyPacket)PacketPool.Instance.GetPacket(PacketType.ParcelInfoReply); |
@@ -6325,16 +6325,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6325 | reply.Data.Desc = Helpers.StringToField(land.Description); | 6325 | reply.Data.Desc = Helpers.StringToField(land.Description); |
6326 | reply.Data.ActualArea = land.Area; | 6326 | reply.Data.ActualArea = land.Area; |
6327 | reply.Data.BillableArea = land.Area; // TODO: what is this? | 6327 | reply.Data.BillableArea = land.Area; // TODO: what is this? |
6328 | 6328 | ||
6329 | // Bit 0: Mature, bit 7: on sale, other bits: no idea | 6329 | // Bit 0: Mature, bit 7: on sale, other bits: no idea |
6330 | reply.Data.Flags = (byte)( | 6330 | reply.Data.Flags = (byte)( |
6331 | ((land.Flags & (uint)Parcel.ParcelFlags.MaturePublish) != 0 ? (1 << 0) : 0) + | 6331 | ((land.Flags & (uint)Parcel.ParcelFlags.MaturePublish) != 0 ? (1 << 0) : 0) + |
6332 | ((land.Flags & (uint)Parcel.ParcelFlags.ForSale) != 0 ? (1 << 7) : 0)); | 6332 | ((land.Flags & (uint)Parcel.ParcelFlags.ForSale) != 0 ? (1 << 7) : 0)); |
6333 | 6333 | ||
6334 | LLVector3 pos = land.UserLocation; | 6334 | LLVector3 pos = land.UserLocation; |
6335 | if (pos.Equals(LLVector3.Zero)) | 6335 | if (pos.Equals(LLVector3.Zero)) |
6336 | { | 6336 | { |
6337 | pos = (land.AABBMax + land.AABBMin) * 0.5f; | 6337 | pos = (land.AABBMax + land.AABBMin) * 0.5f; |
6338 | } | 6338 | } |
6339 | reply.Data.GlobalX = info.RegionLocX * Constants.RegionSize + x; | 6339 | reply.Data.GlobalX = info.RegionLocX * Constants.RegionSize + x; |
6340 | reply.Data.GlobalY = info.RegionLocY * Constants.RegionSize + y; | 6340 | reply.Data.GlobalY = info.RegionLocY * Constants.RegionSize + y; |
@@ -6344,7 +6344,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6344 | reply.Data.Dwell = 0; // TODO: not implemented yet | 6344 | reply.Data.Dwell = 0; // TODO: not implemented yet |
6345 | reply.Data.SalePrice = land.SalePrice; | 6345 | reply.Data.SalePrice = land.SalePrice; |
6346 | reply.Data.AuctionID = (int)land.AuctionID; | 6346 | reply.Data.AuctionID = (int)land.AuctionID; |
6347 | 6347 | ||
6348 | OutPacket(reply, ThrottleOutPacketType.Land); | 6348 | OutPacket(reply, ThrottleOutPacketType.Land); |
6349 | } | 6349 | } |
6350 | } | 6350 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs index 8fe9a7b..8023f58 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs | |||
@@ -230,7 +230,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
230 | { | 230 | { |
231 | // Call the load balancer's hook. If this is not active here | 231 | // Call the load balancer's hook. If this is not active here |
232 | // we defer to the sim server this client is actually connected | 232 | // we defer to the sim server this client is actually connected |
233 | // to. Packet drop notifies will not be triggered in this | 233 | // to. Packet drop notifies will not be triggered in this |
234 | // configuration! | 234 | // configuration! |
235 | // | 235 | // |
236 | if ((m_SynchronizeClient != null) && (!m_Client.IsActive)) | 236 | if ((m_SynchronizeClient != null) && (!m_Client.IsActive)) |
@@ -282,7 +282,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
282 | } | 282 | } |
283 | } | 283 | } |
284 | } | 284 | } |
285 | 285 | ||
286 | private void QueuePacket( | 286 | private void QueuePacket( |
287 | Packet packet, ThrottleOutPacketType throttlePacketType, | 287 | Packet packet, ThrottleOutPacketType throttlePacketType, |
288 | Object id) | 288 | Object id) |
@@ -303,7 +303,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
303 | { | 303 | { |
304 | int now = System.Environment.TickCount; | 304 | int now = System.Environment.TickCount; |
305 | int lastAck = m_LastAck; | 305 | int lastAck = m_LastAck; |
306 | 306 | ||
307 | // Unless we have received at least one ack, don't bother resending | 307 | // Unless we have received at least one ack, don't bother resending |
308 | // anything. There may not be a client there, don't clog up the | 308 | // anything. There may not be a client there, don't clog up the |
309 | // pipes. | 309 | // pipes. |
@@ -558,7 +558,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
558 | 558 | ||
559 | PruneDupeTracker(); | 559 | PruneDupeTracker(); |
560 | 560 | ||
561 | // Check for duplicate packets.. packets that the client is | 561 | // Check for duplicate packets.. packets that the client is |
562 | // resending because it didn't receive our ack | 562 | // resending because it didn't receive our ack |
563 | // | 563 | // |
564 | lock (m_DupeTracker) | 564 | lock (m_DupeTracker) |
@@ -677,7 +677,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
677 | 677 | ||
678 | m_Sequence = info.sequence; | 678 | m_Sequence = info.sequence; |
679 | } | 679 | } |
680 | 680 | ||
681 | public void AddImportantPacket(PacketType type) | 681 | public void AddImportantPacket(PacketType type) |
682 | { | 682 | { |
683 | if (m_ImportantPackets.Contains(type)) | 683 | if (m_ImportantPackets.Contains(type)) |
@@ -693,7 +693,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
693 | 693 | ||
694 | m_ImportantPackets.Remove(type); | 694 | m_ImportantPackets.Remove(type); |
695 | } | 695 | } |
696 | 696 | ||
697 | private void DropResend(Object id) | 697 | private void DropResend(Object id) |
698 | { | 698 | { |
699 | foreach (AckData data in new List<AckData>(m_NeedAck.Values)) | 699 | foreach (AckData data in new List<AckData>(m_NeedAck.Values)) |
@@ -736,7 +736,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
736 | if (packet.Header.Reliable) | 736 | if (packet.Header.Reliable) |
737 | { | 737 | { |
738 | m_UnackedBytes += packet.ToBytes().Length; | 738 | m_UnackedBytes += packet.ToBytes().Length; |
739 | m_NeedAck[packet.Header.Sequence] = new AckData(packet, | 739 | m_NeedAck[packet.Header.Sequence] = new AckData(packet, |
740 | item.Identifier); | 740 | item.Identifier); |
741 | } | 741 | } |
742 | } | 742 | } |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 5903661..7c21df2 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -213,7 +213,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
213 | } | 213 | } |
214 | 214 | ||
215 | BeginReceive(); | 215 | BeginReceive(); |
216 | 216 | ||
217 | if (packet != null) | 217 | if (packet != null) |
218 | { | 218 | { |
219 | try | 219 | try |
@@ -297,11 +297,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
297 | m_socket.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, | 297 | m_socket.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, |
298 | ReceivedData, null); | 298 | ReceivedData, null); |
299 | 299 | ||
300 | // Ter: For some stupid reason ConnectionReset basically kills our async event structure.. | 300 | // Ter: For some stupid reason ConnectionReset basically kills our async event structure.. |
301 | // so therefore.. we've got to tell the server to BeginReceiveFrom again. | 301 | // so therefore.. we've got to tell the server to BeginReceiveFrom again. |
302 | // This will happen over and over until we've gone through all packets | 302 | // This will happen over and over until we've gone through all packets |
303 | // sent to and from this particular user. | 303 | // sent to and from this particular user. |
304 | // Stupid I know.. | 304 | // Stupid I know.. |
305 | // but Flusing the buffer would be even more stupid... so, we're stuck with this ugly method. | 305 | // but Flusing the buffer would be even more stupid... so, we're stuck with this ugly method. |
306 | } | 306 | } |
307 | catch (SocketException e) | 307 | catch (SocketException e) |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
329 | { | 329 | { |
330 | if (!(packet is UseCircuitCodePacket)) | 330 | if (!(packet is UseCircuitCodePacket)) |
331 | return; | 331 | return; |
332 | 332 | ||
333 | UseCircuitCodePacket useCircuit = (UseCircuitCodePacket) packet; | 333 | UseCircuitCodePacket useCircuit = (UseCircuitCodePacket) packet; |
334 | lock (clientCircuits) | 334 | lock (clientCircuits) |
335 | { | 335 | { |
@@ -424,13 +424,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
424 | public virtual void RemoveClientCircuit(uint circuitcode) | 424 | public virtual void RemoveClientCircuit(uint circuitcode) |
425 | { | 425 | { |
426 | EndPoint sendto = null; | 426 | EndPoint sendto = null; |
427 | if (clientCircuits_reverse.Contains(circuitcode)) | 427 | if (clientCircuits_reverse.Contains(circuitcode)) |
428 | { | 428 | { |
429 | sendto = (EndPoint)clientCircuits_reverse[circuitcode]; | 429 | sendto = (EndPoint)clientCircuits_reverse[circuitcode]; |
430 | 430 | ||
431 | clientCircuits_reverse.Remove(circuitcode); | 431 | clientCircuits_reverse.Remove(circuitcode); |
432 | 432 | ||
433 | lock (clientCircuits) | 433 | lock (clientCircuits) |
434 | { | 434 | { |
435 | if (sendto != null) | 435 | if (sendto != null) |
436 | { | 436 | { |
@@ -442,7 +442,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
442 | "[UDPSERVER]: endpoint for circuit code {0} in RemoveClientCircuit() was unexpectedly null!", circuitcode); | 442 | "[UDPSERVER]: endpoint for circuit code {0} in RemoveClientCircuit() was unexpectedly null!", circuitcode); |
443 | } | 443 | } |
444 | } | 444 | } |
445 | lock (proxyCircuits) | 445 | lock (proxyCircuits) |
446 | { | 446 | { |
447 | proxyCircuits.Remove(circuitcode); | 447 | proxyCircuits.Remove(circuitcode); |
448 | } | 448 | } |
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index 7a552a6..91f7472 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs | |||
@@ -74,7 +74,7 @@ namespace OpenSim.Region.ClientStack | |||
74 | public override void Startup() | 74 | public override void Startup() |
75 | { | 75 | { |
76 | base.Startup(); | 76 | base.Startup(); |
77 | 77 | ||
78 | m_storageManager = CreateStorageManager(m_storageConnectionString, m_estateConnectionString); | 78 | m_storageManager = CreateStorageManager(m_storageConnectionString, m_estateConnectionString); |
79 | 79 | ||
80 | m_clientStackManager = CreateClientStackManager(); | 80 | m_clientStackManager = CreateClientStackManager(); |
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs index 8149bcc..7501967 100644 --- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs +++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs | |||
@@ -496,13 +496,13 @@ namespace OpenSim.Region.Communications.Local | |||
496 | { | 496 | { |
497 | m_log.DebugFormat("[INTERREGION STANDALONE] requests land data in {0}, at {1}, {2}", | 497 | m_log.DebugFormat("[INTERREGION STANDALONE] requests land data in {0}, at {1}, {2}", |
498 | regionHandle, x, y); | 498 | regionHandle, x, y); |
499 | 499 | ||
500 | if (m_regionListeners.ContainsKey(regionHandle)) | 500 | if (m_regionListeners.ContainsKey(regionHandle)) |
501 | { | 501 | { |
502 | LandData land = m_regionListeners[regionHandle].TriggerGetLandData(x, y); | 502 | LandData land = m_regionListeners[regionHandle].TriggerGetLandData(x, y); |
503 | return land; | 503 | return land; |
504 | } | 504 | } |
505 | 505 | ||
506 | m_log.Debug("[INTERREGION STANDALONE] didn't find land data locally."); | 506 | m_log.Debug("[INTERREGION STANDALONE] didn't find land data locally."); |
507 | return null; | 507 | return null; |
508 | } | 508 | } |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 9a4c166..7baaa16 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -139,7 +139,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
139 | try | 139 | try |
140 | { | 140 | { |
141 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams); | 141 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_login", SendParams); |
142 | 142 | ||
143 | // The timeout should always be significantly larger than the timeout for the grid server to request | 143 | // The timeout should always be significantly larger than the timeout for the grid server to request |
144 | // the initial status of the region before confirming registration. | 144 | // the initial status of the region before confirming registration. |
145 | GridResp = GridReq.Send(serversInfo.GridURL, 90000); | 145 | GridResp = GridReq.Send(serversInfo.GridURL, 90000); |
@@ -630,7 +630,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
630 | } | 630 | } |
631 | 631 | ||
632 | XmlRpcResponse resp = new XmlRpcResponse(); | 632 | XmlRpcResponse resp = new XmlRpcResponse(); |
633 | 633 | ||
634 | if (banned) | 634 | if (banned) |
635 | { | 635 | { |
636 | m_log.InfoFormat("[OGS1 GRID SERVICES]: Denying access for user {0} {1} because user is banned",agentData.firstname,agentData.lastname); | 636 | m_log.InfoFormat("[OGS1 GRID SERVICES]: Denying access for user {0} {1} because user is banned",agentData.firstname,agentData.lastname); |
@@ -645,7 +645,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
645 | m_log.Debug("[CONNECTION DEBUGGING]: Triggering welcome for " + agentData.AgentID.ToString() + " into " + regionHandle.ToString()); | 645 | m_log.Debug("[CONNECTION DEBUGGING]: Triggering welcome for " + agentData.AgentID.ToString() + " into " + regionHandle.ToString()); |
646 | m_localBackend.TriggerExpectUser(regionHandle, agentData); | 646 | m_localBackend.TriggerExpectUser(regionHandle, agentData); |
647 | m_log.Info("[OGS1 GRID SERVICES]: Welcoming new user..."); | 647 | m_log.Info("[OGS1 GRID SERVICES]: Welcoming new user..."); |
648 | Hashtable respdata = new Hashtable(); | 648 | Hashtable respdata = new Hashtable(); |
649 | respdata["success"] = "TRUE"; | 649 | respdata["success"] = "TRUE"; |
650 | resp.Value = respdata; | 650 | resp.Value = respdata; |
651 | 651 | ||
@@ -1638,10 +1638,10 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1638 | hash["region_handle"] = regionHandle.ToString(); | 1638 | hash["region_handle"] = regionHandle.ToString(); |
1639 | hash["x"] = x.ToString(); | 1639 | hash["x"] = x.ToString(); |
1640 | hash["y"] = y.ToString(); | 1640 | hash["y"] = y.ToString(); |
1641 | 1641 | ||
1642 | IList paramList = new ArrayList(); | 1642 | IList paramList = new ArrayList(); |
1643 | paramList.Add(hash); | 1643 | paramList.Add(hash); |
1644 | 1644 | ||
1645 | // this might be cached, as we probably requested it just a moment ago... | 1645 | // this might be cached, as we probably requested it just a moment ago... |
1646 | RegionInfo info = RequestNeighbourInfo(regionHandle); | 1646 | RegionInfo info = RequestNeighbourInfo(regionHandle); |
1647 | 1647 | ||
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index 06a28d0..1d86646 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -252,7 +252,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
252 | IList parameters = new ArrayList(); | 252 | IList parameters = new ArrayList(); |
253 | parameters.Add(param); | 253 | parameters.Add(param); |
254 | XmlRpcRequest req = new XmlRpcRequest("logout_of_simulator", parameters); | 254 | XmlRpcRequest req = new XmlRpcRequest("logout_of_simulator", parameters); |
255 | 255 | ||
256 | try | 256 | try |
257 | { | 257 | { |
258 | req.Send(m_parent.NetworkServersInfo.UserURL, 3000); | 258 | req.Send(m_parent.NetworkServersInfo.UserURL, 3000); |
@@ -262,7 +262,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
262 | m_log.Warn("[LOGOFF]: Unable to notify grid server of user logoff"); | 262 | m_log.Warn("[LOGOFF]: Unable to notify grid server of user logoff"); |
263 | } | 263 | } |
264 | } | 264 | } |
265 | 265 | ||
266 | public UserProfileData GetUserProfile(string firstName, string lastName) | 266 | public UserProfileData GetUserProfile(string firstName, string lastName) |
267 | { | 267 | { |
268 | return GetUserProfile(firstName + " " + lastName); | 268 | return GetUserProfile(firstName + " " + lastName); |
@@ -711,7 +711,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
711 | public AvatarAppearance GetUserAppearance(LLUUID user) | 711 | public AvatarAppearance GetUserAppearance(LLUUID user) |
712 | { | 712 | { |
713 | AvatarAppearance appearance = null; | 713 | AvatarAppearance appearance = null; |
714 | 714 | ||
715 | try | 715 | try |
716 | { | 716 | { |
717 | Hashtable param = new Hashtable(); | 717 | Hashtable param = new Hashtable(); |
@@ -722,14 +722,14 @@ namespace OpenSim.Region.Communications.OGS1 | |||
722 | XmlRpcRequest req = new XmlRpcRequest("get_avatar_appearance", parameters); | 722 | XmlRpcRequest req = new XmlRpcRequest("get_avatar_appearance", parameters); |
723 | XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 8000); | 723 | XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 8000); |
724 | Hashtable respData = (Hashtable) resp.Value; | 724 | Hashtable respData = (Hashtable) resp.Value; |
725 | 725 | ||
726 | return ConvertXMLRPCDataToAvatarAppearance(respData); | 726 | return ConvertXMLRPCDataToAvatarAppearance(respData); |
727 | } | 727 | } |
728 | catch (WebException e) | 728 | catch (WebException e) |
729 | { | 729 | { |
730 | m_log.ErrorFormat("[OGS1 USER SERVICES]: Network problems when trying to fetch appearance for avatar {0}, {1}", user, e.Message); | 730 | m_log.ErrorFormat("[OGS1 USER SERVICES]: Network problems when trying to fetch appearance for avatar {0}, {1}", user, e.Message); |
731 | } | 731 | } |
732 | 732 | ||
733 | return appearance; | 733 | return appearance; |
734 | } | 734 | } |
735 | 735 | ||
diff --git a/OpenSim/Region/Environment/Interfaces/ICommander.cs b/OpenSim/Region/Environment/Interfaces/ICommander.cs index f2260c3..c4102af 100644 --- a/OpenSim/Region/Environment/Interfaces/ICommander.cs +++ b/OpenSim/Region/Environment/Interfaces/ICommander.cs | |||
@@ -27,8 +27,6 @@ | |||
27 | 27 | ||
28 | namespace OpenSim.Region.Environment.Interfaces | 28 | namespace OpenSim.Region.Environment.Interfaces |
29 | { | 29 | { |
30 | |||
31 | |||
32 | public interface ICommander | 30 | public interface ICommander |
33 | { | 31 | { |
34 | void ProcessConsoleCommand(string function, string[] args); | 32 | void ProcessConsoleCommand(string function, string[] args); |
diff --git a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs index ad5983c..4e716a2 100644 --- a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs +++ b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs | |||
@@ -47,7 +47,7 @@ namespace OpenSim.Region.Environment.Interfaces | |||
47 | /// <param name="obj"></param> | 47 | /// <param name="obj"></param> |
48 | /// <param name="regionUUID"></param> | 48 | /// <param name="regionUUID"></param> |
49 | void StoreObject(SceneObjectGroup obj, LLUUID regionUUID); | 49 | void StoreObject(SceneObjectGroup obj, LLUUID regionUUID); |
50 | 50 | ||
51 | /// <summary> | 51 | /// <summary> |
52 | /// Entirely removes the object, including inventory | 52 | /// Entirely removes the object, including inventory |
53 | /// </summary> | 53 | /// </summary> |
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Environment.Interfaces | |||
55 | /// <param name="regionUUID"></param> | 55 | /// <param name="regionUUID"></param> |
56 | /// <returns></returns> | 56 | /// <returns></returns> |
57 | void RemoveObject(LLUUID uuid, LLUUID regionUUID); | 57 | void RemoveObject(LLUUID uuid, LLUUID regionUUID); |
58 | 58 | ||
59 | /// <summary> | 59 | /// <summary> |
60 | /// Store a prim's inventory | 60 | /// Store a prim's inventory |
61 | /// </summary> | 61 | /// </summary> |
diff --git a/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs b/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs index aa34c45..4bcb14b 100644 --- a/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs +++ b/OpenSim/Region/Environment/Interfaces/ITerrainChannel.cs | |||
@@ -38,7 +38,7 @@ namespace OpenSim.Region.Environment.Interfaces | |||
38 | /// </summary> | 38 | /// </summary> |
39 | /// <returns></returns> | 39 | /// <returns></returns> |
40 | float[] GetFloatsSerialised(); | 40 | float[] GetFloatsSerialised(); |
41 | 41 | ||
42 | double[,] GetDoubles(); | 42 | double[,] GetDoubles(); |
43 | bool Tainted(int x, int y); | 43 | bool Tainted(int x, int y); |
44 | ITerrainChannel MakeCopy(); | 44 | ITerrainChannel MakeCopy(); |
diff --git a/OpenSim/Region/Environment/ModuleLoader.cs b/OpenSim/Region/Environment/ModuleLoader.cs index 3f8b9ff..09f2dda 100644 --- a/OpenSim/Region/Environment/ModuleLoader.cs +++ b/OpenSim/Region/Environment/ModuleLoader.cs | |||
@@ -320,7 +320,7 @@ namespace OpenSim.Region.Environment | |||
320 | public void UnloadModule(IRegionModule rm) | 320 | public void UnloadModule(IRegionModule rm) |
321 | { | 321 | { |
322 | rm.Close(); | 322 | rm.Close(); |
323 | 323 | ||
324 | m_loadedModules.Remove(rm); | 324 | m_loadedModules.Remove(rm); |
325 | } | 325 | } |
326 | } | 326 | } |
diff --git a/OpenSim/Region/Environment/Modules/Agent/TextureDownload/UserTextureDownloadService.cs b/OpenSim/Region/Environment/Modules/Agent/TextureDownload/UserTextureDownloadService.cs index 10ef766..e6ee75f 100644 --- a/OpenSim/Region/Environment/Modules/Agent/TextureDownload/UserTextureDownloadService.cs +++ b/OpenSim/Region/Environment/Modules/Agent/TextureDownload/UserTextureDownloadService.cs | |||
@@ -46,7 +46,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureDownload | |||
46 | { | 46 | { |
47 | private static readonly ILog m_log | 47 | private static readonly ILog m_log |
48 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 48 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// True if the service has been closed, probably because a user with texture requests still queued | 51 | /// True if the service has been closed, probably because a user with texture requests still queued |
52 | /// logged out. | 52 | /// logged out. |
@@ -175,7 +175,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureDownload | |||
175 | public void TextureCallback(LLUUID textureID, AssetBase texture) | 175 | public void TextureCallback(LLUUID textureID, AssetBase texture) |
176 | { | 176 | { |
177 | //m_log.DebugFormat("[USER TEXTURE DOWNLOAD SERVICE]: Calling TextureCallback with {0}, texture == null is {1}", textureID, (texture == null ? true : false)); | 177 | //m_log.DebugFormat("[USER TEXTURE DOWNLOAD SERVICE]: Calling TextureCallback with {0}, texture == null is {1}", textureID, (texture == null ? true : false)); |
178 | 178 | ||
179 | // There may still be texture requests pending for a logged out client | 179 | // There may still be texture requests pending for a logged out client |
180 | if (closed) | 180 | if (closed) |
181 | return; | 181 | return; |
@@ -247,7 +247,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureDownload | |||
247 | internal void Close() | 247 | internal void Close() |
248 | { | 248 | { |
249 | closed = true; | 249 | closed = true; |
250 | 250 | ||
251 | lock (m_textureSenders) | 251 | lock (m_textureSenders) |
252 | { | 252 | { |
253 | foreach (TextureSender.TextureSender textureSender in m_textureSenders.Values) | 253 | foreach (TextureSender.TextureSender textureSender in m_textureSenders.Values) |
@@ -257,7 +257,7 @@ namespace OpenSim.Region.Environment.Modules.Agent.TextureDownload | |||
257 | 257 | ||
258 | m_textureSenders.Clear(); | 258 | m_textureSenders.Clear(); |
259 | } | 259 | } |
260 | 260 | ||
261 | // XXX: It might be possible to also remove pending texture requests from the asset cache queues, | 261 | // XXX: It might be possible to also remove pending texture requests from the asset cache queues, |
262 | // though this might also be more trouble than it's worth. | 262 | // though this might also be more trouble than it's worth. |
263 | } | 263 | } |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs index c5a4a96..4a98622 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs | |||
@@ -186,7 +186,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends | |||
186 | client.OnTerminateFriendship += OnTerminateFriendship; | 186 | client.OnTerminateFriendship += OnTerminateFriendship; |
187 | 187 | ||
188 | doFriendListUpdateOnline(client.AgentId); | 188 | doFriendListUpdateOnline(client.AgentId); |
189 | 189 | ||
190 | } | 190 | } |
191 | 191 | ||
192 | private void doFriendListUpdateOnline(LLUUID AgentId) | 192 | private void doFriendListUpdateOnline(LLUUID AgentId) |
@@ -386,7 +386,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends | |||
386 | { | 386 | { |
387 | m_rootAgents.Add(avatar.UUID, avatar.RegionHandle); | 387 | m_rootAgents.Add(avatar.UUID, avatar.RegionHandle); |
388 | m_log.Info("[FRIEND]: Claiming " + avatar.Firstname + " " + avatar.Lastname + " in region:" + avatar.RegionHandle + "."); | 388 | m_log.Info("[FRIEND]: Claiming " + avatar.Firstname + " " + avatar.Lastname + " in region:" + avatar.RegionHandle + "."); |
389 | 389 | ||
390 | List<StoredFriendListUpdate> updateme = new List<StoredFriendListUpdate>(); | 390 | List<StoredFriendListUpdate> updateme = new List<StoredFriendListUpdate>(); |
391 | lock (StoredFriendListUpdates) | 391 | lock (StoredFriendListUpdates) |
392 | { | 392 | { |
@@ -546,7 +546,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends | |||
546 | 546 | ||
547 | SceneAgentIn.TriggerGridInstantMessage(msg, InstantMessageReceiver.IMModule); | 547 | SceneAgentIn.TriggerGridInstantMessage(msg, InstantMessageReceiver.IMModule); |
548 | SceneAgentIn.StoreAddFriendship(m_pendingFriendRequests[transactionID], agentID, (uint) 1); | 548 | SceneAgentIn.StoreAddFriendship(m_pendingFriendRequests[transactionID], agentID, (uint) 1); |
549 | 549 | ||
550 | 550 | ||
551 | //LLUUID[] Agents = new LLUUID[1]; | 551 | //LLUUID[] Agents = new LLUUID[1]; |
552 | //Agents[0] = msg.toAgentID; | 552 | //Agents[0] = msg.toAgentID; |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs index a83730e..eaa5013 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Groups/GroupsModule.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
62 | scene.EventManager.OnGridInstantMessageToGroupsModule += OnGridInstantMessage; | 62 | scene.EventManager.OnGridInstantMessageToGroupsModule += OnGridInstantMessage; |
63 | lock (m_groupUUIDGroup) | 63 | lock (m_groupUUIDGroup) |
64 | { | 64 | { |
65 | 65 | ||
66 | GroupData OpenSimulatorGroup = new GroupData(); | 66 | GroupData OpenSimulatorGroup = new GroupData(); |
67 | OpenSimulatorGroup.ActiveGroupTitle = "OpenSimulator Tester"; | 67 | OpenSimulatorGroup.ActiveGroupTitle = "OpenSimulator Tester"; |
68 | OpenSimulatorGroup.GroupID = opensimulatorGroupID; | 68 | OpenSimulatorGroup.GroupID = opensimulatorGroupID; |
@@ -136,7 +136,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
136 | } | 136 | } |
137 | 137 | ||
138 | } | 138 | } |
139 | 139 | ||
140 | lock (m_groupmap) | 140 | lock (m_groupmap) |
141 | { | 141 | { |
142 | if (!m_groupmap.ContainsKey(client.AgentId)) | 142 | if (!m_groupmap.ContainsKey(client.AgentId)) |
@@ -159,8 +159,6 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
159 | updateGroups[0] = OpenSimulatorGroup; | 159 | updateGroups[0] = OpenSimulatorGroup; |
160 | 160 | ||
161 | client.SendGroupMembership(updateGroups); | 161 | client.SendGroupMembership(updateGroups); |
162 | |||
163 | |||
164 | } | 162 | } |
165 | 163 | ||
166 | private void OnAgentDataUpdateRequest(IClientAPI remoteClient, LLUUID AgentID, LLUUID SessionID) | 164 | private void OnAgentDataUpdateRequest(IClientAPI remoteClient, LLUUID AgentID, LLUUID SessionID) |
@@ -275,6 +273,4 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Groups | |||
275 | GC.Collect(); | 273 | GC.Collect(); |
276 | } | 274 | } |
277 | } | 275 | } |
278 | 276 | } | |
279 | |||
280 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs b/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs index a3452ab..15ce584 100644 --- a/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs +++ b/OpenSim/Region/Environment/Modules/Scripting/DynamicTexture/DynamicTextureModule.cs | |||
@@ -208,7 +208,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
208 | SceneObjectPart part = scene.GetSceneObjectPart(PrimID); | 208 | SceneObjectPart part = scene.GetSceneObjectPart(PrimID); |
209 | byte[] assetData; | 209 | byte[] assetData; |
210 | AssetBase oldAsset = null; | 210 | AssetBase oldAsset = null; |
211 | 211 | ||
212 | if (BlendWithOldTexture) | 212 | if (BlendWithOldTexture) |
213 | { | 213 | { |
214 | LLUUID lastTextureID = part.Shape.Textures.DefaultTexture.TextureID; | 214 | LLUUID lastTextureID = part.Shape.Textures.DefaultTexture.TextureID; |
@@ -228,7 +228,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
228 | assetData = new byte[data.Length]; | 228 | assetData = new byte[data.Length]; |
229 | Array.Copy(data, assetData, data.Length); | 229 | Array.Copy(data, assetData, data.Length); |
230 | } | 230 | } |
231 | 231 | ||
232 | // Create a new asset for user | 232 | // Create a new asset for user |
233 | AssetBase asset = new AssetBase(); | 233 | AssetBase asset = new AssetBase(); |
234 | asset.FullID = LLUUID.Random(); | 234 | asset.FullID = LLUUID.Random(); |
@@ -244,7 +244,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
244 | 244 | ||
245 | // mostly keep the values from before | 245 | // mostly keep the values from before |
246 | LLObject.TextureEntry tmptex = part.Shape.Textures; | 246 | LLObject.TextureEntry tmptex = part.Shape.Textures; |
247 | 247 | ||
248 | // remove the old asset from the cache | 248 | // remove the old asset from the cache |
249 | LLUUID oldID = tmptex.DefaultTexture.TextureID; | 249 | LLUUID oldID = tmptex.DefaultTexture.TextureID; |
250 | scene.AssetCache.ExpireAsset(oldID); | 250 | scene.AssetCache.ExpireAsset(oldID); |
@@ -298,4 +298,4 @@ namespace OpenSim.Region.Environment.Modules.Scripting.DynamicTexture | |||
298 | 298 | ||
299 | #endregion | 299 | #endregion |
300 | } | 300 | } |
301 | } \ No newline at end of file | 301 | } |
diff --git a/OpenSim/Region/Environment/Modules/Scripting/EMailModules/EmailModule.cs b/OpenSim/Region/Environment/Modules/Scripting/EMailModules/EmailModule.cs index 1162c25..bcf3e76 100644 --- a/OpenSim/Region/Environment/Modules/Scripting/EMailModules/EmailModule.cs +++ b/OpenSim/Region/Environment/Modules/Scripting/EMailModules/EmailModule.cs | |||
@@ -68,14 +68,14 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
68 | { | 68 | { |
69 | m_Config = config; | 69 | m_Config = config; |
70 | IConfig SMTPConfig; | 70 | IConfig SMTPConfig; |
71 | 71 | ||
72 | //FIXME: RegionName is correct?? | 72 | //FIXME: RegionName is correct?? |
73 | //m_RegionName = scene.RegionInfo.RegionName; | 73 | //m_RegionName = scene.RegionInfo.RegionName; |
74 | 74 | ||
75 | IConfig startupConfig = m_Config.Configs["Startup"]; | 75 | IConfig startupConfig = m_Config.Configs["Startup"]; |
76 | 76 | ||
77 | m_Enabled = (startupConfig.GetString("emailmodule", "DefaultEmailModule") == "DefaultEmailModule"); | 77 | m_Enabled = (startupConfig.GetString("emailmodule", "DefaultEmailModule") == "DefaultEmailModule"); |
78 | 78 | ||
79 | //Load SMTP SERVER config | 79 | //Load SMTP SERVER config |
80 | try | 80 | try |
81 | { | 81 | { |
@@ -85,16 +85,16 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
85 | m_Enabled = false; | 85 | m_Enabled = false; |
86 | return; | 86 | return; |
87 | } | 87 | } |
88 | 88 | ||
89 | if (!SMTPConfig.GetBoolean("enabled", false)) | 89 | if (!SMTPConfig.GetBoolean("enabled", false)) |
90 | { | 90 | { |
91 | m_log.InfoFormat("[SMTP] module disabled in configuration"); | 91 | m_log.InfoFormat("[SMTP] module disabled in configuration"); |
92 | m_Enabled = false; | 92 | m_Enabled = false; |
93 | return; | 93 | return; |
94 | } | 94 | } |
95 | 95 | ||
96 | m_HostName = SMTPConfig.GetString("host_domain_header_from", m_HostName); | 96 | m_HostName = SMTPConfig.GetString("host_domain_header_from", m_HostName); |
97 | SMTP_SERVER_HOSTNAME = SMTPConfig.GetString("SMTP_SERVER_HOSTNAME",SMTP_SERVER_HOSTNAME); | 97 | SMTP_SERVER_HOSTNAME = SMTPConfig.GetString("SMTP_SERVER_HOSTNAME",SMTP_SERVER_HOSTNAME); |
98 | SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT); | 98 | SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT); |
99 | SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN); | 99 | SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN); |
100 | SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD); | 100 | SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD); |
@@ -124,7 +124,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
124 | m_Scenes.Add(scene.RegionInfo.RegionHandle, scene); | 124 | m_Scenes.Add(scene.RegionInfo.RegionHandle, scene); |
125 | } | 125 | } |
126 | } | 126 | } |
127 | 127 | ||
128 | m_log.Info("[EMAIL] Activated DefaultEmailModule"); | 128 | m_log.Info("[EMAIL] Activated DefaultEmailModule"); |
129 | } | 129 | } |
130 | } | 130 | } |
@@ -146,9 +146,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
146 | { | 146 | { |
147 | get { return true; } | 147 | get { return true; } |
148 | } | 148 | } |
149 | 149 | ||
150 | /// <summary> | 150 | /// <summary> |
151 | /// | 151 | /// |
152 | /// </summary> | 152 | /// </summary> |
153 | /// <param name="seconds"></param> | 153 | /// <param name="seconds"></param> |
154 | private void DelayInSeconds(int seconds) | 154 | private void DelayInSeconds(int seconds) |
@@ -156,11 +156,11 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
156 | TimeSpan DiffDelay = new TimeSpan(0, 0, seconds); | 156 | TimeSpan DiffDelay = new TimeSpan(0, 0, seconds); |
157 | DateTime EndDelay = DateTime.Now.Add(DiffDelay); | 157 | DateTime EndDelay = DateTime.Now.Add(DiffDelay); |
158 | while (DateTime.Now < EndDelay) | 158 | while (DateTime.Now < EndDelay) |
159 | { | 159 | { |
160 | ;//Do nothing!! | 160 | ;//Do nothing!! |
161 | } | 161 | } |
162 | } | 162 | } |
163 | 163 | ||
164 | private SceneObjectPart findPrim(LLUUID objectID, out string ObjectRegionName) | 164 | private SceneObjectPart findPrim(LLUUID objectID, out string ObjectRegionName) |
165 | { | 165 | { |
166 | lock (m_Scenes) | 166 | lock (m_Scenes) |
@@ -187,7 +187,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
187 | { | 187 | { |
188 | ObjectAbsolutePosition = part.AbsolutePosition.ToString(); | 188 | ObjectAbsolutePosition = part.AbsolutePosition.ToString(); |
189 | ObjectName = part.Name; | 189 | ObjectName = part.Name; |
190 | ObjectRegionName = m_ObjectRegionName; | 190 | ObjectRegionName = m_ObjectRegionName; |
191 | return; | 191 | return; |
192 | } | 192 | } |
193 | ObjectAbsolutePosition = part.AbsolutePosition.ToString(); | 193 | ObjectAbsolutePosition = part.AbsolutePosition.ToString(); |
@@ -195,7 +195,7 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
195 | ObjectRegionName = m_ObjectRegionName; | 195 | ObjectRegionName = m_ObjectRegionName; |
196 | return; | 196 | return; |
197 | } | 197 | } |
198 | 198 | ||
199 | /// <summary> | 199 | /// <summary> |
200 | /// SendMail function utilized by llEMail | 200 | /// SendMail function utilized by llEMail |
201 | /// </summary> | 201 | /// </summary> |
@@ -206,14 +206,14 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
206 | public void SendEmail(LLUUID objectID, string address, string subject, string body) | 206 | public void SendEmail(LLUUID objectID, string address, string subject, string body) |
207 | { | 207 | { |
208 | //Check if address is empty | 208 | //Check if address is empty |
209 | if (address == string.Empty) | 209 | if (address == string.Empty) |
210 | return; | 210 | return; |
211 | 211 | ||
212 | //FIXED:Check the email is correct form in REGEX | 212 | //FIXED:Check the email is correct form in REGEX |
213 | string EMailpatternStrict = @"^(([^<>()[\]\\.,;:\s@\""]+" | 213 | string EMailpatternStrict = @"^(([^<>()[\]\\.,;:\s@\""]+" |
214 | + @"(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@" | 214 | + @"(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@" |
215 | + @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | 215 | + @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" |
216 | + @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+" | 216 | + @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+" |
217 | + @"[a-zA-Z]{2,}))$"; | 217 | + @"[a-zA-Z]{2,}))$"; |
218 | Regex EMailreStrict = new Regex(EMailpatternStrict); | 218 | Regex EMailreStrict = new Regex(EMailpatternStrict); |
219 | bool isEMailStrictMatch = EMailreStrict.IsMatch(address); | 219 | bool isEMailStrictMatch = EMailreStrict.IsMatch(address); |
@@ -226,9 +226,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
226 | if ((subject.Length + body.Length) > 1024) | 226 | if ((subject.Length + body.Length) > 1024) |
227 | { | 227 | { |
228 | m_log.Error("[EMAIL] subject + body > 1024 Byte"); | 228 | m_log.Error("[EMAIL] subject + body > 1024 Byte"); |
229 | return; | 229 | return; |
230 | } | 230 | } |
231 | 231 | ||
232 | try | 232 | try |
233 | { | 233 | { |
234 | string LastObjectName = string.Empty; | 234 | string LastObjectName = string.Empty; |
@@ -242,21 +242,21 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
242 | //From | 242 | //From |
243 | emailMessage.FromAddress = new EmailAddress(objectID.UUID.ToString()+"@"+m_HostName); | 243 | emailMessage.FromAddress = new EmailAddress(objectID.UUID.ToString()+"@"+m_HostName); |
244 | //To - Only One | 244 | //To - Only One |
245 | emailMessage.AddToAddress(new EmailAddress(address)); | 245 | emailMessage.AddToAddress(new EmailAddress(address)); |
246 | //Subject | 246 | //Subject |
247 | emailMessage.Subject = subject; | 247 | emailMessage.Subject = subject; |
248 | //TEXT Body | 248 | //TEXT Body |
249 | resolveNamePositionRegionName(objectID, out LastObjectName, out LastObjectPosition, out LastObjectRegionName); | 249 | resolveNamePositionRegionName(objectID, out LastObjectName, out LastObjectPosition, out LastObjectRegionName); |
250 | emailMessage.TextPart = new TextAttachment("Object-Name: " + LastObjectName + | 250 | emailMessage.TextPart = new TextAttachment("Object-Name: " + LastObjectName + |
251 | "\r\nRegion: " + LastObjectRegionName + "\r\nLocal-Position: " + | 251 | "\r\nRegion: " + LastObjectRegionName + "\r\nLocal-Position: " + |
252 | LastObjectPosition+"\r\n\r\n\r\n" + body); | 252 | LastObjectPosition+"\r\n\r\n\r\n" + body); |
253 | //HTML Body | 253 | //HTML Body |
254 | emailMessage.HtmlPart = new HtmlAttachment("<html><body><p>" + | 254 | emailMessage.HtmlPart = new HtmlAttachment("<html><body><p>" + |
255 | "<BR>Object-Name: " + LastObjectName + | 255 | "<BR>Object-Name: " + LastObjectName + |
256 | "<BR>Region: " + LastObjectRegionName + | 256 | "<BR>Region: " + LastObjectRegionName + |
257 | "<BR>Local-Position: " + LastObjectPosition + "<BR><BR><BR>" | 257 | "<BR>Local-Position: " + LastObjectPosition + "<BR><BR><BR>" |
258 | +body+"\r\n</p></body><html>"); | 258 | +body+"\r\n</p></body><html>"); |
259 | 259 | ||
260 | //Set SMTP SERVER config | 260 | //Set SMTP SERVER config |
261 | SmtpServer smtpServer=new SmtpServer(SMTP_SERVER_HOSTNAME,SMTP_SERVER_PORT); | 261 | SmtpServer smtpServer=new SmtpServer(SMTP_SERVER_HOSTNAME,SMTP_SERVER_PORT); |
262 | //Authentication | 262 | //Authentication |
@@ -272,9 +272,9 @@ namespace OpenSim.Region.Environment.Modules.Scripting.EmailModules | |||
272 | return; | 272 | return; |
273 | } | 273 | } |
274 | } | 274 | } |
275 | 275 | ||
276 | /// <summary> | 276 | /// <summary> |
277 | /// | 277 | /// |
278 | /// </summary> | 278 | /// </summary> |
279 | /// <param name="objectID"></param> | 279 | /// <param name="objectID"></param> |
280 | /// <param name="sender"></param> | 280 | /// <param name="sender"></param> |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs index a5688ef..a76ff0d 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveConstants.cs | |||
@@ -39,33 +39,33 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
39 | /// The location of the archive control file | 39 | /// The location of the archive control file |
40 | /// </summary> | 40 | /// </summary> |
41 | public static readonly string CONTROL_FILE_PATH = "archive.xml"; | 41 | public static readonly string CONTROL_FILE_PATH = "archive.xml"; |
42 | 42 | ||
43 | /// <summary> | 43 | /// <summary> |
44 | /// Path for the assets held in an archive | 44 | /// Path for the assets held in an archive |
45 | /// </summary> | 45 | /// </summary> |
46 | public static readonly string ASSETS_PATH = "assets/"; | 46 | public static readonly string ASSETS_PATH = "assets/"; |
47 | 47 | ||
48 | /// <summary> | 48 | /// <summary> |
49 | /// Path for the assets metadata file | 49 | /// Path for the assets metadata file |
50 | /// </summary> | 50 | /// </summary> |
51 | //public static readonly string ASSETS_METADATA_PATH = "assets.xml"; | 51 | //public static readonly string ASSETS_METADATA_PATH = "assets.xml"; |
52 | 52 | ||
53 | /// <summary> | 53 | /// <summary> |
54 | /// Path for the prims file | 54 | /// Path for the prims file |
55 | /// </summary> | 55 | /// </summary> |
56 | public static readonly string OBJECTS_PATH = "objects/"; | 56 | public static readonly string OBJECTS_PATH = "objects/"; |
57 | 57 | ||
58 | /// <summary> | 58 | /// <summary> |
59 | /// Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. | 59 | /// Path for terrains. Technically these may be assets, but I think it's quite nice to split them out. |
60 | /// </summary> | 60 | /// </summary> |
61 | public static readonly string TERRAINS_PATH = "terrains/"; | 61 | public static readonly string TERRAINS_PATH = "terrains/"; |
62 | 62 | ||
63 | /// <summary> | 63 | /// <summary> |
64 | /// Extensions used for asset types in the archive | 64 | /// Extensions used for asset types in the archive |
65 | /// </summary> | 65 | /// </summary> |
66 | public static readonly IDictionary<sbyte, string> ASSET_TYPE_TO_EXTENSION = new Dictionary<sbyte, string>(); | 66 | public static readonly IDictionary<sbyte, string> ASSET_TYPE_TO_EXTENSION = new Dictionary<sbyte, string>(); |
67 | public static readonly IDictionary<string, sbyte> EXTENSION_TO_ASSET_TYPE = new Dictionary<string, sbyte>(); | 67 | public static readonly IDictionary<string, sbyte> EXTENSION_TO_ASSET_TYPE = new Dictionary<string, sbyte>(); |
68 | 68 | ||
69 | static ArchiveConstants() | 69 | static ArchiveConstants() |
70 | { | 70 | { |
71 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Animation] = "_animation.bvh"; | 71 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Animation] = "_animation.bvh"; |
@@ -79,11 +79,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
79 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LostAndFoundFolder] = "_lostandfoundfolder.txt"; // Not sure if we'll ever see this | 79 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LostAndFoundFolder] = "_lostandfoundfolder.txt"; // Not sure if we'll ever see this |
80 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLBytecode] = "_bytecode.lso"; | 80 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLBytecode] = "_bytecode.lso"; |
81 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLText] = "_script.lsl"; | 81 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.LSLText] = "_script.lsl"; |
82 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Notecard] = "_notecard.txt"; | 82 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Notecard] = "_notecard.txt"; |
83 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Object] = "_object.xml"; | 83 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Object] = "_object.xml"; |
84 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.RootFolder] = "_rootfolder.txt"; // Not sure if we'll ever see this | 84 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.RootFolder] = "_rootfolder.txt"; // Not sure if we'll ever see this |
85 | // disable warning: we know Script is obsolete, but need to support it | 85 | // disable warning: we know Script is obsolete, but need to support it |
86 | // anyhow | 86 | // anyhow |
87 | #pragma warning disable 0612 | 87 | #pragma warning disable 0612 |
88 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script] = "_script.txt"; // Not sure if we'll ever see this | 88 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script] = "_script.txt"; // Not sure if we'll ever see this |
89 | #pragma warning restore 0612 | 89 | #pragma warning restore 0612 |
@@ -93,8 +93,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
93 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SoundWAV] = "_sound.wav"; | 93 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.SoundWAV] = "_sound.wav"; |
94 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Texture] = "_texture.jp2"; | 94 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Texture] = "_texture.jp2"; |
95 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TextureTGA] = "_texture.tga"; | 95 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TextureTGA] = "_texture.tga"; |
96 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TrashFolder] = "_trashfolder.txt"; // Not sure if we'll ever see this | 96 | ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.TrashFolder] = "_trashfolder.txt"; // Not sure if we'll ever see this |
97 | 97 | ||
98 | EXTENSION_TO_ASSET_TYPE["_animation.bvh"] = (sbyte)AssetType.Animation; | 98 | EXTENSION_TO_ASSET_TYPE["_animation.bvh"] = (sbyte)AssetType.Animation; |
99 | EXTENSION_TO_ASSET_TYPE["_bodypart.txt"] = (sbyte)AssetType.Bodypart; | 99 | EXTENSION_TO_ASSET_TYPE["_bodypart.txt"] = (sbyte)AssetType.Bodypart; |
100 | EXTENSION_TO_ASSET_TYPE["_callingcard.txt"] = (sbyte)AssetType.CallingCard; | 100 | EXTENSION_TO_ASSET_TYPE["_callingcard.txt"] = (sbyte)AssetType.CallingCard; |
@@ -110,7 +110,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
110 | EXTENSION_TO_ASSET_TYPE["_object.xml"] = (sbyte)AssetType.Object; | 110 | EXTENSION_TO_ASSET_TYPE["_object.xml"] = (sbyte)AssetType.Object; |
111 | EXTENSION_TO_ASSET_TYPE["_rootfolder.txt"] = (sbyte)AssetType.RootFolder; | 111 | EXTENSION_TO_ASSET_TYPE["_rootfolder.txt"] = (sbyte)AssetType.RootFolder; |
112 | // disable warning: we know Script is obsolete, but need to support it | 112 | // disable warning: we know Script is obsolete, but need to support it |
113 | // anyhow | 113 | // anyhow |
114 | #pragma warning disable 0612 | 114 | #pragma warning disable 0612 |
115 | EXTENSION_TO_ASSET_TYPE["_script.txt"] = (sbyte)AssetType.Script; | 115 | EXTENSION_TO_ASSET_TYPE["_script.txt"] = (sbyte)AssetType.Script; |
116 | #pragma warning restore 0612 | 116 | #pragma warning restore 0612 |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 1340f8b..87106fb 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -53,7 +53,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
53 | 53 | ||
54 | private Scene m_scene; | 54 | private Scene m_scene; |
55 | private string m_loadPath; | 55 | private string m_loadPath; |
56 | 56 | ||
57 | /// <summary> | 57 | /// <summary> |
58 | /// Used to cache lookups for valid uuids. | 58 | /// Used to cache lookups for valid uuids. |
59 | /// </summary> | 59 | /// </summary> |
@@ -68,15 +68,15 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
68 | } | 68 | } |
69 | 69 | ||
70 | private void DearchiveRegion() | 70 | private void DearchiveRegion() |
71 | { | 71 | { |
72 | TarArchiveReader archive | 72 | TarArchiveReader archive |
73 | = new TarArchiveReader( | 73 | = new TarArchiveReader( |
74 | new GZipStream(new FileStream(m_loadPath, FileMode.Open), CompressionMode.Decompress)); | 74 | new GZipStream(new FileStream(m_loadPath, FileMode.Open), CompressionMode.Decompress)); |
75 | //AssetsDearchiver dearchiver = new AssetsDearchiver(m_scene.AssetCache); | 75 | //AssetsDearchiver dearchiver = new AssetsDearchiver(m_scene.AssetCache); |
76 | 76 | ||
77 | List<string> serialisedSceneObjects = new List<string>(); | 77 | List<string> serialisedSceneObjects = new List<string>(); |
78 | string filePath = "ERROR"; | 78 | string filePath = "ERROR"; |
79 | 79 | ||
80 | int successfulAssetRestores = 0; | 80 | int successfulAssetRestores = 0; |
81 | int failedAssetRestores = 0; | 81 | int failedAssetRestores = 0; |
82 | 82 | ||
@@ -111,30 +111,30 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
111 | //m_log.Debug("[ARCHIVER]: Reached end of archive"); | 111 | //m_log.Debug("[ARCHIVER]: Reached end of archive"); |
112 | 112 | ||
113 | archive.Close(); | 113 | archive.Close(); |
114 | 114 | ||
115 | m_log.InfoFormat("[ARCHIVER]: Restored {0} assets", successfulAssetRestores); | 115 | m_log.InfoFormat("[ARCHIVER]: Restored {0} assets", successfulAssetRestores); |
116 | 116 | ||
117 | if (failedAssetRestores > 0) | 117 | if (failedAssetRestores > 0) |
118 | m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores); | 118 | m_log.ErrorFormat("[ARCHIVER]: Failed to load {0} assets", failedAssetRestores); |
119 | 119 | ||
120 | m_log.Info("[ARCHIVER]: Clearing all existing scene objects"); | 120 | m_log.Info("[ARCHIVER]: Clearing all existing scene objects"); |
121 | m_scene.DeleteAllSceneObjects(); | 121 | m_scene.DeleteAllSceneObjects(); |
122 | 122 | ||
123 | // Reload serialized prims | 123 | // Reload serialized prims |
124 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); | 124 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); |
125 | 125 | ||
126 | IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>(); | 126 | IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>(); |
127 | ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>(); | 127 | ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>(); |
128 | 128 | ||
129 | foreach (string serialisedSceneObject in serialisedSceneObjects) | 129 | foreach (string serialisedSceneObject in serialisedSceneObjects) |
130 | { | 130 | { |
131 | SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject); | 131 | SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject); |
132 | 132 | ||
133 | // For now, give all incoming scene objects new uuids. This will allow scenes to be cloned | 133 | // For now, give all incoming scene objects new uuids. This will allow scenes to be cloned |
134 | // on the same region server and multiple examples a single object archive to be imported | 134 | // on the same region server and multiple examples a single object archive to be imported |
135 | // to the same scene (when this is possible). | 135 | // to the same scene (when this is possible). |
136 | sceneObject.ResetIDs(); | 136 | sceneObject.ResetIDs(); |
137 | 137 | ||
138 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | 138 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid |
139 | // otherwise, use the master avatar uuid instead | 139 | // otherwise, use the master avatar uuid instead |
140 | LLUUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | 140 | LLUUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; |
@@ -144,41 +144,41 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
144 | { | 144 | { |
145 | if (!resolveUserUuid(part.CreatorID)) | 145 | if (!resolveUserUuid(part.CreatorID)) |
146 | part.CreatorID = masterAvatarId; | 146 | part.CreatorID = masterAvatarId; |
147 | 147 | ||
148 | if (!resolveUserUuid(part.OwnerID)) | 148 | if (!resolveUserUuid(part.OwnerID)) |
149 | part.OwnerID = masterAvatarId; | 149 | part.OwnerID = masterAvatarId; |
150 | 150 | ||
151 | if (!resolveUserUuid(part.LastOwnerID)) | 151 | if (!resolveUserUuid(part.LastOwnerID)) |
152 | part.LastOwnerID = masterAvatarId; | 152 | part.LastOwnerID = masterAvatarId; |
153 | 153 | ||
154 | // And zap any troublesome sit target information | 154 | // And zap any troublesome sit target information |
155 | part.SitTargetOrientation = new Quaternion(0,0,0,1); | 155 | part.SitTargetOrientation = new Quaternion(0,0,0,1); |
156 | part.SitTargetPosition = new Vector3(0,0,0); | 156 | part.SitTargetPosition = new Vector3(0,0,0); |
157 | } | 157 | } |
158 | 158 | ||
159 | if (m_scene.AddRestoredSceneObject(sceneObject, true, false)) | 159 | if (m_scene.AddRestoredSceneObject(sceneObject, true, false)) |
160 | { | 160 | { |
161 | sceneObjects.Add(sceneObject); | 161 | sceneObjects.Add(sceneObject); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | 164 | ||
165 | m_log.InfoFormat("[ARCHIVER]: Restored {0} scene objects to the scene", sceneObjects.Count); | 165 | m_log.InfoFormat("[ARCHIVER]: Restored {0} scene objects to the scene", sceneObjects.Count); |
166 | 166 | ||
167 | int ignoredObjects = serialisedSceneObjects.Count - sceneObjects.Count; | 167 | int ignoredObjects = serialisedSceneObjects.Count - sceneObjects.Count; |
168 | 168 | ||
169 | if (ignoredObjects > 0) | 169 | if (ignoredObjects > 0) |
170 | m_log.WarnFormat("[ARCHIVER]: Ignored {0} scene objects that already existed in the scene", ignoredObjects); | 170 | m_log.WarnFormat("[ARCHIVER]: Ignored {0} scene objects that already existed in the scene", ignoredObjects); |
171 | 171 | ||
172 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); | 172 | m_log.InfoFormat("[ARCHIVER]: Successfully loaded archive"); |
173 | 173 | ||
174 | m_log.Debug("[ARCHIVER]: Starting scripts"); | 174 | m_log.Debug("[ARCHIVER]: Starting scripts"); |
175 | 175 | ||
176 | foreach (SceneObjectGroup sceneObject in sceneObjects) | 176 | foreach (SceneObjectGroup sceneObject in sceneObjects) |
177 | { | 177 | { |
178 | sceneObject.CreateScriptInstances(0, true); | 178 | sceneObject.CreateScriptInstances(0, true); |
179 | } | 179 | } |
180 | } | 180 | } |
181 | 181 | ||
182 | /// <summary> | 182 | /// <summary> |
183 | /// Look up the given user id to check whether it's one that is valid for this grid. | 183 | /// Look up the given user id to check whether it's one that is valid for this grid. |
184 | /// </summary> | 184 | /// </summary> |
@@ -194,13 +194,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
194 | else | 194 | else |
195 | m_validUserUuids.Add(uuid, false); | 195 | m_validUserUuids.Add(uuid, false); |
196 | } | 196 | } |
197 | 197 | ||
198 | if (m_validUserUuids[uuid]) | 198 | if (m_validUserUuids[uuid]) |
199 | return true; | 199 | return true; |
200 | else | 200 | else |
201 | return false; | 201 | return false; |
202 | } | 202 | } |
203 | 203 | ||
204 | /// <summary> | 204 | /// <summary> |
205 | /// Load an asset | 205 | /// Load an asset |
206 | /// </summary> | 206 | /// </summary> |
@@ -212,20 +212,20 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
212 | // Right now we're nastily obtaining the lluuid from the filename | 212 | // Right now we're nastily obtaining the lluuid from the filename |
213 | string filename = assetPath.Remove(0, ArchiveConstants.ASSETS_PATH.Length); | 213 | string filename = assetPath.Remove(0, ArchiveConstants.ASSETS_PATH.Length); |
214 | string extension = filename.Substring(filename.LastIndexOf("_")); | 214 | string extension = filename.Substring(filename.LastIndexOf("_")); |
215 | string uuid = filename.Remove(filename.Length - extension.Length); | 215 | string uuid = filename.Remove(filename.Length - extension.Length); |
216 | 216 | ||
217 | if (ArchiveConstants.EXTENSION_TO_ASSET_TYPE.ContainsKey(extension)) | 217 | if (ArchiveConstants.EXTENSION_TO_ASSET_TYPE.ContainsKey(extension)) |
218 | { | 218 | { |
219 | sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; | 219 | sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; |
220 | 220 | ||
221 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); | 221 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); |
222 | 222 | ||
223 | AssetBase asset = new AssetBase(new LLUUID(uuid), String.Empty); | 223 | AssetBase asset = new AssetBase(new LLUUID(uuid), String.Empty); |
224 | asset.Type = assetType; | 224 | asset.Type = assetType; |
225 | asset.Data = data; | 225 | asset.Data = data; |
226 | 226 | ||
227 | m_scene.AssetCache.AddAsset(asset); | 227 | m_scene.AssetCache.AddAsset(asset); |
228 | 228 | ||
229 | return true; | 229 | return true; |
230 | } | 230 | } |
231 | else | 231 | else |
@@ -233,11 +233,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
233 | m_log.ErrorFormat( | 233 | m_log.ErrorFormat( |
234 | "[ARCHIVER]: Tried to dearchive data with path {0} with an unknown type extension {1}", | 234 | "[ARCHIVER]: Tried to dearchive data with path {0} with an unknown type extension {1}", |
235 | assetPath, extension); | 235 | assetPath, extension); |
236 | 236 | ||
237 | return false; | 237 | return false; |
238 | } | 238 | } |
239 | } | 239 | } |
240 | 240 | ||
241 | /// <summary> | 241 | /// <summary> |
242 | /// Load terrain data | 242 | /// Load terrain data |
243 | /// </summary> | 243 | /// </summary> |
@@ -249,13 +249,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
249 | private bool LoadTerrain(string terrainPath, byte[] data) | 249 | private bool LoadTerrain(string terrainPath, byte[] data) |
250 | { | 250 | { |
251 | ITerrainModule terrainModule = m_scene.RequestModuleInterface<ITerrainModule>(); | 251 | ITerrainModule terrainModule = m_scene.RequestModuleInterface<ITerrainModule>(); |
252 | 252 | ||
253 | MemoryStream ms = new MemoryStream(data); | 253 | MemoryStream ms = new MemoryStream(data); |
254 | terrainModule.LoadFromStream(terrainPath, ms); | 254 | terrainModule.LoadFromStream(terrainPath, ms); |
255 | ms.Close(); | 255 | ms.Close(); |
256 | 256 | ||
257 | m_log.DebugFormat("[ARCHIVER]: Restored terrain {0}", terrainPath); | 257 | m_log.DebugFormat("[ARCHIVER]: Restored terrain {0}", terrainPath); |
258 | 258 | ||
259 | return true; | 259 | return true; |
260 | } | 260 | } |
261 | } | 261 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs index 0341a70..26d4797 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestExecution.cs | |||
@@ -61,8 +61,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
61 | 61 | ||
62 | public ArchiveWriteRequestExecution( | 62 | public ArchiveWriteRequestExecution( |
63 | List<SceneObjectGroup> sceneObjects, | 63 | List<SceneObjectGroup> sceneObjects, |
64 | ITerrainModule terrainModule, | 64 | ITerrainModule terrainModule, |
65 | IRegionSerialiser serialiser, | 65 | IRegionSerialiser serialiser, |
66 | string sceneName, | 66 | string sceneName, |
67 | string savePath) | 67 | string savePath) |
68 | { | 68 | { |
@@ -79,37 +79,37 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
79 | { | 79 | { |
80 | m_log.DebugFormat("[ARCHIVER]: Could not find asset {0}", uuid); | 80 | m_log.DebugFormat("[ARCHIVER]: Could not find asset {0}", uuid); |
81 | } | 81 | } |
82 | 82 | ||
83 | m_log.InfoFormat( | 83 | m_log.InfoFormat( |
84 | "[ARCHIVER]: Received {0} of {1} assets requested", assetsFound.Count, assetsFound.Count + assetsNotFoundUuids.Count); | 84 | "[ARCHIVER]: Received {0} of {1} assets requested", assetsFound.Count, assetsFound.Count + assetsNotFoundUuids.Count); |
85 | 85 | ||
86 | TarArchiveWriter archive = new TarArchiveWriter(); | 86 | TarArchiveWriter archive = new TarArchiveWriter(); |
87 | 87 | ||
88 | // Write out control file | 88 | // Write out control file |
89 | archive.AddFile(ArchiveConstants.CONTROL_FILE_PATH, CreateControlFile()); | 89 | archive.AddFile(ArchiveConstants.CONTROL_FILE_PATH, CreateControlFile()); |
90 | 90 | ||
91 | // Write out terrain | 91 | // Write out terrain |
92 | string terrainPath = String.Format("{0}{1}.r32", ArchiveConstants.TERRAINS_PATH, m_sceneName); | 92 | string terrainPath = String.Format("{0}{1}.r32", ArchiveConstants.TERRAINS_PATH, m_sceneName); |
93 | MemoryStream ms = new MemoryStream(); | 93 | MemoryStream ms = new MemoryStream(); |
94 | m_terrainModule.SaveToStream(terrainPath, ms); | 94 | m_terrainModule.SaveToStream(terrainPath, ms); |
95 | archive.AddFile(terrainPath, ms.ToArray()); | 95 | archive.AddFile(terrainPath, ms.ToArray()); |
96 | ms.Close(); | 96 | ms.Close(); |
97 | 97 | ||
98 | // Write out scene object metadata | 98 | // Write out scene object metadata |
99 | foreach (SceneObjectGroup sceneObject in m_sceneObjects) | 99 | foreach (SceneObjectGroup sceneObject in m_sceneObjects) |
100 | { | 100 | { |
101 | //m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType()); | 101 | //m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType()); |
102 | 102 | ||
103 | LLVector3 position = sceneObject.AbsolutePosition; | 103 | LLVector3 position = sceneObject.AbsolutePosition; |
104 | 104 | ||
105 | string serializedObject = m_serialiser.SaveGroupToXml2(sceneObject); | 105 | string serializedObject = m_serialiser.SaveGroupToXml2(sceneObject); |
106 | string filename | 106 | string filename |
107 | = string.Format( | 107 | = string.Format( |
108 | "{0}{1}_{2:000}-{3:000}-{4:000}__{5}.xml", | 108 | "{0}{1}_{2:000}-{3:000}-{4:000}__{5}.xml", |
109 | ArchiveConstants.OBJECTS_PATH, sceneObject.Name, | 109 | ArchiveConstants.OBJECTS_PATH, sceneObject.Name, |
110 | Math.Round(position.X), Math.Round(position.Y), Math.Round(position.Z), | 110 | Math.Round(position.X), Math.Round(position.Y), Math.Round(position.Z), |
111 | sceneObject.UUID); | 111 | sceneObject.UUID); |
112 | 112 | ||
113 | archive.AddFile(filename, serializedObject); | 113 | archive.AddFile(filename, serializedObject); |
114 | } | 114 | } |
115 | 115 | ||
@@ -120,8 +120,8 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
120 | archive.WriteTar(new GZipStream(new FileStream(m_savePath, FileMode.Create), CompressionMode.Compress)); | 120 | archive.WriteTar(new GZipStream(new FileStream(m_savePath, FileMode.Create), CompressionMode.Compress)); |
121 | 121 | ||
122 | m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive {0}", m_savePath); | 122 | m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive {0}", m_savePath); |
123 | } | 123 | } |
124 | 124 | ||
125 | /// <summary> | 125 | /// <summary> |
126 | /// Create the control file for this archive | 126 | /// Create the control file for this archive |
127 | /// </summary> | 127 | /// </summary> |
@@ -136,13 +136,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
136 | xtw.WriteAttributeString("major_version", "0"); | 136 | xtw.WriteAttributeString("major_version", "0"); |
137 | xtw.WriteAttributeString("minor_version", "1"); | 137 | xtw.WriteAttributeString("minor_version", "1"); |
138 | xtw.WriteEndElement(); | 138 | xtw.WriteEndElement(); |
139 | 139 | ||
140 | xtw.Flush(); | 140 | xtw.Flush(); |
141 | xtw.Close(); | 141 | xtw.Close(); |
142 | 142 | ||
143 | String s = sw.ToString(); | 143 | String s = sw.ToString(); |
144 | sw.Close(); | 144 | sw.Close(); |
145 | 145 | ||
146 | return s; | 146 | return s; |
147 | } | 147 | } |
148 | } | 148 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs index 327808a..20e15ab 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequestPreparation.cs | |||
@@ -52,14 +52,14 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
52 | 52 | ||
53 | protected Scene m_scene; | 53 | protected Scene m_scene; |
54 | protected string m_savePath; | 54 | protected string m_savePath; |
55 | 55 | ||
56 | /// <summary> | 56 | /// <summary> |
57 | /// Used for identifying uuids embedded in scripts | 57 | /// Used for identifying uuids embedded in scripts |
58 | /// </summary> | 58 | /// </summary> |
59 | protected static readonly Regex m_uuidRegex | 59 | protected static readonly Regex m_uuidRegex |
60 | = new Regex( | 60 | = new Regex( |
61 | "[0-9a-eA-E]{8}-[0-9a-eA-E]{4}-[0-9a-eA-E]{4}-[0-9a-eA-E]{4}-[0-9a-eA-E]{12}", | 61 | "[0-9a-eA-E]{8}-[0-9a-eA-E]{4}-[0-9a-eA-E]{4}-[0-9a-eA-E]{4}-[0-9a-eA-E]{12}", |
62 | RegexOptions.Compiled); | 62 | RegexOptions.Compiled); |
63 | 63 | ||
64 | /// <summary> | 64 | /// <summary> |
65 | /// Used as a temporary store of an asset which represents an object. This can be a null if no appropriate | 65 | /// Used as a temporary store of an asset which represents an object. This can be a null if no appropriate |
@@ -93,9 +93,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
93 | Monitor.Pulse(this); | 93 | Monitor.Pulse(this); |
94 | } | 94 | } |
95 | } | 95 | } |
96 | 96 | ||
97 | /// <summary> | 97 | /// <summary> |
98 | /// Get an asset synchronously, potentially using an asynchronous callback. If the | 98 | /// Get an asset synchronously, potentially using an asynchronous callback. If the |
99 | /// asynchronous callback is used, we will wait for it to complete. | 99 | /// asynchronous callback is used, we will wait for it to complete. |
100 | /// </summary> | 100 | /// </summary> |
101 | /// <param name="uuid"></param> | 101 | /// <param name="uuid"></param> |
@@ -118,11 +118,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
118 | Monitor.Wait(this); | 118 | Monitor.Wait(this); |
119 | m_waitingForObjectAsset = false; | 119 | m_waitingForObjectAsset = false; |
120 | } | 120 | } |
121 | } | 121 | } |
122 | 122 | ||
123 | return m_requestedObjectAsset; | 123 | return m_requestedObjectAsset; |
124 | } | 124 | } |
125 | 125 | ||
126 | /// <summary> | 126 | /// <summary> |
127 | /// Record the asset uuids embedded within the given script. | 127 | /// Record the asset uuids embedded within the given script. |
128 | /// </summary> | 128 | /// </summary> |
@@ -138,16 +138,16 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
138 | //m_log.DebugFormat("[ARCHIVER]: Script {0}", script); | 138 | //m_log.DebugFormat("[ARCHIVER]: Script {0}", script); |
139 | MatchCollection uuidMatches = m_uuidRegex.Matches(script); | 139 | MatchCollection uuidMatches = m_uuidRegex.Matches(script); |
140 | //m_log.DebugFormat("[ARCHIVER]: Found {0} matches in script", uuidMatches.Count); | 140 | //m_log.DebugFormat("[ARCHIVER]: Found {0} matches in script", uuidMatches.Count); |
141 | 141 | ||
142 | foreach (Match uuidMatch in uuidMatches) | 142 | foreach (Match uuidMatch in uuidMatches) |
143 | { | 143 | { |
144 | LLUUID uuid = new LLUUID(uuidMatch.Value); | 144 | LLUUID uuid = new LLUUID(uuidMatch.Value); |
145 | //m_log.DebugFormat("[ARCHIVER]: Recording {0} in script", uuid); | 145 | //m_log.DebugFormat("[ARCHIVER]: Recording {0} in script", uuid); |
146 | assetUuids[uuid] = 1; | 146 | assetUuids[uuid] = 1; |
147 | } | 147 | } |
148 | } | 148 | } |
149 | } | 149 | } |
150 | 150 | ||
151 | /// <summary> | 151 | /// <summary> |
152 | /// Record the uuids referenced by the given wearable asset | 152 | /// Record the uuids referenced by the given wearable asset |
153 | /// </summary> | 153 | /// </summary> |
@@ -159,25 +159,25 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
159 | //m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data)); | 159 | //m_log.Debug(new System.Text.ASCIIEncoding().GetString(bodypartAsset.Data)); |
160 | AssetWearable wearableAsset = new AssetBodypart(assetBase.Data); | 160 | AssetWearable wearableAsset = new AssetBodypart(assetBase.Data); |
161 | wearableAsset.Decode(); | 161 | wearableAsset.Decode(); |
162 | 162 | ||
163 | //m_log.DebugFormat( | 163 | //m_log.DebugFormat( |
164 | // "[ARCHIVER]: Wearable asset {0} references {1} assets", wearableAssetUuid, wearableAsset.Textures.Count); | 164 | // "[ARCHIVER]: Wearable asset {0} references {1} assets", wearableAssetUuid, wearableAsset.Textures.Count); |
165 | 165 | ||
166 | foreach (LLUUID uuid in wearableAsset.Textures.Values) | 166 | foreach (LLUUID uuid in wearableAsset.Textures.Values) |
167 | { | 167 | { |
168 | //m_log.DebugFormat("[ARCHIVER]: Got bodypart uuid {0}", uuid); | 168 | //m_log.DebugFormat("[ARCHIVER]: Got bodypart uuid {0}", uuid); |
169 | assetUuids[uuid] = 1; | 169 | assetUuids[uuid] = 1; |
170 | } | 170 | } |
171 | } | 171 | } |
172 | 172 | ||
173 | /// <summary> | 173 | /// <summary> |
174 | /// Get all the asset uuids associated with a given object. This includes both those directly associated with | 174 | /// Get all the asset uuids associated with a given object. This includes both those directly associated with |
175 | /// it (e.g. face textures) and recursively, those of items within it's inventory (e.g. objects contained | 175 | /// it (e.g. face textures) and recursively, those of items within it's inventory (e.g. objects contained |
176 | /// within this object). | 176 | /// within this object). |
177 | /// </summary> | 177 | /// </summary> |
178 | /// <param name="sceneObject"></param> | 178 | /// <param name="sceneObject"></param> |
179 | /// <param name="assetUuids"></param> | 179 | /// <param name="assetUuids"></param> |
180 | protected void GetSceneObjectAssetUuids(LLUUID sceneObjectUuid, IDictionary<LLUUID, int> assetUuids) | 180 | protected void GetSceneObjectAssetUuids(LLUUID sceneObjectUuid, IDictionary<LLUUID, int> assetUuids) |
181 | { | 181 | { |
182 | AssetBase objectAsset = GetAsset(sceneObjectUuid); | 182 | AssetBase objectAsset = GetAsset(sceneObjectUuid); |
183 | 183 | ||
@@ -186,7 +186,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
186 | string xml = Helpers.FieldToUTF8String(objectAsset.Data); | 186 | string xml = Helpers.FieldToUTF8String(objectAsset.Data); |
187 | SceneObjectGroup sog = new SceneObjectGroup(m_scene, m_scene.RegionInfo.RegionHandle, xml); | 187 | SceneObjectGroup sog = new SceneObjectGroup(m_scene, m_scene.RegionInfo.RegionHandle, xml); |
188 | GetSceneObjectAssetUuids(sog, assetUuids); | 188 | GetSceneObjectAssetUuids(sog, assetUuids); |
189 | } | 189 | } |
190 | } | 190 | } |
191 | 191 | ||
192 | /// <summary> | 192 | /// <summary> |
@@ -209,10 +209,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
209 | try | 209 | try |
210 | { | 210 | { |
211 | LLObject.TextureEntry textureEntry = part.Shape.Textures; | 211 | LLObject.TextureEntry textureEntry = part.Shape.Textures; |
212 | 212 | ||
213 | // Get the prim's default texture. This will be used for faces which don't have their own texture | 213 | // Get the prim's default texture. This will be used for faces which don't have their own texture |
214 | assetUuids[textureEntry.DefaultTexture.TextureID] = 1; | 214 | assetUuids[textureEntry.DefaultTexture.TextureID] = 1; |
215 | 215 | ||
216 | // XXX: Not a great way to iterate through face textures, but there's no | 216 | // XXX: Not a great way to iterate through face textures, but there's no |
217 | // other method available to tell how many faces there actually are | 217 | // other method available to tell how many faces there actually are |
218 | //int i = 0; | 218 | //int i = 0; |
@@ -224,15 +224,15 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
224 | assetUuids[texture.TextureID] = 1; | 224 | assetUuids[texture.TextureID] = 1; |
225 | } | 225 | } |
226 | } | 226 | } |
227 | 227 | ||
228 | foreach (TaskInventoryItem tii in part.TaskInventory.Values) | 228 | foreach (TaskInventoryItem tii in part.TaskInventory.Values) |
229 | { | 229 | { |
230 | //m_log.DebugFormat("[ARCHIVER]: Analysing item asset type {0}", tii.Type); | 230 | //m_log.DebugFormat("[ARCHIVER]: Analysing item asset type {0}", tii.Type); |
231 | 231 | ||
232 | if (!assetUuids.ContainsKey(tii.AssetID)) | 232 | if (!assetUuids.ContainsKey(tii.AssetID)) |
233 | { | 233 | { |
234 | assetUuids[tii.AssetID] = 1; | 234 | assetUuids[tii.AssetID] = 1; |
235 | 235 | ||
236 | if ((int)AssetType.Bodypart == tii.Type || ((int)AssetType.Clothing == tii.Type)) | 236 | if ((int)AssetType.Bodypart == tii.Type || ((int)AssetType.Clothing == tii.Type)) |
237 | { | 237 | { |
238 | GetWearableAssetUuids(tii.AssetID, assetUuids); | 238 | GetWearableAssetUuids(tii.AssetID, assetUuids); |
@@ -275,20 +275,20 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
275 | if (entity is SceneObjectGroup) | 275 | if (entity is SceneObjectGroup) |
276 | sceneObjects.Add((SceneObjectGroup)entity); | 276 | sceneObjects.Add((SceneObjectGroup)entity); |
277 | } | 277 | } |
278 | 278 | ||
279 | foreach (SceneObjectGroup sceneObject in sceneObjects) | 279 | foreach (SceneObjectGroup sceneObject in sceneObjects) |
280 | { | 280 | { |
281 | GetSceneObjectAssetUuids(sceneObject, assetUuids); | 281 | GetSceneObjectAssetUuids(sceneObject, assetUuids); |
282 | } | 282 | } |
283 | 283 | ||
284 | m_log.DebugFormat( | 284 | m_log.DebugFormat( |
285 | "[ARCHIVER]: {0} scene objects to serialize requiring save of {1} assets", | 285 | "[ARCHIVER]: {0} scene objects to serialize requiring save of {1} assets", |
286 | sceneObjects.Count, assetUuids.Count); | 286 | sceneObjects.Count, assetUuids.Count); |
287 | 287 | ||
288 | // Asynchronously request all the assets required to perform this archive operation | 288 | // Asynchronously request all the assets required to perform this archive operation |
289 | ArchiveWriteRequestExecution awre | 289 | ArchiveWriteRequestExecution awre |
290 | = new ArchiveWriteRequestExecution( | 290 | = new ArchiveWriteRequestExecution( |
291 | sceneObjects, | 291 | sceneObjects, |
292 | m_scene.RequestModuleInterface<ITerrainModule>(), | 292 | m_scene.RequestModuleInterface<ITerrainModule>(), |
293 | m_scene.RequestModuleInterface<IRegionSerialiser>(), | 293 | m_scene.RequestModuleInterface<IRegionSerialiser>(), |
294 | m_scene.RegionInfo.RegionName, | 294 | m_scene.RegionInfo.RegionName, |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs index 2704224..708bed3 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsArchiver.cs | |||
@@ -41,17 +41,17 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
41 | public class AssetsArchiver | 41 | public class AssetsArchiver |
42 | { | 42 | { |
43 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 43 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
44 | 44 | ||
45 | /// <summary> | 45 | /// <summary> |
46 | /// Archive assets | 46 | /// Archive assets |
47 | /// </summary> | 47 | /// </summary> |
48 | protected IDictionary<LLUUID, AssetBase> m_assets; | 48 | protected IDictionary<LLUUID, AssetBase> m_assets; |
49 | 49 | ||
50 | public AssetsArchiver(IDictionary<LLUUID, AssetBase> assets) | 50 | public AssetsArchiver(IDictionary<LLUUID, AssetBase> assets) |
51 | { | 51 | { |
52 | m_assets = assets; | 52 | m_assets = assets; |
53 | } | 53 | } |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Archive the assets given to this archiver to the given archive. | 56 | /// Archive the assets given to this archiver to the given archive. |
57 | /// </summary> | 57 | /// </summary> |
@@ -70,44 +70,44 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
70 | { | 70 | { |
71 | StringWriter sw = new StringWriter(); | 71 | StringWriter sw = new StringWriter(); |
72 | XmlTextWriter xtw = new XmlTextWriter(sw); | 72 | XmlTextWriter xtw = new XmlTextWriter(sw); |
73 | 73 | ||
74 | xtw.Formatting = Formatting.Indented; | 74 | xtw.Formatting = Formatting.Indented; |
75 | xtw.WriteStartDocument(); | 75 | xtw.WriteStartDocument(); |
76 | 76 | ||
77 | xtw.WriteStartElement("assets"); | 77 | xtw.WriteStartElement("assets"); |
78 | 78 | ||
79 | foreach (LLUUID uuid in m_assets.Keys) | 79 | foreach (LLUUID uuid in m_assets.Keys) |
80 | { | 80 | { |
81 | AssetBase asset = m_assets[uuid]; | 81 | AssetBase asset = m_assets[uuid]; |
82 | 82 | ||
83 | if (asset != null) | 83 | if (asset != null) |
84 | { | 84 | { |
85 | xtw.WriteStartElement("asset"); | 85 | xtw.WriteStartElement("asset"); |
86 | 86 | ||
87 | string extension = string.Empty; | 87 | string extension = string.Empty; |
88 | 88 | ||
89 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) | 89 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) |
90 | { | 90 | { |
91 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; | 91 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; |
92 | } | 92 | } |
93 | 93 | ||
94 | xtw.WriteElementString("filename", uuid.ToString() + extension); | 94 | xtw.WriteElementString("filename", uuid.ToString() + extension); |
95 | 95 | ||
96 | xtw.WriteElementString("name", asset.Name); | 96 | xtw.WriteElementString("name", asset.Name); |
97 | xtw.WriteElementString("description", asset.Description); | 97 | xtw.WriteElementString("description", asset.Description); |
98 | xtw.WriteElementString("asset-type", asset.Type.ToString()); | 98 | xtw.WriteElementString("asset-type", asset.Type.ToString()); |
99 | 99 | ||
100 | xtw.WriteEndElement(); | 100 | xtw.WriteEndElement(); |
101 | } | 101 | } |
102 | } | 102 | } |
103 | 103 | ||
104 | xtw.WriteEndElement(); | 104 | xtw.WriteEndElement(); |
105 | 105 | ||
106 | xtw.WriteEndDocument(); | 106 | xtw.WriteEndDocument(); |
107 | 107 | ||
108 | archive.AddFile("assets.xml", sw.ToString()); | 108 | archive.AddFile("assets.xml", sw.ToString()); |
109 | } | 109 | } |
110 | 110 | ||
111 | /// <summary> | 111 | /// <summary> |
112 | /// Write asset data files to the given archive | 112 | /// Write asset data files to the given archive |
113 | /// </summary> | 113 | /// </summary> |
@@ -116,18 +116,18 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
116 | { | 116 | { |
117 | // It appears that gtar, at least, doesn't need the intermediate directory entries in the tar | 117 | // It appears that gtar, at least, doesn't need the intermediate directory entries in the tar |
118 | //archive.AddDir("assets"); | 118 | //archive.AddDir("assets"); |
119 | 119 | ||
120 | foreach (LLUUID uuid in m_assets.Keys) | 120 | foreach (LLUUID uuid in m_assets.Keys) |
121 | { | 121 | { |
122 | AssetBase asset = m_assets[uuid]; | 122 | AssetBase asset = m_assets[uuid]; |
123 | 123 | ||
124 | string extension = string.Empty; | 124 | string extension = string.Empty; |
125 | 125 | ||
126 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) | 126 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(asset.Type)) |
127 | { | 127 | { |
128 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; | 128 | extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[asset.Type]; |
129 | } | 129 | } |
130 | 130 | ||
131 | archive.AddFile( | 131 | archive.AddFile( |
132 | ArchiveConstants.ASSETS_PATH + uuid.ToString() + extension, | 132 | ArchiveConstants.ASSETS_PATH + uuid.ToString() + extension, |
133 | asset.Data); | 133 | asset.Data); |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs index 284a39e..17abb24 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsDearchiver.cs | |||
@@ -43,9 +43,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
43 | public class AssetsDearchiver | 43 | public class AssetsDearchiver |
44 | { | 44 | { |
45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); | 47 | protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); |
48 | 48 | ||
49 | /// <summary> | 49 | /// <summary> |
50 | /// Store for asset data we received before we get the metadata | 50 | /// Store for asset data we received before we get the metadata |
51 | /// </summary> | 51 | /// </summary> |
@@ -55,17 +55,17 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
55 | /// Asset metadata. Is null if asset metadata isn't yet available. | 55 | /// Asset metadata. Is null if asset metadata isn't yet available. |
56 | /// </summary> | 56 | /// </summary> |
57 | protected Dictionary<string, AssetMetadata> m_metadata; | 57 | protected Dictionary<string, AssetMetadata> m_metadata; |
58 | 58 | ||
59 | /// <summary> | 59 | /// <summary> |
60 | /// Cache to which dearchived assets will be added | 60 | /// Cache to which dearchived assets will be added |
61 | /// </summary> | 61 | /// </summary> |
62 | protected AssetCache m_cache; | 62 | protected AssetCache m_cache; |
63 | 63 | ||
64 | public AssetsDearchiver(AssetCache cache) | 64 | public AssetsDearchiver(AssetCache cache) |
65 | { | 65 | { |
66 | m_cache = cache; | 66 | m_cache = cache; |
67 | } | 67 | } |
68 | 68 | ||
69 | /// <summary> | 69 | /// <summary> |
70 | /// Add asset data to the dearchiver | 70 | /// Add asset data to the dearchiver |
71 | /// </summary> | 71 | /// </summary> |
@@ -82,7 +82,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
82 | ResolveAssetData(assetFilename, data); | 82 | ResolveAssetData(assetFilename, data); |
83 | } | 83 | } |
84 | } | 84 | } |
85 | 85 | ||
86 | /// <summary> | 86 | /// <summary> |
87 | /// Add asset metadata xml | 87 | /// Add asset metadata xml |
88 | /// </summary> | 88 | /// </summary> |
@@ -90,39 +90,39 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
90 | public void AddAssetMetadata(string xml) | 90 | public void AddAssetMetadata(string xml) |
91 | { | 91 | { |
92 | m_metadata = new Dictionary<string, AssetMetadata>(); | 92 | m_metadata = new Dictionary<string, AssetMetadata>(); |
93 | 93 | ||
94 | StringReader sr = new StringReader(xml); | 94 | StringReader sr = new StringReader(xml); |
95 | XmlTextReader reader = new XmlTextReader(sr); | 95 | XmlTextReader reader = new XmlTextReader(sr); |
96 | 96 | ||
97 | reader.ReadStartElement("assets"); | 97 | reader.ReadStartElement("assets"); |
98 | reader.Read(); | 98 | reader.Read(); |
99 | 99 | ||
100 | while (reader.Name.Equals("asset")) | 100 | while (reader.Name.Equals("asset")) |
101 | { | 101 | { |
102 | reader.Read(); | 102 | reader.Read(); |
103 | 103 | ||
104 | AssetMetadata metadata = new AssetMetadata(); | 104 | AssetMetadata metadata = new AssetMetadata(); |
105 | 105 | ||
106 | string filename = reader.ReadElementString("filename"); | 106 | string filename = reader.ReadElementString("filename"); |
107 | m_log.DebugFormat("[DEARCHIVER]: Reading node {0}", filename); | 107 | m_log.DebugFormat("[DEARCHIVER]: Reading node {0}", filename); |
108 | 108 | ||
109 | metadata.Name = reader.ReadElementString("name"); | 109 | metadata.Name = reader.ReadElementString("name"); |
110 | metadata.Description = reader.ReadElementString("description"); | 110 | metadata.Description = reader.ReadElementString("description"); |
111 | metadata.AssetType = Convert.ToSByte(reader.ReadElementString("asset-type")); | 111 | metadata.AssetType = Convert.ToSByte(reader.ReadElementString("asset-type")); |
112 | 112 | ||
113 | m_metadata[filename] = metadata; | 113 | m_metadata[filename] = metadata; |
114 | 114 | ||
115 | // Read asset end tag | 115 | // Read asset end tag |
116 | reader.ReadEndElement(); | 116 | reader.ReadEndElement(); |
117 | 117 | ||
118 | reader.Read(); | 118 | reader.Read(); |
119 | } | 119 | } |
120 | 120 | ||
121 | m_log.DebugFormat("[DEARCHIVER]: Resolved {0} items of asset metadata", m_metadata.Count); | 121 | m_log.DebugFormat("[DEARCHIVER]: Resolved {0} items of asset metadata", m_metadata.Count); |
122 | 122 | ||
123 | ResolvePendingAssetData(); | 123 | ResolvePendingAssetData(); |
124 | } | 124 | } |
125 | 125 | ||
126 | /// <summary> | 126 | /// <summary> |
127 | /// Resolve asset data that we collected before receiving the metadata | 127 | /// Resolve asset data that we collected before receiving the metadata |
128 | /// </summary> | 128 | /// </summary> |
@@ -133,7 +133,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
133 | ResolveAssetData(filename, m_assetDataAwaitingMetadata[filename]); | 133 | ResolveAssetData(filename, m_assetDataAwaitingMetadata[filename]); |
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | /// <summary> | 137 | /// <summary> |
138 | /// Resolve a new piece of asset data against stored metadata | 138 | /// Resolve a new piece of asset data against stored metadata |
139 | /// </summary> | 139 | /// </summary> |
@@ -143,11 +143,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
143 | { | 143 | { |
144 | // Right now we're nastily obtaining the lluuid from the filename | 144 | // Right now we're nastily obtaining the lluuid from the filename |
145 | string filename = assetPath.Remove(0, ArchiveConstants.ASSETS_PATH.Length); | 145 | string filename = assetPath.Remove(0, ArchiveConstants.ASSETS_PATH.Length); |
146 | 146 | ||
147 | if (m_metadata.ContainsKey(filename)) | 147 | if (m_metadata.ContainsKey(filename)) |
148 | { | 148 | { |
149 | AssetMetadata metadata = m_metadata[filename]; | 149 | AssetMetadata metadata = m_metadata[filename]; |
150 | 150 | ||
151 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(metadata.AssetType)) | 151 | if (ArchiveConstants.ASSET_TYPE_TO_EXTENSION.ContainsKey(metadata.AssetType)) |
152 | { | 152 | { |
153 | string extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[metadata.AssetType]; | 153 | string extension = ArchiveConstants.ASSET_TYPE_TO_EXTENSION[metadata.AssetType]; |
@@ -166,11 +166,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
166 | else | 166 | else |
167 | { | 167 | { |
168 | m_log.ErrorFormat( | 168 | m_log.ErrorFormat( |
169 | "[DEARCHIVER]: Tried to dearchive data with filename {0} without any corresponding metadata", | 169 | "[DEARCHIVER]: Tried to dearchive data with filename {0} without any corresponding metadata", |
170 | assetPath); | 170 | assetPath); |
171 | } | 171 | } |
172 | } | 172 | } |
173 | 173 | ||
174 | /// <summary> | 174 | /// <summary> |
175 | /// Metadata for an asset | 175 | /// Metadata for an asset |
176 | /// </summary> | 176 | /// </summary> |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs index 6ffbcbb..2164f7e 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/AssetsRequest.cs | |||
@@ -43,12 +43,12 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
43 | class AssetsRequest | 43 | class AssetsRequest |
44 | { | 44 | { |
45 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | /// <summary> | 47 | /// <summary> |
48 | /// uuids to request | 48 | /// uuids to request |
49 | /// </summary> | 49 | /// </summary> |
50 | protected ICollection<LLUUID> m_uuids; | 50 | protected ICollection<LLUUID> m_uuids; |
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// Callback used when all the assets requested have been received. | 53 | /// Callback used when all the assets requested have been received. |
54 | /// </summary> | 54 | /// </summary> |
@@ -58,7 +58,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
58 | /// Assets retrieved in this request | 58 | /// Assets retrieved in this request |
59 | /// </summary> | 59 | /// </summary> |
60 | protected Dictionary<LLUUID, AssetBase> m_assets = new Dictionary<LLUUID, AssetBase>(); | 60 | protected Dictionary<LLUUID, AssetBase> m_assets = new Dictionary<LLUUID, AssetBase>(); |
61 | 61 | ||
62 | /// <summary> | 62 | /// <summary> |
63 | /// Maintain a list of assets that could not be found. This will be passed back to the requester. | 63 | /// Maintain a list of assets that could not be found. This will be passed back to the requester. |
64 | /// </summary> | 64 | /// </summary> |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
81 | m_assetCache = assetCache; | 81 | m_assetCache = assetCache; |
82 | m_repliesRequired = uuids.Count; | 82 | m_repliesRequired = uuids.Count; |
83 | } | 83 | } |
84 | 84 | ||
85 | protected internal void Execute() | 85 | protected internal void Execute() |
86 | { | 86 | { |
87 | // We can stop here if there are no assets to fetch | 87 | // We can stop here if there are no assets to fetch |
@@ -105,7 +105,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
105 | m_assets[assetID] = asset; | 105 | m_assets[assetID] = asset; |
106 | else | 106 | else |
107 | m_notFoundAssetUuids.Add(assetID); | 107 | m_notFoundAssetUuids.Add(assetID); |
108 | 108 | ||
109 | //m_log.DebugFormat( | 109 | //m_log.DebugFormat( |
110 | // "[ARCHIVER]: Received {0} assets and notification of {1} missing assets", m_assets.Count, m_notFoundAssetUuids.Count); | 110 | // "[ARCHIVER]: Received {0} assets and notification of {1} missing assets", m_assets.Count, m_notFoundAssetUuids.Count); |
111 | 111 | ||
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs index 585d1d4..4e000cc 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs | |||
@@ -69,9 +69,9 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
69 | public byte[] ReadEntry(out string filePath) | 69 | public byte[] ReadEntry(out string filePath) |
70 | { | 70 | { |
71 | filePath = String.Empty; | 71 | filePath = String.Empty; |
72 | 72 | ||
73 | TarHeader header = ReadHeader(); | 73 | TarHeader header = ReadHeader(); |
74 | 74 | ||
75 | if (null == header) | 75 | if (null == header) |
76 | return null; | 76 | return null; |
77 | 77 | ||
@@ -98,14 +98,14 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
98 | /// </summary> | 98 | /// </summary> |
99 | /// <returns>A tar header struct. null if we have reached the end of the archive.</returns> | 99 | /// <returns>A tar header struct. null if we have reached the end of the archive.</returns> |
100 | protected TarHeader ReadHeader() | 100 | protected TarHeader ReadHeader() |
101 | { | 101 | { |
102 | byte[] header = m_br.ReadBytes(512); | 102 | byte[] header = m_br.ReadBytes(512); |
103 | 103 | ||
104 | // If we've reached the end of the archive we'll be in null block territory, which means | 104 | // If we've reached the end of the archive we'll be in null block territory, which means |
105 | // the next byte will be 0 | 105 | // the next byte will be 0 |
106 | if (header[0] == 0) | 106 | if (header[0] == 0) |
107 | return null; | 107 | return null; |
108 | 108 | ||
109 | TarHeader tarHeader = new TarHeader(); | 109 | TarHeader tarHeader = new TarHeader(); |
110 | 110 | ||
111 | tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100); | 111 | tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100); |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveWriter.cs b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveWriter.cs index f70a93d..83b9250 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveWriter.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveWriter.cs | |||
@@ -54,10 +54,10 @@ namespace OpenSim.Region.Environment | |||
54 | // Directories are signalled by a final / | 54 | // Directories are signalled by a final / |
55 | if (!dirName.EndsWith("/")) | 55 | if (!dirName.EndsWith("/")) |
56 | dirName += "/"; | 56 | dirName += "/"; |
57 | 57 | ||
58 | AddFile(dirName, new byte[0]); | 58 | AddFile(dirName, new byte[0]); |
59 | } | 59 | } |
60 | 60 | ||
61 | /// <summary> | 61 | /// <summary> |
62 | /// Add a file to the tar archive | 62 | /// Add a file to the tar archive |
63 | /// </summary> | 63 | /// </summary> |
@@ -161,7 +161,7 @@ namespace OpenSim.Region.Environment | |||
161 | if (data.Length % 512 != 0) | 161 | if (data.Length % 512 != 0) |
162 | { | 162 | { |
163 | int paddingRequired = 512 - (data.Length % 512); | 163 | int paddingRequired = 512 - (data.Length % 512); |
164 | 164 | ||
165 | //m_log.DebugFormat("[TAR ARCHIVE WRITER]: Padding data with {0} bytes", paddingRequired); | 165 | //m_log.DebugFormat("[TAR ARCHIVE WRITER]: Padding data with {0} bytes", paddingRequired); |
166 | 166 | ||
167 | byte[] padding = new byte[paddingRequired]; | 167 | byte[] padding = new byte[paddingRequired]; |
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs index 1e622be..28347d0 100644 --- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs | |||
@@ -223,7 +223,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
223 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId, false) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) | 223 | if (m_scene.ExternalChecks.ExternalChecksCanIssueEstateCommand(remote_client.AgentId, false) || m_scene.ExternalChecks.ExternalChecksBypassPermissions()) |
224 | { | 224 | { |
225 | EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; | 225 | EstateBan[] banlistcheck = m_scene.RegionInfo.EstateSettings.EstateBans; |
226 | 226 | ||
227 | bool alreadyInList = false; | 227 | bool alreadyInList = false; |
228 | 228 | ||
229 | for (int i = 0; i < banlistcheck.Length; i++) | 229 | for (int i = 0; i < banlistcheck.Length; i++) |
@@ -407,8 +407,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
407 | args.useEstateSun = m_scene.RegionInfo.RegionSettings.UseEstateSun; | 407 | args.useEstateSun = m_scene.RegionInfo.RegionSettings.UseEstateSun; |
408 | args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; | 408 | args.waterHeight = (float)m_scene.RegionInfo.RegionSettings.WaterHeight; |
409 | args.simName = m_scene.RegionInfo.RegionName; | 409 | args.simName = m_scene.RegionInfo.RegionName; |
410 | 410 | ||
411 | |||
412 | remote_client.SendRegionInfoToEstateMenu(args); | 411 | remote_client.SendRegionInfoToEstateMenu(args); |
413 | } | 412 | } |
414 | 413 | ||
@@ -416,6 +415,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
416 | { | 415 | { |
417 | remote_client.SendEstateCovenantInformation(m_scene.RegionInfo.RegionSettings.Covenant); | 416 | remote_client.SendEstateCovenantInformation(m_scene.RegionInfo.RegionSettings.Covenant); |
418 | } | 417 | } |
418 | |||
419 | private void HandleLandStatRequest(int parcelID, uint reportType, uint requestFlags, string filter, IClientAPI remoteClient) | 419 | private void HandleLandStatRequest(int parcelID, uint reportType, uint requestFlags, string filter, IClientAPI remoteClient) |
420 | { | 420 | { |
421 | Dictionary<uint, float> SceneData = new Dictionary<uint,float>(); | 421 | Dictionary<uint, float> SceneData = new Dictionary<uint,float>(); |
@@ -472,7 +472,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
472 | continue; | 472 | continue; |
473 | } | 473 | } |
474 | } | 474 | } |
475 | 475 | ||
476 | SceneReport.Add(lsri); | 476 | SceneReport.Add(lsri); |
477 | } | 477 | } |
478 | } | 478 | } |
@@ -481,7 +481,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
481 | } | 481 | } |
482 | } | 482 | } |
483 | remoteClient.SendLandStatReply(reportType, requestFlags, (uint)SceneReport.Count,SceneReport.ToArray()); | 483 | remoteClient.SendLandStatReply(reportType, requestFlags, (uint)SceneReport.Count,SceneReport.ToArray()); |
484 | 484 | ||
485 | if (uuidNameLookupList.Count > 0) | 485 | if (uuidNameLookupList.Count > 0) |
486 | LookupUUID(uuidNameLookupList); | 486 | LookupUUID(uuidNameLookupList); |
487 | } | 487 | } |
@@ -502,7 +502,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
502 | private void LookupUUIDsAsync(List<LLUUID> uuidLst) | 502 | private void LookupUUIDsAsync(List<LLUUID> uuidLst) |
503 | { | 503 | { |
504 | LLUUID[] uuidarr = new LLUUID[0]; | 504 | LLUUID[] uuidarr = new LLUUID[0]; |
505 | 505 | ||
506 | lock (uuidLst) | 506 | lock (uuidLst) |
507 | { | 507 | { |
508 | uuidarr = uuidLst.ToArray(); | 508 | uuidarr = uuidLst.ToArray(); |
@@ -539,7 +539,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
539 | if (EstateManagers[i] == remoteClient.AgentId) | 539 | if (EstateManagers[i] == remoteClient.AgentId) |
540 | estatemanager = true; | 540 | estatemanager = true; |
541 | } | 541 | } |
542 | 542 | ||
543 | args.isEstateManager = estatemanager; | 543 | args.isEstateManager = estatemanager; |
544 | 544 | ||
545 | args.billableFactor = m_scene.RegionInfo.EstateSettings.BillableFactor; | 545 | args.billableFactor = m_scene.RegionInfo.EstateSettings.BillableFactor; |
@@ -729,11 +729,11 @@ namespace OpenSim.Region.Environment.Modules.World.Estate | |||
729 | client.OnLandStatRequest += HandleLandStatRequest; | 729 | client.OnLandStatRequest += HandleLandStatRequest; |
730 | sendRegionHandshake(client); | 730 | sendRegionHandshake(client); |
731 | } | 731 | } |
732 | 732 | ||
733 | public uint GetRegionFlags() | 733 | public uint GetRegionFlags() |
734 | { | 734 | { |
735 | Simulator.RegionFlags flags = Simulator.RegionFlags.None; | 735 | Simulator.RegionFlags flags = Simulator.RegionFlags.None; |
736 | 736 | ||
737 | // Fully implemented | 737 | // Fully implemented |
738 | // | 738 | // |
739 | if (m_scene.RegionInfo.RegionSettings.AllowDamage) | 739 | if (m_scene.RegionInfo.RegionSettings.AllowDamage) |
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs index 9b1b9b5..00994fb 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandManagementModule.cs | |||
@@ -47,14 +47,12 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
47 | { | 47 | { |
48 | private static readonly ILog m_log = | 48 | private static readonly ILog m_log = |
49 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 49 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
50 | 50 | ||
51 | private static readonly string remoteParcelRequestPath = "0009/"; | 51 | private static readonly string remoteParcelRequestPath = "0009/"; |
52 | 52 | ||
53 | private LandChannel landChannel; | 53 | private LandChannel landChannel; |
54 | private Scene m_scene; | 54 | private Scene m_scene; |
55 | 55 | ||
56 | |||
57 | |||
58 | private readonly int[,] landIDList = new int[64, 64]; | 56 | private readonly int[,] landIDList = new int[64, 64]; |
59 | private readonly Dictionary<int, ILandObject> landList = new Dictionary<int, ILandObject>(); | 57 | private readonly Dictionary<int, ILandObject> landList = new Dictionary<int, ILandObject>(); |
60 | 58 | ||
@@ -115,8 +113,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
115 | } | 113 | } |
116 | } | 114 | } |
117 | 115 | ||
118 | |||
119 | |||
120 | public void PostInitialise() | 116 | public void PostInitialise() |
121 | { | 117 | { |
122 | } | 118 | } |
@@ -153,8 +149,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
153 | } | 149 | } |
154 | } | 150 | } |
155 | 151 | ||
156 | |||
157 | |||
158 | public bool AllowedForcefulBans | 152 | public bool AllowedForcefulBans |
159 | { | 153 | { |
160 | get { return m_allowedForcefulBans; } | 154 | get { return m_allowedForcefulBans; } |
@@ -185,11 +179,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
185 | public List<ILandObject> ParcelsNearPoint(LLVector3 position) | 179 | public List<ILandObject> ParcelsNearPoint(LLVector3 position) |
186 | { | 180 | { |
187 | List<ILandObject> parcelsNear = new List<ILandObject>(); | 181 | List<ILandObject> parcelsNear = new List<ILandObject>(); |
188 | int x; | 182 | for (int x = -4; x <= 4; x += 4) |
189 | for (x = -4; x <= 4; x += 4) | ||
190 | { | 183 | { |
191 | int y; | 184 | for (int y = -4; y <= 4; y += 4) |
192 | for (y = -4; y <= 4; y += 4) | ||
193 | { | 185 | { |
194 | ILandObject check = GetLandObject(position.X + x, position.Y + y); | 186 | ILandObject check = GetLandObject(position.X + x, position.Y + y); |
195 | if (check != null) | 187 | if (check != null) |
@@ -286,7 +278,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
286 | ILandObject over = GetLandObject((int)Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.X))), | 278 | ILandObject over = GetLandObject((int)Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.X))), |
287 | (int)Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.Y)))); | 279 | (int)Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.Y)))); |
288 | 280 | ||
289 | |||
290 | if (over != null) | 281 | if (over != null) |
291 | { | 282 | { |
292 | if (force) | 283 | if (force) |
@@ -387,6 +378,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
387 | Console.WriteLine("INVALID LOCAL LAND ID"); | 378 | Console.WriteLine("INVALID LOCAL LAND ID"); |
388 | } | 379 | } |
389 | } | 380 | } |
381 | |||
390 | /// <summary> | 382 | /// <summary> |
391 | /// Creates a basic Parcel object without an owner (a zeroed key) | 383 | /// Creates a basic Parcel object without an owner (a zeroed key) |
392 | /// </summary> | 384 | /// </summary> |
@@ -406,13 +398,10 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
406 | new_land.landData.LocalID = lastLandLocalID; | 398 | new_land.landData.LocalID = lastLandLocalID; |
407 | landList.Add(lastLandLocalID, new_land.Copy()); | 399 | landList.Add(lastLandLocalID, new_land.Copy()); |
408 | 400 | ||
409 | |||
410 | bool[,] landBitmap = new_land.getLandBitmap(); | 401 | bool[,] landBitmap = new_land.getLandBitmap(); |
411 | int x; | 402 | for (int x = 0; x < 64; x++) |
412 | for (x = 0; x < 64; x++) | ||
413 | { | 403 | { |
414 | int y; | 404 | for (int y = 0; y < 64; y++) |
415 | for (y = 0; y < 64; y++) | ||
416 | { | 405 | { |
417 | if (landBitmap[x, y]) | 406 | if (landBitmap[x, y]) |
418 | { | 407 | { |
@@ -431,11 +420,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
431 | /// <param name="local_id">Land.localID of the peice of land to remove.</param> | 420 | /// <param name="local_id">Land.localID of the peice of land to remove.</param> |
432 | public void removeLandObject(int local_id) | 421 | public void removeLandObject(int local_id) |
433 | { | 422 | { |
434 | int x; | 423 | for (int x = 0; x < 64; x++) |
435 | for (x = 0; x < 64; x++) | ||
436 | { | 424 | { |
437 | int y; | 425 | for (int y = 0; y < 64; y++) |
438 | for (y = 0; y < 64; y++) | ||
439 | { | 426 | { |
440 | if (landIDList[x, y] == local_id) | 427 | if (landIDList[x, y] == local_id) |
441 | { | 428 | { |
@@ -451,12 +438,10 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
451 | 438 | ||
452 | private void performFinalLandJoin(ILandObject master, ILandObject slave) | 439 | private void performFinalLandJoin(ILandObject master, ILandObject slave) |
453 | { | 440 | { |
454 | int x; | ||
455 | bool[,] landBitmapSlave = slave.getLandBitmap(); | 441 | bool[,] landBitmapSlave = slave.getLandBitmap(); |
456 | for (x = 0; x < 64; x++) | 442 | for (int x = 0; x < 64; x++) |
457 | { | 443 | { |
458 | int y; | 444 | for (int y = 0; y < 64; y++) |
459 | for (y = 0; y < 64; y++) | ||
460 | { | 445 | { |
461 | if (landBitmapSlave[x, y]) | 446 | if (landBitmapSlave[x, y]) |
462 | { | 447 | { |
@@ -519,6 +504,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
519 | } | 504 | } |
520 | return landList[landIDList[x / 4, y / 4]]; | 505 | return landList[landIDList[x / 4, y / 4]]; |
521 | } | 506 | } |
507 | |||
522 | #endregion | 508 | #endregion |
523 | 509 | ||
524 | #region Parcel Modification | 510 | #region Parcel Modification |
@@ -601,7 +587,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
601 | ResetAllLandPrimCounts(); | 587 | ResetAllLandPrimCounts(); |
602 | lock (m_scene.Entities) | 588 | lock (m_scene.Entities) |
603 | { | 589 | { |
604 | foreach (EntityBase obj in m_scene.Entities.Values) | 590 | foreach (EntityBase obj in m_scene.Entities.Values) |
605 | { | 591 | { |
606 | if (obj != null) | 592 | if (obj != null) |
607 | { | 593 | { |
@@ -647,11 +633,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
647 | { | 633 | { |
648 | int totalX = end_x - start_x; | 634 | int totalX = end_x - start_x; |
649 | int totalY = end_y - start_y; | 635 | int totalY = end_y - start_y; |
650 | int y; | 636 | for (int y = 0; y < totalY; y++) |
651 | for (y = 0; y < totalY; y++) | ||
652 | { | 637 | { |
653 | int x; | 638 | for (int x = 0; x < totalX; x++) |
654 | for (x = 0; x < totalX; x++) | ||
655 | { | 639 | { |
656 | ILandObject tempLandObject = GetLandObject(start_x + x, start_y + y); | 640 | ILandObject tempLandObject = GetLandObject(start_x + x, start_y + y); |
657 | if (tempLandObject == null) return; | 641 | if (tempLandObject == null) return; |
@@ -690,9 +674,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
690 | ILandObject result = AddLandObject(newLand); | 674 | ILandObject result = AddLandObject(newLand); |
691 | UpdateLandObject(startLandObject.landData.LocalID, startLandObject.landData); | 675 | UpdateLandObject(startLandObject.landData.LocalID, startLandObject.landData); |
692 | result.sendLandUpdateToAvatarsOverMe(); | 676 | result.sendLandUpdateToAvatarsOverMe(); |
693 | |||
694 | |||
695 | return; | ||
696 | } | 677 | } |
697 | 678 | ||
698 | /// <summary> | 679 | /// <summary> |
@@ -730,7 +711,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
730 | ILandObject masterLandObject = selectedLandObjects[0]; | 711 | ILandObject masterLandObject = selectedLandObjects[0]; |
731 | selectedLandObjects.RemoveAt(0); | 712 | selectedLandObjects.RemoveAt(0); |
732 | 713 | ||
733 | |||
734 | if (selectedLandObjects.Count < 1) | 714 | if (selectedLandObjects.Count < 1) |
735 | { | 715 | { |
736 | return; | 716 | return; |
@@ -753,12 +733,9 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
753 | performFinalLandJoin(masterLandObject, slaveLandObject); | 733 | performFinalLandJoin(masterLandObject, slaveLandObject); |
754 | } | 734 | } |
755 | 735 | ||
756 | |||
757 | SetPrimsTainted(); | 736 | SetPrimsTainted(); |
758 | 737 | ||
759 | masterLandObject.sendLandUpdateToAvatarsOverMe(); | 738 | masterLandObject.sendLandUpdateToAvatarsOverMe(); |
760 | |||
761 | return; | ||
762 | } | 739 | } |
763 | 740 | ||
764 | #endregion | 741 | #endregion |
@@ -777,17 +754,14 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
777 | int byteArrayCount = 0; | 754 | int byteArrayCount = 0; |
778 | int sequenceID = 0; | 755 | int sequenceID = 0; |
779 | 756 | ||
780 | int y; | 757 | for (int y = 0; y < 64; y++) |
781 | for (y = 0; y < 64; y++) | ||
782 | { | 758 | { |
783 | int x; | 759 | for (int x = 0; x < 64; x++) |
784 | for (x = 0; x < 64; x++) | ||
785 | { | 760 | { |
786 | byte tempByte = 0; //This represents the byte for the current 4x4 | 761 | byte tempByte = 0; //This represents the byte for the current 4x4 |
787 | 762 | ||
788 | ILandObject currentParcelBlock = GetLandObject(x * 4, y * 4); | 763 | ILandObject currentParcelBlock = GetLandObject(x * 4, y * 4); |
789 | 764 | ||
790 | |||
791 | if (currentParcelBlock != null) | 765 | if (currentParcelBlock != null) |
792 | { | 766 | { |
793 | if (currentParcelBlock.landData.OwnerID == remote_client.AgentId) | 767 | if (currentParcelBlock.landData.OwnerID == remote_client.AgentId) |
@@ -813,7 +787,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
813 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_OTHER); | 787 | tempByte = Convert.ToByte(tempByte | LandChannel.LAND_TYPE_OWNED_BY_OTHER); |
814 | } | 788 | } |
815 | 789 | ||
816 | |||
817 | //Now for border control | 790 | //Now for border control |
818 | 791 | ||
819 | ILandObject westParcel = null; | 792 | ILandObject westParcel = null; |
@@ -864,14 +837,11 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
864 | { | 837 | { |
865 | //Get the land objects within the bounds | 838 | //Get the land objects within the bounds |
866 | List<ILandObject> temp = new List<ILandObject>(); | 839 | List<ILandObject> temp = new List<ILandObject>(); |
867 | int x; | ||
868 | int i; | ||
869 | int inc_x = end_x - start_x; | 840 | int inc_x = end_x - start_x; |
870 | int inc_y = end_y - start_y; | 841 | int inc_y = end_y - start_y; |
871 | for (x = 0; x < inc_x; x++) | 842 | for (int x = 0; x < inc_x; x++) |
872 | { | 843 | { |
873 | int y; | 844 | for (int y = 0; y < inc_y; y++) |
874 | for (y = 0; y < inc_y; y++) | ||
875 | { | 845 | { |
876 | ILandObject currentParcel = GetLandObject(start_x + x, start_y + y); | 846 | ILandObject currentParcel = GetLandObject(start_x + x, start_y + y); |
877 | 847 | ||
@@ -892,12 +862,11 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
892 | requestResult = LandChannel.LAND_RESULT_MULTIPLE; | 862 | requestResult = LandChannel.LAND_RESULT_MULTIPLE; |
893 | } | 863 | } |
894 | 864 | ||
895 | for (i = 0; i < temp.Count; i++) | 865 | for (int i = 0; i < temp.Count; i++) |
896 | { | 866 | { |
897 | temp[i].sendLandProperties(sequence_id, snap_selection, requestResult, remote_client); | 867 | temp[i].sendLandProperties(sequence_id, snap_selection, requestResult, remote_client); |
898 | } | 868 | } |
899 | 869 | ||
900 | |||
901 | SendParcelOverlay(remote_client); | 870 | SendParcelOverlay(remote_client); |
902 | } | 871 | } |
903 | 872 | ||
@@ -921,7 +890,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
921 | 890 | ||
922 | public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client) | 891 | public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client) |
923 | { | 892 | { |
924 | |||
925 | landList[local_id].sendForceObjectSelect(local_id, request_type, remote_client); | 893 | landList[local_id].sendForceObjectSelect(local_id, request_type, remote_client); |
926 | } | 894 | } |
927 | 895 | ||
@@ -954,7 +922,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
954 | landList[local_id].sendLandUpdateToClient(remote_client); | 922 | landList[local_id].sendLandUpdateToClient(remote_client); |
955 | } | 923 | } |
956 | } | 924 | } |
957 | |||
958 | } | 925 | } |
959 | 926 | ||
960 | public void handleParcelReclaim(int local_id, IClientAPI remote_client) | 927 | public void handleParcelReclaim(int local_id, IClientAPI remote_client) |
@@ -972,7 +939,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
972 | landList[local_id].sendLandUpdateToClient(remote_client); | 939 | landList[local_id].sendLandUpdateToClient(remote_client); |
973 | } | 940 | } |
974 | } | 941 | } |
975 | |||
976 | } | 942 | } |
977 | #endregion | 943 | #endregion |
978 | 944 | ||
@@ -1076,7 +1042,6 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1076 | { | 1042 | { |
1077 | selectedParcel.returnLandObjects(returnType, agentIDs, remoteClient); | 1043 | selectedParcel.returnLandObjects(returnType, agentIDs, remoteClient); |
1078 | } | 1044 | } |
1079 | |||
1080 | } | 1045 | } |
1081 | 1046 | ||
1082 | public void NoLandDataFromStorage() | 1047 | public void NoLandDataFromStorage() |
@@ -1093,11 +1058,13 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1093 | obj.setParcelObjectMaxOverride(overrideDel); | 1058 | obj.setParcelObjectMaxOverride(overrideDel); |
1094 | } | 1059 | } |
1095 | } | 1060 | } |
1061 | |||
1096 | public void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) | 1062 | public void setSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel) |
1097 | { | 1063 | { |
1098 | } | 1064 | } |
1099 | 1065 | ||
1100 | #region CAPS handler | 1066 | #region CAPS handler |
1067 | |||
1101 | private void OnRegisterCaps(LLUUID agentID, Caps caps) | 1068 | private void OnRegisterCaps(LLUUID agentID, Caps caps) |
1102 | { | 1069 | { |
1103 | string capsBase = "/CAPS/" + caps.CapsObjectPath; | 1070 | string capsBase = "/CAPS/" + caps.CapsObjectPath; |
@@ -1109,7 +1076,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1109 | return RemoteParcelRequest(request, path, param, agentID, caps); | 1076 | return RemoteParcelRequest(request, path, param, agentID, caps); |
1110 | })); | 1077 | })); |
1111 | } | 1078 | } |
1112 | 1079 | ||
1113 | // we cheat here: As we don't have (and want) a grid-global parcel-store, we can't return the | 1080 | // we cheat here: As we don't have (and want) a grid-global parcel-store, we can't return the |
1114 | // "real" parcelID, because we wouldn't be able to map that to the region the parcel belongs to. | 1081 | // "real" parcelID, because we wouldn't be able to map that to the region the parcel belongs to. |
1115 | // So, we create a "fake" parcelID by using the regionHandle (64 bit), and the local (integer) x | 1082 | // So, we create a "fake" parcelID by using the regionHandle (64 bit), and the local (integer) x |
@@ -1171,11 +1138,11 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1171 | { | 1138 | { |
1172 | m_log.ErrorFormat("[LAND] Wrong type in request {0}", request); | 1139 | m_log.ErrorFormat("[LAND] Wrong type in request {0}", request); |
1173 | } | 1140 | } |
1174 | 1141 | ||
1175 | LLSDRemoteParcelResponse response = new LLSDRemoteParcelResponse(); | 1142 | LLSDRemoteParcelResponse response = new LLSDRemoteParcelResponse(); |
1176 | response.parcel_id = parcelID; | 1143 | response.parcel_id = parcelID; |
1177 | m_log.DebugFormat("[LAND] got parcelID {0}", parcelID); | 1144 | m_log.DebugFormat("[LAND] got parcelID {0}", parcelID); |
1178 | 1145 | ||
1179 | return LLSDHelpers.SerialiseLLSDReply(response); | 1146 | return LLSDHelpers.SerialiseLLSDReply(response); |
1180 | } | 1147 | } |
1181 | 1148 | ||
@@ -1191,7 +1158,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
1191 | uint x, y; | 1158 | uint x, y; |
1192 | Util.ParseFakeParcelID(parcelID, out regionHandle, out x, out y); | 1159 | Util.ParseFakeParcelID(parcelID, out regionHandle, out x, out y); |
1193 | m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", regionHandle, x, y); | 1160 | m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", regionHandle, x, y); |
1194 | 1161 | ||
1195 | LandData landData; | 1162 | LandData landData; |
1196 | if (regionHandle == m_scene.RegionInfo.RegionHandle) | 1163 | if (regionHandle == m_scene.RegionInfo.RegionHandle) |
1197 | landData = this.GetLandObject(x, y).landData; | 1164 | landData = this.GetLandObject(x, y).landData; |
diff --git a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs index 305e236..6388a1c 100644 --- a/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs +++ b/OpenSim/Region/Environment/Modules/World/Land/LandObject.cs | |||
@@ -116,7 +116,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
116 | return newLand; | 116 | return newLand; |
117 | } | 117 | } |
118 | 118 | ||
119 | 119 | ||
120 | static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount; | 120 | static overrideParcelMaxPrimCountDelegate overrideParcelMaxPrimCount; |
121 | static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount; | 121 | static overrideSimulatorMaxPrimCountDelegate overrideSimulatorMaxPrimCount; |
122 | 122 | ||
@@ -156,7 +156,7 @@ namespace OpenSim.Region.Environment.Modules.World.Land | |||
156 | } | 156 | } |
157 | } | 157 | } |
158 | #endregion | 158 | #endregion |
159 | 159 | ||
160 | #region Packet Request Handling | 160 | #region Packet Request Handling |
161 | 161 | ||
162 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) | 162 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) |
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index 7b05027..09f12b2 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -305,7 +305,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
305 | 305 | ||
306 | public event RegionHandleRequest OnRegionHandleRequest; | 306 | public event RegionHandleRequest OnRegionHandleRequest; |
307 | public event ParcelInfoRequest OnParcelInfoRequest; | 307 | public event ParcelInfoRequest OnParcelInfoRequest; |
308 | 308 | ||
309 | #pragma warning restore 67 | 309 | #pragma warning restore 67 |
310 | 310 | ||
311 | #endregion | 311 | #endregion |
@@ -368,7 +368,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
368 | { | 368 | { |
369 | get { return 0; } | 369 | get { return 0; } |
370 | } | 370 | } |
371 | 371 | ||
372 | public ulong GetGroupPowers(LLUUID groupID) | 372 | public ulong GetGroupPowers(LLUUID groupID) |
373 | { | 373 | { |
374 | return 0; | 374 | return 0; |
@@ -820,13 +820,13 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
820 | 820 | ||
821 | 821 | ||
822 | public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time) | 822 | public void SendParcelMediaCommand(uint flags, ParcelMediaCommandEnum command, float time) |
823 | { | 823 | { |
824 | } | 824 | } |
825 | 825 | ||
826 | public void SendParcelMediaUpdate(string mediaUrl, LLUUID mediaTextureID, | 826 | public void SendParcelMediaUpdate(string mediaUrl, LLUUID mediaTextureID, |
827 | byte autoScale, string mediaType, string mediaDesc, int mediaWidth, int mediaHeight, | 827 | byte autoScale, string mediaType, string mediaDesc, int mediaWidth, int mediaHeight, |
828 | byte mediaLoop) | 828 | byte mediaLoop) |
829 | { | 829 | { |
830 | } | 830 | } |
831 | 831 | ||
832 | public void SendSetFollowCamProperties (LLUUID objectID, SortedDictionary<int, float> parameters) | 832 | public void SendSetFollowCamProperties (LLUUID objectID, SortedDictionary<int, float> parameters) |
diff --git a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs index 6107f48..071e3af 100644 --- a/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Permissions/PermissionsModule.cs | |||
@@ -146,7 +146,7 @@ namespace OpenSim.Region.Environment.Modules.World.Permissions | |||
146 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true); | 146 | m_bypassPermissions = !myConfig.GetBoolean("serverside_object_permissions", true); |
147 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); | 147 | m_RegionOwnerIsGod = myConfig.GetBoolean("region_owner_is_god", true); |
148 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); | 148 | m_ParcelOwnerIsGod = myConfig.GetBoolean("parcel_owner_is_god", true); |
149 | 149 | ||
150 | if (m_bypassPermissions) | 150 | if (m_bypassPermissions) |
151 | m_log.Info("[PERMISSIONS]: serviceside_object_permissions = false in ini file so disabling all region service permission checks"); | 151 | m_log.Info("[PERMISSIONS]: serviceside_object_permissions = false in ini file so disabling all region service permission checks"); |
152 | else | 152 | else |
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs index 0df19d9..22c9b29 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs | |||
@@ -44,7 +44,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
44 | public class SceneXmlLoader | 44 | public class SceneXmlLoader |
45 | { | 45 | { |
46 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | //private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | public static void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, LLVector3 loadOffset) | 48 | public static void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, LLVector3 loadOffset) |
49 | { | 49 | { |
50 | XmlDocument doc = new XmlDocument(); | 50 | XmlDocument doc = new XmlDocument(); |
@@ -114,7 +114,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
114 | doc.Load(reader); | 114 | doc.Load(reader); |
115 | reader.Close(); | 115 | reader.Close(); |
116 | rootNode = doc.FirstChild; | 116 | rootNode = doc.FirstChild; |
117 | 117 | ||
118 | // This is to deal with neighbouring regions that are still surrounding the group xml with the <scene> | 118 | // This is to deal with neighbouring regions that are still surrounding the group xml with the <scene> |
119 | // tag. It should be possible to remove the first part of this if statement once we go past 0.5.9 (or | 119 | // tag. It should be possible to remove the first part of this if statement once we go past 0.5.9 (or |
120 | // when some other changes forces all regions to upgrade). | 120 | // when some other changes forces all regions to upgrade). |
@@ -127,13 +127,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
127 | // There is only ever one prim. This oddity should be removeable post 0.5.9 | 127 | // There is only ever one prim. This oddity should be removeable post 0.5.9 |
128 | return new SceneObjectGroup(aPrimNode.OuterXml); | 128 | return new SceneObjectGroup(aPrimNode.OuterXml); |
129 | } | 129 | } |
130 | 130 | ||
131 | return null; | 131 | return null; |
132 | } | 132 | } |
133 | else | 133 | else |
134 | { | 134 | { |
135 | return new SceneObjectGroup(rootNode.OuterXml); | 135 | return new SceneObjectGroup(rootNode.OuterXml); |
136 | } | 136 | } |
137 | } | 137 | } |
138 | 138 | ||
139 | /// <summary> | 139 | /// <summary> |
@@ -171,7 +171,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
171 | reader.Close(); | 171 | reader.Close(); |
172 | XmlNode rootNode = doc.FirstChild; | 172 | XmlNode rootNode = doc.FirstChild; |
173 | 173 | ||
174 | ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>(); | 174 | ICollection<SceneObjectGroup> sceneObjects = new List<SceneObjectGroup>(); |
175 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) | 175 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) |
176 | { | 176 | { |
177 | SceneObjectGroup obj = CreatePrimFromXml2(scene, aPrimNode.OuterXml); | 177 | SceneObjectGroup obj = CreatePrimFromXml2(scene, aPrimNode.OuterXml); |
@@ -195,7 +195,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
195 | { | 195 | { |
196 | SceneObjectGroup obj = new SceneObjectGroup(xmlData); | 196 | SceneObjectGroup obj = new SceneObjectGroup(xmlData); |
197 | 197 | ||
198 | if (scene.AddRestoredSceneObject(obj, true, false)) | 198 | if (scene.AddRestoredSceneObject(obj, true, false)) |
199 | return obj; | 199 | return obj; |
200 | else | 200 | else |
201 | return null; | 201 | return null; |
@@ -254,7 +254,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
254 | if (max.X < pos.X || max.Y < pos.Y || max.Z < pos.Z) | 254 | if (max.X < pos.X || max.Y < pos.Y || max.Z < pos.Z) |
255 | continue; | 255 | continue; |
256 | } | 256 | } |
257 | 257 | ||
258 | stream.WriteLine(g.ToXmlString2()); | 258 | stream.WriteLine(g.ToXmlString2()); |
259 | primCount++; | 259 | primCount++; |
260 | } | 260 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs b/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs index 5682de3..9690433 100644 --- a/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs | |||
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Environment.Modules | |||
94 | private LLVector3 Position = new LLVector3(0,0,0); | 94 | private LLVector3 Position = new LLVector3(0,0,0); |
95 | private LLVector3 Velocity = new LLVector3(0,0,0); | 95 | private LLVector3 Velocity = new LLVector3(0,0,0); |
96 | private LLQuaternion Tilt = new LLQuaternion(1,0,0,0); | 96 | private LLQuaternion Tilt = new LLQuaternion(1,0,0,0); |
97 | 97 | ||
98 | private long LindenHourOffset = 0; | 98 | private long LindenHourOffset = 0; |
99 | private bool sunFixed = false; | 99 | private bool sunFixed = false; |
100 | 100 | ||
@@ -111,7 +111,7 @@ namespace OpenSim.Region.Environment.Modules | |||
111 | private float GetLindenEstateHourFromCurrentTime() | 111 | private float GetLindenEstateHourFromCurrentTime() |
112 | { | 112 | { |
113 | float ticksleftover = ((float)CurrentTime) % ((float)SecondsPerSunCycle); | 113 | float ticksleftover = ((float)CurrentTime) % ((float)SecondsPerSunCycle); |
114 | 114 | ||
115 | float hour = (24 * (ticksleftover / SecondsPerSunCycle)) + 6; | 115 | float hour = (24 * (ticksleftover / SecondsPerSunCycle)) + 6; |
116 | 116 | ||
117 | return hour; | 117 | return hour; |
@@ -132,7 +132,7 @@ namespace OpenSim.Region.Environment.Modules | |||
132 | float hour = (24 * (ticksleftover / SecondsPerSunCycle)); | 132 | float hour = (24 * (ticksleftover / SecondsPerSunCycle)); |
133 | 133 | ||
134 | float offsethours = 0; | 134 | float offsethours = 0; |
135 | 135 | ||
136 | if (LindenHour - 6 > hour) | 136 | if (LindenHour - 6 > hour) |
137 | { | 137 | { |
138 | offsethours = hour + ((LindenHour-6) - hour); | 138 | offsethours = hour + ((LindenHour-6) - hour); |
@@ -142,7 +142,7 @@ namespace OpenSim.Region.Environment.Modules | |||
142 | offsethours = hour - (hour - (LindenHour - 6)); | 142 | offsethours = hour - (hour - (LindenHour - 6)); |
143 | } | 143 | } |
144 | //m_log.Debug("[OFFSET]: " + hour + " - " + LindenHour + " - " + offsethours.ToString()); | 144 | //m_log.Debug("[OFFSET]: " + hour + " - " + LindenHour + " - " + offsethours.ToString()); |
145 | 145 | ||
146 | LindenHourOffset = (long)((float)offsethours * (36000000000/m_day_length)); | 146 | LindenHourOffset = (long)((float)offsethours * (36000000000/m_day_length)); |
147 | m_log.Info("[SUN]: Directive from the Estate Tools to set the sun phase to LindenHour " + GetLindenEstateHourFromCurrentTime().ToString()); | 147 | m_log.Info("[SUN]: Directive from the Estate Tools to set the sun phase to LindenHour " + GetLindenEstateHourFromCurrentTime().ToString()); |
148 | 148 | ||
@@ -422,7 +422,7 @@ namespace OpenSim.Region.Environment.Modules | |||
422 | } | 422 | } |
423 | } | 423 | } |
424 | } | 424 | } |
425 | 425 | ||
426 | public void EstateToolsTimeUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float LindenHour) | 426 | public void EstateToolsTimeUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float LindenHour) |
427 | { | 427 | { |
428 | if (m_scene.RegionInfo.RegionHandle == regionHandle) | 428 | if (m_scene.RegionInfo.RegionHandle == regionHandle) |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs index 34bbf78..48da96d 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/BMP.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
51 | 51 | ||
52 | colours.Save(filename, ImageFormat.Bmp); | 52 | colours.Save(filename, ImageFormat.Bmp); |
53 | } | 53 | } |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Exports a stream using a System.Drawing exporter. | 56 | /// Exports a stream using a System.Drawing exporter. |
57 | /// </summary> | 57 | /// </summary> |
@@ -62,7 +62,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
62 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); | 62 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); |
63 | 63 | ||
64 | colours.Save(stream, ImageFormat.Png); | 64 | colours.Save(stream, ImageFormat.Png); |
65 | } | 65 | } |
66 | 66 | ||
67 | /// <summary> | 67 | /// <summary> |
68 | /// The human readable version of the file format(s) this loader handles | 68 | /// The human readable version of the file format(s) this loader handles |
@@ -73,4 +73,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
73 | return "BMP"; | 73 | return "BMP"; |
74 | } | 74 | } |
75 | } | 75 | } |
76 | } \ No newline at end of file | 76 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs index 0cd9000..accffd2 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GIF.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
40 | 40 | ||
41 | colours.Save(filename, ImageFormat.Gif); | 41 | colours.Save(filename, ImageFormat.Gif); |
42 | } | 42 | } |
43 | 43 | ||
44 | /// <summary> | 44 | /// <summary> |
45 | /// Exports a stream using a System.Drawing exporter. | 45 | /// Exports a stream using a System.Drawing exporter. |
46 | /// </summary> | 46 | /// </summary> |
@@ -51,11 +51,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
51 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); | 51 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); |
52 | 52 | ||
53 | colours.Save(stream, ImageFormat.Gif); | 53 | colours.Save(stream, ImageFormat.Gif); |
54 | } | 54 | } |
55 | 55 | ||
56 | public override string ToString() | 56 | public override string ToString() |
57 | { | 57 | { |
58 | return "GIF"; | 58 | return "GIF"; |
59 | } | 59 | } |
60 | } | 60 | } |
61 | } \ No newline at end of file | 61 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs index 4d213e0..983ad29 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/GenericSystemDrawing.cs | |||
@@ -58,19 +58,19 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
58 | /// <returns>A terrain channel generated from the image.</returns> | 58 | /// <returns>A terrain channel generated from the image.</returns> |
59 | public virtual ITerrainChannel LoadFile(string filename) | 59 | public virtual ITerrainChannel LoadFile(string filename) |
60 | { | 60 | { |
61 | return LoadBitmap(new Bitmap(filename)); | 61 | return LoadBitmap(new Bitmap(filename)); |
62 | } | 62 | } |
63 | 63 | ||
64 | public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h) | 64 | public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h) |
65 | { | 65 | { |
66 | throw new NotImplementedException(); | 66 | throw new NotImplementedException(); |
67 | } | 67 | } |
68 | 68 | ||
69 | public virtual ITerrainChannel LoadStream(Stream stream) | 69 | public virtual ITerrainChannel LoadStream(Stream stream) |
70 | { | 70 | { |
71 | return LoadBitmap(new Bitmap(stream)); | 71 | return LoadBitmap(new Bitmap(stream)); |
72 | } | 72 | } |
73 | 73 | ||
74 | protected virtual ITerrainChannel LoadBitmap(Bitmap bitmap) | 74 | protected virtual ITerrainChannel LoadBitmap(Bitmap bitmap) |
75 | { | 75 | { |
76 | ITerrainChannel retval = new TerrainChannel(bitmap.Width, bitmap.Height); | 76 | ITerrainChannel retval = new TerrainChannel(bitmap.Width, bitmap.Height); |
@@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
85 | } | 85 | } |
86 | } | 86 | } |
87 | 87 | ||
88 | return retval; | 88 | return retval; |
89 | } | 89 | } |
90 | 90 | ||
91 | /// <summary> | 91 | /// <summary> |
@@ -99,7 +99,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
99 | 99 | ||
100 | colours.Save(filename, ImageFormat.Png); | 100 | colours.Save(filename, ImageFormat.Png); |
101 | } | 101 | } |
102 | 102 | ||
103 | /// <summary> | 103 | /// <summary> |
104 | /// Exports a stream using a System.Drawing exporter. | 104 | /// Exports a stream using a System.Drawing exporter. |
105 | /// </summary> | 105 | /// </summary> |
@@ -110,7 +110,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
110 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); | 110 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); |
111 | 111 | ||
112 | colours.Save(stream, ImageFormat.Png); | 112 | colours.Save(stream, ImageFormat.Png); |
113 | } | 113 | } |
114 | 114 | ||
115 | #endregion | 115 | #endregion |
116 | 116 | ||
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs index 9886b81..35576c7 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/JPEG.cs | |||
@@ -51,11 +51,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
51 | { | 51 | { |
52 | throw new NotImplementedException(); | 52 | throw new NotImplementedException(); |
53 | } | 53 | } |
54 | 54 | ||
55 | public ITerrainChannel LoadStream(Stream stream) | 55 | public ITerrainChannel LoadStream(Stream stream) |
56 | { | 56 | { |
57 | throw new NotImplementedException(); | 57 | throw new NotImplementedException(); |
58 | } | 58 | } |
59 | 59 | ||
60 | public void SaveFile(string filename, ITerrainChannel map) | 60 | public void SaveFile(string filename, ITerrainChannel map) |
61 | { | 61 | { |
@@ -63,7 +63,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
63 | 63 | ||
64 | colours.Save(filename, ImageFormat.Jpeg); | 64 | colours.Save(filename, ImageFormat.Jpeg); |
65 | } | 65 | } |
66 | 66 | ||
67 | /// <summary> | 67 | /// <summary> |
68 | /// Exports a stream using a System.Drawing exporter. | 68 | /// Exports a stream using a System.Drawing exporter. |
69 | /// </summary> | 69 | /// </summary> |
@@ -74,7 +74,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
74 | Bitmap colours = CreateBitmapFromMap(map); | 74 | Bitmap colours = CreateBitmapFromMap(map); |
75 | 75 | ||
76 | colours.Save(stream, ImageFormat.Jpeg); | 76 | colours.Save(stream, ImageFormat.Jpeg); |
77 | } | 77 | } |
78 | 78 | ||
79 | #endregion | 79 | #endregion |
80 | 80 | ||
@@ -109,4 +109,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
109 | return bmp; | 109 | return bmp; |
110 | } | 110 | } |
111 | } | 111 | } |
112 | } \ No newline at end of file | 112 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs index 21fba2b..5f13d01 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/LLRAW.cs | |||
@@ -74,7 +74,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
74 | FileInfo file = new FileInfo(filename); | 74 | FileInfo file = new FileInfo(filename); |
75 | FileStream s = file.Open(FileMode.Open, FileAccess.Read); | 75 | FileStream s = file.Open(FileMode.Open, FileAccess.Read); |
76 | ITerrainChannel retval = LoadStream(s); | 76 | ITerrainChannel retval = LoadStream(s); |
77 | 77 | ||
78 | s.Close(); | 78 | s.Close(); |
79 | 79 | ||
80 | return retval; | 80 | return retval; |
@@ -113,7 +113,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
113 | // i.e. eat X upto where we start | 113 | // i.e. eat X upto where we start |
114 | while (currFileXOffset < offsetX) | 114 | while (currFileXOffset < offsetX) |
115 | { | 115 | { |
116 | bs.ReadBytes(sectionWidth * 13); | 116 | bs.ReadBytes(sectionWidth * 13); |
117 | currFileXOffset++; | 117 | currFileXOffset++; |
118 | } | 118 | } |
119 | 119 | ||
@@ -143,11 +143,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
143 | 143 | ||
144 | return retval; | 144 | return retval; |
145 | } | 145 | } |
146 | 146 | ||
147 | public ITerrainChannel LoadStream(Stream s) | 147 | public ITerrainChannel LoadStream(Stream s) |
148 | { | 148 | { |
149 | TerrainChannel retval = new TerrainChannel(); | 149 | TerrainChannel retval = new TerrainChannel(); |
150 | 150 | ||
151 | BinaryReader bs = new BinaryReader(s); | 151 | BinaryReader bs = new BinaryReader(s); |
152 | int y; | 152 | int y; |
153 | for (y = 0; y < retval.Height; y++) | 153 | for (y = 0; y < retval.Height; y++) |
@@ -160,8 +160,8 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
160 | } | 160 | } |
161 | } | 161 | } |
162 | 162 | ||
163 | bs.Close(); | 163 | bs.Close(); |
164 | 164 | ||
165 | return retval; | 165 | return retval; |
166 | } | 166 | } |
167 | 167 | ||
@@ -173,7 +173,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
173 | 173 | ||
174 | s.Close(); | 174 | s.Close(); |
175 | } | 175 | } |
176 | 176 | ||
177 | public void SaveStream(Stream s, ITerrainChannel map) | 177 | public void SaveStream(Stream s, ITerrainChannel map) |
178 | { | 178 | { |
179 | BinaryWriter binStream = new BinaryWriter(s); | 179 | BinaryWriter binStream = new BinaryWriter(s); |
@@ -224,9 +224,9 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
224 | } | 224 | } |
225 | } | 225 | } |
226 | 226 | ||
227 | binStream.Close(); | 227 | binStream.Close(); |
228 | } | 228 | } |
229 | 229 | ||
230 | public string FileExtension | 230 | public string FileExtension |
231 | { | 231 | { |
232 | get { return ".raw"; } | 232 | get { return ".raw"; } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs index cf95486..19e181e 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/PNG.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
40 | 40 | ||
41 | colours.Save(filename, ImageFormat.Png); | 41 | colours.Save(filename, ImageFormat.Png); |
42 | } | 42 | } |
43 | 43 | ||
44 | /// <summary> | 44 | /// <summary> |
45 | /// Exports a stream using a System.Drawing exporter. | 45 | /// Exports a stream using a System.Drawing exporter. |
46 | /// </summary> | 46 | /// </summary> |
@@ -51,11 +51,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
51 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); | 51 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); |
52 | 52 | ||
53 | colours.Save(stream, ImageFormat.Png); | 53 | colours.Save(stream, ImageFormat.Png); |
54 | } | 54 | } |
55 | 55 | ||
56 | public override string ToString() | 56 | public override string ToString() |
57 | { | 57 | { |
58 | return "PNG"; | 58 | return "PNG"; |
59 | } | 59 | } |
60 | } | 60 | } |
61 | } \ No newline at end of file | 61 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs index bb8b0f7..758821a 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/RAW32.cs | |||
@@ -112,11 +112,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
112 | 112 | ||
113 | return retval; | 113 | return retval; |
114 | } | 114 | } |
115 | 115 | ||
116 | public ITerrainChannel LoadStream(Stream s) | 116 | public ITerrainChannel LoadStream(Stream s) |
117 | { | 117 | { |
118 | TerrainChannel retval = new TerrainChannel(); | 118 | TerrainChannel retval = new TerrainChannel(); |
119 | 119 | ||
120 | BinaryReader bs = new BinaryReader(s); | 120 | BinaryReader bs = new BinaryReader(s); |
121 | int y; | 121 | int y; |
122 | for (y = 0; y < retval.Height; y++) | 122 | for (y = 0; y < retval.Height; y++) |
@@ -129,10 +129,10 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
129 | } | 129 | } |
130 | 130 | ||
131 | bs.Close(); | 131 | bs.Close(); |
132 | 132 | ||
133 | return retval; | 133 | return retval; |
134 | } | 134 | } |
135 | 135 | ||
136 | public void SaveFile(string filename, ITerrainChannel map) | 136 | public void SaveFile(string filename, ITerrainChannel map) |
137 | { | 137 | { |
138 | FileInfo file = new FileInfo(filename); | 138 | FileInfo file = new FileInfo(filename); |
@@ -141,7 +141,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
141 | 141 | ||
142 | s.Close(); | 142 | s.Close(); |
143 | } | 143 | } |
144 | 144 | ||
145 | public void SaveStream(Stream s, ITerrainChannel map) | 145 | public void SaveStream(Stream s, ITerrainChannel map) |
146 | { | 146 | { |
147 | BinaryWriter bs = new BinaryWriter(s); | 147 | BinaryWriter bs = new BinaryWriter(s); |
@@ -156,7 +156,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
156 | } | 156 | } |
157 | } | 157 | } |
158 | 158 | ||
159 | bs.Close(); | 159 | bs.Close(); |
160 | } | 160 | } |
161 | 161 | ||
162 | #endregion | 162 | #endregion |
@@ -166,4 +166,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
166 | return "RAW32"; | 166 | return "RAW32"; |
167 | } | 167 | } |
168 | } | 168 | } |
169 | } \ No newline at end of file | 169 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs index 3f98f40..95b43b0 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/TIFF.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
40 | 40 | ||
41 | colours.Save(filename, ImageFormat.Tiff); | 41 | colours.Save(filename, ImageFormat.Tiff); |
42 | } | 42 | } |
43 | 43 | ||
44 | /// <summary> | 44 | /// <summary> |
45 | /// Exports a stream using a System.Drawing exporter. | 45 | /// Exports a stream using a System.Drawing exporter. |
46 | /// </summary> | 46 | /// </summary> |
@@ -51,11 +51,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
51 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); | 51 | Bitmap colours = CreateGrayscaleBitmapFromMap(map); |
52 | 52 | ||
53 | colours.Save(stream, ImageFormat.Tiff); | 53 | colours.Save(stream, ImageFormat.Tiff); |
54 | } | 54 | } |
55 | 55 | ||
56 | public override string ToString() | 56 | public override string ToString() |
57 | { | 57 | { |
58 | return "TIFF"; | 58 | return "TIFF"; |
59 | } | 59 | } |
60 | } | 60 | } |
61 | } \ No newline at end of file | 61 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs index 5dc2aa5..2bf029e 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/FileLoaders/Terragen.cs | |||
@@ -51,11 +51,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
51 | 51 | ||
52 | return retval; | 52 | return retval; |
53 | } | 53 | } |
54 | 54 | ||
55 | public ITerrainChannel LoadStream(Stream s) | 55 | public ITerrainChannel LoadStream(Stream s) |
56 | { | 56 | { |
57 | TerrainChannel retval = new TerrainChannel(); | 57 | TerrainChannel retval = new TerrainChannel(); |
58 | 58 | ||
59 | BinaryReader bs = new BinaryReader(s); | 59 | BinaryReader bs = new BinaryReader(s); |
60 | 60 | ||
61 | bool eof = false; | 61 | bool eof = false; |
@@ -107,7 +107,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
107 | } | 107 | } |
108 | 108 | ||
109 | bs.Close(); | 109 | bs.Close(); |
110 | 110 | ||
111 | return retval; | 111 | return retval; |
112 | } | 112 | } |
113 | 113 | ||
@@ -115,7 +115,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
115 | { | 115 | { |
116 | throw new NotImplementedException(); | 116 | throw new NotImplementedException(); |
117 | } | 117 | } |
118 | 118 | ||
119 | public void SaveStream(Stream stream, ITerrainChannel map) | 119 | public void SaveStream(Stream stream, ITerrainChannel map) |
120 | { | 120 | { |
121 | throw new NotImplementedException(); | 121 | throw new NotImplementedException(); |
@@ -138,4 +138,4 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain.FileLoaders | |||
138 | return "Terragen"; | 138 | return "Terragen"; |
139 | } | 139 | } |
140 | } | 140 | } |
141 | } \ No newline at end of file | 141 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs index e255515..beeff03 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/ITerrainModule.cs | |||
@@ -33,7 +33,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
33 | { | 33 | { |
34 | void LoadFromFile(string filename); | 34 | void LoadFromFile(string filename); |
35 | void SaveToFile(string filename); | 35 | void SaveToFile(string filename); |
36 | 36 | ||
37 | /// <summary> | 37 | /// <summary> |
38 | /// Load a terrain from a stream. | 38 | /// Load a terrain from a stream. |
39 | /// </summary> | 39 | /// </summary> |
@@ -42,7 +42,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
42 | /// </param> | 42 | /// </param> |
43 | /// <param name="stream"></param> | 43 | /// <param name="stream"></param> |
44 | void LoadFromStream(string filename, Stream stream); | 44 | void LoadFromStream(string filename, Stream stream); |
45 | 45 | ||
46 | /// <summary> | 46 | /// <summary> |
47 | /// Save a terrain to a stream. | 47 | /// Save a terrain to a stream. |
48 | /// </summary> | 48 | /// </summary> |
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
51 | /// </param> | 51 | /// </param> |
52 | /// <param name="stream"></param> | 52 | /// <param name="stream"></param> |
53 | void SaveToStream(string filename, Stream stream); | 53 | void SaveToStream(string filename, Stream stream); |
54 | 54 | ||
55 | void InstallPlugin(string name, ITerrainEffect plug); | 55 | void InstallPlugin(string name, ITerrainEffect plug); |
56 | } | 56 | } |
57 | } | 57 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs index 8fbc62e..4a62446 100644 --- a/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Terrain/TerrainModule.cs | |||
@@ -221,7 +221,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
221 | throw new TerrainException(String.Format("Unable to save heightmap: saving of this file format not implemented")); | 221 | throw new TerrainException(String.Format("Unable to save heightmap: saving of this file format not implemented")); |
222 | } | 222 | } |
223 | } | 223 | } |
224 | 224 | ||
225 | /// <summary> | 225 | /// <summary> |
226 | /// Loads a terrain file from a stream and installs it in the scene. | 226 | /// Loads a terrain file from a stream and installs it in the scene. |
227 | /// </summary> | 227 | /// </summary> |
@@ -281,7 +281,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
281 | m_log.Error("Unable to save to " + filename + ", saving of this file format has not been implemented."); | 281 | m_log.Error("Unable to save to " + filename + ", saving of this file format has not been implemented."); |
282 | throw new TerrainException(String.Format("Unable to save heightmap: saving of this file format not implemented")); | 282 | throw new TerrainException(String.Format("Unable to save heightmap: saving of this file format not implemented")); |
283 | } | 283 | } |
284 | } | 284 | } |
285 | 285 | ||
286 | #region Plugin Loading Methods | 286 | #region Plugin Loading Methods |
287 | 287 | ||
@@ -450,7 +450,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
450 | m_tainted = false; | 450 | m_tainted = false; |
451 | m_scene.PhysicsScene.SetTerrain(m_channel.GetFloatsSerialised()); | 451 | m_scene.PhysicsScene.SetTerrain(m_channel.GetFloatsSerialised()); |
452 | m_scene.SaveTerrain(); | 452 | m_scene.SaveTerrain(); |
453 | 453 | ||
454 | // Clients who look at the map will never see changes after they looked at the map, so i've commented this out. | 454 | // Clients who look at the map will never see changes after they looked at the map, so i've commented this out. |
455 | //m_scene.CreateTerrainTexture(true); | 455 | //m_scene.CreateTerrainTexture(true); |
456 | } | 456 | } |
@@ -517,11 +517,11 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
517 | // fixup and height deltas that don't respect them | 517 | // fixup and height deltas that don't respect them |
518 | if (respectEstateSettings && LimitChannelChanges(x, y)) | 518 | if (respectEstateSettings && LimitChannelChanges(x, y)) |
519 | { | 519 | { |
520 | // this has been vetoed, so update | 520 | // this has been vetoed, so update |
521 | // what we are going to send to the client | 521 | // what we are going to send to the client |
522 | serialised = m_channel.GetFloatsSerialised(); | 522 | serialised = m_channel.GetFloatsSerialised(); |
523 | } | 523 | } |
524 | 524 | ||
525 | SendToClients(serialised, x, y); | 525 | SendToClients(serialised, x, y); |
526 | shouldTaint = true; | 526 | shouldTaint = true; |
527 | } | 527 | } |
@@ -580,9 +580,9 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
580 | private void SendToClients(float[] serialised, int x, int y) | 580 | private void SendToClients(float[] serialised, int x, int y) |
581 | { | 581 | { |
582 | m_scene.ForEachClient( | 582 | m_scene.ForEachClient( |
583 | delegate(IClientAPI controller) | 583 | delegate(IClientAPI controller) |
584 | { controller.SendLayerData( | 584 | { controller.SendLayerData( |
585 | x / Constants.TerrainPatchSize, y / Constants.TerrainPatchSize, serialised); | 585 | x / Constants.TerrainPatchSize, y / Constants.TerrainPatchSize, serialised); |
586 | } | 586 | } |
587 | ); | 587 | ); |
588 | } | 588 | } |
@@ -647,7 +647,7 @@ namespace OpenSim.Region.Environment.Modules.World.Terrain | |||
647 | { | 647 | { |
648 | // Not a good permissions check (see client_OnModifyTerrain above), need to check the entire area. | 648 | // Not a good permissions check (see client_OnModifyTerrain above), need to check the entire area. |
649 | // for now check a point in the centre of the region | 649 | // for now check a point in the centre of the region |
650 | 650 | ||
651 | if (m_scene.ExternalChecks.ExternalChecksCanTerraformLand(remoteClient.AgentId, new LLVector3(127, 127, 0))) | 651 | if (m_scene.ExternalChecks.ExternalChecksCanTerraformLand(remoteClient.AgentId, new LLVector3(127, 127, 0))) |
652 | { | 652 | { |
653 | InterfaceBakeTerrain(null); //bake terrain does not use the passed in parameter | 653 | InterfaceBakeTerrain(null); //bake terrain does not use the passed in parameter |
diff --git a/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs b/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs index a331d37..9b8dc75 100644 --- a/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs +++ b/OpenSim/Region/Environment/Modules/World/WorldMap/MapImageModule.cs | |||
@@ -162,7 +162,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
162 | { | 162 | { |
163 | int tc = System.Environment.TickCount; | 163 | int tc = System.Environment.TickCount; |
164 | m_log.Info("[MAPTILE]: Generating Maptile Step 1: Terrain"); | 164 | m_log.Info("[MAPTILE]: Generating Maptile Step 1: Terrain"); |
165 | 165 | ||
166 | double[,] hm = whichScene.Heightmap.GetDoubles(); | 166 | double[,] hm = whichScene.Heightmap.GetDoubles(); |
167 | bool ShadowDebugContinue = true; | 167 | bool ShadowDebugContinue = true; |
168 | //Color prim = Color.FromArgb(120, 120, 120); | 168 | //Color prim = Color.FromArgb(120, 120, 120); |
@@ -247,7 +247,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
247 | //X | 247 | //X |
248 | // . | 248 | // . |
249 | // | 249 | // |
250 | // Shade the terrain for shadows | 250 | // Shade the terrain for shadows |
251 | if ((x - 1 > 0) && (y - 1 > 0)) | 251 | if ((x - 1 > 0) && (y - 1 > 0)) |
252 | { | 252 | { |
253 | hfvalue = (float)hm[x, y]; | 253 | hfvalue = (float)hm[x, y]; |
@@ -268,7 +268,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
268 | else if (hfdiff < -0.3f) | 268 | else if (hfdiff < -0.3f) |
269 | { | 269 | { |
270 | // We have to desaturate and blacken the land at the same time | 270 | // We have to desaturate and blacken the land at the same time |
271 | // we use floats, colors use bytes, so shrink are space down to | 271 | // we use floats, colors use bytes, so shrink are space down to |
272 | // 0-255 | 272 | // 0-255 |
273 | 273 | ||
274 | 274 | ||
@@ -368,8 +368,8 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
368 | 368 | ||
369 | return mapbmp; | 369 | return mapbmp; |
370 | } | 370 | } |
371 | 371 | ||
372 | 372 | ||
373 | private Bitmap DrawObjectVolume(Scene whichScene, Bitmap mapbmp) | 373 | private Bitmap DrawObjectVolume(Scene whichScene, Bitmap mapbmp) |
374 | { | 374 | { |
375 | int tc = 0; | 375 | int tc = 0; |
@@ -570,4 +570,4 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
570 | } | 570 | } |
571 | #endregion | 571 | #endregion |
572 | } | 572 | } |
573 | } \ No newline at end of file | 573 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/Environment/Modules/World/WorldMap/WorldMapModule.cs index 2a7af87..2430822 100644 --- a/OpenSim/Region/Environment/Modules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/Environment/Modules/World/WorldMap/WorldMapModule.cs | |||
@@ -54,13 +54,13 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
54 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 54 | LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
55 | 55 | ||
56 | private static readonly string m_mapLayerPath = "0001/"; | 56 | private static readonly string m_mapLayerPath = "0001/"; |
57 | 57 | ||
58 | //private IConfig m_config; | 58 | //private IConfig m_config; |
59 | private Scene m_scene; | 59 | private Scene m_scene; |
60 | private List<MapBlockData> cachedMapBlocks = new List<MapBlockData>(); | 60 | private List<MapBlockData> cachedMapBlocks = new List<MapBlockData>(); |
61 | private int cachedTime = 0; | 61 | private int cachedTime = 0; |
62 | private byte[] myMapImageJPEG; | 62 | private byte[] myMapImageJPEG; |
63 | 63 | ||
64 | //private int CacheRegionsDistance = 256; | 64 | //private int CacheRegionsDistance = 256; |
65 | 65 | ||
66 | #region IRegionModule Members | 66 | #region IRegionModule Members |
@@ -85,7 +85,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
85 | } | 85 | } |
86 | public void PostInitialise() | 86 | public void PostInitialise() |
87 | { | 87 | { |
88 | 88 | ||
89 | } | 89 | } |
90 | 90 | ||
91 | public void Close() | 91 | public void Close() |
@@ -102,10 +102,6 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
102 | } | 102 | } |
103 | 103 | ||
104 | #endregion | 104 | #endregion |
105 | |||
106 | |||
107 | |||
108 | |||
109 | 105 | ||
110 | public void OnRegisterCaps(LLUUID agentID, Caps caps) | 106 | public void OnRegisterCaps(LLUUID agentID, Caps caps) |
111 | { | 107 | { |
@@ -117,9 +113,8 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
117 | OSHttpRequest httpRequest, OSHttpResponse httpResponse) | 113 | OSHttpRequest httpRequest, OSHttpResponse httpResponse) |
118 | { | 114 | { |
119 | return MapLayerRequest(request, path, param, | 115 | return MapLayerRequest(request, path, param, |
120 | agentID, caps); | 116 | agentID, caps); |
121 | })); | 117 | })); |
122 | |||
123 | } | 118 | } |
124 | 119 | ||
125 | /// <summary> | 120 | /// <summary> |
@@ -138,12 +133,12 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
138 | //{ | 133 | //{ |
139 | //m_log.DebugFormat("[MAPLAYER]: request: {0}, path: {1}, param: {2}, agent:{3}", | 134 | //m_log.DebugFormat("[MAPLAYER]: request: {0}, path: {1}, param: {2}, agent:{3}", |
140 | //request, path, param,agentID.ToString()); | 135 | //request, path, param,agentID.ToString()); |
141 | 136 | ||
142 | // this is here because CAPS map requests work even beyond the 10,000 limit. | 137 | // this is here because CAPS map requests work even beyond the 10,000 limit. |
143 | ScenePresence avatarPresence = null; | 138 | ScenePresence avatarPresence = null; |
144 | 139 | ||
145 | m_scene.TryGetAvatar(agentID, out avatarPresence); | 140 | m_scene.TryGetAvatar(agentID, out avatarPresence); |
146 | 141 | ||
147 | if (avatarPresence != null) | 142 | if (avatarPresence != null) |
148 | { | 143 | { |
149 | bool lookup = false; | 144 | bool lookup = false; |
@@ -168,7 +163,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
168 | 163 | ||
169 | mapBlocks = m_scene.SceneGridService.RequestNeighbourMapBlocks((int)m_scene.RegionInfo.RegionLocX - 8, (int)m_scene.RegionInfo.RegionLocY - 8, (int)m_scene.RegionInfo.RegionLocX + 8, (int)m_scene.RegionInfo.RegionLocY + 8); | 164 | mapBlocks = m_scene.SceneGridService.RequestNeighbourMapBlocks((int)m_scene.RegionInfo.RegionLocX - 8, (int)m_scene.RegionInfo.RegionLocY - 8, (int)m_scene.RegionInfo.RegionLocX + 8, (int)m_scene.RegionInfo.RegionLocY + 8); |
170 | avatarPresence.ControllingClient.SendMapBlock(mapBlocks,0); | 165 | avatarPresence.ControllingClient.SendMapBlock(mapBlocks,0); |
171 | 166 | ||
172 | lock (cachedMapBlocks) | 167 | lock (cachedMapBlocks) |
173 | cachedMapBlocks = mapBlocks; | 168 | cachedMapBlocks = mapBlocks; |
174 | 169 | ||
@@ -262,18 +257,16 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
262 | MemoryStream imgstream = new MemoryStream(); | 257 | MemoryStream imgstream = new MemoryStream(); |
263 | Bitmap mapTexture = new Bitmap(1,1); | 258 | Bitmap mapTexture = new Bitmap(1,1); |
264 | System.Drawing.Image image = (System.Drawing.Image)mapTexture; | 259 | System.Drawing.Image image = (System.Drawing.Image)mapTexture; |
265 | 260 | ||
266 | |||
267 | try | 261 | try |
268 | { | 262 | { |
269 | // Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular jpeg data | 263 | // Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular jpeg data |
270 | 264 | ||
271 | |||
272 | imgstream = new MemoryStream(); | 265 | imgstream = new MemoryStream(); |
273 | 266 | ||
274 | // non-async because we know we have the asset immediately. | 267 | // non-async because we know we have the asset immediately. |
275 | AssetBase mapasset = m_scene.AssetCache.GetAsset(m_scene.RegionInfo.lastMapUUID, true); | 268 | AssetBase mapasset = m_scene.AssetCache.GetAsset(m_scene.RegionInfo.lastMapUUID, true); |
276 | 269 | ||
277 | // Decode image to System.Drawing.Image | 270 | // Decode image to System.Drawing.Image |
278 | image = OpenJPEG.DecodeToImage(mapasset.Data); | 271 | image = OpenJPEG.DecodeToImage(mapasset.Data); |
279 | 272 | ||
@@ -293,7 +286,7 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
293 | 286 | ||
294 | myEncoderParameter = new EncoderParameter(myEncoder, 95L); | 287 | myEncoderParameter = new EncoderParameter(myEncoder, 95L); |
295 | myEncoderParameters.Param[0] = myEncoderParameter; | 288 | myEncoderParameters.Param[0] = myEncoderParameter; |
296 | 289 | ||
297 | // Save bitmap to stream | 290 | // Save bitmap to stream |
298 | mapTexture.Save(imgstream, myImageCodecInfo, myEncoderParameters); | 291 | mapTexture.Save(imgstream, myImageCodecInfo, myEncoderParameters); |
299 | 292 | ||
@@ -332,16 +325,14 @@ namespace OpenSim.Region.Environment.Modules.World.WorldMap | |||
332 | // From msdn | 325 | // From msdn |
333 | private static ImageCodecInfo GetEncoderInfo(String mimeType) | 326 | private static ImageCodecInfo GetEncoderInfo(String mimeType) |
334 | { | 327 | { |
335 | int j; | ||
336 | ImageCodecInfo[] encoders; | 328 | ImageCodecInfo[] encoders; |
337 | encoders = ImageCodecInfo.GetImageEncoders(); | 329 | encoders = ImageCodecInfo.GetImageEncoders(); |
338 | for (j = 0; j < encoders.Length; ++j) | 330 | for (int j = 0; j < encoders.Length; ++j) |
339 | { | 331 | { |
340 | if (encoders[j].MimeType == mimeType) | 332 | if (encoders[j].MimeType == mimeType) |
341 | return encoders[j]; | 333 | return encoders[j]; |
342 | } | 334 | } |
343 | return null; | 335 | return null; |
344 | } | 336 | } |
345 | |||
346 | } | 337 | } |
347 | } | 338 | } |
diff --git a/OpenSim/Region/Environment/Scenes/EntityBase.cs b/OpenSim/Region/Environment/Scenes/EntityBase.cs index bc3e06c..40caabc 100644 --- a/OpenSim/Region/Environment/Scenes/EntityBase.cs +++ b/OpenSim/Region/Environment/Scenes/EntityBase.cs | |||
@@ -63,7 +63,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
63 | get { return m_name; } | 63 | get { return m_name; } |
64 | set { m_name = value; } | 64 | set { m_name = value; } |
65 | } | 65 | } |
66 | 66 | ||
67 | /// <summary> | 67 | /// <summary> |
68 | /// Signals whether this group was in a scene but has since been deleted from it. | 68 | /// Signals whether this group was in a scene but has since been deleted from it. |
69 | /// </summary> | 69 | /// </summary> |
@@ -71,7 +71,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
71 | { | 71 | { |
72 | get { return m_isDeleted; } | 72 | get { return m_isDeleted; } |
73 | } | 73 | } |
74 | protected bool m_isDeleted; | 74 | protected bool m_isDeleted; |
75 | 75 | ||
76 | protected LLVector3 m_pos; | 76 | protected LLVector3 m_pos; |
77 | 77 | ||
diff --git a/OpenSim/Region/Environment/Scenes/EventManager.cs b/OpenSim/Region/Environment/Scenes/EventManager.cs index 2b1adee..1dd2273 100644 --- a/OpenSim/Region/Environment/Scenes/EventManager.cs +++ b/OpenSim/Region/Environment/Scenes/EventManager.cs | |||
@@ -131,13 +131,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
131 | 131 | ||
132 | public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel; | 132 | public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel; |
133 | 133 | ||
134 | |||
135 | public delegate void SignificantClientMovement(IClientAPI remote_client); | 134 | public delegate void SignificantClientMovement(IClientAPI remote_client); |
136 | 135 | ||
137 | public event SignificantClientMovement OnSignificantClientMovement; | 136 | public event SignificantClientMovement OnSignificantClientMovement; |
138 | 137 | ||
139 | |||
140 | |||
141 | public delegate void NewGridInstantMessage(GridInstantMessage message); | 138 | public delegate void NewGridInstantMessage(GridInstantMessage message); |
142 | 139 | ||
143 | public event NewGridInstantMessage OnGridInstantMessageToIMModule; | 140 | public event NewGridInstantMessage OnGridInstantMessageToIMModule; |
@@ -163,7 +160,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
163 | public event ScriptAtTargetEvent OnScriptAtTargetEvent; | 160 | public event ScriptAtTargetEvent OnScriptAtTargetEvent; |
164 | 161 | ||
165 | public delegate void ScriptNotAtTargetEvent(uint localID); | 162 | public delegate void ScriptNotAtTargetEvent(uint localID); |
166 | 163 | ||
167 | public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; | 164 | public event ScriptNotAtTargetEvent OnScriptNotAtTargetEvent; |
168 | 165 | ||
169 | public delegate void ScriptColliding(uint localID, ColliderArgs colliders); | 166 | public delegate void ScriptColliding(uint localID, ColliderArgs colliders); |
@@ -172,8 +169,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
172 | public event ScriptColliding OnScriptColliding; | 169 | public event ScriptColliding OnScriptColliding; |
173 | public event ScriptColliding OnScriptCollidingEnd; | 170 | public event ScriptColliding OnScriptCollidingEnd; |
174 | 171 | ||
175 | |||
176 | |||
177 | public delegate void OnMakeChildAgentDelegate(ScenePresence presence); | 172 | public delegate void OnMakeChildAgentDelegate(ScenePresence presence); |
178 | public event OnMakeChildAgentDelegate OnMakeChildAgent; | 173 | public event OnMakeChildAgentDelegate OnMakeChildAgent; |
179 | 174 | ||
@@ -289,7 +284,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
289 | public int transactionID = 0; | 284 | public int transactionID = 0; |
290 | public int amountDebited = 0; | 285 | public int amountDebited = 0; |
291 | 286 | ||
292 | |||
293 | public LandBuyArgs(LLUUID pagentId, LLUUID pgroupId, bool pfinal, bool pgroupOwned, | 287 | public LandBuyArgs(LLUUID pagentId, LLUUID pgroupId, bool pfinal, bool pgroupOwned, |
294 | bool premoveContribution, int pparcelLocalID, int pparcelArea, int pparcelPrice, | 288 | bool premoveContribution, int pparcelLocalID, int pparcelArea, int pparcelPrice, |
295 | bool pauthenticated) | 289 | bool pauthenticated) |
@@ -306,8 +300,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
306 | } | 300 | } |
307 | } | 301 | } |
308 | 302 | ||
309 | |||
310 | |||
311 | public delegate void MoneyTransferEvent(Object sender, MoneyTransferArgs e); | 303 | public delegate void MoneyTransferEvent(Object sender, MoneyTransferArgs e); |
312 | 304 | ||
313 | public delegate void LandBuy(Object sender, LandBuyArgs e); | 305 | public delegate void LandBuy(Object sender, LandBuyArgs e); |
@@ -377,7 +369,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
377 | private ScriptColliding handlerColliding = null; | 369 | private ScriptColliding handlerColliding = null; |
378 | private ScriptColliding handlerCollidingEnd = null; | 370 | private ScriptColliding handlerCollidingEnd = null; |
379 | 371 | ||
380 | |||
381 | private SunLindenHour handlerSunGetLindenHour = null; | 372 | private SunLindenHour handlerSunGetLindenHour = null; |
382 | 373 | ||
383 | public void TriggerOnScriptChangedEvent(uint localID, uint change) | 374 | public void TriggerOnScriptChangedEvent(uint localID, uint change) |
@@ -491,7 +482,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
491 | if (handlerObjectBeingRemovedFromScene != null) | 482 | if (handlerObjectBeingRemovedFromScene != null) |
492 | { | 483 | { |
493 | handlerObjectBeingRemovedFromScene(obj); | 484 | handlerObjectBeingRemovedFromScene(obj); |
494 | |||
495 | } | 485 | } |
496 | } | 486 | } |
497 | 487 | ||
@@ -641,7 +631,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
641 | { | 631 | { |
642 | handlerGridInstantMessageToFriends(message); | 632 | handlerGridInstantMessageToFriends(message); |
643 | } | 633 | } |
644 | |||
645 | } | 634 | } |
646 | } | 635 | } |
647 | 636 | ||
@@ -698,7 +687,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
698 | handlerNewInventoryItemUpdateComplete(agentID, AssetID, AssetName, userlevel); | 687 | handlerNewInventoryItemUpdateComplete(agentID, AssetID, AssetName, userlevel); |
699 | } | 688 | } |
700 | } | 689 | } |
701 | public void TriggerLandBuy (Object sender, LandBuyArgs e) | 690 | |
691 | public void TriggerLandBuy(Object sender, LandBuyArgs e) | ||
702 | { | 692 | { |
703 | handlerLandBuy = OnLandBuy; | 693 | handlerLandBuy = OnLandBuy; |
704 | if (handlerLandBuy != null) | 694 | if (handlerLandBuy != null) |
@@ -706,6 +696,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
706 | handlerLandBuy(sender, e); | 696 | handlerLandBuy(sender, e); |
707 | } | 697 | } |
708 | } | 698 | } |
699 | |||
709 | public void TriggerValidateLandBuy(Object sender, LandBuyArgs e) | 700 | public void TriggerValidateLandBuy(Object sender, LandBuyArgs e) |
710 | { | 701 | { |
711 | handlerValidateLandBuy = OnValidateLandBuy; | 702 | handlerValidateLandBuy = OnValidateLandBuy; |
@@ -741,6 +732,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
741 | handlerRequestChangeWaterHeight(height); | 732 | handlerRequestChangeWaterHeight(height); |
742 | } | 733 | } |
743 | } | 734 | } |
735 | |||
744 | public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar) | 736 | public void TriggerAvatarKill(uint KillerObjectLocalID, ScenePresence DeadAvatar) |
745 | { | 737 | { |
746 | handlerAvatarKill = OnAvatarKilled; | 738 | handlerAvatarKill = OnAvatarKilled; |
@@ -756,7 +748,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
756 | if (handlerSignificantClientMovement != null) | 748 | if (handlerSignificantClientMovement != null) |
757 | { | 749 | { |
758 | handlerSignificantClientMovement(client); | 750 | handlerSignificantClientMovement(client); |
759 | |||
760 | } | 751 | } |
761 | } | 752 | } |
762 | 753 | ||
@@ -787,7 +778,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
787 | } | 778 | } |
788 | } | 779 | } |
789 | 780 | ||
790 | |||
791 | public void TriggerNoticeNoLandDataFromStorage() | 781 | public void TriggerNoticeNoLandDataFromStorage() |
792 | { | 782 | { |
793 | handlerNoticeNoLandDataFromStorage = OnNoticeNoLandDataFromStorage; | 783 | handlerNoticeNoLandDataFromStorage = OnNoticeNoLandDataFromStorage; |
@@ -818,26 +808,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
818 | } | 808 | } |
819 | } | 809 | } |
820 | 810 | ||
821 | |||
822 | |||
823 | public void TriggerRequestParcelPrimCountUpdate() | 811 | public void TriggerRequestParcelPrimCountUpdate() |
824 | { | 812 | { |
825 | handlerRequestParcelPrimCountUpdate = OnRequestParcelPrimCountUpdate; | 813 | handlerRequestParcelPrimCountUpdate = OnRequestParcelPrimCountUpdate; |
826 | if (handlerRequestParcelPrimCountUpdate != null) | 814 | if (handlerRequestParcelPrimCountUpdate != null) |
827 | { | 815 | { |
828 | handlerRequestParcelPrimCountUpdate(); | 816 | handlerRequestParcelPrimCountUpdate(); |
829 | |||
830 | } | 817 | } |
831 | } | 818 | } |
819 | |||
832 | public void TriggerParcelPrimCountTainted() | 820 | public void TriggerParcelPrimCountTainted() |
833 | { | 821 | { |
834 | handlerParcelPrimCountTainted = OnParcelPrimCountTainted; | 822 | handlerParcelPrimCountTainted = OnParcelPrimCountTainted; |
835 | if (handlerParcelPrimCountTainted != null) | 823 | if (handlerParcelPrimCountTainted != null) |
836 | { | 824 | { |
837 | handlerParcelPrimCountTainted(); | 825 | handlerParcelPrimCountTainted(); |
838 | |||
839 | } | 826 | } |
840 | } | 827 | } |
828 | |||
841 | // this lets us keep track of nasty script events like timer, etc. | 829 | // this lets us keep track of nasty script events like timer, etc. |
842 | public void TriggerTimerEvent(uint objLocalID, double Interval) | 830 | public void TriggerTimerEvent(uint objLocalID, double Interval) |
843 | { | 831 | { |
@@ -845,9 +833,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
845 | if (handlerScriptTimerEvent != null) | 833 | if (handlerScriptTimerEvent != null) |
846 | { | 834 | { |
847 | handlerScriptTimerEvent(objLocalID, Interval); | 835 | handlerScriptTimerEvent(objLocalID, Interval); |
848 | |||
849 | } | 836 | } |
850 | |||
851 | } | 837 | } |
852 | 838 | ||
853 | public void TriggerEstateToolsTimeUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float LindenHour) | 839 | public void TriggerEstateToolsTimeUpdate(ulong regionHandle, bool FixedTime, bool useEstateTime, float LindenHour) |
@@ -875,19 +861,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
875 | if (handlerCollidingStart != null) | 861 | if (handlerCollidingStart != null) |
876 | handlerCollidingStart(localId, colliders); | 862 | handlerCollidingStart(localId, colliders); |
877 | } | 863 | } |
864 | |||
878 | public void TriggerScriptColliding(uint localId, ColliderArgs colliders) | 865 | public void TriggerScriptColliding(uint localId, ColliderArgs colliders) |
879 | { | 866 | { |
880 | |||
881 | handlerColliding = OnScriptColliding; | 867 | handlerColliding = OnScriptColliding; |
882 | if (handlerColliding != null) | 868 | if (handlerColliding != null) |
883 | handlerColliding(localId, colliders); | 869 | handlerColliding(localId, colliders); |
884 | } | 870 | } |
871 | |||
885 | public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders) | 872 | public void TriggerScriptCollidingEnd(uint localId, ColliderArgs colliders) |
886 | { | 873 | { |
887 | handlerCollidingEnd = OnScriptCollidingEnd; | 874 | handlerCollidingEnd = OnScriptCollidingEnd; |
888 | if (handlerCollidingEnd != null) | 875 | if (handlerCollidingEnd != null) |
889 | handlerCollidingEnd(localId, colliders); | 876 | handlerCollidingEnd(localId, colliders); |
890 | } | 877 | } |
891 | |||
892 | } | 878 | } |
893 | } | 879 | } |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 3021891..6695dbf 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -96,7 +96,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
96 | // Then we've got to remove the previous | 96 | // Then we've got to remove the previous |
97 | // event handler | 97 | // event handler |
98 | 98 | ||
99 | if (_PhyScene != null) | 99 | if (_PhyScene != null) |
100 | _PhyScene.OnPhysicsCrash -= physicsBasedCrash; | 100 | _PhyScene.OnPhysicsCrash -= physicsBasedCrash; |
101 | 101 | ||
102 | _PhyScene = value; | 102 | _PhyScene = value; |
@@ -194,7 +194,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
194 | /// </param> | 194 | /// </param> |
195 | /// <returns> | 195 | /// <returns> |
196 | /// true if the object was added, false if an object with the same uuid was already in the scene | 196 | /// true if the object was added, false if an object with the same uuid was already in the scene |
197 | /// </returns> | 197 | /// </returns> |
198 | protected internal bool AddRestoredSceneObject( | 198 | protected internal bool AddRestoredSceneObject( |
199 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted) | 199 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted) |
200 | { | 200 | { |
@@ -205,7 +205,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
205 | { | 205 | { |
206 | part.LocalId = m_parentScene.PrimIDAllocate(); | 206 | part.LocalId = m_parentScene.PrimIDAllocate(); |
207 | } | 207 | } |
208 | 208 | ||
209 | sceneObject.UpdateParentIDs(); | 209 | sceneObject.UpdateParentIDs(); |
210 | 210 | ||
211 | if (!alreadyPersisted) | 211 | if (!alreadyPersisted) |
@@ -213,10 +213,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
213 | sceneObject.ForceInventoryPersistence(); | 213 | sceneObject.ForceInventoryPersistence(); |
214 | sceneObject.HasGroupChanged = true; | 214 | sceneObject.HasGroupChanged = true; |
215 | } | 215 | } |
216 | 216 | ||
217 | return AddSceneObject(sceneObject, attachToBackup); | 217 | return AddSceneObject(sceneObject, attachToBackup); |
218 | } | 218 | } |
219 | 219 | ||
220 | /// <summary> | 220 | /// <summary> |
221 | /// Add a newly created object to the scene. This will both update the scene, and send information about the | 221 | /// Add a newly created object to the scene. This will both update the scene, and send information about the |
222 | /// new object to all clients interested in the scene. | 222 | /// new object to all clients interested in the scene. |
@@ -228,12 +228,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
228 | /// </param> | 228 | /// </param> |
229 | /// <returns> | 229 | /// <returns> |
230 | /// true if the object was added, false if an object with the same uuid was already in the scene | 230 | /// true if the object was added, false if an object with the same uuid was already in the scene |
231 | /// </returns> | 231 | /// </returns> |
232 | protected internal bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup) | 232 | protected internal bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup) |
233 | { | 233 | { |
234 | // Ensure that we persist this new scene object | 234 | // Ensure that we persist this new scene object |
235 | sceneObject.HasGroupChanged = true; | 235 | sceneObject.HasGroupChanged = true; |
236 | 236 | ||
237 | return AddSceneObject(sceneObject, attachToBackup); | 237 | return AddSceneObject(sceneObject, attachToBackup); |
238 | } | 238 | } |
239 | 239 | ||
@@ -252,7 +252,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
252 | { | 252 | { |
253 | sceneObject.ApplyPhysics(m_parentScene.m_physicalPrim); | 253 | sceneObject.ApplyPhysics(m_parentScene.m_physicalPrim); |
254 | sceneObject.ScheduleGroupForFullUpdate(); | 254 | sceneObject.ScheduleGroupForFullUpdate(); |
255 | 255 | ||
256 | lock (Entities) | 256 | lock (Entities) |
257 | { | 257 | { |
258 | if (!Entities.ContainsKey(sceneObject.UUID)) | 258 | if (!Entities.ContainsKey(sceneObject.UUID)) |
@@ -261,8 +261,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
261 | Entities.Add(sceneObject.UUID, sceneObject); | 261 | Entities.Add(sceneObject.UUID, sceneObject); |
262 | m_numPrim += sceneObject.Children.Count; | 262 | m_numPrim += sceneObject.Children.Count; |
263 | 263 | ||
264 | if (attachToBackup) | 264 | if (attachToBackup) |
265 | sceneObject.AttachToBackup(); | 265 | sceneObject.AttachToBackup(); |
266 | 266 | ||
267 | return true; | 267 | return true; |
268 | } | 268 | } |
@@ -342,7 +342,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
342 | "[INNER SCENE]: Failed to update {0}, {1} - {2}", entity.Name, entity.UUID, e); | 342 | "[INNER SCENE]: Failed to update {0}, {1} - {2}", entity.Name, entity.UUID, e); |
343 | } | 343 | } |
344 | } | 344 | } |
345 | 345 | ||
346 | m_updateList.Clear(); | 346 | m_updateList.Clear(); |
347 | } | 347 | } |
348 | } | 348 | } |
@@ -555,7 +555,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
555 | protected internal void AddScenePresence(ScenePresence presence) | 555 | protected internal void AddScenePresence(ScenePresence presence) |
556 | { | 556 | { |
557 | bool child = presence.IsChildAgent; | 557 | bool child = presence.IsChildAgent; |
558 | 558 | ||
559 | if (child) | 559 | if (child) |
560 | { | 560 | { |
561 | m_numChildAgents++; | 561 | m_numChildAgents++; |
@@ -598,7 +598,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
598 | { | 598 | { |
599 | if (!ScenePresences.Remove(agentID)) | 599 | if (!ScenePresences.Remove(agentID)) |
600 | { | 600 | { |
601 | m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID); | 601 | m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID); |
602 | } | 602 | } |
603 | // else | 603 | // else |
604 | // { | 604 | // { |
@@ -774,7 +774,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
774 | /// Get a scene object group that contains the prim with the given uuid | 774 | /// Get a scene object group that contains the prim with the given uuid |
775 | /// </summary> | 775 | /// </summary> |
776 | /// <param name="fullID"></param> | 776 | /// <param name="fullID"></param> |
777 | /// <returns>null if no scene object group containing that prim is found</returns> | 777 | /// <returns>null if no scene object group containing that prim is found</returns> |
778 | private SceneObjectGroup GetGroupByPrim(LLUUID fullID) | 778 | private SceneObjectGroup GetGroupByPrim(LLUUID fullID) |
779 | { | 779 | { |
780 | List<EntityBase> EntityList = GetEntities(); | 780 | List<EntityBase> EntityList = GetEntities(); |
@@ -823,7 +823,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
823 | protected internal SceneObjectPart GetSceneObjectPart(uint localID) | 823 | protected internal SceneObjectPart GetSceneObjectPart(uint localID) |
824 | { | 824 | { |
825 | SceneObjectGroup group = GetGroupByPrim(localID); | 825 | SceneObjectGroup group = GetGroupByPrim(localID); |
826 | 826 | ||
827 | if (group != null) | 827 | if (group != null) |
828 | return group.GetChildPart(localID); | 828 | return group.GetChildPart(localID); |
829 | else | 829 | else |
@@ -834,7 +834,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
834 | /// Get a part contained in this scene. | 834 | /// Get a part contained in this scene. |
835 | /// </summary> | 835 | /// </summary> |
836 | /// <param name="fullID"></param> | 836 | /// <param name="fullID"></param> |
837 | /// <returns>null if the part was not found</returns> | 837 | /// <returns>null if the part was not found</returns> |
838 | protected internal SceneObjectPart GetSceneObjectPart(LLUUID fullID) | 838 | protected internal SceneObjectPart GetSceneObjectPart(LLUUID fullID) |
839 | { | 839 | { |
840 | SceneObjectGroup group = GetGroupByPrim(fullID); | 840 | SceneObjectGroup group = GetGroupByPrim(fullID); |
@@ -1089,7 +1089,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1089 | group.SendGroupTerseUpdate(); | 1089 | group.SendGroupTerseUpdate(); |
1090 | return; | 1090 | return; |
1091 | } | 1091 | } |
1092 | 1092 | ||
1093 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.RootPart.IsAttachment) | 1093 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.RootPart.IsAttachment) |
1094 | { | 1094 | { |
1095 | group.UpdateSinglePosition(pos, localID); | 1095 | group.UpdateSinglePosition(pos, localID); |
@@ -1119,7 +1119,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1119 | if (!m_parentScene.ExternalChecks.ExternalChecksCanObjectEntry(group.UUID,pos) && !group.RootPart.IsAttachment) | 1119 | if (!m_parentScene.ExternalChecks.ExternalChecksCanObjectEntry(group.UUID,pos) && !group.RootPart.IsAttachment) |
1120 | { | 1120 | { |
1121 | group.SendGroupTerseUpdate(); | 1121 | group.SendGroupTerseUpdate(); |
1122 | 1122 | ||
1123 | return; | 1123 | return; |
1124 | } | 1124 | } |
1125 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.RootPart.IsAttachment) | 1125 | if (m_parentScene.ExternalChecks.ExternalChecksCanMoveObject(group.UUID, remoteClient.AgentId) || group.RootPart.IsAttachment) |
@@ -1397,14 +1397,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1397 | if (sendEvents) | 1397 | if (sendEvents) |
1398 | parenPrim.TriggerScriptChangedEvent(Changed.LINK); | 1398 | parenPrim.TriggerScriptChangedEvent(Changed.LINK); |
1399 | } | 1399 | } |
1400 | else | 1400 | else |
1401 | { | 1401 | { |
1402 | // The link set has prims remaining. This path is taken | 1402 | // The link set has prims remaining. This path is taken |
1403 | // when a subset of a link set's prims are selected | 1403 | // when a subset of a link set's prims are selected |
1404 | // and the root prim is part of that selection | 1404 | // and the root prim is part of that selection |
1405 | // | 1405 | // |
1406 | List<SceneObjectPart> parts = new List<SceneObjectPart>(parenPrim.Children.Values); | 1406 | List<SceneObjectPart> parts = new List<SceneObjectPart>(parenPrim.Children.Values); |
1407 | 1407 | ||
1408 | List<uint> unlink_ids = new List<uint>(); | 1408 | List<uint> unlink_ids = new List<uint>(); |
1409 | foreach (SceneObjectPart unlink_part in parts) | 1409 | foreach (SceneObjectPart unlink_part in parts) |
1410 | unlink_ids.Add(unlink_part.LocalId); | 1410 | unlink_ids.Add(unlink_part.LocalId); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index fe66dd5..0148d76 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -242,9 +242,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
242 | 242 | ||
243 | // Retrieve item | 243 | // Retrieve item |
244 | TaskInventoryItem item = group.GetInventoryItem(part.LocalId, itemId); | 244 | TaskInventoryItem item = group.GetInventoryItem(part.LocalId, itemId); |
245 | 245 | ||
246 | if (null == item) | 246 | if (null == item) |
247 | { | 247 | { |
248 | m_log.ErrorFormat( | 248 | m_log.ErrorFormat( |
249 | "[PRIM INVENTORY]: Tried to retrieve item ID {0} from prim {1}, {2} for caps script update " | 249 | "[PRIM INVENTORY]: Tried to retrieve item ID {0} from prim {1}, {2} for caps script update " |
250 | + " but the item does not exist in this inventory", | 250 | + " but the item does not exist in this inventory", |
@@ -338,7 +338,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
338 | item.CreationDate = Util.UnixTimeSinceEpoch(); | 338 | item.CreationDate = Util.UnixTimeSinceEpoch(); |
339 | else | 339 | else |
340 | item.CreationDate = itemUpd.CreationDate; | 340 | item.CreationDate = itemUpd.CreationDate; |
341 | |||
342 | 341 | ||
343 | // TODO: Check if folder changed and move item | 342 | // TODO: Check if folder changed and move item |
344 | //item.NextPermissions = itemUpd.Folder; | 343 | //item.NextPermissions = itemUpd.Folder; |
@@ -577,7 +576,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
577 | asset.Type = assetType; | 576 | asset.Type = assetType; |
578 | asset.FullID = LLUUID.Random(); | 577 | asset.FullID = LLUUID.Random(); |
579 | asset.Data = (data == null) ? new byte[1] : data; | 578 | asset.Data = (data == null) ? new byte[1] : data; |
580 | 579 | ||
581 | return asset; | 580 | return asset; |
582 | } | 581 | } |
583 | 582 | ||
@@ -958,7 +957,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
958 | agentItem.Folder = folderId; | 957 | agentItem.Folder = folderId; |
959 | AddInventoryItem(remoteClient, agentItem); | 958 | AddInventoryItem(remoteClient, agentItem); |
960 | } | 959 | } |
961 | 960 | ||
962 | /// <summary> | 961 | /// <summary> |
963 | /// <see>ClientMoveTaskInventoryItem</see> | 962 | /// <see>ClientMoveTaskInventoryItem</see> |
964 | /// </summary> | 963 | /// </summary> |
@@ -981,13 +980,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
981 | } | 980 | } |
982 | 981 | ||
983 | TaskInventoryItem taskItem = part.GetInventoryItem(itemId); | 982 | TaskInventoryItem taskItem = part.GetInventoryItem(itemId); |
984 | 983 | ||
985 | if (null == taskItem) | 984 | if (null == taskItem) |
986 | { | 985 | { |
987 | m_log.WarnFormat("[PRIM INVENTORY]: Move of inventory item {0} from prim with local id {1} failed" | 986 | m_log.WarnFormat("[PRIM INVENTORY]: Move of inventory item {0} from prim with local id {1} failed" |
988 | + " because the inventory item could not be found", | 987 | + " because the inventory item could not be found", |
989 | itemId, primLocalId); | 988 | itemId, primLocalId); |
990 | 989 | ||
991 | return; | 990 | return; |
992 | } | 991 | } |
993 | 992 | ||
@@ -997,7 +996,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
997 | 996 | ||
998 | MoveTaskInventoryItem(remoteClient, folderId, part, itemId); | 997 | MoveTaskInventoryItem(remoteClient, folderId, part, itemId); |
999 | } | 998 | } |
1000 | 999 | ||
1001 | /// <summary> | 1000 | /// <summary> |
1002 | /// <see>MoveTaskInventoryItem</see> | 1001 | /// <see>MoveTaskInventoryItem</see> |
1003 | /// </summary> | 1002 | /// </summary> |
@@ -1029,7 +1028,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1029 | AddInventoryItem(avatarId, agentItem); | 1028 | AddInventoryItem(avatarId, agentItem); |
1030 | } | 1029 | } |
1031 | } | 1030 | } |
1032 | 1031 | ||
1033 | /// <summary> | 1032 | /// <summary> |
1034 | /// Copy a task (prim) inventory item to another task (prim) | 1033 | /// Copy a task (prim) inventory item to another task (prim) |
1035 | /// </summary> | 1034 | /// </summary> |
@@ -1049,7 +1048,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1049 | 1048 | ||
1050 | return; | 1049 | return; |
1051 | } | 1050 | } |
1052 | 1051 | ||
1053 | SceneObjectPart destPart = GetSceneObjectPart(destId); | 1052 | SceneObjectPart destPart = GetSceneObjectPart(destId); |
1054 | 1053 | ||
1055 | if (destPart == null) | 1054 | if (destPart == null) |
@@ -1060,7 +1059,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1060 | destId); | 1059 | destId); |
1061 | return; | 1060 | return; |
1062 | } | 1061 | } |
1063 | 1062 | ||
1064 | if (part.OwnerID != destPart.OwnerID && (part.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.AllowInventoryDrop) == 0) | 1063 | if (part.OwnerID != destPart.OwnerID && (part.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.AllowInventoryDrop) == 0) |
1065 | { | 1064 | { |
1066 | // object cannot copy items to an object owned by a different owner | 1065 | // object cannot copy items to an object owned by a different owner |
@@ -1076,7 +1075,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1076 | } | 1075 | } |
1077 | 1076 | ||
1078 | TaskInventoryItem destTaskItem = new TaskInventoryItem(); | 1077 | TaskInventoryItem destTaskItem = new TaskInventoryItem(); |
1079 | 1078 | ||
1080 | destTaskItem.ItemID = LLUUID.Random(); | 1079 | destTaskItem.ItemID = LLUUID.Random(); |
1081 | destTaskItem.CreatorID = srcTaskItem.CreatorID; | 1080 | destTaskItem.CreatorID = srcTaskItem.CreatorID; |
1082 | destTaskItem.AssetID = srcTaskItem.AssetID; | 1081 | destTaskItem.AssetID = srcTaskItem.AssetID; |
@@ -1091,7 +1090,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1091 | destTaskItem.CurrentPermissions = srcTaskItem.CurrentPermissions; | 1090 | destTaskItem.CurrentPermissions = srcTaskItem.CurrentPermissions; |
1092 | destTaskItem.NextPermissions = srcTaskItem.NextPermissions; | 1091 | destTaskItem.NextPermissions = srcTaskItem.NextPermissions; |
1093 | destTaskItem.Flags = srcTaskItem.Flags; | 1092 | destTaskItem.Flags = srcTaskItem.Flags; |
1094 | 1093 | ||
1095 | if (destPart.OwnerID != part.OwnerID) | 1094 | if (destPart.OwnerID != part.OwnerID) |
1096 | { | 1095 | { |
1097 | if (ExternalChecks.ExternalChecksPropagatePermissions()) | 1096 | if (ExternalChecks.ExternalChecksPropagatePermissions()) |
@@ -1112,20 +1111,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
1112 | destTaskItem.Name = srcTaskItem.Name; | 1111 | destTaskItem.Name = srcTaskItem.Name; |
1113 | destTaskItem.InvType = srcTaskItem.InvType; | 1112 | destTaskItem.InvType = srcTaskItem.InvType; |
1114 | destTaskItem.Type = srcTaskItem.Type; | 1113 | destTaskItem.Type = srcTaskItem.Type; |
1115 | 1114 | ||
1116 | destPart.AddInventoryItem(destTaskItem); | 1115 | destPart.AddInventoryItem(destTaskItem); |
1117 | 1116 | ||
1118 | if ((srcTaskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) | 1117 | if ((srcTaskItem.CurrentPermissions & (uint)PermissionMask.Copy) == 0) |
1119 | part.RemoveInventoryItem(itemId); | 1118 | part.RemoveInventoryItem(itemId); |
1120 | 1119 | ||
1121 | ScenePresence avatar; | 1120 | ScenePresence avatar; |
1122 | 1121 | ||
1123 | if (TryGetAvatar(srcTaskItem.OwnerID, out avatar)) | 1122 | if (TryGetAvatar(srcTaskItem.OwnerID, out avatar)) |
1124 | { | 1123 | { |
1125 | destPart.GetProperties(avatar.ControllingClient); | 1124 | destPart.GetProperties(avatar.ControllingClient); |
1126 | } | 1125 | } |
1127 | } | 1126 | } |
1128 | 1127 | ||
1129 | public void MoveTaskInventoryItems(LLUUID destID, string category, SceneObjectPart host, List<LLUUID> items) | 1128 | public void MoveTaskInventoryItems(LLUUID destID, string category, SceneObjectPart host, List<LLUUID> items) |
1130 | { | 1129 | { |
1131 | CachedUserInfo profile = CommsManager.UserProfileCacheService.GetUserDetails(destID); | 1130 | CachedUserInfo profile = CommsManager.UserProfileCacheService.GetUserDetails(destID); |
@@ -1139,7 +1138,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1139 | } | 1138 | } |
1140 | 1139 | ||
1141 | LLUUID newFolderID = LLUUID.Random(); | 1140 | LLUUID newFolderID = LLUUID.Random(); |
1142 | 1141 | ||
1143 | profile.CreateFolder(category, newFolderID, 0xffff, profile.RootFolder.ID); | 1142 | profile.CreateFolder(category, newFolderID, 0xffff, profile.RootFolder.ID); |
1144 | 1143 | ||
1145 | foreach (LLUUID itemID in items) | 1144 | foreach (LLUUID itemID in items) |
@@ -1346,7 +1345,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1346 | 1345 | ||
1347 | part.AddInventoryItem(taskItem); | 1346 | part.AddInventoryItem(taskItem); |
1348 | part.GetProperties(remoteClient); | 1347 | part.GetProperties(remoteClient); |
1349 | 1348 | ||
1350 | part.CreateScriptInstance(taskItem, 0, false); | 1349 | part.CreateScriptInstance(taskItem, 0, false); |
1351 | } | 1350 | } |
1352 | } | 1351 | } |
@@ -1370,7 +1369,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1370 | 1369 | ||
1371 | return; | 1370 | return; |
1372 | } | 1371 | } |
1373 | 1372 | ||
1374 | SceneObjectPart destPart = GetSceneObjectPart(destId); | 1373 | SceneObjectPart destPart = GetSceneObjectPart(destId); |
1375 | 1374 | ||
1376 | if (destPart == null) | 1375 | if (destPart == null) |
@@ -1381,7 +1380,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1381 | destId); | 1380 | destId); |
1382 | return; | 1381 | return; |
1383 | } | 1382 | } |
1384 | 1383 | ||
1385 | // Must own the object, and have modify rights | 1384 | // Must own the object, and have modify rights |
1386 | if (srcPart.OwnerID != destPart.OwnerID) | 1385 | if (srcPart.OwnerID != destPart.OwnerID) |
1387 | return; | 1386 | return; |
@@ -1395,14 +1394,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1395 | "[PRIM INVENTORY]: " + | 1394 | "[PRIM INVENTORY]: " + |
1396 | "Script in object {0} : {1}, attempted to load script {2} : {3} into object {4} : {5} with invalid pin {6}", | 1395 | "Script in object {0} : {1}, attempted to load script {2} : {3} into object {4} : {5} with invalid pin {6}", |
1397 | srcPart.Name, srcId, srcTaskItem.Name, srcTaskItem.ItemID, destPart.Name, destId, pin); | 1396 | srcPart.Name, srcId, srcTaskItem.Name, srcTaskItem.ItemID, destPart.Name, destId, pin); |
1398 | // the LSL Wiki says we are supposed to shout on the DEBUG_CHANNEL - | 1397 | // the LSL Wiki says we are supposed to shout on the DEBUG_CHANNEL - |
1399 | // "Object: Task Object trying to illegally load script onto task Other_Object!" | 1398 | // "Object: Task Object trying to illegally load script onto task Other_Object!" |
1400 | // How do we shout from in here? | 1399 | // How do we shout from in here? |
1401 | return; | 1400 | return; |
1402 | } | 1401 | } |
1403 | 1402 | ||
1404 | TaskInventoryItem destTaskItem = new TaskInventoryItem(); | 1403 | TaskInventoryItem destTaskItem = new TaskInventoryItem(); |
1405 | 1404 | ||
1406 | destTaskItem.ItemID = LLUUID.Random(); | 1405 | destTaskItem.ItemID = LLUUID.Random(); |
1407 | destTaskItem.CreatorID = srcTaskItem.CreatorID; | 1406 | destTaskItem.CreatorID = srcTaskItem.CreatorID; |
1408 | destTaskItem.AssetID = srcTaskItem.AssetID; | 1407 | destTaskItem.AssetID = srcTaskItem.AssetID; |
@@ -1417,7 +1416,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1417 | destTaskItem.CurrentPermissions = srcTaskItem.CurrentPermissions; | 1416 | destTaskItem.CurrentPermissions = srcTaskItem.CurrentPermissions; |
1418 | destTaskItem.NextPermissions = srcTaskItem.NextPermissions; | 1417 | destTaskItem.NextPermissions = srcTaskItem.NextPermissions; |
1419 | destTaskItem.Flags = srcTaskItem.Flags; | 1418 | destTaskItem.Flags = srcTaskItem.Flags; |
1420 | 1419 | ||
1421 | if (destPart.OwnerID != srcPart.OwnerID) | 1420 | if (destPart.OwnerID != srcPart.OwnerID) |
1422 | { | 1421 | { |
1423 | if (ExternalChecks.ExternalChecksPropagatePermissions()) | 1422 | if (ExternalChecks.ExternalChecksPropagatePermissions()) |
@@ -1438,22 +1437,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
1438 | destTaskItem.Name = srcTaskItem.Name; | 1437 | destTaskItem.Name = srcTaskItem.Name; |
1439 | destTaskItem.InvType = srcTaskItem.InvType; | 1438 | destTaskItem.InvType = srcTaskItem.InvType; |
1440 | destTaskItem.Type = srcTaskItem.Type; | 1439 | destTaskItem.Type = srcTaskItem.Type; |
1441 | 1440 | ||
1442 | destPart.AddInventoryItemExclusive(destTaskItem); | 1441 | destPart.AddInventoryItemExclusive(destTaskItem); |
1443 | 1442 | ||
1444 | if (running > 0) | 1443 | if (running > 0) |
1445 | { | 1444 | { |
1446 | destPart.CreateScriptInstance(destTaskItem, 0, false); | 1445 | destPart.CreateScriptInstance(destTaskItem, 0, false); |
1447 | } | 1446 | } |
1448 | 1447 | ||
1449 | ScenePresence avatar; | 1448 | ScenePresence avatar; |
1450 | 1449 | ||
1451 | if (TryGetAvatar(srcTaskItem.OwnerID, out avatar)) | 1450 | if (TryGetAvatar(srcTaskItem.OwnerID, out avatar)) |
1452 | { | 1451 | { |
1453 | destPart.GetProperties(avatar.ControllingClient); | 1452 | destPart.GetProperties(avatar.ControllingClient); |
1454 | } | 1453 | } |
1455 | } | 1454 | } |
1456 | 1455 | ||
1457 | /// <summary> | 1456 | /// <summary> |
1458 | /// Called when an object is removed from the environment into inventory. | 1457 | /// Called when an object is removed from the environment into inventory. |
1459 | /// </summary> | 1458 | /// </summary> |
@@ -1566,7 +1565,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1566 | private bool InventoryDeQueueAndDelete() | 1565 | private bool InventoryDeQueueAndDelete() |
1567 | { | 1566 | { |
1568 | DeleteToInventoryHolder x = null; | 1567 | DeleteToInventoryHolder x = null; |
1569 | 1568 | ||
1570 | try | 1569 | try |
1571 | { | 1570 | { |
1572 | lock (m_inventoryDeletes) | 1571 | lock (m_inventoryDeletes) |
@@ -1580,13 +1579,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1580 | return true; | 1579 | return true; |
1581 | } | 1580 | } |
1582 | } | 1581 | } |
1583 | } | 1582 | } |
1584 | catch(Exception e) | 1583 | catch(Exception e) |
1585 | { | 1584 | { |
1586 | // We can't put the object group details in here since the root part may have disappeared (which is where these sit). | 1585 | // We can't put the object group details in here since the root part may have disappeared (which is where these sit). |
1587 | // FIXME: This needs to be fixed. | 1586 | // FIXME: This needs to be fixed. |
1588 | m_log.ErrorFormat( | 1587 | m_log.ErrorFormat( |
1589 | "[AGENT INVENTORY]: Queued deletion of scene object to agent {0} {1} failed: {2}", | 1588 | "[AGENT INVENTORY]: Queued deletion of scene object to agent {0} {1} failed: {2}", |
1590 | (x != null ? x.remoteClient.Name : "unavailable"), (x != null ? x.remoteClient.AgentId : "unavailable"), e.ToString()); | 1589 | (x != null ? x.remoteClient.Name : "unavailable"), (x != null ? x.remoteClient.AgentId : "unavailable"), e.ToString()); |
1591 | } | 1590 | } |
1592 | 1591 | ||
@@ -1745,7 +1744,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1745 | } | 1744 | } |
1746 | } | 1745 | } |
1747 | } | 1746 | } |
1748 | 1747 | ||
1749 | AssetBase asset = CreateAsset( | 1748 | AssetBase asset = CreateAsset( |
1750 | objectGroup.GetPartName(objectGroup.LocalId), | 1749 | objectGroup.GetPartName(objectGroup.LocalId), |
1751 | objectGroup.GetPartDescription(objectGroup.LocalId), | 1750 | objectGroup.GetPartDescription(objectGroup.LocalId), |
@@ -1792,7 +1791,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1792 | } | 1791 | } |
1793 | } | 1792 | } |
1794 | } | 1793 | } |
1795 | 1794 | ||
1796 | public LLUUID attachObjectAssetStore(IClientAPI remoteClient, SceneObjectGroup grp, LLUUID AgentId) | 1795 | public LLUUID attachObjectAssetStore(IClientAPI remoteClient, SceneObjectGroup grp, LLUUID AgentId) |
1797 | { | 1796 | { |
1798 | SceneObjectGroup objectGroup = grp; | 1797 | SceneObjectGroup objectGroup = grp; |
@@ -2057,7 +2056,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2057 | /// <param name="param"></param> | 2056 | /// <param name="param"></param> |
2058 | /// <returns></returns> | 2057 | /// <returns></returns> |
2059 | public virtual SceneObjectGroup RezObject( | 2058 | public virtual SceneObjectGroup RezObject( |
2060 | SceneObjectPart sourcePart, TaskInventoryItem item, | 2059 | SceneObjectPart sourcePart, TaskInventoryItem item, |
2061 | LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param) | 2060 | LLVector3 pos, LLQuaternion rot, LLVector3 vel, int param) |
2062 | { | 2061 | { |
2063 | // Rez object | 2062 | // Rez object |
@@ -2142,10 +2141,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2142 | return rootPart.ParentGroup; | 2141 | return rootPart.ParentGroup; |
2143 | } | 2142 | } |
2144 | } | 2143 | } |
2145 | 2144 | ||
2146 | return null; | 2145 | return null; |
2147 | } | 2146 | } |
2148 | 2147 | ||
2149 | public virtual bool returnObjects(SceneObjectGroup[] returnobjects, LLUUID AgentId) | 2148 | public virtual bool returnObjects(SceneObjectGroup[] returnobjects, LLUUID AgentId) |
2150 | { | 2149 | { |
2151 | string message = ""; | 2150 | string message = ""; |
@@ -2218,7 +2217,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2218 | item.AssetType = asset.Type; | 2217 | item.AssetType = asset.Type; |
2219 | item.InvType = (int)InventoryType.Object; | 2218 | item.InvType = (int)InventoryType.Object; |
2220 | item.Folder = folderID; | 2219 | item.Folder = folderID; |
2221 | 2220 | ||
2222 | if ((AgentId != returnobjects[i].RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions()) | 2221 | if ((AgentId != returnobjects[i].RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions()) |
2223 | { | 2222 | { |
2224 | uint perms = returnobjects[i].GetEffectivePermissions(); | 2223 | uint perms = returnobjects[i].GetEffectivePermissions(); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index e8a8a78..474f062 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -74,11 +74,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
74 | public InnerScene m_innerScene; | 74 | public InnerScene m_innerScene; |
75 | 75 | ||
76 | /// <summary> | 76 | /// <summary> |
77 | /// The last allocated local prim id. When a new local id is requested, the next number in the sequence is | 77 | /// The last allocated local prim id. When a new local id is requested, the next number in the sequence is |
78 | /// dispenced. | 78 | /// dispenced. |
79 | /// </summary> | 79 | /// </summary> |
80 | private uint m_lastAllocatedLocalId = 720000; | 80 | private uint m_lastAllocatedLocalId = 720000; |
81 | 81 | ||
82 | private readonly Mutex _primAllocateMutex = new Mutex(false); | 82 | private readonly Mutex _primAllocateMutex = new Mutex(false); |
83 | 83 | ||
84 | private int m_timePhase = 24; | 84 | private int m_timePhase = 24; |
@@ -607,7 +607,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
607 | public override void Close() | 607 | public override void Close() |
608 | { | 608 | { |
609 | m_log.InfoFormat("[SCENE]: Closing down the single simulator: {0}", RegionInfo.RegionName); | 609 | m_log.InfoFormat("[SCENE]: Closing down the single simulator: {0}", RegionInfo.RegionName); |
610 | 610 | ||
611 | // Kick all ROOT agents with the message, 'The simulator is going down' | 611 | // Kick all ROOT agents with the message, 'The simulator is going down' |
612 | ForEachScenePresence(delegate(ScenePresence avatar) | 612 | ForEachScenePresence(delegate(ScenePresence avatar) |
613 | { | 613 | { |
@@ -765,7 +765,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
765 | if (m_frame % m_update_backup == 0) | 765 | if (m_frame % m_update_backup == 0) |
766 | { | 766 | { |
767 | UpdateStorageBackup(); | 767 | UpdateStorageBackup(); |
768 | 768 | ||
769 | } | 769 | } |
770 | 770 | ||
771 | if (m_frame % m_update_terrain == 0) | 771 | if (m_frame % m_update_terrain == 0) |
@@ -1112,7 +1112,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1112 | //X | 1112 | //X |
1113 | // . | 1113 | // . |
1114 | // | 1114 | // |
1115 | // Shade the terrain for shadows | 1115 | // Shade the terrain for shadows |
1116 | if ((x - 1 > 0) && (y - 1 > 0)) | 1116 | if ((x - 1 > 0) && (y - 1 > 0)) |
1117 | { | 1117 | { |
1118 | hfvalue = (float)hm[x, y]; | 1118 | hfvalue = (float)hm[x, y]; |
@@ -1133,7 +1133,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1133 | else if (hfdiff < -0.3f) | 1133 | else if (hfdiff < -0.3f) |
1134 | { | 1134 | { |
1135 | // We have to desaturate and blacken the land at the same time | 1135 | // We have to desaturate and blacken the land at the same time |
1136 | // we use floats, colors use bytes, so shrink are space down to | 1136 | // we use floats, colors use bytes, so shrink are space down to |
1137 | // 0-255 | 1137 | // 0-255 |
1138 | 1138 | ||
1139 | 1139 | ||
@@ -1429,13 +1429,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1429 | public void LazySaveGeneratedMaptile(byte[] data, bool temporary) | 1429 | public void LazySaveGeneratedMaptile(byte[] data, bool temporary) |
1430 | { | 1430 | { |
1431 | // Overwrites the local Asset cache with new maptile data | 1431 | // Overwrites the local Asset cache with new maptile data |
1432 | // Assets are single write, this causes the asset server to ignore this update, | 1432 | // Assets are single write, this causes the asset server to ignore this update, |
1433 | // but the local asset cache does not | 1433 | // but the local asset cache does not |
1434 | 1434 | ||
1435 | // this is on purpose! The net result of this is the region always has the most up to date | 1435 | // this is on purpose! The net result of this is the region always has the most up to date |
1436 | // map tile while protecting the (grid) asset database from bloat caused by a new asset each | 1436 | // map tile while protecting the (grid) asset database from bloat caused by a new asset each |
1437 | // time a mapimage is generated! | 1437 | // time a mapimage is generated! |
1438 | 1438 | ||
1439 | LLUUID lastMapRegionUUID = m_regInfo.lastMapUUID; | 1439 | LLUUID lastMapRegionUUID = m_regInfo.lastMapUUID; |
1440 | 1440 | ||
1441 | int lastMapRefresh = 0; | 1441 | int lastMapRefresh = 0; |
@@ -1711,7 +1711,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1711 | /// </param> | 1711 | /// </param> |
1712 | /// <returns> | 1712 | /// <returns> |
1713 | /// true if the object was added, false if an object with the same uuid was already in the scene | 1713 | /// true if the object was added, false if an object with the same uuid was already in the scene |
1714 | /// </returns> | 1714 | /// </returns> |
1715 | public bool AddRestoredSceneObject( | 1715 | public bool AddRestoredSceneObject( |
1716 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted) | 1716 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted) |
1717 | { | 1717 | { |
@@ -1739,15 +1739,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1739 | lock (Entities) | 1739 | lock (Entities) |
1740 | { | 1740 | { |
1741 | ICollection<EntityBase> entities = new List<EntityBase>(Entities.Values); | 1741 | ICollection<EntityBase> entities = new List<EntityBase>(Entities.Values); |
1742 | 1742 | ||
1743 | foreach (EntityBase e in entities) | 1743 | foreach (EntityBase e in entities) |
1744 | { | 1744 | { |
1745 | if (e is SceneObjectGroup) | 1745 | if (e is SceneObjectGroup) |
1746 | DeleteSceneObject((SceneObjectGroup)e); | 1746 | DeleteSceneObject((SceneObjectGroup)e); |
1747 | } | 1747 | } |
1748 | } | 1748 | } |
1749 | } | 1749 | } |
1750 | 1750 | ||
1751 | /// <summary> | 1751 | /// <summary> |
1752 | /// Delete the given object from the scene. | 1752 | /// Delete the given object from the scene. |
1753 | /// </summary> | 1753 | /// </summary> |
@@ -1791,8 +1791,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1791 | 1791 | ||
1792 | public void LoadPrimsFromXml(string fileName, bool newIdsFlag, LLVector3 loadOffset) | 1792 | public void LoadPrimsFromXml(string fileName, bool newIdsFlag, LLVector3 loadOffset) |
1793 | { | 1793 | { |
1794 | m_log.InfoFormat("[SCENE]: Loading prims in xml format to region {0} from {1}", RegionInfo.RegionName); | 1794 | m_log.InfoFormat("[SCENE]: Loading prims in xml format to region {0} from {1}", RegionInfo.RegionName); |
1795 | 1795 | ||
1796 | m_serialiser.LoadPrimsFromXml(this, fileName, newIdsFlag, loadOffset); | 1796 | m_serialiser.LoadPrimsFromXml(this, fileName, newIdsFlag, loadOffset); |
1797 | } | 1797 | } |
1798 | 1798 | ||
@@ -1805,29 +1805,29 @@ namespace OpenSim.Region.Environment.Scenes | |||
1805 | 1805 | ||
1806 | public void LoadPrimsFromXml2(string fileName) | 1806 | public void LoadPrimsFromXml2(string fileName) |
1807 | { | 1807 | { |
1808 | m_log.InfoFormat("[SCENE]: Loading prims in xml2 format to region {0} from {1}", RegionInfo.RegionName, fileName); | 1808 | m_log.InfoFormat("[SCENE]: Loading prims in xml2 format to region {0} from {1}", RegionInfo.RegionName, fileName); |
1809 | 1809 | ||
1810 | m_serialiser.LoadPrimsFromXml2(this, fileName); | 1810 | m_serialiser.LoadPrimsFromXml2(this, fileName); |
1811 | } | 1811 | } |
1812 | 1812 | ||
1813 | public void LoadPrimsFromXml2(TextReader reader, bool startScripts) | 1813 | public void LoadPrimsFromXml2(TextReader reader, bool startScripts) |
1814 | { | 1814 | { |
1815 | m_log.InfoFormat("[SCENE]: Loading prims in xml2 format to region {0} from stream", RegionInfo.RegionName); | 1815 | m_log.InfoFormat("[SCENE]: Loading prims in xml2 format to region {0} from stream", RegionInfo.RegionName); |
1816 | 1816 | ||
1817 | m_serialiser.LoadPrimsFromXml2(this, reader, startScripts); | 1817 | m_serialiser.LoadPrimsFromXml2(this, reader, startScripts); |
1818 | } | 1818 | } |
1819 | 1819 | ||
1820 | public void SavePrimsToXml2(string fileName) | 1820 | public void SavePrimsToXml2(string fileName) |
1821 | { | 1821 | { |
1822 | m_log.InfoFormat("[SCENE]: Saving prims in xml2 format for region {0} to {1}", RegionInfo.RegionName, fileName); | 1822 | m_log.InfoFormat("[SCENE]: Saving prims in xml2 format for region {0} to {1}", RegionInfo.RegionName, fileName); |
1823 | 1823 | ||
1824 | m_serialiser.SavePrimsToXml2(this, fileName); | 1824 | m_serialiser.SavePrimsToXml2(this, fileName); |
1825 | } | 1825 | } |
1826 | 1826 | ||
1827 | public void SavePrimsToXml2(TextWriter stream, LLVector3 min, LLVector3 max) | 1827 | public void SavePrimsToXml2(TextWriter stream, LLVector3 min, LLVector3 max) |
1828 | { | 1828 | { |
1829 | m_log.InfoFormat("[SCENE]: Saving prims in xml2 format for region {0} to stream", RegionInfo.RegionName); | 1829 | m_log.InfoFormat("[SCENE]: Saving prims in xml2 format for region {0} to stream", RegionInfo.RegionName); |
1830 | 1830 | ||
1831 | m_serialiser.SavePrimsToXml2(this, stream, min, max); | 1831 | m_serialiser.SavePrimsToXml2(this, stream, min, max); |
1832 | } | 1832 | } |
1833 | 1833 | ||
@@ -1835,7 +1835,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1835 | { | 1835 | { |
1836 | m_log.InfoFormat( | 1836 | m_log.InfoFormat( |
1837 | "[SCENE]: Saving prims with name {0} in xml2 format for region {1} to {2}", primName, RegionInfo.RegionName, fileName); | 1837 | "[SCENE]: Saving prims with name {0} in xml2 format for region {1} to {2}", primName, RegionInfo.RegionName, fileName); |
1838 | 1838 | ||
1839 | List<EntityBase> entityList = GetEntities(); | 1839 | List<EntityBase> entityList = GetEntities(); |
1840 | List<EntityBase> primList = new List<EntityBase>(); | 1840 | List<EntityBase> primList = new List<EntityBase>(); |
1841 | 1841 | ||
@@ -1860,7 +1860,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1860 | public void LoadPrimsFromArchive(string filePath) | 1860 | public void LoadPrimsFromArchive(string filePath) |
1861 | { | 1861 | { |
1862 | m_log.InfoFormat("[SCENE]: Loading archive to region {0} from {1}", RegionInfo.RegionName, filePath); | 1862 | m_log.InfoFormat("[SCENE]: Loading archive to region {0} from {1}", RegionInfo.RegionName, filePath); |
1863 | 1863 | ||
1864 | m_archiver.DearchiveRegion(filePath); | 1864 | m_archiver.DearchiveRegion(filePath); |
1865 | } | 1865 | } |
1866 | 1866 | ||
@@ -1871,7 +1871,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1871 | public void SavePrimsToArchive(string filePath) | 1871 | public void SavePrimsToArchive(string filePath) |
1872 | { | 1872 | { |
1873 | m_log.InfoFormat("[SCENE]: Writing archive for region {0} to {1}", RegionInfo.RegionName, filePath); | 1873 | m_log.InfoFormat("[SCENE]: Writing archive for region {0} to {1}", RegionInfo.RegionName, filePath); |
1874 | 1874 | ||
1875 | m_archiver.ArchiveRegion(filePath); | 1875 | m_archiver.ArchiveRegion(filePath); |
1876 | } | 1876 | } |
1877 | 1877 | ||
@@ -1986,7 +1986,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1986 | m_log.Warn("{[INTERREGION]: A new prim arrived from a neighbor"); | 1986 | m_log.Warn("{[INTERREGION]: A new prim arrived from a neighbor"); |
1987 | if (XMLMethod == 0) | 1987 | if (XMLMethod == 0) |
1988 | { | 1988 | { |
1989 | SceneObjectGroup sceneObject = m_serialiser.DeserializeGroupFromXml2(objXMLData); | 1989 | SceneObjectGroup sceneObject = m_serialiser.DeserializeGroupFromXml2(objXMLData); |
1990 | AddRestoredSceneObject(sceneObject, true, false); | 1990 | AddRestoredSceneObject(sceneObject, true, false); |
1991 | 1991 | ||
1992 | SceneObjectPart RootPrim = GetSceneObjectPart(primID); | 1992 | SceneObjectPart RootPrim = GetSceneObjectPart(primID); |
@@ -1999,7 +1999,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1999 | { | 1999 | { |
2000 | DeleteSceneObject(grp); | 2000 | DeleteSceneObject(grp); |
2001 | } | 2001 | } |
2002 | 2002 | ||
2003 | m_log.Info("[INTERREGION]: Denied prim crossing for banned avatar"); | 2003 | m_log.Info("[INTERREGION]: Denied prim crossing for banned avatar"); |
2004 | 2004 | ||
2005 | return false; | 2005 | return false; |
@@ -2075,7 +2075,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2075 | else | 2075 | else |
2076 | { | 2076 | { |
2077 | m_log.DebugFormat( | 2077 | m_log.DebugFormat( |
2078 | "[SCENE]: Adding new {0} agent {1} {2} in {3}", | 2078 | "[SCENE]: Adding new {0} agent {1} {2} in {3}", |
2079 | (child ? "child" : "root"), client.Name, client.AgentId, RegionInfo.RegionName); | 2079 | (child ? "child" : "root"), client.Name, client.AgentId, RegionInfo.RegionName); |
2080 | 2080 | ||
2081 | CommsManager.UserProfileCacheService.AddNewUser(client.AgentId); | 2081 | CommsManager.UserProfileCacheService.AddNewUser(client.AgentId); |
@@ -2156,7 +2156,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2156 | client.OnScriptReset += ProcessScriptReset; | 2156 | client.OnScriptReset += ProcessScriptReset; |
2157 | client.OnGetScriptRunning += GetScriptRunning; | 2157 | client.OnGetScriptRunning += GetScriptRunning; |
2158 | client.OnSetScriptRunning += SetScriptRunning; | 2158 | client.OnSetScriptRunning += SetScriptRunning; |
2159 | 2159 | ||
2160 | client.OnRegionHandleRequest += RegionHandleRequest; | 2160 | client.OnRegionHandleRequest += RegionHandleRequest; |
2161 | 2161 | ||
2162 | client.OnUnackedTerrain += TerrainUnAcked; | 2162 | client.OnUnackedTerrain += TerrainUnAcked; |
@@ -2310,7 +2310,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2310 | public void GetAvatarAppearance(IClientAPI client, out AvatarAppearance appearance) | 2310 | public void GetAvatarAppearance(IClientAPI client, out AvatarAppearance appearance) |
2311 | { | 2311 | { |
2312 | appearance = null; // VS needs this line, mono doesn't | 2312 | appearance = null; // VS needs this line, mono doesn't |
2313 | 2313 | ||
2314 | try | 2314 | try |
2315 | { | 2315 | { |
2316 | if (m_AvatarFactory == null || | 2316 | if (m_AvatarFactory == null || |
@@ -2323,10 +2323,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2323 | catch (Exception e) | 2323 | catch (Exception e) |
2324 | { | 2324 | { |
2325 | m_log.ErrorFormat( | 2325 | m_log.ErrorFormat( |
2326 | "[APPERANCE]: Problem when fetching appearance for avatar {0}, {1}, using default. {2}", | 2326 | "[APPERANCE]: Problem when fetching appearance for avatar {0}, {1}, using default. {2}", |
2327 | client.Name, client.AgentId, e); | 2327 | client.Name, client.AgentId, e); |
2328 | appearance = new AvatarAppearance(); | 2328 | appearance = new AvatarAppearance(); |
2329 | } | 2329 | } |
2330 | } | 2330 | } |
2331 | 2331 | ||
2332 | /// <summary> | 2332 | /// <summary> |
@@ -2341,13 +2341,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
2341 | { | 2341 | { |
2342 | childagentYN = avatar.IsChildAgent; | 2342 | childagentYN = avatar.IsChildAgent; |
2343 | } | 2343 | } |
2344 | 2344 | ||
2345 | try | 2345 | try |
2346 | { | 2346 | { |
2347 | m_log.DebugFormat( | 2347 | m_log.DebugFormat( |
2348 | "[SCENE]: Removing {0} agent {1} from region {2}", | 2348 | "[SCENE]: Removing {0} agent {1} from region {2}", |
2349 | (childagentYN ? "child" : "root"), agentID, RegionInfo.RegionName); | 2349 | (childagentYN ? "child" : "root"), agentID, RegionInfo.RegionName); |
2350 | 2350 | ||
2351 | if (avatar.IsChildAgent) | 2351 | if (avatar.IsChildAgent) |
2352 | { | 2352 | { |
2353 | m_innerScene.removeUserCount(false); | 2353 | m_innerScene.removeUserCount(false); |
@@ -2378,7 +2378,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2378 | // We don't know which count to remove it from | 2378 | // We don't know which count to remove it from |
2379 | // Avatar is already disposed :/ | 2379 | // Avatar is already disposed :/ |
2380 | } | 2380 | } |
2381 | 2381 | ||
2382 | m_eventManager.TriggerOnRemovePresence(agentID); | 2382 | m_eventManager.TriggerOnRemovePresence(agentID); |
2383 | Broadcast(delegate(IClientAPI client) | 2383 | Broadcast(delegate(IClientAPI client) |
2384 | { | 2384 | { |
@@ -2717,7 +2717,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2717 | { | 2717 | { |
2718 | m_innerScene.removeUserCount(true); | 2718 | m_innerScene.removeUserCount(true); |
2719 | } | 2719 | } |
2720 | 2720 | ||
2721 | // Tell a single agent to disconnect from the region. | 2721 | // Tell a single agent to disconnect from the region. |
2722 | presence.ControllingClient.SendShutdownConnectionNotice(); | 2722 | presence.ControllingClient.SendShutdownConnectionNotice(); |
2723 | 2723 | ||
@@ -3827,9 +3827,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
3827 | { | 3827 | { |
3828 | //should be doing this by parcel, but as its only for testing | 3828 | //should be doing this by parcel, but as its only for testing |
3829 | // The use of Thread.Sleep here causes the following compiler error under mono 1.2.4 | 3829 | // The use of Thread.Sleep here causes the following compiler error under mono 1.2.4 |
3830 | // OpenSim/Region/Environment/Scenes/Scene.cs(3675,17): error CS0103: The name `Thread' does not exist | 3830 | // OpenSim/Region/Environment/Scenes/Scene.cs(3675,17): error CS0103: The name `Thread' does not exist |
3831 | // in the context of `<>c__CompilerGenerated17' | 3831 | // in the context of `<>c__CompilerGenerated17' |
3832 | // MW said it was okay to comment the body of this method out for now since the code is experimental | 3832 | // MW said it was okay to comment the body of this method out for now since the code is experimental |
3833 | // and will be replaced anyway | 3833 | // and will be replaced anyway |
3834 | // ForEachClient(delegate(IClientAPI client) | 3834 | // ForEachClient(delegate(IClientAPI client) |
3835 | // { | 3835 | // { |
@@ -3840,7 +3840,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3840 | // client.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); | 3840 | // client.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); |
3841 | // }); | 3841 | // }); |
3842 | } | 3842 | } |
3843 | 3843 | ||
3844 | public void RegionHandleRequest(IClientAPI client, LLUUID regionID) | 3844 | public void RegionHandleRequest(IClientAPI client, LLUUID regionID) |
3845 | { | 3845 | { |
3846 | RegionInfo info; | 3846 | RegionInfo info; |
@@ -3860,4 +3860,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
3860 | client.SendLayerData(patchX, patchY, Heightmap.GetFloatsSerialised()); | 3860 | client.SendLayerData(patchX, patchY, Heightmap.GetFloatsSerialised()); |
3861 | } | 3861 | } |
3862 | } | 3862 | } |
3863 | } | 3863 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index 35a7434..adad7d3 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -60,7 +60,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
60 | public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar; | 60 | public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar; |
61 | public event LogOffUser OnLogOffUser; | 61 | public event LogOffUser OnLogOffUser; |
62 | public event GetLandData OnGetLandData; | 62 | public event GetLandData OnGetLandData; |
63 | 63 | ||
64 | private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion; | 64 | private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion; |
65 | private ExpectUserDelegate handlerExpectUser = null; // OnExpectUser; | 65 | private ExpectUserDelegate handlerExpectUser = null; // OnExpectUser; |
66 | private ExpectPrimDelegate handlerExpectPrim = null; // OnExpectPrim; | 66 | private ExpectPrimDelegate handlerExpectPrim = null; // OnExpectPrim; |
@@ -70,7 +70,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
70 | private ChildAgentUpdate handlerChildAgentUpdate = null; // OnChildAgentUpdate; | 70 | private ChildAgentUpdate handlerChildAgentUpdate = null; // OnChildAgentUpdate; |
71 | private RemoveKnownRegionsFromAvatarList handlerRemoveKnownRegionFromAvatar = null; // OnRemoveKnownRegionFromAvatar; | 71 | private RemoveKnownRegionsFromAvatarList handlerRemoveKnownRegionFromAvatar = null; // OnRemoveKnownRegionFromAvatar; |
72 | private LogOffUser handlerLogOffUser = null; | 72 | private LogOffUser handlerLogOffUser = null; |
73 | private GetLandData handlerGetLandData = null; // OnGetLandData | 73 | private GetLandData handlerGetLandData = null; // OnGetLandData |
74 | 74 | ||
75 | public KillObjectDelegate KillObject; | 75 | public KillObjectDelegate KillObject; |
76 | public string _debugRegionName = String.Empty; | 76 | public string _debugRegionName = String.Empty; |
@@ -240,7 +240,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
240 | } | 240 | } |
241 | return null; | 241 | return null; |
242 | } | 242 | } |
243 | 243 | ||
244 | #endregion | 244 | #endregion |
245 | 245 | ||
246 | #region Inform Client of Neighbours | 246 | #region Inform Client of Neighbours |
@@ -582,7 +582,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
582 | LLVector3 lookAt, uint flags) | 582 | LLVector3 lookAt, uint flags) |
583 | { | 583 | { |
584 | bool destRegionUp = false; | 584 | bool destRegionUp = false; |
585 | 585 | ||
586 | if (regionHandle == m_regionInfo.RegionHandle) | 586 | if (regionHandle == m_regionInfo.RegionHandle) |
587 | { | 587 | { |
588 | // Teleport within the same region | 588 | // Teleport within the same region |
diff --git a/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs b/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs index 0b2cc9e..a0e0a37 100644 --- a/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs +++ b/OpenSim/Region/Environment/Scenes/SceneExternalChecks.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -45,534 +45,553 @@ namespace OpenSim.Region.Environment.Scenes | |||
45 | 45 | ||
46 | #region Object Permission Checks | 46 | #region Object Permission Checks |
47 | 47 | ||
48 | public delegate uint GenerateClientFlags(LLUUID userID, LLUUID objectIDID); | 48 | public delegate uint GenerateClientFlags(LLUUID userID, LLUUID objectIDID); |
49 | private List<GenerateClientFlags> GenerateClientFlagsCheckFunctions = new List<GenerateClientFlags>(); | 49 | private List<GenerateClientFlags> GenerateClientFlagsCheckFunctions = new List<GenerateClientFlags>(); |
50 | 50 | ||
51 | public void addGenerateClientFlags(GenerateClientFlags delegateFunc) | 51 | public void addGenerateClientFlags(GenerateClientFlags delegateFunc) |
52 | { | 52 | { |
53 | if (!GenerateClientFlagsCheckFunctions.Contains(delegateFunc)) | 53 | if (!GenerateClientFlagsCheckFunctions.Contains(delegateFunc)) |
54 | GenerateClientFlagsCheckFunctions.Add(delegateFunc); | 54 | GenerateClientFlagsCheckFunctions.Add(delegateFunc); |
55 | } | 55 | } |
56 | public void removeGenerateClientFlags(GenerateClientFlags delegateFunc) | ||
57 | { | ||
58 | if (GenerateClientFlagsCheckFunctions.Contains(delegateFunc)) | ||
59 | GenerateClientFlagsCheckFunctions.Remove(delegateFunc); | ||
60 | } | ||
61 | 56 | ||
62 | public uint ExternalChecksGenerateClientFlags(LLUUID userID, LLUUID objectID) | 57 | public void removeGenerateClientFlags(GenerateClientFlags delegateFunc) |
63 | { | 58 | { |
64 | SceneObjectPart part=m_scene.GetSceneObjectPart(objectID); | 59 | if (GenerateClientFlagsCheckFunctions.Contains(delegateFunc)) |
65 | 60 | GenerateClientFlagsCheckFunctions.Remove(delegateFunc); | |
66 | if (part == null) | 61 | } |
67 | return 0; | ||
68 | |||
69 | uint perms=part.GetEffectiveObjectFlags() | | ||
70 | (uint)LLObject.ObjectFlags.ObjectModify | | ||
71 | (uint)LLObject.ObjectFlags.ObjectCopy | | ||
72 | (uint)LLObject.ObjectFlags.ObjectMove | | ||
73 | (uint)LLObject.ObjectFlags.ObjectTransfer | | ||
74 | (uint)LLObject.ObjectFlags.ObjectYouOwner | | ||
75 | (uint)LLObject.ObjectFlags.ObjectAnyOwner | | ||
76 | (uint)LLObject.ObjectFlags.ObjectOwnerModify | | ||
77 | (uint)LLObject.ObjectFlags.ObjectYouOfficer; | ||
78 | |||
79 | foreach (GenerateClientFlags check in GenerateClientFlagsCheckFunctions) | ||
80 | { | ||
81 | perms &= check(userID, objectID); | ||
82 | } | ||
83 | return perms; | ||
84 | } | ||
85 | 62 | ||
86 | public delegate void SetBypassPermissions(bool value); | 63 | public uint ExternalChecksGenerateClientFlags(LLUUID userID, LLUUID objectID) |
87 | private List<SetBypassPermissions> SetBypassPermissionsCheckFunctions = new List<SetBypassPermissions>(); | 64 | { |
65 | SceneObjectPart part=m_scene.GetSceneObjectPart(objectID); | ||
88 | 66 | ||
89 | public void addSetBypassPermissions(SetBypassPermissions delegateFunc) | 67 | if (part == null) |
90 | { | 68 | return 0; |
91 | if (!SetBypassPermissionsCheckFunctions.Contains(delegateFunc)) | ||
92 | SetBypassPermissionsCheckFunctions.Add(delegateFunc); | ||
93 | } | ||
94 | public void removeSetBypassPermissions(SetBypassPermissions delegateFunc) | ||
95 | { | ||
96 | if (SetBypassPermissionsCheckFunctions.Contains(delegateFunc)) | ||
97 | SetBypassPermissionsCheckFunctions.Remove(delegateFunc); | ||
98 | } | ||
99 | 69 | ||
100 | public void ExternalChecksSetBypassPermissions(bool value) | 70 | uint perms=part.GetEffectiveObjectFlags() | |
71 | (uint)LLObject.ObjectFlags.ObjectModify | | ||
72 | (uint)LLObject.ObjectFlags.ObjectCopy | | ||
73 | (uint)LLObject.ObjectFlags.ObjectMove | | ||
74 | (uint)LLObject.ObjectFlags.ObjectTransfer | | ||
75 | (uint)LLObject.ObjectFlags.ObjectYouOwner | | ||
76 | (uint)LLObject.ObjectFlags.ObjectAnyOwner | | ||
77 | (uint)LLObject.ObjectFlags.ObjectOwnerModify | | ||
78 | (uint)LLObject.ObjectFlags.ObjectYouOfficer; | ||
79 | |||
80 | foreach (GenerateClientFlags check in GenerateClientFlagsCheckFunctions) | ||
101 | { | 81 | { |
102 | foreach (SetBypassPermissions check in SetBypassPermissionsCheckFunctions) | 82 | perms &= check(userID, objectID); |
103 | { | ||
104 | check(value); | ||
105 | } | ||
106 | } | 83 | } |
84 | return perms; | ||
85 | } | ||
107 | 86 | ||
108 | public delegate bool BypassPermissions(); | 87 | public delegate void SetBypassPermissions(bool value); |
109 | private List<BypassPermissions> BypassPermissionsCheckFunctions = new List<BypassPermissions>(); | 88 | private List<SetBypassPermissions> SetBypassPermissionsCheckFunctions = new List<SetBypassPermissions>(); |
110 | 89 | ||
111 | public void addBypassPermissions(BypassPermissions delegateFunc) | 90 | public void addSetBypassPermissions(SetBypassPermissions delegateFunc) |
112 | { | 91 | { |
113 | if (!BypassPermissionsCheckFunctions.Contains(delegateFunc)) | 92 | if (!SetBypassPermissionsCheckFunctions.Contains(delegateFunc)) |
114 | BypassPermissionsCheckFunctions.Add(delegateFunc); | 93 | SetBypassPermissionsCheckFunctions.Add(delegateFunc); |
115 | } | 94 | } |
116 | public void removeBypassPermissions(BypassPermissions delegateFunc) | 95 | |
96 | public void removeSetBypassPermissions(SetBypassPermissions delegateFunc) | ||
97 | { | ||
98 | if (SetBypassPermissionsCheckFunctions.Contains(delegateFunc)) | ||
99 | SetBypassPermissionsCheckFunctions.Remove(delegateFunc); | ||
100 | } | ||
101 | |||
102 | public void ExternalChecksSetBypassPermissions(bool value) | ||
103 | { | ||
104 | foreach (SetBypassPermissions check in SetBypassPermissionsCheckFunctions) | ||
117 | { | 105 | { |
118 | if (BypassPermissionsCheckFunctions.Contains(delegateFunc)) | 106 | check(value); |
119 | BypassPermissionsCheckFunctions.Remove(delegateFunc); | ||
120 | } | 107 | } |
108 | } | ||
121 | 109 | ||
122 | public bool ExternalChecksBypassPermissions() | 110 | public delegate bool BypassPermissions(); |
111 | private List<BypassPermissions> BypassPermissionsCheckFunctions = new List<BypassPermissions>(); | ||
112 | |||
113 | public void addBypassPermissions(BypassPermissions delegateFunc) | ||
114 | { | ||
115 | if (!BypassPermissionsCheckFunctions.Contains(delegateFunc)) | ||
116 | BypassPermissionsCheckFunctions.Add(delegateFunc); | ||
117 | } | ||
118 | |||
119 | public void removeBypassPermissions(BypassPermissions delegateFunc) | ||
120 | { | ||
121 | if (BypassPermissionsCheckFunctions.Contains(delegateFunc)) | ||
122 | BypassPermissionsCheckFunctions.Remove(delegateFunc); | ||
123 | } | ||
124 | |||
125 | public bool ExternalChecksBypassPermissions() | ||
126 | { | ||
127 | foreach (BypassPermissions check in BypassPermissionsCheckFunctions) | ||
123 | { | 128 | { |
124 | foreach (BypassPermissions check in BypassPermissionsCheckFunctions) | 129 | if (check() == false) |
125 | { | 130 | { |
126 | if (check() == false) | 131 | return false; |
127 | { | ||
128 | return false; | ||
129 | } | ||
130 | } | 132 | } |
131 | return true; | ||
132 | } | 133 | } |
134 | return true; | ||
135 | } | ||
133 | 136 | ||
134 | public delegate bool PropagatePermissions(); | 137 | public delegate bool PropagatePermissions(); |
135 | private List<PropagatePermissions> PropagatePermissionsCheckFunctions = new List<PropagatePermissions>(); | 138 | private List<PropagatePermissions> PropagatePermissionsCheckFunctions = new List<PropagatePermissions>(); |
136 | 139 | ||
137 | public void addPropagatePermissions(PropagatePermissions delegateFunc) | 140 | public void addPropagatePermissions(PropagatePermissions delegateFunc) |
138 | { | 141 | { |
139 | if (!PropagatePermissionsCheckFunctions.Contains(delegateFunc)) | 142 | if (!PropagatePermissionsCheckFunctions.Contains(delegateFunc)) |
140 | PropagatePermissionsCheckFunctions.Add(delegateFunc); | 143 | PropagatePermissionsCheckFunctions.Add(delegateFunc); |
141 | } | 144 | } |
142 | public void removePropagatePermissions(PropagatePermissions delegateFunc) | ||
143 | { | ||
144 | if (PropagatePermissionsCheckFunctions.Contains(delegateFunc)) | ||
145 | PropagatePermissionsCheckFunctions.Remove(delegateFunc); | ||
146 | } | ||
147 | 145 | ||
148 | public bool ExternalChecksPropagatePermissions() | 146 | public void removePropagatePermissions(PropagatePermissions delegateFunc) |
147 | { | ||
148 | if (PropagatePermissionsCheckFunctions.Contains(delegateFunc)) | ||
149 | PropagatePermissionsCheckFunctions.Remove(delegateFunc); | ||
150 | } | ||
151 | |||
152 | public bool ExternalChecksPropagatePermissions() | ||
153 | { | ||
154 | foreach (PropagatePermissions check in PropagatePermissionsCheckFunctions) | ||
149 | { | 155 | { |
150 | foreach (PropagatePermissions check in PropagatePermissionsCheckFunctions) | 156 | if (check() == false) |
151 | { | 157 | { |
152 | if (check() == false) | 158 | return false; |
153 | { | ||
154 | return false; | ||
155 | } | ||
156 | } | 159 | } |
157 | return true; | ||
158 | } | 160 | } |
161 | return true; | ||
162 | } | ||
159 | 163 | ||
160 | #region REZ OBJECT | 164 | #region REZ OBJECT |
161 | public delegate bool CanRezObject(int objectCount, LLUUID owner, LLVector3 objectPosition, Scene scene); | 165 | public delegate bool CanRezObject(int objectCount, LLUUID owner, LLVector3 objectPosition, Scene scene); |
162 | private List<CanRezObject> CanRezObjectCheckFunctions = new List<CanRezObject>(); | 166 | private List<CanRezObject> CanRezObjectCheckFunctions = new List<CanRezObject>(); |
163 | 167 | ||
164 | public void addCheckRezObject(CanRezObject delegateFunc) | 168 | public void addCheckRezObject(CanRezObject delegateFunc) |
165 | { | 169 | { |
166 | if (!CanRezObjectCheckFunctions.Contains(delegateFunc)) | 170 | if (!CanRezObjectCheckFunctions.Contains(delegateFunc)) |
167 | CanRezObjectCheckFunctions.Add(delegateFunc); | 171 | CanRezObjectCheckFunctions.Add(delegateFunc); |
168 | } | 172 | } |
169 | public void removeCheckRezObject(CanRezObject delegateFunc) | ||
170 | { | ||
171 | if (CanRezObjectCheckFunctions.Contains(delegateFunc)) | ||
172 | CanRezObjectCheckFunctions.Remove(delegateFunc); | ||
173 | } | ||
174 | 173 | ||
175 | public bool ExternalChecksCanRezObject(int objectCount, LLUUID owner, LLVector3 objectPosition) | 174 | public void removeCheckRezObject(CanRezObject delegateFunc) |
175 | { | ||
176 | if (CanRezObjectCheckFunctions.Contains(delegateFunc)) | ||
177 | CanRezObjectCheckFunctions.Remove(delegateFunc); | ||
178 | } | ||
179 | |||
180 | public bool ExternalChecksCanRezObject(int objectCount, LLUUID owner, LLVector3 objectPosition) | ||
181 | { | ||
182 | foreach (CanRezObject check in CanRezObjectCheckFunctions) | ||
176 | { | 183 | { |
177 | foreach (CanRezObject check in CanRezObjectCheckFunctions) | 184 | if (check(objectCount, owner,objectPosition, m_scene) == false) |
178 | { | 185 | { |
179 | if (check(objectCount, owner,objectPosition, m_scene) == false) | 186 | return false; |
180 | { | ||
181 | return false; | ||
182 | } | ||
183 | } | 187 | } |
184 | return true; | ||
185 | } | 188 | } |
189 | return true; | ||
190 | } | ||
186 | 191 | ||
187 | #endregion | 192 | #endregion |
188 | 193 | ||
189 | #region DELETE OBJECT | 194 | #region DELETE OBJECT |
190 | public delegate bool CanDeleteObject(LLUUID objectID, LLUUID deleter, Scene scene); | 195 | public delegate bool CanDeleteObject(LLUUID objectID, LLUUID deleter, Scene scene); |
191 | private List<CanDeleteObject> CanDeleteObjectCheckFunctions = new List<CanDeleteObject>(); | 196 | private List<CanDeleteObject> CanDeleteObjectCheckFunctions = new List<CanDeleteObject>(); |
192 | 197 | ||
193 | public void addCheckDeleteObject(CanDeleteObject delegateFunc) | 198 | public void addCheckDeleteObject(CanDeleteObject delegateFunc) |
194 | { | 199 | { |
195 | if (!CanDeleteObjectCheckFunctions.Contains(delegateFunc)) | 200 | if (!CanDeleteObjectCheckFunctions.Contains(delegateFunc)) |
196 | CanDeleteObjectCheckFunctions.Add(delegateFunc); | 201 | CanDeleteObjectCheckFunctions.Add(delegateFunc); |
197 | } | 202 | } |
198 | public void removeCheckDeleteObject(CanDeleteObject delegateFunc) | ||
199 | { | ||
200 | if (CanDeleteObjectCheckFunctions.Contains(delegateFunc)) | ||
201 | CanDeleteObjectCheckFunctions.Remove(delegateFunc); | ||
202 | } | ||
203 | 203 | ||
204 | public bool ExternalChecksCanDeleteObject(LLUUID objectID, LLUUID deleter) | 204 | public void removeCheckDeleteObject(CanDeleteObject delegateFunc) |
205 | { | ||
206 | if (CanDeleteObjectCheckFunctions.Contains(delegateFunc)) | ||
207 | CanDeleteObjectCheckFunctions.Remove(delegateFunc); | ||
208 | } | ||
209 | |||
210 | public bool ExternalChecksCanDeleteObject(LLUUID objectID, LLUUID deleter) | ||
211 | { | ||
212 | foreach (CanDeleteObject check in CanDeleteObjectCheckFunctions) | ||
205 | { | 213 | { |
206 | foreach (CanDeleteObject check in CanDeleteObjectCheckFunctions) | 214 | if (check(objectID,deleter,m_scene) == false) |
207 | { | 215 | { |
208 | if (check(objectID,deleter,m_scene) == false) | 216 | return false; |
209 | { | ||
210 | return false; | ||
211 | } | ||
212 | } | 217 | } |
213 | return true; | ||
214 | } | 218 | } |
219 | return true; | ||
220 | } | ||
215 | 221 | ||
216 | #endregion | 222 | #endregion |
217 | 223 | ||
218 | #region TAKE OBJECT | 224 | #region TAKE OBJECT |
219 | public delegate bool CanTakeObject(LLUUID objectID, LLUUID stealer, Scene scene); | 225 | public delegate bool CanTakeObject(LLUUID objectID, LLUUID stealer, Scene scene); |
220 | private List<CanTakeObject> CanTakeObjectCheckFunctions = new List<CanTakeObject>(); | 226 | private List<CanTakeObject> CanTakeObjectCheckFunctions = new List<CanTakeObject>(); |
221 | 227 | ||
222 | public void addCheckTakeObject(CanTakeObject delegateFunc) | 228 | public void addCheckTakeObject(CanTakeObject delegateFunc) |
223 | { | 229 | { |
224 | if (!CanTakeObjectCheckFunctions.Contains(delegateFunc)) | 230 | if (!CanTakeObjectCheckFunctions.Contains(delegateFunc)) |
225 | CanTakeObjectCheckFunctions.Add(delegateFunc); | 231 | CanTakeObjectCheckFunctions.Add(delegateFunc); |
226 | } | 232 | } |
227 | public void removeCheckTakeObject(CanTakeObject delegateFunc) | ||
228 | { | ||
229 | if (CanTakeObjectCheckFunctions.Contains(delegateFunc)) | ||
230 | CanTakeObjectCheckFunctions.Remove(delegateFunc); | ||
231 | } | ||
232 | 233 | ||
233 | public bool ExternalChecksCanTakeObject(LLUUID objectID, LLUUID AvatarTakingUUID) | 234 | public void removeCheckTakeObject(CanTakeObject delegateFunc) |
235 | { | ||
236 | if (CanTakeObjectCheckFunctions.Contains(delegateFunc)) | ||
237 | CanTakeObjectCheckFunctions.Remove(delegateFunc); | ||
238 | } | ||
239 | |||
240 | public bool ExternalChecksCanTakeObject(LLUUID objectID, LLUUID AvatarTakingUUID) | ||
241 | { | ||
242 | foreach (CanTakeObject check in CanTakeObjectCheckFunctions) | ||
234 | { | 243 | { |
235 | foreach (CanTakeObject check in CanTakeObjectCheckFunctions) | 244 | if (check(objectID, AvatarTakingUUID, m_scene) == false) |
236 | { | 245 | { |
237 | if (check(objectID, AvatarTakingUUID, m_scene) == false) | 246 | return false; |
238 | { | ||
239 | return false; | ||
240 | } | ||
241 | } | 247 | } |
242 | return true; | ||
243 | } | 248 | } |
249 | return true; | ||
250 | } | ||
244 | 251 | ||
245 | #endregion | 252 | #endregion |
246 | 253 | ||
247 | #region TAKE COPY OBJECT | 254 | #region TAKE COPY OBJECT |
248 | public delegate bool CanTakeCopyObject(LLUUID objectID, LLUUID userID, Scene inScene); | 255 | public delegate bool CanTakeCopyObject(LLUUID objectID, LLUUID userID, Scene inScene); |
249 | private List<CanTakeCopyObject> CanTakeCopyObjectCheckFunctions = new List<CanTakeCopyObject>(); | 256 | private List<CanTakeCopyObject> CanTakeCopyObjectCheckFunctions = new List<CanTakeCopyObject>(); |
250 | 257 | ||
251 | public void addCheckTakeCopyObject(CanTakeCopyObject delegateFunc) | 258 | public void addCheckTakeCopyObject(CanTakeCopyObject delegateFunc) |
252 | { | 259 | { |
253 | if (!CanTakeCopyObjectCheckFunctions.Contains(delegateFunc)) | 260 | if (!CanTakeCopyObjectCheckFunctions.Contains(delegateFunc)) |
254 | CanTakeCopyObjectCheckFunctions.Add(delegateFunc); | 261 | CanTakeCopyObjectCheckFunctions.Add(delegateFunc); |
255 | } | 262 | } |
256 | public void removeCheckTakeCopyObject(CanTakeCopyObject delegateFunc) | ||
257 | { | ||
258 | if (CanTakeCopyObjectCheckFunctions.Contains(delegateFunc)) | ||
259 | CanTakeCopyObjectCheckFunctions.Remove(delegateFunc); | ||
260 | } | ||
261 | 263 | ||
262 | public bool ExternalChecksCanTakeCopyObject(LLUUID objectID, LLUUID userID) | 264 | public void removeCheckTakeCopyObject(CanTakeCopyObject delegateFunc) |
265 | { | ||
266 | if (CanTakeCopyObjectCheckFunctions.Contains(delegateFunc)) | ||
267 | CanTakeCopyObjectCheckFunctions.Remove(delegateFunc); | ||
268 | } | ||
269 | |||
270 | public bool ExternalChecksCanTakeCopyObject(LLUUID objectID, LLUUID userID) | ||
271 | { | ||
272 | foreach (CanTakeCopyObject check in CanTakeCopyObjectCheckFunctions) | ||
263 | { | 273 | { |
264 | foreach (CanTakeCopyObject check in CanTakeCopyObjectCheckFunctions) | 274 | if (check(objectID,userID,m_scene) == false) |
265 | { | 275 | { |
266 | if (check(objectID,userID,m_scene) == false) | 276 | return false; |
267 | { | ||
268 | return false; | ||
269 | } | ||
270 | } | 277 | } |
271 | return true; | ||
272 | } | 278 | } |
279 | return true; | ||
280 | } | ||
273 | 281 | ||
274 | #endregion | 282 | #endregion |
275 | 283 | ||
276 | #region DUPLICATE OBJECT | 284 | #region DUPLICATE OBJECT |
277 | public delegate bool CanDuplicateObject(int objectCount, LLUUID objectID, LLUUID owner, Scene scene, LLVector3 objectPosition); | 285 | public delegate bool CanDuplicateObject(int objectCount, LLUUID objectID, LLUUID owner, Scene scene, LLVector3 objectPosition); |
278 | private List<CanDuplicateObject> CanDuplicateObjectCheckFunctions = new List<CanDuplicateObject>(); | 286 | private List<CanDuplicateObject> CanDuplicateObjectCheckFunctions = new List<CanDuplicateObject>(); |
279 | 287 | ||
280 | public void addCheckDuplicateObject(CanDuplicateObject delegateFunc) | 288 | public void addCheckDuplicateObject(CanDuplicateObject delegateFunc) |
281 | { | 289 | { |
282 | if (!CanDuplicateObjectCheckFunctions.Contains(delegateFunc)) | 290 | if (!CanDuplicateObjectCheckFunctions.Contains(delegateFunc)) |
283 | CanDuplicateObjectCheckFunctions.Add(delegateFunc); | 291 | CanDuplicateObjectCheckFunctions.Add(delegateFunc); |
284 | } | 292 | } |
285 | public void removeCheckDuplicateObject(CanDuplicateObject delegateFunc) | ||
286 | { | ||
287 | if (CanDuplicateObjectCheckFunctions.Contains(delegateFunc)) | ||
288 | CanDuplicateObjectCheckFunctions.Remove(delegateFunc); | ||
289 | } | ||
290 | 293 | ||
291 | public bool ExternalChecksCanDuplicateObject(int objectCount, LLUUID objectID, LLUUID owner, LLVector3 objectPosition) | 294 | public void removeCheckDuplicateObject(CanDuplicateObject delegateFunc) |
295 | { | ||
296 | if (CanDuplicateObjectCheckFunctions.Contains(delegateFunc)) | ||
297 | CanDuplicateObjectCheckFunctions.Remove(delegateFunc); | ||
298 | } | ||
299 | |||
300 | public bool ExternalChecksCanDuplicateObject(int objectCount, LLUUID objectID, LLUUID owner, LLVector3 objectPosition) | ||
301 | { | ||
302 | foreach (CanDuplicateObject check in CanDuplicateObjectCheckFunctions) | ||
292 | { | 303 | { |
293 | foreach (CanDuplicateObject check in CanDuplicateObjectCheckFunctions) | 304 | if (check(objectCount, objectID, owner, m_scene, objectPosition) == false) |
294 | { | 305 | { |
295 | if (check(objectCount, objectID, owner, m_scene, objectPosition) == false) | 306 | return false; |
296 | { | ||
297 | return false; | ||
298 | } | ||
299 | } | 307 | } |
300 | return true; | ||
301 | } | 308 | } |
309 | return true; | ||
310 | } | ||
302 | 311 | ||
303 | #endregion | 312 | #endregion |
304 | 313 | ||
305 | #region EDIT OBJECT | 314 | #region EDIT OBJECT |
306 | public delegate bool CanEditObject(LLUUID objectID, LLUUID editorID, Scene scene); | 315 | public delegate bool CanEditObject(LLUUID objectID, LLUUID editorID, Scene scene); |
307 | private List<CanEditObject> CanEditObjectCheckFunctions = new List<CanEditObject>(); | 316 | private List<CanEditObject> CanEditObjectCheckFunctions = new List<CanEditObject>(); |
308 | 317 | ||
309 | public void addCheckEditObject(CanEditObject delegateFunc) | 318 | public void addCheckEditObject(CanEditObject delegateFunc) |
310 | { | 319 | { |
311 | if (!CanEditObjectCheckFunctions.Contains(delegateFunc)) | 320 | if (!CanEditObjectCheckFunctions.Contains(delegateFunc)) |
312 | CanEditObjectCheckFunctions.Add(delegateFunc); | 321 | CanEditObjectCheckFunctions.Add(delegateFunc); |
313 | } | 322 | } |
314 | public void removeCheckEditObject(CanEditObject delegateFunc) | ||
315 | { | ||
316 | if (CanEditObjectCheckFunctions.Contains(delegateFunc)) | ||
317 | CanEditObjectCheckFunctions.Remove(delegateFunc); | ||
318 | } | ||
319 | 323 | ||
320 | public bool ExternalChecksCanEditObject(LLUUID objectID, LLUUID editorID) | 324 | public void removeCheckEditObject(CanEditObject delegateFunc) |
325 | { | ||
326 | if (CanEditObjectCheckFunctions.Contains(delegateFunc)) | ||
327 | CanEditObjectCheckFunctions.Remove(delegateFunc); | ||
328 | } | ||
329 | |||
330 | public bool ExternalChecksCanEditObject(LLUUID objectID, LLUUID editorID) | ||
331 | { | ||
332 | foreach (CanEditObject check in CanEditObjectCheckFunctions) | ||
321 | { | 333 | { |
322 | foreach (CanEditObject check in CanEditObjectCheckFunctions) | 334 | if (check(objectID, editorID, m_scene) == false) |
323 | { | 335 | { |
324 | if (check(objectID, editorID, m_scene) == false) | 336 | return false; |
325 | { | ||
326 | return false; | ||
327 | } | ||
328 | } | 337 | } |
329 | return true; | ||
330 | } | 338 | } |
339 | return true; | ||
340 | } | ||
331 | 341 | ||
332 | #endregion | 342 | #endregion |
333 | 343 | ||
334 | #region MOVE OBJECT | 344 | #region MOVE OBJECT |
335 | public delegate bool CanMoveObject(LLUUID objectID, LLUUID moverID, Scene scene); | 345 | public delegate bool CanMoveObject(LLUUID objectID, LLUUID moverID, Scene scene); |
336 | private List<CanMoveObject> CanMoveObjectCheckFunctions = new List<CanMoveObject>(); | 346 | private List<CanMoveObject> CanMoveObjectCheckFunctions = new List<CanMoveObject>(); |
337 | 347 | ||
338 | public void addCheckMoveObject(CanMoveObject delegateFunc) | 348 | public void addCheckMoveObject(CanMoveObject delegateFunc) |
339 | { | 349 | { |
340 | if (!CanMoveObjectCheckFunctions.Contains(delegateFunc)) | 350 | if (!CanMoveObjectCheckFunctions.Contains(delegateFunc)) |
341 | CanMoveObjectCheckFunctions.Add(delegateFunc); | 351 | CanMoveObjectCheckFunctions.Add(delegateFunc); |
342 | } | 352 | } |
343 | public void removeCheckMoveObject(CanMoveObject delegateFunc) | ||
344 | { | ||
345 | if (CanMoveObjectCheckFunctions.Contains(delegateFunc)) | ||
346 | CanMoveObjectCheckFunctions.Remove(delegateFunc); | ||
347 | } | ||
348 | 353 | ||
349 | public bool ExternalChecksCanMoveObject(LLUUID objectID, LLUUID moverID) | 354 | public void removeCheckMoveObject(CanMoveObject delegateFunc) |
355 | { | ||
356 | if (CanMoveObjectCheckFunctions.Contains(delegateFunc)) | ||
357 | CanMoveObjectCheckFunctions.Remove(delegateFunc); | ||
358 | } | ||
359 | |||
360 | public bool ExternalChecksCanMoveObject(LLUUID objectID, LLUUID moverID) | ||
361 | { | ||
362 | foreach (CanMoveObject check in CanMoveObjectCheckFunctions) | ||
350 | { | 363 | { |
351 | foreach (CanMoveObject check in CanMoveObjectCheckFunctions) | 364 | if (check(objectID,moverID,m_scene) == false) |
352 | { | 365 | { |
353 | if (check(objectID,moverID,m_scene) == false) | 366 | return false; |
354 | { | ||
355 | return false; | ||
356 | } | ||
357 | } | 367 | } |
358 | return true; | ||
359 | } | 368 | } |
369 | return true; | ||
370 | } | ||
360 | 371 | ||
361 | #endregion | 372 | #endregion |
362 | 373 | ||
363 | #region OBJECT ENTRY | 374 | #region OBJECT ENTRY |
364 | public delegate bool CanObjectEntry(LLUUID objectID, LLVector3 newPoint, Scene scene); | 375 | public delegate bool CanObjectEntry(LLUUID objectID, LLVector3 newPoint, Scene scene); |
365 | private List<CanObjectEntry> CanObjectEntryCheckFunctions = new List<CanObjectEntry>(); | 376 | private List<CanObjectEntry> CanObjectEntryCheckFunctions = new List<CanObjectEntry>(); |
366 | 377 | ||
367 | public void addCheckObjectEntry(CanObjectEntry delegateFunc) | 378 | public void addCheckObjectEntry(CanObjectEntry delegateFunc) |
368 | { | 379 | { |
369 | if (!CanObjectEntryCheckFunctions.Contains(delegateFunc)) | 380 | if (!CanObjectEntryCheckFunctions.Contains(delegateFunc)) |
370 | CanObjectEntryCheckFunctions.Add(delegateFunc); | 381 | CanObjectEntryCheckFunctions.Add(delegateFunc); |
371 | } | 382 | } |
372 | public void removeCheckObjectEntry(CanObjectEntry delegateFunc) | ||
373 | { | ||
374 | if (CanObjectEntryCheckFunctions.Contains(delegateFunc)) | ||
375 | CanObjectEntryCheckFunctions.Remove(delegateFunc); | ||
376 | } | ||
377 | 383 | ||
378 | public bool ExternalChecksCanObjectEntry(LLUUID objectID, LLVector3 newPoint) | 384 | public void removeCheckObjectEntry(CanObjectEntry delegateFunc) |
385 | { | ||
386 | if (CanObjectEntryCheckFunctions.Contains(delegateFunc)) | ||
387 | CanObjectEntryCheckFunctions.Remove(delegateFunc); | ||
388 | } | ||
389 | |||
390 | public bool ExternalChecksCanObjectEntry(LLUUID objectID, LLVector3 newPoint) | ||
391 | { | ||
392 | foreach (CanObjectEntry check in CanObjectEntryCheckFunctions) | ||
379 | { | 393 | { |
380 | foreach (CanObjectEntry check in CanObjectEntryCheckFunctions) | 394 | if (check(objectID, newPoint, m_scene) == false) |
381 | { | 395 | { |
382 | if (check(objectID, newPoint, m_scene) == false) | 396 | return false; |
383 | { | ||
384 | return false; | ||
385 | } | ||
386 | } | 397 | } |
387 | return true; | ||
388 | } | 398 | } |
399 | return true; | ||
400 | } | ||
389 | 401 | ||
390 | #endregion | 402 | #endregion |
391 | 403 | ||
392 | #region RETURN OBJECT | 404 | #region RETURN OBJECT |
393 | public delegate bool CanReturnObject(LLUUID objectID, LLUUID returnerID, Scene scene); | 405 | public delegate bool CanReturnObject(LLUUID objectID, LLUUID returnerID, Scene scene); |
394 | private List<CanReturnObject> CanReturnObjectCheckFunctions = new List<CanReturnObject>(); | 406 | private List<CanReturnObject> CanReturnObjectCheckFunctions = new List<CanReturnObject>(); |
395 | 407 | ||
396 | public void addCheckReturnObject(CanReturnObject delegateFunc) | 408 | public void addCheckReturnObject(CanReturnObject delegateFunc) |
397 | { | 409 | { |
398 | if (!CanReturnObjectCheckFunctions.Contains(delegateFunc)) | 410 | if (!CanReturnObjectCheckFunctions.Contains(delegateFunc)) |
399 | CanReturnObjectCheckFunctions.Add(delegateFunc); | 411 | CanReturnObjectCheckFunctions.Add(delegateFunc); |
400 | } | 412 | } |
401 | public void removeCheckReturnObject(CanReturnObject delegateFunc) | ||
402 | { | ||
403 | if (CanReturnObjectCheckFunctions.Contains(delegateFunc)) | ||
404 | CanReturnObjectCheckFunctions.Remove(delegateFunc); | ||
405 | } | ||
406 | 413 | ||
407 | public bool ExternalChecksCanReturnObject(LLUUID objectID, LLUUID returnerID) | 414 | public void removeCheckReturnObject(CanReturnObject delegateFunc) |
415 | { | ||
416 | if (CanReturnObjectCheckFunctions.Contains(delegateFunc)) | ||
417 | CanReturnObjectCheckFunctions.Remove(delegateFunc); | ||
418 | } | ||
419 | |||
420 | public bool ExternalChecksCanReturnObject(LLUUID objectID, LLUUID returnerID) | ||
421 | { | ||
422 | foreach (CanReturnObject check in CanReturnObjectCheckFunctions) | ||
408 | { | 423 | { |
409 | foreach (CanReturnObject check in CanReturnObjectCheckFunctions) | 424 | if (check(objectID,returnerID,m_scene) == false) |
410 | { | 425 | { |
411 | if (check(objectID,returnerID,m_scene) == false) | 426 | return false; |
412 | { | ||
413 | return false; | ||
414 | } | ||
415 | } | 427 | } |
416 | return true; | ||
417 | } | 428 | } |
429 | return true; | ||
430 | } | ||
418 | 431 | ||
419 | #endregion | 432 | #endregion |
420 | 433 | ||
421 | #region INSTANT MESSAGE | 434 | #region INSTANT MESSAGE |
422 | public delegate bool CanInstantMessage(LLUUID user, LLUUID target, Scene startScene); | 435 | public delegate bool CanInstantMessage(LLUUID user, LLUUID target, Scene startScene); |
423 | private List<CanInstantMessage> CanInstantMessageCheckFunctions = new List<CanInstantMessage>(); | 436 | private List<CanInstantMessage> CanInstantMessageCheckFunctions = new List<CanInstantMessage>(); |
424 | 437 | ||
425 | public void addCheckInstantMessage(CanInstantMessage delegateFunc) | 438 | public void addCheckInstantMessage(CanInstantMessage delegateFunc) |
426 | { | 439 | { |
427 | if (!CanInstantMessageCheckFunctions.Contains(delegateFunc)) | 440 | if (!CanInstantMessageCheckFunctions.Contains(delegateFunc)) |
428 | CanInstantMessageCheckFunctions.Add(delegateFunc); | 441 | CanInstantMessageCheckFunctions.Add(delegateFunc); |
429 | } | 442 | } |
430 | public void removeCheckInstantMessage(CanInstantMessage delegateFunc) | 443 | |
431 | { | 444 | public void removeCheckInstantMessage(CanInstantMessage delegateFunc) |
432 | if (CanInstantMessageCheckFunctions.Contains(delegateFunc)) | 445 | { |
433 | CanInstantMessageCheckFunctions.Remove(delegateFunc); | 446 | if (CanInstantMessageCheckFunctions.Contains(delegateFunc)) |
434 | } | 447 | CanInstantMessageCheckFunctions.Remove(delegateFunc); |
448 | } | ||
435 | 449 | ||
436 | public bool ExternalChecksCanInstantMessage(LLUUID user, LLUUID target) | 450 | public bool ExternalChecksCanInstantMessage(LLUUID user, LLUUID target) |
451 | { | ||
452 | foreach (CanInstantMessage check in CanInstantMessageCheckFunctions) | ||
437 | { | 453 | { |
438 | foreach (CanInstantMessage check in CanInstantMessageCheckFunctions) | 454 | if (check(user, target, m_scene) == false) |
439 | { | 455 | { |
440 | if (check(user, target, m_scene) == false) | 456 | return false; |
441 | { | ||
442 | return false; | ||
443 | } | ||
444 | } | 457 | } |
445 | return true; | ||
446 | } | 458 | } |
459 | return true; | ||
460 | } | ||
447 | 461 | ||
448 | #endregion | 462 | #endregion |
449 | 463 | ||
450 | #region INVENTORY TRANSFER | 464 | #region INVENTORY TRANSFER |
451 | public delegate bool CanInventoryTransfer(LLUUID user, LLUUID target, Scene startScene); | 465 | public delegate bool CanInventoryTransfer(LLUUID user, LLUUID target, Scene startScene); |
452 | private List<CanInventoryTransfer> CanInventoryTransferCheckFunctions = new List<CanInventoryTransfer>(); | 466 | private List<CanInventoryTransfer> CanInventoryTransferCheckFunctions = new List<CanInventoryTransfer>(); |
453 | 467 | ||
454 | public void addCheckInventoryTransfer(CanInventoryTransfer delegateFunc) | 468 | public void addCheckInventoryTransfer(CanInventoryTransfer delegateFunc) |
455 | { | 469 | { |
456 | if (!CanInventoryTransferCheckFunctions.Contains(delegateFunc)) | 470 | if (!CanInventoryTransferCheckFunctions.Contains(delegateFunc)) |
457 | CanInventoryTransferCheckFunctions.Add(delegateFunc); | 471 | CanInventoryTransferCheckFunctions.Add(delegateFunc); |
458 | } | 472 | } |
459 | public void removeCheckInventoryTransfer(CanInventoryTransfer delegateFunc) | 473 | |
474 | public void removeCheckInventoryTransfer(CanInventoryTransfer delegateFunc) | ||
460 | { | 475 | { |
461 | if (CanInventoryTransferCheckFunctions.Contains(delegateFunc)) | 476 | if (CanInventoryTransferCheckFunctions.Contains(delegateFunc)) |
462 | CanInventoryTransferCheckFunctions.Remove(delegateFunc); | 477 | CanInventoryTransferCheckFunctions.Remove(delegateFunc); |
463 | } | 478 | } |
464 | 479 | ||
465 | public bool ExternalChecksCanInventoryTransfer(LLUUID user, LLUUID target) | 480 | public bool ExternalChecksCanInventoryTransfer(LLUUID user, LLUUID target) |
481 | { | ||
482 | foreach (CanInventoryTransfer check in CanInventoryTransferCheckFunctions) | ||
466 | { | 483 | { |
467 | foreach (CanInventoryTransfer check in CanInventoryTransferCheckFunctions) | 484 | if (check(user, target, m_scene) == false) |
468 | { | 485 | { |
469 | if (check(user, target, m_scene) == false) | 486 | return false; |
470 | { | ||
471 | return false; | ||
472 | } | ||
473 | } | 487 | } |
474 | return true; | ||
475 | } | 488 | } |
489 | return true; | ||
490 | } | ||
476 | 491 | ||
477 | #endregion | 492 | #endregion |
478 | 493 | ||
479 | #region VIEW SCRIPT | 494 | #region VIEW SCRIPT |
480 | public delegate bool CanViewScript(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); | 495 | public delegate bool CanViewScript(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); |
481 | private List<CanViewScript> CanViewScriptCheckFunctions = new List<CanViewScript>(); | 496 | private List<CanViewScript> CanViewScriptCheckFunctions = new List<CanViewScript>(); |
482 | 497 | ||
483 | public void addCheckViewScript(CanViewScript delegateFunc) | 498 | public void addCheckViewScript(CanViewScript delegateFunc) |
484 | { | 499 | { |
485 | if (!CanViewScriptCheckFunctions.Contains(delegateFunc)) | 500 | if (!CanViewScriptCheckFunctions.Contains(delegateFunc)) |
486 | CanViewScriptCheckFunctions.Add(delegateFunc); | 501 | CanViewScriptCheckFunctions.Add(delegateFunc); |
487 | } | 502 | } |
488 | public void removeCheckViewScript(CanViewScript delegateFunc) | ||
489 | { | ||
490 | if (CanViewScriptCheckFunctions.Contains(delegateFunc)) | ||
491 | CanViewScriptCheckFunctions.Remove(delegateFunc); | ||
492 | } | ||
493 | 503 | ||
494 | public bool ExternalChecksCanViewScript(LLUUID script, LLUUID objectID, LLUUID user) | 504 | public void removeCheckViewScript(CanViewScript delegateFunc) |
505 | { | ||
506 | if (CanViewScriptCheckFunctions.Contains(delegateFunc)) | ||
507 | CanViewScriptCheckFunctions.Remove(delegateFunc); | ||
508 | } | ||
509 | |||
510 | public bool ExternalChecksCanViewScript(LLUUID script, LLUUID objectID, LLUUID user) | ||
511 | { | ||
512 | foreach (CanViewScript check in CanViewScriptCheckFunctions) | ||
495 | { | 513 | { |
496 | foreach (CanViewScript check in CanViewScriptCheckFunctions) | 514 | if (check(script, objectID, user, m_scene) == false) |
497 | { | 515 | { |
498 | if (check(script, objectID, user, m_scene) == false) | 516 | return false; |
499 | { | ||
500 | return false; | ||
501 | } | ||
502 | } | 517 | } |
503 | return true; | ||
504 | } | 518 | } |
519 | return true; | ||
520 | } | ||
505 | 521 | ||
506 | public delegate bool CanViewNotecard(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); | 522 | public delegate bool CanViewNotecard(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); |
507 | private List<CanViewNotecard> CanViewNotecardCheckFunctions = new List<CanViewNotecard>(); | 523 | private List<CanViewNotecard> CanViewNotecardCheckFunctions = new List<CanViewNotecard>(); |
508 | 524 | ||
509 | public void addCheckViewNotecard(CanViewNotecard delegateFunc) | 525 | public void addCheckViewNotecard(CanViewNotecard delegateFunc) |
510 | { | 526 | { |
511 | if (!CanViewNotecardCheckFunctions.Contains(delegateFunc)) | 527 | if (!CanViewNotecardCheckFunctions.Contains(delegateFunc)) |
512 | CanViewNotecardCheckFunctions.Add(delegateFunc); | 528 | CanViewNotecardCheckFunctions.Add(delegateFunc); |
513 | } | 529 | } |
514 | public void removeCheckViewNotecard(CanViewNotecard delegateFunc) | 530 | |
515 | { | 531 | public void removeCheckViewNotecard(CanViewNotecard delegateFunc) |
516 | if (CanViewNotecardCheckFunctions.Contains(delegateFunc)) | 532 | { |
517 | CanViewNotecardCheckFunctions.Remove(delegateFunc); | 533 | if (CanViewNotecardCheckFunctions.Contains(delegateFunc)) |
518 | } | 534 | CanViewNotecardCheckFunctions.Remove(delegateFunc); |
535 | } | ||
519 | 536 | ||
520 | public bool ExternalChecksCanViewNotecard(LLUUID script, LLUUID objectID, LLUUID user) | 537 | public bool ExternalChecksCanViewNotecard(LLUUID script, LLUUID objectID, LLUUID user) |
538 | { | ||
539 | foreach (CanViewNotecard check in CanViewNotecardCheckFunctions) | ||
521 | { | 540 | { |
522 | foreach (CanViewNotecard check in CanViewNotecardCheckFunctions) | 541 | if (check(script, objectID, user, m_scene) == false) |
523 | { | 542 | { |
524 | if (check(script, objectID, user, m_scene) == false) | 543 | return false; |
525 | { | ||
526 | return false; | ||
527 | } | ||
528 | } | 544 | } |
529 | return true; | ||
530 | } | 545 | } |
546 | return true; | ||
547 | } | ||
548 | |||
549 | #endregion | ||
531 | 550 | ||
532 | #endregion | 551 | #region EDIT SCRIPT |
552 | public delegate bool CanEditScript(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); | ||
553 | private List<CanEditScript> CanEditScriptCheckFunctions = new List<CanEditScript>(); | ||
533 | 554 | ||
534 | #region EDIT SCRIPT | 555 | public void addCheckEditScript(CanEditScript delegateFunc) |
535 | public delegate bool CanEditScript(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); | 556 | { |
536 | private List<CanEditScript> CanEditScriptCheckFunctions = new List<CanEditScript>(); | 557 | if (!CanEditScriptCheckFunctions.Contains(delegateFunc)) |
558 | CanEditScriptCheckFunctions.Add(delegateFunc); | ||
559 | } | ||
537 | 560 | ||
538 | public void addCheckEditScript(CanEditScript delegateFunc) | 561 | public void removeCheckEditScript(CanEditScript delegateFunc) |
539 | { | 562 | { |
540 | if (!CanEditScriptCheckFunctions.Contains(delegateFunc)) | 563 | if (CanEditScriptCheckFunctions.Contains(delegateFunc)) |
541 | CanEditScriptCheckFunctions.Add(delegateFunc); | 564 | CanEditScriptCheckFunctions.Remove(delegateFunc); |
542 | } | 565 | } |
543 | public void removeCheckEditScript(CanEditScript delegateFunc) | ||
544 | { | ||
545 | if (CanEditScriptCheckFunctions.Contains(delegateFunc)) | ||
546 | CanEditScriptCheckFunctions.Remove(delegateFunc); | ||
547 | } | ||
548 | 566 | ||
549 | public bool ExternalChecksCanEditScript(LLUUID script, LLUUID objectID, LLUUID user) | 567 | public bool ExternalChecksCanEditScript(LLUUID script, LLUUID objectID, LLUUID user) |
568 | { | ||
569 | foreach (CanEditScript check in CanEditScriptCheckFunctions) | ||
550 | { | 570 | { |
551 | foreach (CanEditScript check in CanEditScriptCheckFunctions) | 571 | if (check(script, objectID, user, m_scene) == false) |
552 | { | 572 | { |
553 | if (check(script, objectID, user, m_scene) == false) | 573 | return false; |
554 | { | ||
555 | return false; | ||
556 | } | ||
557 | } | 574 | } |
558 | return true; | ||
559 | } | 575 | } |
576 | return true; | ||
577 | } | ||
560 | 578 | ||
561 | public delegate bool CanEditNotecard(LLUUID notecard, LLUUID objectID, LLUUID user, Scene scene); | 579 | public delegate bool CanEditNotecard(LLUUID notecard, LLUUID objectID, LLUUID user, Scene scene); |
562 | private List<CanEditNotecard> CanEditNotecardCheckFunctions = new List<CanEditNotecard>(); | 580 | private List<CanEditNotecard> CanEditNotecardCheckFunctions = new List<CanEditNotecard>(); |
563 | 581 | ||
564 | public void addCheckEditNotecard(CanEditNotecard delegateFunc) | 582 | public void addCheckEditNotecard(CanEditNotecard delegateFunc) |
565 | { | 583 | { |
566 | if (!CanEditNotecardCheckFunctions.Contains(delegateFunc)) | 584 | if (!CanEditNotecardCheckFunctions.Contains(delegateFunc)) |
567 | CanEditNotecardCheckFunctions.Add(delegateFunc); | 585 | CanEditNotecardCheckFunctions.Add(delegateFunc); |
568 | } | 586 | } |
569 | public void removeCheckEditNotecard(CanEditNotecard delegateFunc) | ||
570 | { | ||
571 | if (CanEditNotecardCheckFunctions.Contains(delegateFunc)) | ||
572 | CanEditNotecardCheckFunctions.Remove(delegateFunc); | ||
573 | } | ||
574 | 587 | ||
575 | public bool ExternalChecksCanEditNotecard(LLUUID script, LLUUID objectID, LLUUID user) | 588 | public void removeCheckEditNotecard(CanEditNotecard delegateFunc) |
589 | { | ||
590 | if (CanEditNotecardCheckFunctions.Contains(delegateFunc)) | ||
591 | CanEditNotecardCheckFunctions.Remove(delegateFunc); | ||
592 | } | ||
593 | |||
594 | public bool ExternalChecksCanEditNotecard(LLUUID script, LLUUID objectID, LLUUID user) | ||
576 | { | 595 | { |
577 | foreach (CanEditNotecard check in CanEditNotecardCheckFunctions) | 596 | foreach (CanEditNotecard check in CanEditNotecardCheckFunctions) |
578 | { | 597 | { |
@@ -584,388 +603,402 @@ namespace OpenSim.Region.Environment.Scenes | |||
584 | return true; | 603 | return true; |
585 | } | 604 | } |
586 | 605 | ||
587 | #endregion | 606 | #endregion |
588 | 607 | ||
589 | #region RUN SCRIPT (When Script Placed in Object) | 608 | #region RUN SCRIPT (When Script Placed in Object) |
590 | public delegate bool CanRunScript(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); | 609 | public delegate bool CanRunScript(LLUUID script, LLUUID objectID, LLUUID user, Scene scene); |
591 | private List<CanRunScript> CanRunScriptCheckFunctions = new List<CanRunScript>(); | 610 | private List<CanRunScript> CanRunScriptCheckFunctions = new List<CanRunScript>(); |
592 | 611 | ||
593 | public void addCheckRunScript(CanRunScript delegateFunc) | 612 | public void addCheckRunScript(CanRunScript delegateFunc) |
594 | { | 613 | { |
595 | if (!CanRunScriptCheckFunctions.Contains(delegateFunc)) | 614 | if (!CanRunScriptCheckFunctions.Contains(delegateFunc)) |
596 | CanRunScriptCheckFunctions.Add(delegateFunc); | 615 | CanRunScriptCheckFunctions.Add(delegateFunc); |
597 | } | 616 | } |
598 | public void removeCheckRunScript(CanRunScript delegateFunc) | ||
599 | { | ||
600 | if (CanRunScriptCheckFunctions.Contains(delegateFunc)) | ||
601 | CanRunScriptCheckFunctions.Remove(delegateFunc); | ||
602 | } | ||
603 | 617 | ||
604 | public bool ExternalChecksCanRunScript(LLUUID script, LLUUID objectID, LLUUID user) | 618 | public void removeCheckRunScript(CanRunScript delegateFunc) |
619 | { | ||
620 | if (CanRunScriptCheckFunctions.Contains(delegateFunc)) | ||
621 | CanRunScriptCheckFunctions.Remove(delegateFunc); | ||
622 | } | ||
623 | |||
624 | public bool ExternalChecksCanRunScript(LLUUID script, LLUUID objectID, LLUUID user) | ||
625 | { | ||
626 | foreach (CanRunScript check in CanRunScriptCheckFunctions) | ||
605 | { | 627 | { |
606 | foreach (CanRunScript check in CanRunScriptCheckFunctions) | 628 | if (check(script, objectID, user, m_scene) == false) |
607 | { | 629 | { |
608 | if (check(script, objectID, user, m_scene) == false) | 630 | return false; |
609 | { | ||
610 | return false; | ||
611 | } | ||
612 | } | 631 | } |
613 | return true; | ||
614 | } | 632 | } |
633 | return true; | ||
634 | } | ||
615 | 635 | ||
616 | #endregion | 636 | #endregion |
617 | 637 | ||
618 | #region START SCRIPT (When Script run box is Checked after placed in object) | 638 | #region START SCRIPT (When Script run box is Checked after placed in object) |
619 | public delegate bool CanStartScript(LLUUID script, LLUUID user, Scene scene); | 639 | public delegate bool CanStartScript(LLUUID script, LLUUID user, Scene scene); |
620 | private List<CanStartScript> CanStartScriptCheckFunctions = new List<CanStartScript>(); | 640 | private List<CanStartScript> CanStartScriptCheckFunctions = new List<CanStartScript>(); |
621 | 641 | ||
622 | public void addCheckStartScript(CanStartScript delegateFunc) | 642 | public void addCheckStartScript(CanStartScript delegateFunc) |
623 | { | 643 | { |
624 | if (!CanStartScriptCheckFunctions.Contains(delegateFunc)) | 644 | if (!CanStartScriptCheckFunctions.Contains(delegateFunc)) |
625 | CanStartScriptCheckFunctions.Add(delegateFunc); | 645 | CanStartScriptCheckFunctions.Add(delegateFunc); |
626 | } | 646 | } |
627 | public void removeCheckStartScript(CanStartScript delegateFunc) | ||
628 | { | ||
629 | if (CanStartScriptCheckFunctions.Contains(delegateFunc)) | ||
630 | CanStartScriptCheckFunctions.Remove(delegateFunc); | ||
631 | } | ||
632 | 647 | ||
633 | public bool ExternalChecksCanStartScript(LLUUID script, LLUUID user) | 648 | public void removeCheckStartScript(CanStartScript delegateFunc) |
649 | { | ||
650 | if (CanStartScriptCheckFunctions.Contains(delegateFunc)) | ||
651 | CanStartScriptCheckFunctions.Remove(delegateFunc); | ||
652 | } | ||
653 | |||
654 | public bool ExternalChecksCanStartScript(LLUUID script, LLUUID user) | ||
655 | { | ||
656 | foreach (CanStartScript check in CanStartScriptCheckFunctions) | ||
634 | { | 657 | { |
635 | foreach (CanStartScript check in CanStartScriptCheckFunctions) | 658 | if (check(script, user, m_scene) == false) |
636 | { | 659 | { |
637 | if (check(script, user, m_scene) == false) | 660 | return false; |
638 | { | ||
639 | return false; | ||
640 | } | ||
641 | } | 661 | } |
642 | return true; | ||
643 | } | 662 | } |
663 | return true; | ||
664 | } | ||
644 | 665 | ||
645 | #endregion | 666 | #endregion |
646 | 667 | ||
647 | #region STOP SCRIPT (When Script run box is unchecked after placed in object) | 668 | #region STOP SCRIPT (When Script run box is unchecked after placed in object) |
648 | public delegate bool CanStopScript(LLUUID script, LLUUID user, Scene scene); | 669 | public delegate bool CanStopScript(LLUUID script, LLUUID user, Scene scene); |
649 | private List<CanStopScript> CanStopScriptCheckFunctions = new List<CanStopScript>(); | 670 | private List<CanStopScript> CanStopScriptCheckFunctions = new List<CanStopScript>(); |
650 | 671 | ||
651 | public void addCheckStopScript(CanStopScript delegateFunc) | 672 | public void addCheckStopScript(CanStopScript delegateFunc) |
652 | { | 673 | { |
653 | if (!CanStopScriptCheckFunctions.Contains(delegateFunc)) | 674 | if (!CanStopScriptCheckFunctions.Contains(delegateFunc)) |
654 | CanStopScriptCheckFunctions.Add(delegateFunc); | 675 | CanStopScriptCheckFunctions.Add(delegateFunc); |
655 | } | 676 | } |
656 | public void removeCheckStopScript(CanStopScript delegateFunc) | ||
657 | { | ||
658 | if (CanStopScriptCheckFunctions.Contains(delegateFunc)) | ||
659 | CanStopScriptCheckFunctions.Remove(delegateFunc); | ||
660 | } | ||
661 | 677 | ||
662 | public bool ExternalChecksCanStopScript(LLUUID script, LLUUID user) | 678 | public void removeCheckStopScript(CanStopScript delegateFunc) |
679 | { | ||
680 | if (CanStopScriptCheckFunctions.Contains(delegateFunc)) | ||
681 | CanStopScriptCheckFunctions.Remove(delegateFunc); | ||
682 | } | ||
683 | |||
684 | public bool ExternalChecksCanStopScript(LLUUID script, LLUUID user) | ||
685 | { | ||
686 | foreach (CanStopScript check in CanStopScriptCheckFunctions) | ||
663 | { | 687 | { |
664 | foreach (CanStopScript check in CanStopScriptCheckFunctions) | 688 | if (check(script, user, m_scene) == false) |
665 | { | 689 | { |
666 | if (check(script, user, m_scene) == false) | 690 | return false; |
667 | { | ||
668 | return false; | ||
669 | } | ||
670 | } | 691 | } |
671 | return true; | ||
672 | } | 692 | } |
693 | return true; | ||
694 | } | ||
673 | 695 | ||
674 | #endregion | 696 | #endregion |
675 | 697 | ||
676 | #region RESET SCRIPT | 698 | #region RESET SCRIPT |
677 | public delegate bool CanResetScript(LLUUID script, LLUUID user, Scene scene); | 699 | public delegate bool CanResetScript(LLUUID script, LLUUID user, Scene scene); |
678 | private List<CanResetScript> CanResetScriptCheckFunctions = new List<CanResetScript>(); | 700 | private List<CanResetScript> CanResetScriptCheckFunctions = new List<CanResetScript>(); |
679 | 701 | ||
680 | public void addCheckResetScript(CanResetScript delegateFunc) | 702 | public void addCheckResetScript(CanResetScript delegateFunc) |
681 | { | 703 | { |
682 | if (!CanResetScriptCheckFunctions.Contains(delegateFunc)) | 704 | if (!CanResetScriptCheckFunctions.Contains(delegateFunc)) |
683 | CanResetScriptCheckFunctions.Add(delegateFunc); | 705 | CanResetScriptCheckFunctions.Add(delegateFunc); |
684 | } | 706 | } |
685 | public void removeCheckResetScript(CanResetScript delegateFunc) | 707 | |
686 | { | 708 | public void removeCheckResetScript(CanResetScript delegateFunc) |
687 | if (CanResetScriptCheckFunctions.Contains(delegateFunc)) | 709 | { |
688 | CanResetScriptCheckFunctions.Remove(delegateFunc); | 710 | if (CanResetScriptCheckFunctions.Contains(delegateFunc)) |
689 | } | 711 | CanResetScriptCheckFunctions.Remove(delegateFunc); |
712 | } | ||
690 | 713 | ||
691 | public bool ExternalChecksCanResetScript(LLUUID script, LLUUID user) | 714 | public bool ExternalChecksCanResetScript(LLUUID script, LLUUID user) |
715 | { | ||
716 | foreach (CanResetScript check in CanResetScriptCheckFunctions) | ||
692 | { | 717 | { |
693 | foreach (CanResetScript check in CanResetScriptCheckFunctions) | 718 | if (check(script, user, m_scene) == false) |
694 | { | 719 | { |
695 | if (check(script, user, m_scene) == false) | 720 | return false; |
696 | { | ||
697 | return false; | ||
698 | } | ||
699 | } | 721 | } |
700 | return true; | ||
701 | } | 722 | } |
723 | return true; | ||
724 | } | ||
702 | 725 | ||
703 | #endregion | 726 | #endregion |
704 | 727 | ||
705 | #region TERRAFORM LAND | 728 | #region TERRAFORM LAND |
706 | public delegate bool CanTerraformLand(LLUUID user, LLVector3 position, Scene requestFromScene); | 729 | public delegate bool CanTerraformLand(LLUUID user, LLVector3 position, Scene requestFromScene); |
707 | private List<CanTerraformLand> CanTerraformLandCheckFunctions = new List<CanTerraformLand>(); | 730 | private List<CanTerraformLand> CanTerraformLandCheckFunctions = new List<CanTerraformLand>(); |
708 | 731 | ||
709 | public void addCheckTerraformLand(CanTerraformLand delegateFunc) | 732 | public void addCheckTerraformLand(CanTerraformLand delegateFunc) |
710 | { | 733 | { |
711 | if (!CanTerraformLandCheckFunctions.Contains(delegateFunc)) | 734 | if (!CanTerraformLandCheckFunctions.Contains(delegateFunc)) |
712 | CanTerraformLandCheckFunctions.Add(delegateFunc); | 735 | CanTerraformLandCheckFunctions.Add(delegateFunc); |
713 | } | 736 | } |
714 | public void removeCheckTerraformLand(CanTerraformLand delegateFunc) | ||
715 | { | ||
716 | if (CanTerraformLandCheckFunctions.Contains(delegateFunc)) | ||
717 | CanTerraformLandCheckFunctions.Remove(delegateFunc); | ||
718 | } | ||
719 | 737 | ||
720 | public bool ExternalChecksCanTerraformLand(LLUUID user, LLVector3 pos) | 738 | public void removeCheckTerraformLand(CanTerraformLand delegateFunc) |
739 | { | ||
740 | if (CanTerraformLandCheckFunctions.Contains(delegateFunc)) | ||
741 | CanTerraformLandCheckFunctions.Remove(delegateFunc); | ||
742 | } | ||
743 | |||
744 | public bool ExternalChecksCanTerraformLand(LLUUID user, LLVector3 pos) | ||
745 | { | ||
746 | foreach (CanTerraformLand check in CanTerraformLandCheckFunctions) | ||
721 | { | 747 | { |
722 | foreach (CanTerraformLand check in CanTerraformLandCheckFunctions) | 748 | if (check(user, pos, m_scene) == false) |
723 | { | 749 | { |
724 | if (check(user, pos, m_scene) == false) | 750 | return false; |
725 | { | ||
726 | return false; | ||
727 | } | ||
728 | } | 751 | } |
729 | return true; | ||
730 | } | 752 | } |
753 | return true; | ||
754 | } | ||
731 | 755 | ||
732 | #endregion | 756 | #endregion |
733 | 757 | ||
734 | #region RUN CONSOLE COMMAND | 758 | #region RUN CONSOLE COMMAND |
735 | public delegate bool CanRunConsoleCommand(LLUUID user, Scene requestFromScene); | 759 | public delegate bool CanRunConsoleCommand(LLUUID user, Scene requestFromScene); |
736 | private List<CanRunConsoleCommand> CanRunConsoleCommandCheckFunctions = new List<CanRunConsoleCommand>(); | 760 | private List<CanRunConsoleCommand> CanRunConsoleCommandCheckFunctions = new List<CanRunConsoleCommand>(); |
737 | 761 | ||
738 | public void addCheckRunConsoleCommand(CanRunConsoleCommand delegateFunc) | 762 | public void addCheckRunConsoleCommand(CanRunConsoleCommand delegateFunc) |
739 | { | 763 | { |
740 | if (!CanRunConsoleCommandCheckFunctions.Contains(delegateFunc)) | 764 | if (!CanRunConsoleCommandCheckFunctions.Contains(delegateFunc)) |
741 | CanRunConsoleCommandCheckFunctions.Add(delegateFunc); | 765 | CanRunConsoleCommandCheckFunctions.Add(delegateFunc); |
742 | } | 766 | } |
743 | public void removeCheckRunConsoleCommand(CanRunConsoleCommand delegateFunc) | ||
744 | { | ||
745 | if (CanRunConsoleCommandCheckFunctions.Contains(delegateFunc)) | ||
746 | CanRunConsoleCommandCheckFunctions.Remove(delegateFunc); | ||
747 | } | ||
748 | 767 | ||
749 | public bool ExternalChecksCanRunConsoleCommand(LLUUID user) | 768 | public void removeCheckRunConsoleCommand(CanRunConsoleCommand delegateFunc) |
769 | { | ||
770 | if (CanRunConsoleCommandCheckFunctions.Contains(delegateFunc)) | ||
771 | CanRunConsoleCommandCheckFunctions.Remove(delegateFunc); | ||
772 | } | ||
773 | |||
774 | public bool ExternalChecksCanRunConsoleCommand(LLUUID user) | ||
775 | { | ||
776 | foreach (CanRunConsoleCommand check in CanRunConsoleCommandCheckFunctions) | ||
750 | { | 777 | { |
751 | foreach (CanRunConsoleCommand check in CanRunConsoleCommandCheckFunctions) | 778 | if (check(user, m_scene) == false) |
752 | { | 779 | { |
753 | if (check(user, m_scene) == false) | 780 | return false; |
754 | { | ||
755 | return false; | ||
756 | } | ||
757 | } | 781 | } |
758 | return true; | ||
759 | } | 782 | } |
783 | return true; | ||
784 | } | ||
760 | 785 | ||
761 | #endregion | 786 | #endregion |
762 | 787 | ||
763 | #region CAN ISSUE ESTATE COMMAND | 788 | #region CAN ISSUE ESTATE COMMAND |
764 | public delegate bool CanIssueEstateCommand(LLUUID user, Scene requestFromScene, bool ownerCommand); | 789 | public delegate bool CanIssueEstateCommand(LLUUID user, Scene requestFromScene, bool ownerCommand); |
765 | private List<CanIssueEstateCommand> CanIssueEstateCommandCheckFunctions = new List<CanIssueEstateCommand>(); | 790 | private List<CanIssueEstateCommand> CanIssueEstateCommandCheckFunctions = new List<CanIssueEstateCommand>(); |
766 | 791 | ||
767 | public void addCheckIssueEstateCommand(CanIssueEstateCommand delegateFunc) | 792 | public void addCheckIssueEstateCommand(CanIssueEstateCommand delegateFunc) |
768 | { | 793 | { |
769 | if (!CanIssueEstateCommandCheckFunctions.Contains(delegateFunc)) | 794 | if (!CanIssueEstateCommandCheckFunctions.Contains(delegateFunc)) |
770 | CanIssueEstateCommandCheckFunctions.Add(delegateFunc); | 795 | CanIssueEstateCommandCheckFunctions.Add(delegateFunc); |
771 | } | 796 | } |
772 | public void removeCheckIssueEstateCommand(CanIssueEstateCommand delegateFunc) | ||
773 | { | ||
774 | if (CanIssueEstateCommandCheckFunctions.Contains(delegateFunc)) | ||
775 | CanIssueEstateCommandCheckFunctions.Remove(delegateFunc); | ||
776 | } | ||
777 | 797 | ||
778 | public bool ExternalChecksCanIssueEstateCommand(LLUUID user, bool ownerCommand) | 798 | public void removeCheckIssueEstateCommand(CanIssueEstateCommand delegateFunc) |
799 | { | ||
800 | if (CanIssueEstateCommandCheckFunctions.Contains(delegateFunc)) | ||
801 | CanIssueEstateCommandCheckFunctions.Remove(delegateFunc); | ||
802 | } | ||
803 | |||
804 | public bool ExternalChecksCanIssueEstateCommand(LLUUID user, bool ownerCommand) | ||
805 | { | ||
806 | foreach (CanIssueEstateCommand check in CanIssueEstateCommandCheckFunctions) | ||
779 | { | 807 | { |
780 | foreach (CanIssueEstateCommand check in CanIssueEstateCommandCheckFunctions) | 808 | if (check(user, m_scene, ownerCommand) == false) |
781 | { | 809 | { |
782 | if (check(user, m_scene, ownerCommand) == false) | 810 | return false; |
783 | { | ||
784 | return false; | ||
785 | } | ||
786 | } | 811 | } |
787 | return true; | ||
788 | } | 812 | } |
789 | #endregion | 813 | return true; |
814 | } | ||
815 | #endregion | ||
790 | 816 | ||
791 | #region CAN BE GODLIKE | 817 | #region CAN BE GODLIKE |
792 | public delegate bool CanBeGodLike(LLUUID user, Scene requestFromScene); | 818 | public delegate bool CanBeGodLike(LLUUID user, Scene requestFromScene); |
793 | private List<CanBeGodLike> CanBeGodLikeCheckFunctions = new List<CanBeGodLike>(); | 819 | private List<CanBeGodLike> CanBeGodLikeCheckFunctions = new List<CanBeGodLike>(); |
794 | 820 | ||
795 | public void addCheckBeGodLike(CanBeGodLike delegateFunc) | 821 | public void addCheckBeGodLike(CanBeGodLike delegateFunc) |
796 | { | 822 | { |
797 | if (!CanBeGodLikeCheckFunctions.Contains(delegateFunc)) | 823 | if (!CanBeGodLikeCheckFunctions.Contains(delegateFunc)) |
798 | CanBeGodLikeCheckFunctions.Add(delegateFunc); | 824 | CanBeGodLikeCheckFunctions.Add(delegateFunc); |
799 | } | 825 | } |
800 | public void removeCheckBeGodLike(CanBeGodLike delegateFunc) | 826 | |
801 | { | 827 | public void removeCheckBeGodLike(CanBeGodLike delegateFunc) |
802 | if (CanBeGodLikeCheckFunctions.Contains(delegateFunc)) | 828 | { |
803 | CanBeGodLikeCheckFunctions.Remove(delegateFunc); | 829 | if (CanBeGodLikeCheckFunctions.Contains(delegateFunc)) |
804 | } | 830 | CanBeGodLikeCheckFunctions.Remove(delegateFunc); |
831 | } | ||
805 | 832 | ||
806 | public bool ExternalChecksCanBeGodLike(LLUUID user) | 833 | public bool ExternalChecksCanBeGodLike(LLUUID user) |
834 | { | ||
835 | foreach (CanBeGodLike check in CanBeGodLikeCheckFunctions) | ||
807 | { | 836 | { |
808 | foreach (CanBeGodLike check in CanBeGodLikeCheckFunctions) | 837 | if (check(user, m_scene) == false) |
809 | { | 838 | { |
810 | if (check(user, m_scene) == false) | 839 | return false; |
811 | { | ||
812 | return false; | ||
813 | } | ||
814 | } | 840 | } |
815 | return true; | ||
816 | } | 841 | } |
817 | #endregion | 842 | return true; |
843 | } | ||
844 | #endregion | ||
818 | 845 | ||
819 | #region EDIT PARCEL | 846 | #region EDIT PARCEL |
820 | public delegate bool CanEditParcel(LLUUID user, ILandObject parcel, Scene scene); | 847 | public delegate bool CanEditParcel(LLUUID user, ILandObject parcel, Scene scene); |
821 | private List<CanEditParcel> CanEditParcelCheckFunctions = new List<CanEditParcel>(); | 848 | private List<CanEditParcel> CanEditParcelCheckFunctions = new List<CanEditParcel>(); |
822 | 849 | ||
823 | public void addCheckEditParcel(CanEditParcel delegateFunc) | 850 | public void addCheckEditParcel(CanEditParcel delegateFunc) |
824 | { | 851 | { |
825 | if (!CanEditParcelCheckFunctions.Contains(delegateFunc)) | 852 | if (!CanEditParcelCheckFunctions.Contains(delegateFunc)) |
826 | CanEditParcelCheckFunctions.Add(delegateFunc); | 853 | CanEditParcelCheckFunctions.Add(delegateFunc); |
827 | } | 854 | } |
828 | public void removeCheckEditParcel(CanEditParcel delegateFunc) | 855 | |
829 | { | 856 | public void removeCheckEditParcel(CanEditParcel delegateFunc) |
830 | if (CanEditParcelCheckFunctions.Contains(delegateFunc)) | 857 | { |
831 | CanEditParcelCheckFunctions.Remove(delegateFunc); | 858 | if (CanEditParcelCheckFunctions.Contains(delegateFunc)) |
832 | } | 859 | CanEditParcelCheckFunctions.Remove(delegateFunc); |
860 | } | ||
833 | 861 | ||
834 | public bool ExternalChecksCanEditParcel(LLUUID user, ILandObject parcel) | 862 | public bool ExternalChecksCanEditParcel(LLUUID user, ILandObject parcel) |
863 | { | ||
864 | foreach (CanEditParcel check in CanEditParcelCheckFunctions) | ||
835 | { | 865 | { |
836 | foreach (CanEditParcel check in CanEditParcelCheckFunctions) | 866 | if (check(user, parcel, m_scene) == false) |
837 | { | 867 | { |
838 | if (check(user, parcel, m_scene) == false) | 868 | return false; |
839 | { | ||
840 | return false; | ||
841 | } | ||
842 | } | 869 | } |
843 | return true; | ||
844 | } | 870 | } |
845 | #endregion | 871 | return true; |
872 | } | ||
873 | #endregion | ||
846 | 874 | ||
847 | #region SELL PARCEL | 875 | #region SELL PARCEL |
848 | public delegate bool CanSellParcel(LLUUID user, ILandObject parcel, Scene scene); | 876 | public delegate bool CanSellParcel(LLUUID user, ILandObject parcel, Scene scene); |
849 | private List<CanSellParcel> CanSellParcelCheckFunctions = new List<CanSellParcel>(); | 877 | private List<CanSellParcel> CanSellParcelCheckFunctions = new List<CanSellParcel>(); |
850 | 878 | ||
851 | public void addCheckSellParcel(CanSellParcel delegateFunc) | 879 | public void addCheckSellParcel(CanSellParcel delegateFunc) |
852 | { | 880 | { |
853 | if (!CanSellParcelCheckFunctions.Contains(delegateFunc)) | 881 | if (!CanSellParcelCheckFunctions.Contains(delegateFunc)) |
854 | CanSellParcelCheckFunctions.Add(delegateFunc); | 882 | CanSellParcelCheckFunctions.Add(delegateFunc); |
855 | } | 883 | } |
856 | public void removeCheckSellParcel(CanSellParcel delegateFunc) | 884 | |
857 | { | 885 | public void removeCheckSellParcel(CanSellParcel delegateFunc) |
858 | if (CanSellParcelCheckFunctions.Contains(delegateFunc)) | 886 | { |
859 | CanSellParcelCheckFunctions.Remove(delegateFunc); | 887 | if (CanSellParcelCheckFunctions.Contains(delegateFunc)) |
860 | } | 888 | CanSellParcelCheckFunctions.Remove(delegateFunc); |
889 | } | ||
861 | 890 | ||
862 | public bool ExternalChecksCanSellParcel(LLUUID user, ILandObject parcel) | 891 | public bool ExternalChecksCanSellParcel(LLUUID user, ILandObject parcel) |
892 | { | ||
893 | foreach (CanSellParcel check in CanSellParcelCheckFunctions) | ||
863 | { | 894 | { |
864 | foreach (CanSellParcel check in CanSellParcelCheckFunctions) | 895 | if (check(user, parcel, m_scene) == false) |
865 | { | 896 | { |
866 | if (check(user, parcel, m_scene) == false) | 897 | return false; |
867 | { | ||
868 | return false; | ||
869 | } | ||
870 | } | 898 | } |
871 | return true; | ||
872 | } | 899 | } |
873 | #endregion | 900 | return true; |
901 | } | ||
902 | #endregion | ||
874 | 903 | ||
875 | #region ABANDON PARCEL | 904 | #region ABANDON PARCEL |
876 | public delegate bool CanAbandonParcel(LLUUID user, ILandObject parcel, Scene scene); | 905 | public delegate bool CanAbandonParcel(LLUUID user, ILandObject parcel, Scene scene); |
877 | private List<CanAbandonParcel> CanAbandonParcelCheckFunctions = new List<CanAbandonParcel>(); | 906 | private List<CanAbandonParcel> CanAbandonParcelCheckFunctions = new List<CanAbandonParcel>(); |
878 | 907 | ||
879 | public void addCheckAbandonParcel(CanAbandonParcel delegateFunc) | 908 | public void addCheckAbandonParcel(CanAbandonParcel delegateFunc) |
880 | { | 909 | { |
881 | if (!CanAbandonParcelCheckFunctions.Contains(delegateFunc)) | 910 | if (!CanAbandonParcelCheckFunctions.Contains(delegateFunc)) |
882 | CanAbandonParcelCheckFunctions.Add(delegateFunc); | 911 | CanAbandonParcelCheckFunctions.Add(delegateFunc); |
883 | } | 912 | } |
884 | public void removeCheckAbandonParcel(CanAbandonParcel delegateFunc) | ||
885 | { | ||
886 | if (CanAbandonParcelCheckFunctions.Contains(delegateFunc)) | ||
887 | CanAbandonParcelCheckFunctions.Remove(delegateFunc); | ||
888 | } | ||
889 | 913 | ||
890 | public bool ExternalChecksCanAbandonParcel(LLUUID user, ILandObject parcel) | 914 | public void removeCheckAbandonParcel(CanAbandonParcel delegateFunc) |
915 | { | ||
916 | if (CanAbandonParcelCheckFunctions.Contains(delegateFunc)) | ||
917 | CanAbandonParcelCheckFunctions.Remove(delegateFunc); | ||
918 | } | ||
919 | |||
920 | public bool ExternalChecksCanAbandonParcel(LLUUID user, ILandObject parcel) | ||
921 | { | ||
922 | foreach (CanAbandonParcel check in CanAbandonParcelCheckFunctions) | ||
891 | { | 923 | { |
892 | foreach (CanAbandonParcel check in CanAbandonParcelCheckFunctions) | 924 | if (check(user, parcel, m_scene) == false) |
893 | { | 925 | { |
894 | if (check(user, parcel, m_scene) == false) | 926 | return false; |
895 | { | ||
896 | return false; | ||
897 | } | ||
898 | } | 927 | } |
899 | return true; | ||
900 | } | 928 | } |
901 | #endregion | 929 | return true; |
930 | } | ||
931 | #endregion | ||
902 | 932 | ||
903 | public delegate bool CanReclaimParcel(LLUUID user, ILandObject parcel, Scene scene); | 933 | public delegate bool CanReclaimParcel(LLUUID user, ILandObject parcel, Scene scene); |
904 | private List<CanReclaimParcel> CanReclaimParcelCheckFunctions = new List<CanReclaimParcel>(); | 934 | private List<CanReclaimParcel> CanReclaimParcelCheckFunctions = new List<CanReclaimParcel>(); |
905 | 935 | ||
906 | public void addCheckReclaimParcel(CanReclaimParcel delegateFunc) | 936 | public void addCheckReclaimParcel(CanReclaimParcel delegateFunc) |
907 | { | 937 | { |
908 | if (!CanReclaimParcelCheckFunctions.Contains(delegateFunc)) | 938 | if (!CanReclaimParcelCheckFunctions.Contains(delegateFunc)) |
909 | CanReclaimParcelCheckFunctions.Add(delegateFunc); | 939 | CanReclaimParcelCheckFunctions.Add(delegateFunc); |
910 | } | 940 | } |
911 | public void removeCheckReclaimParcel(CanReclaimParcel delegateFunc) | ||
912 | { | ||
913 | if (CanReclaimParcelCheckFunctions.Contains(delegateFunc)) | ||
914 | CanReclaimParcelCheckFunctions.Remove(delegateFunc); | ||
915 | } | ||
916 | 941 | ||
917 | public bool ExternalChecksCanReclaimParcel(LLUUID user, ILandObject parcel) | 942 | public void removeCheckReclaimParcel(CanReclaimParcel delegateFunc) |
943 | { | ||
944 | if (CanReclaimParcelCheckFunctions.Contains(delegateFunc)) | ||
945 | CanReclaimParcelCheckFunctions.Remove(delegateFunc); | ||
946 | } | ||
947 | |||
948 | public bool ExternalChecksCanReclaimParcel(LLUUID user, ILandObject parcel) | ||
949 | { | ||
950 | foreach (CanReclaimParcel check in CanReclaimParcelCheckFunctions) | ||
918 | { | 951 | { |
919 | foreach (CanReclaimParcel check in CanReclaimParcelCheckFunctions) | 952 | if (check(user, parcel, m_scene) == false) |
920 | { | 953 | { |
921 | if (check(user, parcel, m_scene) == false) | 954 | return false; |
922 | { | ||
923 | return false; | ||
924 | } | ||
925 | } | 955 | } |
926 | return true; | ||
927 | } | 956 | } |
928 | public delegate bool CanBuyLand(LLUUID user, ILandObject parcel, Scene scene); | 957 | return true; |
929 | private List<CanBuyLand> CanBuyLandCheckFunctions = new List<CanBuyLand>(); | 958 | } |
959 | public delegate bool CanBuyLand(LLUUID user, ILandObject parcel, Scene scene); | ||
960 | private List<CanBuyLand> CanBuyLandCheckFunctions = new List<CanBuyLand>(); | ||
930 | 961 | ||
931 | public void addCheckCanBuyLand(CanBuyLand delegateFunc) | 962 | public void addCheckCanBuyLand(CanBuyLand delegateFunc) |
932 | { | 963 | { |
933 | if (!CanBuyLandCheckFunctions.Contains(delegateFunc)) | 964 | if (!CanBuyLandCheckFunctions.Contains(delegateFunc)) |
934 | CanBuyLandCheckFunctions.Add(delegateFunc); | 965 | CanBuyLandCheckFunctions.Add(delegateFunc); |
935 | } | 966 | } |
936 | public void removeCheckCanBuyLand(CanBuyLand delegateFunc) | ||
937 | { | ||
938 | if (CanBuyLandCheckFunctions.Contains(delegateFunc)) | ||
939 | CanBuyLandCheckFunctions.Remove(delegateFunc); | ||
940 | } | ||
941 | 967 | ||
942 | public bool ExternalChecksCanBuyLand(LLUUID user, ILandObject parcel) | 968 | public void removeCheckCanBuyLand(CanBuyLand delegateFunc) |
969 | { | ||
970 | if (CanBuyLandCheckFunctions.Contains(delegateFunc)) | ||
971 | CanBuyLandCheckFunctions.Remove(delegateFunc); | ||
972 | } | ||
973 | |||
974 | public bool ExternalChecksCanBuyLand(LLUUID user, ILandObject parcel) | ||
975 | { | ||
976 | foreach (CanBuyLand check in CanBuyLandCheckFunctions) | ||
943 | { | 977 | { |
944 | foreach (CanBuyLand check in CanBuyLandCheckFunctions) | 978 | if (check(user, parcel, m_scene) == false) |
945 | { | 979 | { |
946 | if (check(user, parcel, m_scene) == false) | 980 | return false; |
947 | { | ||
948 | return false; | ||
949 | } | ||
950 | } | 981 | } |
951 | return true; | ||
952 | } | 982 | } |
983 | return true; | ||
984 | } | ||
953 | 985 | ||
954 | public delegate bool CanLinkObject(LLUUID user, LLUUID objectID); | 986 | public delegate bool CanLinkObject(LLUUID user, LLUUID objectID); |
955 | private List<CanLinkObject> CanLinkObjectCheckFunctions = new List<CanLinkObject>(); | 987 | private List<CanLinkObject> CanLinkObjectCheckFunctions = new List<CanLinkObject>(); |
956 | 988 | ||
957 | public void addCheckCanLinkObject(CanLinkObject delegateFunc) | 989 | public void addCheckCanLinkObject(CanLinkObject delegateFunc) |
958 | { | 990 | { |
959 | if (!CanLinkObjectCheckFunctions.Contains(delegateFunc)) | 991 | if (!CanLinkObjectCheckFunctions.Contains(delegateFunc)) |
960 | CanLinkObjectCheckFunctions.Add(delegateFunc); | 992 | CanLinkObjectCheckFunctions.Add(delegateFunc); |
961 | } | 993 | } |
962 | public void removeCheckCanLinkObject(CanLinkObject delegateFunc) | 994 | |
963 | { | 995 | public void removeCheckCanLinkObject(CanLinkObject delegateFunc) |
964 | if (CanLinkObjectCheckFunctions.Contains(delegateFunc)) | 996 | { |
965 | CanLinkObjectCheckFunctions.Remove(delegateFunc); | 997 | if (CanLinkObjectCheckFunctions.Contains(delegateFunc)) |
966 | } | 998 | CanLinkObjectCheckFunctions.Remove(delegateFunc); |
999 | } | ||
967 | 1000 | ||
968 | public bool ExternalChecksCanLinkObject(LLUUID user, LLUUID objectID) | 1001 | public bool ExternalChecksCanLinkObject(LLUUID user, LLUUID objectID) |
969 | { | 1002 | { |
970 | foreach (CanLinkObject check in CanLinkObjectCheckFunctions) | 1003 | foreach (CanLinkObject check in CanLinkObjectCheckFunctions) |
971 | { | 1004 | { |
@@ -977,137 +1010,141 @@ namespace OpenSim.Region.Environment.Scenes | |||
977 | return true; | 1010 | return true; |
978 | } | 1011 | } |
979 | 1012 | ||
980 | public delegate bool CanDelinkObject(LLUUID user, LLUUID objectID); | 1013 | public delegate bool CanDelinkObject(LLUUID user, LLUUID objectID); |
981 | private List<CanDelinkObject> CanDelinkObjectCheckFunctions = new List<CanDelinkObject>(); | 1014 | private List<CanDelinkObject> CanDelinkObjectCheckFunctions = new List<CanDelinkObject>(); |
982 | 1015 | ||
983 | public void addCheckCanDelinkObject(CanDelinkObject delegateFunc) | 1016 | public void addCheckCanDelinkObject(CanDelinkObject delegateFunc) |
984 | { | 1017 | { |
985 | if (!CanDelinkObjectCheckFunctions.Contains(delegateFunc)) | 1018 | if (!CanDelinkObjectCheckFunctions.Contains(delegateFunc)) |
986 | CanDelinkObjectCheckFunctions.Add(delegateFunc); | 1019 | CanDelinkObjectCheckFunctions.Add(delegateFunc); |
987 | } | 1020 | } |
988 | public void removeCheckCanDelinkObject(CanDelinkObject delegateFunc) | 1021 | |
989 | { | 1022 | public void removeCheckCanDelinkObject(CanDelinkObject delegateFunc) |
990 | if (CanDelinkObjectCheckFunctions.Contains(delegateFunc)) | 1023 | { |
991 | CanDelinkObjectCheckFunctions.Remove(delegateFunc); | 1024 | if (CanDelinkObjectCheckFunctions.Contains(delegateFunc)) |
992 | } | 1025 | CanDelinkObjectCheckFunctions.Remove(delegateFunc); |
1026 | } | ||
993 | 1027 | ||
994 | public bool ExternalChecksCanDelinkObject(LLUUID user, LLUUID objectID) | 1028 | public bool ExternalChecksCanDelinkObject(LLUUID user, LLUUID objectID) |
1029 | { | ||
1030 | foreach (CanDelinkObject check in CanDelinkObjectCheckFunctions) | ||
995 | { | 1031 | { |
996 | foreach (CanDelinkObject check in CanDelinkObjectCheckFunctions) | 1032 | if (check(user, objectID) == false) |
997 | { | 1033 | { |
998 | if (check(user, objectID) == false) | 1034 | return false; |
999 | { | ||
1000 | return false; | ||
1001 | } | ||
1002 | } | 1035 | } |
1003 | return true; | ||
1004 | } | 1036 | } |
1037 | return true; | ||
1038 | } | ||
1005 | 1039 | ||
1006 | #endregion | 1040 | #endregion |
1007 | 1041 | ||
1008 | public delegate bool CanCreateInventory(uint invType, LLUUID objectID, LLUUID userID); | 1042 | public delegate bool CanCreateInventory(uint invType, LLUUID objectID, LLUUID userID); |
1009 | private List<CanCreateInventory> CanCreateInventoryCheckFunctions = new List<CanCreateInventory>(); | 1043 | private List<CanCreateInventory> CanCreateInventoryCheckFunctions = new List<CanCreateInventory>(); |
1010 | 1044 | ||
1011 | public void addCheckCanCreateInventory(CanCreateInventory delegateFunc) | 1045 | public void addCheckCanCreateInventory(CanCreateInventory delegateFunc) |
1012 | { | 1046 | { |
1013 | if (!CanCreateInventoryCheckFunctions.Contains(delegateFunc)) | 1047 | if (!CanCreateInventoryCheckFunctions.Contains(delegateFunc)) |
1014 | CanCreateInventoryCheckFunctions.Add(delegateFunc); | 1048 | CanCreateInventoryCheckFunctions.Add(delegateFunc); |
1015 | } | 1049 | } |
1016 | public void removeCheckCanCreateInventory(CanCreateInventory delegateFunc) | ||
1017 | { | ||
1018 | if (CanCreateInventoryCheckFunctions.Contains(delegateFunc)) | ||
1019 | CanCreateInventoryCheckFunctions.Remove(delegateFunc); | ||
1020 | } | ||
1021 | 1050 | ||
1022 | public bool ExternalChecksCanCreateInventory(uint invType, LLUUID objectID, LLUUID userID) | 1051 | public void removeCheckCanCreateInventory(CanCreateInventory delegateFunc) |
1052 | { | ||
1053 | if (CanCreateInventoryCheckFunctions.Contains(delegateFunc)) | ||
1054 | CanCreateInventoryCheckFunctions.Remove(delegateFunc); | ||
1055 | } | ||
1056 | |||
1057 | public bool ExternalChecksCanCreateInventory(uint invType, LLUUID objectID, LLUUID userID) | ||
1058 | { | ||
1059 | foreach (CanCreateInventory check in CanCreateInventoryCheckFunctions) | ||
1023 | { | 1060 | { |
1024 | foreach (CanCreateInventory check in CanCreateInventoryCheckFunctions) | 1061 | if (check(invType, objectID, userID) == false) |
1025 | { | 1062 | { |
1026 | if (check(invType, objectID, userID) == false) | 1063 | return false; |
1027 | { | ||
1028 | return false; | ||
1029 | } | ||
1030 | } | 1064 | } |
1031 | return true; | ||
1032 | } | 1065 | } |
1066 | return true; | ||
1067 | } | ||
1033 | 1068 | ||
1034 | public delegate bool CanCopyInventory(LLUUID itemID, LLUUID objectID, LLUUID userID); | 1069 | public delegate bool CanCopyInventory(LLUUID itemID, LLUUID objectID, LLUUID userID); |
1035 | private List<CanCopyInventory> CanCopyInventoryCheckFunctions = new List<CanCopyInventory>(); | 1070 | private List<CanCopyInventory> CanCopyInventoryCheckFunctions = new List<CanCopyInventory>(); |
1036 | 1071 | ||
1037 | public void addCheckCanCopyInventory(CanCopyInventory delegateFunc) | 1072 | public void addCheckCanCopyInventory(CanCopyInventory delegateFunc) |
1038 | { | 1073 | { |
1039 | if (!CanCopyInventoryCheckFunctions.Contains(delegateFunc)) | 1074 | if (!CanCopyInventoryCheckFunctions.Contains(delegateFunc)) |
1040 | CanCopyInventoryCheckFunctions.Add(delegateFunc); | 1075 | CanCopyInventoryCheckFunctions.Add(delegateFunc); |
1041 | } | 1076 | } |
1042 | public void removeCheckCanCopyInventory(CanCopyInventory delegateFunc) | 1077 | |
1043 | { | 1078 | public void removeCheckCanCopyInventory(CanCopyInventory delegateFunc) |
1044 | if (CanCopyInventoryCheckFunctions.Contains(delegateFunc)) | 1079 | { |
1045 | CanCopyInventoryCheckFunctions.Remove(delegateFunc); | 1080 | if (CanCopyInventoryCheckFunctions.Contains(delegateFunc)) |
1046 | } | 1081 | CanCopyInventoryCheckFunctions.Remove(delegateFunc); |
1082 | } | ||
1047 | 1083 | ||
1048 | public bool ExternalChecksCanCopyInventory(LLUUID itemID, LLUUID objectID, LLUUID userID) | 1084 | public bool ExternalChecksCanCopyInventory(LLUUID itemID, LLUUID objectID, LLUUID userID) |
1085 | { | ||
1086 | foreach (CanCopyInventory check in CanCopyInventoryCheckFunctions) | ||
1049 | { | 1087 | { |
1050 | foreach (CanCopyInventory check in CanCopyInventoryCheckFunctions) | 1088 | if (check(itemID, objectID, userID) == false) |
1051 | { | 1089 | { |
1052 | if (check(itemID, objectID, userID) == false) | 1090 | return false; |
1053 | { | ||
1054 | return false; | ||
1055 | } | ||
1056 | } | 1091 | } |
1057 | return true; | ||
1058 | } | 1092 | } |
1093 | return true; | ||
1094 | } | ||
1059 | 1095 | ||
1060 | public delegate bool CanDeleteInventory(LLUUID itemID, LLUUID objectID, LLUUID userID); | 1096 | public delegate bool CanDeleteInventory(LLUUID itemID, LLUUID objectID, LLUUID userID); |
1061 | private List<CanDeleteInventory> CanDeleteInventoryCheckFunctions = new List<CanDeleteInventory>(); | 1097 | private List<CanDeleteInventory> CanDeleteInventoryCheckFunctions = new List<CanDeleteInventory>(); |
1062 | 1098 | ||
1063 | public void addCheckCanDeleteInventory(CanDeleteInventory delegateFunc) | 1099 | public void addCheckCanDeleteInventory(CanDeleteInventory delegateFunc) |
1064 | { | 1100 | { |
1065 | if (!CanDeleteInventoryCheckFunctions.Contains(delegateFunc)) | 1101 | if (!CanDeleteInventoryCheckFunctions.Contains(delegateFunc)) |
1066 | CanDeleteInventoryCheckFunctions.Add(delegateFunc); | 1102 | CanDeleteInventoryCheckFunctions.Add(delegateFunc); |
1067 | } | 1103 | } |
1068 | public void removeCheckCanDeleteInventory(CanDeleteInventory delegateFunc) | ||
1069 | { | ||
1070 | if (CanDeleteInventoryCheckFunctions.Contains(delegateFunc)) | ||
1071 | CanDeleteInventoryCheckFunctions.Remove(delegateFunc); | ||
1072 | } | ||
1073 | 1104 | ||
1074 | public bool ExternalChecksCanDeleteInventory(LLUUID itemID, LLUUID objectID, LLUUID userID) | 1105 | public void removeCheckCanDeleteInventory(CanDeleteInventory delegateFunc) |
1106 | { | ||
1107 | if (CanDeleteInventoryCheckFunctions.Contains(delegateFunc)) | ||
1108 | CanDeleteInventoryCheckFunctions.Remove(delegateFunc); | ||
1109 | } | ||
1110 | |||
1111 | public bool ExternalChecksCanDeleteInventory(LLUUID itemID, LLUUID objectID, LLUUID userID) | ||
1112 | { | ||
1113 | foreach (CanDeleteInventory check in CanDeleteInventoryCheckFunctions) | ||
1075 | { | 1114 | { |
1076 | foreach (CanDeleteInventory check in CanDeleteInventoryCheckFunctions) | 1115 | if (check(itemID, objectID, userID) == false) |
1077 | { | 1116 | { |
1078 | if (check(itemID, objectID, userID) == false) | 1117 | return false; |
1079 | { | ||
1080 | return false; | ||
1081 | } | ||
1082 | } | 1118 | } |
1083 | return true; | ||
1084 | } | 1119 | } |
1120 | return true; | ||
1121 | } | ||
1085 | 1122 | ||
1086 | public delegate bool CanTeleport(LLUUID userID); | 1123 | public delegate bool CanTeleport(LLUUID userID); |
1087 | private List<CanTeleport> CanTeleportCheckFunctions = new List<CanTeleport>(); | 1124 | private List<CanTeleport> CanTeleportCheckFunctions = new List<CanTeleport>(); |
1088 | 1125 | ||
1089 | public void addCheckCanTeleport(CanTeleport delegateFunc) | 1126 | public void addCheckCanTeleport(CanTeleport delegateFunc) |
1090 | { | 1127 | { |
1091 | if (!CanTeleportCheckFunctions.Contains(delegateFunc)) | 1128 | if (!CanTeleportCheckFunctions.Contains(delegateFunc)) |
1092 | CanTeleportCheckFunctions.Add(delegateFunc); | 1129 | CanTeleportCheckFunctions.Add(delegateFunc); |
1093 | } | 1130 | } |
1094 | public void removeCheckCanTeleport(CanTeleport delegateFunc) | ||
1095 | { | ||
1096 | if (CanTeleportCheckFunctions.Contains(delegateFunc)) | ||
1097 | CanTeleportCheckFunctions.Remove(delegateFunc); | ||
1098 | } | ||
1099 | 1131 | ||
1100 | public bool ExternalChecksCanTeleport(LLUUID userID) | 1132 | public void removeCheckCanTeleport(CanTeleport delegateFunc) |
1133 | { | ||
1134 | if (CanTeleportCheckFunctions.Contains(delegateFunc)) | ||
1135 | CanTeleportCheckFunctions.Remove(delegateFunc); | ||
1136 | } | ||
1137 | |||
1138 | public bool ExternalChecksCanTeleport(LLUUID userID) | ||
1139 | { | ||
1140 | foreach (CanTeleport check in CanTeleportCheckFunctions) | ||
1101 | { | 1141 | { |
1102 | foreach (CanTeleport check in CanTeleportCheckFunctions) | 1142 | if (check(userID) == false) |
1103 | { | 1143 | { |
1104 | if (check(userID) == false) | 1144 | return false; |
1105 | { | ||
1106 | return false; | ||
1107 | } | ||
1108 | } | 1145 | } |
1109 | return true; | ||
1110 | } | 1146 | } |
1147 | return true; | ||
1148 | } | ||
1111 | } | 1149 | } |
1112 | } | 1150 | } |
1113 | |||
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs index cc4891f..032d673 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
39 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 39 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
40 | 40 | ||
41 | /// <summary> | 41 | /// <summary> |
42 | /// Force all task inventories of prims in the scene object to persist | 42 | /// Force all task inventories of prims in the scene object to persist |
43 | /// </summary> | 43 | /// </summary> |
44 | public void ForceInventoryPersistence() | 44 | public void ForceInventoryPersistence() |
45 | { | 45 | { |
@@ -49,9 +49,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
49 | { | 49 | { |
50 | part.ForceInventoryPersistence(); | 50 | part.ForceInventoryPersistence(); |
51 | } | 51 | } |
52 | } | 52 | } |
53 | } | 53 | } |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Start the scripts contained in all the prims in this group. | 56 | /// Start the scripts contained in all the prims in this group. |
57 | /// </summary> | 57 | /// </summary> |
@@ -161,7 +161,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
161 | // taskItem.SalePrice = item.SalePrice; | 161 | // taskItem.SalePrice = item.SalePrice; |
162 | // taskItem.SaleType = item.SaleType; | 162 | // taskItem.SaleType = item.SaleType; |
163 | taskItem.CreationDate = (uint)item.CreationDate; | 163 | taskItem.CreationDate = (uint)item.CreationDate; |
164 | 164 | ||
165 | part.AddInventoryItem(taskItem); | 165 | part.AddInventoryItem(taskItem); |
166 | 166 | ||
167 | return true; | 167 | return true; |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 2a1b8c5..9c3d6a7 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -94,7 +94,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
94 | /// since the group's last persistent backup | 94 | /// since the group's last persistent backup |
95 | /// </summary> | 95 | /// </summary> |
96 | public bool HasGroupChanged = false; | 96 | public bool HasGroupChanged = false; |
97 | 97 | ||
98 | public float scriptScore = 0f; | 98 | public float scriptScore = 0f; |
99 | 99 | ||
100 | private LLVector3 lastPhysGroupPos; | 100 | private LLVector3 lastPhysGroupPos; |
@@ -115,7 +115,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | private bool m_scriptListens_notAtTarget = false; | 115 | private bool m_scriptListens_notAtTarget = false; |
116 | 116 | ||
117 | #region Properties | 117 | #region Properties |
118 | 118 | ||
119 | /// <summary> | 119 | /// <summary> |
120 | /// The name of an object grouping is always the same as its root part | 120 | /// The name of an object grouping is always the same as its root part |
121 | /// </summary> | 121 | /// </summary> |
@@ -123,7 +123,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
123 | { | 123 | { |
124 | get { return RootPart.Name; } | 124 | get { return RootPart.Name; } |
125 | set { RootPart.Name = value; } | 125 | set { RootPart.Name = value; } |
126 | } | 126 | } |
127 | 127 | ||
128 | /// <summary> | 128 | /// <summary> |
129 | /// Added because the Parcel code seems to use it | 129 | /// Added because the Parcel code seems to use it |
@@ -445,13 +445,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
445 | } | 445 | } |
446 | more = !reader.EOF; | 446 | more = !reader.EOF; |
447 | } | 447 | } |
448 | 448 | ||
449 | reader.Close(); | 449 | reader.Close(); |
450 | sr.Close(); | 450 | sr.Close(); |
451 | 451 | ||
452 | UpdateParentIDs(); | 452 | UpdateParentIDs(); |
453 | } | 453 | } |
454 | 454 | ||
455 | /// <summary> | 455 | /// <summary> |
456 | /// | 456 | /// |
457 | /// </summary> | 457 | /// </summary> |
@@ -468,14 +468,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
468 | newPart.LinkNum = 0; | 468 | newPart.LinkNum = 0; |
469 | m_parts.Add(newPart.UUID, newPart); | 469 | m_parts.Add(newPart.UUID, newPart); |
470 | SetPartAsRoot(newPart); | 470 | SetPartAsRoot(newPart); |
471 | 471 | ||
472 | // one of these is a proxy. | 472 | // one of these is a proxy. |
473 | if (shape.PCode != (byte)PCode.None && shape.PCode != (byte)PCode.ParticleSystem) | 473 | if (shape.PCode != (byte)PCode.None && shape.PCode != (byte)PCode.ParticleSystem) |
474 | AttachToBackup(); | 474 | AttachToBackup(); |
475 | 475 | ||
476 | //ApplyPhysics(scene.m_physicalPrim); | 476 | //ApplyPhysics(scene.m_physicalPrim); |
477 | } | 477 | } |
478 | 478 | ||
479 | /// <summary> | 479 | /// <summary> |
480 | /// | 480 | /// |
481 | /// </summary> | 481 | /// </summary> |
@@ -754,7 +754,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
754 | m_rootPart.ScheduleFullUpdate(); | 754 | m_rootPart.ScheduleFullUpdate(); |
755 | m_rootPart.ClearUndoState(); | 755 | m_rootPart.ClearUndoState(); |
756 | } | 756 | } |
757 | 757 | ||
758 | public void DetachToInventoryPrep() | 758 | public void DetachToInventoryPrep() |
759 | { | 759 | { |
760 | ScenePresence avatar = m_scene.GetScenePresence(m_rootPart.AttachedAvatar); | 760 | ScenePresence avatar = m_scene.GetScenePresence(m_rootPart.AttachedAvatar); |
@@ -873,11 +873,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
873 | return m_scene.MaxUndoCount; | 873 | return m_scene.MaxUndoCount; |
874 | return 5; | 874 | return 5; |
875 | } | 875 | } |
876 | 876 | ||
877 | // justincc: I don't believe this hack is needed any longer, especially since the physics | 877 | // justincc: I don't believe this hack is needed any longer, especially since the physics |
878 | // parts of set AbsolutePosition were already commented out. By changing HasGroupChanged to false | 878 | // parts of set AbsolutePosition were already commented out. By changing HasGroupChanged to false |
879 | // this method was preventing proper reload of scene objects. | 879 | // this method was preventing proper reload of scene objects. |
880 | // dahlia: I had to uncomment it, without it meshing was failing on some prims and objects | 880 | // dahlia: I had to uncomment it, without it meshing was failing on some prims and objects |
881 | // at region startup | 881 | // at region startup |
882 | public void ResetChildPrimPhysicsPositions() | 882 | public void ResetChildPrimPhysicsPositions() |
883 | { | 883 | { |
@@ -926,20 +926,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
926 | /// </summary> | 926 | /// </summary> |
927 | public void DeleteGroup() | 927 | public void DeleteGroup() |
928 | { | 928 | { |
929 | // We need to keep track of this state in case this group is still queued for backup. | 929 | // We need to keep track of this state in case this group is still queued for backup. |
930 | // FIXME: This is a poor temporary solution, since it still leaves plenty of scope for race | 930 | // FIXME: This is a poor temporary solution, since it still leaves plenty of scope for race |
931 | // conditions where a user deletes an entity while it is being stored. Really, the update | 931 | // conditions where a user deletes an entity while it is being stored. Really, the update |
932 | // code needs a redesign. | 932 | // code needs a redesign. |
933 | m_isDeleted = true; | 933 | m_isDeleted = true; |
934 | 934 | ||
935 | DetachFromBackup(this); | 935 | DetachFromBackup(this); |
936 | 936 | ||
937 | lock (m_parts) | 937 | lock (m_parts) |
938 | { | 938 | { |
939 | foreach (SceneObjectPart part in m_parts.Values) | 939 | foreach (SceneObjectPart part in m_parts.Values) |
940 | { | 940 | { |
941 | part.RemoveScriptInstances(); | 941 | part.RemoveScriptInstances(); |
942 | 942 | ||
943 | List<ScenePresence> avatars = Scene.GetScenePresences(); | 943 | List<ScenePresence> avatars = Scene.GetScenePresences(); |
944 | for (int i = 0; i < avatars.Count; i++) | 944 | for (int i = 0; i < avatars.Count; i++) |
945 | { | 945 | { |
@@ -951,12 +951,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
951 | avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId); | 951 | avatars[i].ControllingClient.SendKillObject(m_regionHandle, part.LocalId); |
952 | } | 952 | } |
953 | } | 953 | } |
954 | 954 | ||
955 | m_rootPart = null; | 955 | m_rootPart = null; |
956 | m_parts.Clear(); | 956 | m_parts.Clear(); |
957 | } | 957 | } |
958 | } | 958 | } |
959 | 959 | ||
960 | public void FakeDeleteGroup() | 960 | public void FakeDeleteGroup() |
961 | { | 961 | { |
962 | foreach (SceneObjectPart part in m_parts.Values) | 962 | foreach (SceneObjectPart part in m_parts.Values) |
@@ -1034,7 +1034,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1034 | lock (m_targets) | 1034 | lock (m_targets) |
1035 | m_targets.Clear(); | 1035 | m_targets.Clear(); |
1036 | } | 1036 | } |
1037 | 1037 | ||
1038 | ScheduleGroupForFullUpdate(); | 1038 | ScheduleGroupForFullUpdate(); |
1039 | } | 1039 | } |
1040 | 1040 | ||
@@ -1067,7 +1067,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1067 | { | 1067 | { |
1068 | part.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_physicalPrim); | 1068 | part.ApplyPhysics(m_rootPart.GetEffectiveObjectFlags(), m_physicalPrim); |
1069 | } | 1069 | } |
1070 | 1070 | ||
1071 | // Hack to get the physics scene geometries in the right spot | 1071 | // Hack to get the physics scene geometries in the right spot |
1072 | ResetChildPrimPhysicsPositions(); | 1072 | ResetChildPrimPhysicsPositions(); |
1073 | } | 1073 | } |
@@ -1102,14 +1102,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1102 | /// </summary> | 1102 | /// </summary> |
1103 | /// <param name="datastore"></param> | 1103 | /// <param name="datastore"></param> |
1104 | public void ProcessBackup(IRegionDataStore datastore) | 1104 | public void ProcessBackup(IRegionDataStore datastore) |
1105 | { | 1105 | { |
1106 | if (HasGroupChanged) | 1106 | if (HasGroupChanged) |
1107 | { | 1107 | { |
1108 | // don't backup while it's selected or you're asking for changes mid stream. | 1108 | // don't backup while it's selected or you're asking for changes mid stream. |
1109 | if ((!IsSelected) && (RootPart != null)) | 1109 | if ((!IsSelected) && (RootPart != null)) |
1110 | { | 1110 | { |
1111 | m_log.InfoFormat( | 1111 | m_log.InfoFormat( |
1112 | "[SCENE]: Storing object {0}, {1} in {2}", | 1112 | "[SCENE]: Storing object {0}, {1} in {2}", |
1113 | Name, UUID, m_scene.RegionInfo.RegionName); | 1113 | Name, UUID, m_scene.RegionInfo.RegionName); |
1114 | 1114 | ||
1115 | SceneObjectGroup backup_group = Copy(OwnerID, GroupID, false); | 1115 | SceneObjectGroup backup_group = Copy(OwnerID, GroupID, false); |
@@ -1236,7 +1236,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1236 | 1236 | ||
1237 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); | 1237 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); |
1238 | } | 1238 | } |
1239 | 1239 | ||
1240 | // Now we've made a copy that replaces this one, we need to | 1240 | // Now we've made a copy that replaces this one, we need to |
1241 | // switch the owner to the person who did the copying | 1241 | // switch the owner to the person who did the copying |
1242 | // Second Life copies an object and duplicates the first one in it's place | 1242 | // Second Life copies an object and duplicates the first one in it's place |
@@ -1267,7 +1267,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1267 | dupe.UpdateParentIDs(); | 1267 | dupe.UpdateParentIDs(); |
1268 | dupe.HasGroupChanged = true; | 1268 | dupe.HasGroupChanged = true; |
1269 | dupe.AttachToBackup(); | 1269 | dupe.AttachToBackup(); |
1270 | 1270 | ||
1271 | ScheduleGroupForFullUpdate(); | 1271 | ScheduleGroupForFullUpdate(); |
1272 | } | 1272 | } |
1273 | 1273 | ||
@@ -1673,7 +1673,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1673 | { | 1673 | { |
1674 | return true; | 1674 | return true; |
1675 | } | 1675 | } |
1676 | 1676 | ||
1677 | return false; | 1677 | return false; |
1678 | } | 1678 | } |
1679 | 1679 | ||
@@ -1695,7 +1695,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1695 | } | 1695 | } |
1696 | } | 1696 | } |
1697 | } | 1697 | } |
1698 | 1698 | ||
1699 | return false; | 1699 | return false; |
1700 | } | 1700 | } |
1701 | 1701 | ||
@@ -2042,7 +2042,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2042 | public void UpdatePrimFlags(uint localID, ushort type, bool inUse, byte[] data) | 2042 | public void UpdatePrimFlags(uint localID, ushort type, bool inUse, byte[] data) |
2043 | { | 2043 | { |
2044 | SceneObjectPart selectionPart = GetChildPart(localID); | 2044 | SceneObjectPart selectionPart = GetChildPart(localID); |
2045 | 2045 | ||
2046 | if (selectionPart != null) | 2046 | if (selectionPart != null) |
2047 | { | 2047 | { |
2048 | lock (m_parts) | 2048 | lock (m_parts) |
@@ -2164,7 +2164,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2164 | m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor); | 2164 | m_scene.PhysicsScene.AddPhysicsActorTaint(part.PhysActor); |
2165 | } | 2165 | } |
2166 | //if (part.UUID != m_rootPart.UUID) | 2166 | //if (part.UUID != m_rootPart.UUID) |
2167 | 2167 | ||
2168 | HasGroupChanged = true; | 2168 | HasGroupChanged = true; |
2169 | ScheduleGroupForFullUpdate(); | 2169 | ScheduleGroupForFullUpdate(); |
2170 | 2170 | ||
@@ -2332,10 +2332,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2332 | } | 2332 | } |
2333 | 2333 | ||
2334 | AbsolutePosition = pos; | 2334 | AbsolutePosition = pos; |
2335 | 2335 | ||
2336 | HasGroupChanged = true; | 2336 | HasGroupChanged = true; |
2337 | } | 2337 | } |
2338 | 2338 | ||
2339 | //we need to do a terse update even if the move wasn't allowed | 2339 | //we need to do a terse update even if the move wasn't allowed |
2340 | // so that the position is reset in the client (the object snaps back) | 2340 | // so that the position is reset in the client (the object snaps back) |
2341 | ScheduleGroupForTerseUpdate(); | 2341 | ScheduleGroupForTerseUpdate(); |
@@ -2349,7 +2349,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2349 | public void UpdateSinglePosition(LLVector3 pos, uint localID) | 2349 | public void UpdateSinglePosition(LLVector3 pos, uint localID) |
2350 | { | 2350 | { |
2351 | SceneObjectPart part = GetChildPart(localID); | 2351 | SceneObjectPart part = GetChildPart(localID); |
2352 | 2352 | ||
2353 | if (part != null) | 2353 | if (part != null) |
2354 | { | 2354 | { |
2355 | if (part.UUID == m_rootPart.UUID) | 2355 | if (part.UUID == m_rootPart.UUID) |
@@ -2360,7 +2360,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2360 | { | 2360 | { |
2361 | part.UpdateOffSet(pos); | 2361 | part.UpdateOffSet(pos); |
2362 | } | 2362 | } |
2363 | 2363 | ||
2364 | HasGroupChanged = true; | 2364 | HasGroupChanged = true; |
2365 | } | 2365 | } |
2366 | } | 2366 | } |
@@ -2398,7 +2398,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2398 | } | 2398 | } |
2399 | 2399 | ||
2400 | AbsolutePosition = newPos; | 2400 | AbsolutePosition = newPos; |
2401 | 2401 | ||
2402 | HasGroupChanged = true; | 2402 | HasGroupChanged = true; |
2403 | ScheduleGroupForTerseUpdate(); | 2403 | ScheduleGroupForTerseUpdate(); |
2404 | } | 2404 | } |
@@ -2426,7 +2426,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2426 | m_rootPart.RotationOffset.Z); | 2426 | m_rootPart.RotationOffset.Z); |
2427 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | 2427 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); |
2428 | } | 2428 | } |
2429 | 2429 | ||
2430 | HasGroupChanged = true; | 2430 | HasGroupChanged = true; |
2431 | ScheduleGroupForTerseUpdate(); | 2431 | ScheduleGroupForTerseUpdate(); |
2432 | } | 2432 | } |
@@ -2447,7 +2447,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2447 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); | 2447 | m_scene.PhysicsScene.AddPhysicsActorTaint(m_rootPart.PhysActor); |
2448 | } | 2448 | } |
2449 | AbsolutePosition = pos; | 2449 | AbsolutePosition = pos; |
2450 | 2450 | ||
2451 | HasGroupChanged = true; | 2451 | HasGroupChanged = true; |
2452 | ScheduleGroupForTerseUpdate(); | 2452 | ScheduleGroupForTerseUpdate(); |
2453 | } | 2453 | } |
@@ -2684,7 +2684,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2684 | } | 2684 | } |
2685 | } | 2685 | } |
2686 | } | 2686 | } |
2687 | 2687 | ||
2688 | /// <summary> | 2688 | /// <summary> |
2689 | /// Set the user group to which this scene object belongs. | 2689 | /// Set the user group to which this scene object belongs. |
2690 | /// </summary> | 2690 | /// </summary> |
@@ -2698,10 +2698,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2698 | { | 2698 | { |
2699 | part.SetGroup(GroupID, client); | 2699 | part.SetGroup(GroupID, client); |
2700 | } | 2700 | } |
2701 | 2701 | ||
2702 | HasGroupChanged = true; | 2702 | HasGroupChanged = true; |
2703 | } | 2703 | } |
2704 | 2704 | ||
2705 | ScheduleGroupForFullUpdate(); | 2705 | ScheduleGroupForFullUpdate(); |
2706 | } | 2706 | } |
2707 | 2707 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index 480c030..0ac20e2 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs | |||
@@ -43,7 +43,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
43 | 43 | ||
44 | private string m_inventoryFileName = String.Empty; | 44 | private string m_inventoryFileName = String.Empty; |
45 | private int m_inventoryFileNameSerial = 0; | 45 | private int m_inventoryFileNameSerial = 0; |
46 | 46 | ||
47 | /// <summary> | 47 | /// <summary> |
48 | /// Serial count for inventory file , used to tell if inventory has changed | 48 | /// Serial count for inventory file , used to tell if inventory has changed |
49 | /// no need for this to be part of Database backup | 49 | /// no need for this to be part of Database backup |
@@ -53,13 +53,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
53 | /// <summary> | 53 | /// <summary> |
54 | /// Holds in memory prim inventory | 54 | /// Holds in memory prim inventory |
55 | /// </summary> | 55 | /// </summary> |
56 | protected TaskInventoryDictionary m_taskInventory = new TaskInventoryDictionary(); | 56 | protected TaskInventoryDictionary m_taskInventory = new TaskInventoryDictionary(); |
57 | 57 | ||
58 | /// <summary> | 58 | /// <summary> |
59 | /// Tracks whether inventory has changed since the last persistent backup | 59 | /// Tracks whether inventory has changed since the last persistent backup |
60 | /// </summary> | 60 | /// </summary> |
61 | protected bool HasInventoryChanged; | 61 | protected bool HasInventoryChanged; |
62 | 62 | ||
63 | /// <summary> | 63 | /// <summary> |
64 | /// Force the task inventory of this prim to persist at the next update sweep | 64 | /// Force the task inventory of this prim to persist at the next update sweep |
65 | /// </summary> | 65 | /// </summary> |
@@ -308,7 +308,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
308 | { | 308 | { |
309 | if (i.InvType == (int)InventoryType.LSL) | 309 | if (i.InvType == (int)InventoryType.LSL) |
310 | RemoveScriptInstance(i.ItemID); | 310 | RemoveScriptInstance(i.ItemID); |
311 | 311 | ||
312 | RemoveInventoryItem(i.ItemID); | 312 | RemoveInventoryItem(i.ItemID); |
313 | break; | 313 | break; |
314 | } | 314 | } |
@@ -316,7 +316,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
316 | 316 | ||
317 | AddInventoryItem(item.Name, item); | 317 | AddInventoryItem(item.Name, item); |
318 | } | 318 | } |
319 | 319 | ||
320 | /// <summary> | 320 | /// <summary> |
321 | /// Add an item to this prim's inventory. | 321 | /// Add an item to this prim's inventory. |
322 | /// </summary> | 322 | /// </summary> |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
329 | { | 329 | { |
330 | item.ParentID = UUID; | 330 | item.ParentID = UUID; |
331 | item.ParentPartID = UUID; | 331 | item.ParentPartID = UUID; |
332 | 332 | ||
333 | lock (m_taskInventory) | 333 | lock (m_taskInventory) |
334 | { | 334 | { |
335 | m_taskInventory.Add(item.ItemID, item); | 335 | m_taskInventory.Add(item.ItemID, item); |
@@ -339,7 +339,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
339 | m_inventorySerial++; | 339 | m_inventorySerial++; |
340 | //m_inventorySerial += 2; | 340 | //m_inventorySerial += 2; |
341 | HasInventoryChanged = true; | 341 | HasInventoryChanged = true; |
342 | ParentGroup.HasGroupChanged = true; | 342 | ParentGroup.HasGroupChanged = true; |
343 | } | 343 | } |
344 | 344 | ||
345 | /// <summary> | 345 | /// <summary> |
@@ -369,10 +369,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
369 | /// <param name="itemID"></param> | 369 | /// <param name="itemID"></param> |
370 | /// <returns>null if the item does not exist</returns> | 370 | /// <returns>null if the item does not exist</returns> |
371 | public TaskInventoryItem GetInventoryItem(LLUUID itemId) | 371 | public TaskInventoryItem GetInventoryItem(LLUUID itemId) |
372 | { | 372 | { |
373 | TaskInventoryItem item; | 373 | TaskInventoryItem item; |
374 | m_taskInventory.TryGetValue(itemId, out item); | 374 | m_taskInventory.TryGetValue(itemId, out item); |
375 | 375 | ||
376 | return item; | 376 | return item; |
377 | } | 377 | } |
378 | 378 | ||
@@ -450,12 +450,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
450 | } | 450 | } |
451 | 451 | ||
452 | } | 452 | } |
453 | 453 | ||
454 | if (scriptcount <= 0) | 454 | if (scriptcount <= 0) |
455 | { | 455 | { |
456 | RemFlag(LLObject.ObjectFlags.Scripted); | 456 | RemFlag(LLObject.ObjectFlags.Scripted); |
457 | } | 457 | } |
458 | 458 | ||
459 | ScheduleFullUpdate(); | 459 | ScheduleFullUpdate(); |
460 | 460 | ||
461 | return type; | 461 | return type; |
@@ -603,7 +603,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
603 | public void ProcessInventoryBackup(IRegionDataStore datastore) | 603 | public void ProcessInventoryBackup(IRegionDataStore datastore) |
604 | { | 604 | { |
605 | if (HasInventoryChanged) | 605 | if (HasInventoryChanged) |
606 | { | 606 | { |
607 | lock (TaskInventory) | 607 | lock (TaskInventory) |
608 | { | 608 | { |
609 | datastore.StorePrimInventory(UUID, TaskInventory.Values); | 609 | datastore.StorePrimInventory(UUID, TaskInventory.Values); |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index 1432912..517114f 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -141,7 +141,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
141 | public uint AttachmentPoint = (byte)0; | 141 | public uint AttachmentPoint = (byte)0; |
142 | [XmlIgnore] | 142 | [XmlIgnore] |
143 | public PhysicsVector RotationAxis = new PhysicsVector(1f,1f,1f); | 143 | public PhysicsVector RotationAxis = new PhysicsVector(1f,1f,1f); |
144 | 144 | ||
145 | [XmlIgnore] | 145 | [XmlIgnore] |
146 | public bool Undoing = false; | 146 | public bool Undoing = false; |
147 | 147 | ||
@@ -196,11 +196,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
196 | protected LLVector3 m_velocity; | 196 | protected LLVector3 m_velocity; |
197 | 197 | ||
198 | // TODO: Those have to be changed into persistent properties at some later point, | 198 | // TODO: Those have to be changed into persistent properties at some later point, |
199 | // or sit-camera on vehicles will break on sim-crossing. | 199 | // or sit-camera on vehicles will break on sim-crossing. |
200 | private LLVector3 m_cameraEyeOffset = new LLVector3(0.0f, 0.0f, 0.0f); | 200 | private LLVector3 m_cameraEyeOffset = new LLVector3(0.0f, 0.0f, 0.0f); |
201 | private LLVector3 m_cameraAtOffset = new LLVector3(0.0f, 0.0f, 0.0f); | 201 | private LLVector3 m_cameraAtOffset = new LLVector3(0.0f, 0.0f, 0.0f); |
202 | private bool m_forceMouselook = false; | 202 | private bool m_forceMouselook = false; |
203 | 203 | ||
204 | #endregion Fields | 204 | #endregion Fields |
205 | 205 | ||
206 | #region Constructors | 206 | #region Constructors |
@@ -352,13 +352,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
352 | private uint _everyoneMask = (uint)PermissionMask.None; | 352 | private uint _everyoneMask = (uint)PermissionMask.None; |
353 | private uint _nextOwnerMask = (uint)PermissionMask.All; | 353 | private uint _nextOwnerMask = (uint)PermissionMask.All; |
354 | private LLObject.ObjectFlags _flags = LLObject.ObjectFlags.None; | 354 | private LLObject.ObjectFlags _flags = LLObject.ObjectFlags.None; |
355 | 355 | ||
356 | public LLUUID CreatorID { | 356 | public LLUUID CreatorID { |
357 | get | 357 | get |
358 | { | 358 | { |
359 | return _creatorID; | 359 | return _creatorID; |
360 | } | 360 | } |
361 | set | 361 | set |
362 | { | 362 | { |
363 | _creatorID = value; | 363 | _creatorID = value; |
364 | } | 364 | } |
@@ -390,26 +390,26 @@ namespace OpenSim.Region.Environment.Scenes | |||
390 | { | 390 | { |
391 | get { return (uint)_flags; } | 391 | get { return (uint)_flags; } |
392 | set { _flags = (LLObject.ObjectFlags)value; } | 392 | set { _flags = (LLObject.ObjectFlags)value; } |
393 | } | 393 | } |
394 | 394 | ||
395 | public LLUUID UUID | 395 | public LLUUID UUID |
396 | { | 396 | { |
397 | get { return m_uuid; } | 397 | get { return m_uuid; } |
398 | set { m_uuid = value; } | 398 | set { m_uuid = value; } |
399 | } | 399 | } |
400 | 400 | ||
401 | public uint LocalId | 401 | public uint LocalId |
402 | { | 402 | { |
403 | get { return m_localId; } | 403 | get { return m_localId; } |
404 | set { m_localId = value; } | 404 | set { m_localId = value; } |
405 | } | 405 | } |
406 | 406 | ||
407 | public virtual string Name | 407 | public virtual string Name |
408 | { | 408 | { |
409 | get { return m_name; } | 409 | get { return m_name; } |
410 | set { m_name = value; } | 410 | set { m_name = value; } |
411 | } | 411 | } |
412 | 412 | ||
413 | public byte Material | 413 | public byte Material |
414 | { | 414 | { |
415 | get { return (byte) m_material; } | 415 | get { return (byte) m_material; } |
@@ -607,13 +607,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
607 | /// <summary></summary> | 607 | /// <summary></summary> |
608 | public LLVector3 AngularVelocity | 608 | public LLVector3 AngularVelocity |
609 | { | 609 | { |
610 | get | 610 | get |
611 | { | 611 | { |
612 | if ((PhysActor != null) && PhysActor.IsPhysical) | 612 | if ((PhysActor != null) && PhysActor.IsPhysical) |
613 | { | 613 | { |
614 | m_angularVelocity.FromBytes(PhysActor.RotationalVelocity.GetBytes(), 0); | 614 | m_angularVelocity.FromBytes(PhysActor.RotationalVelocity.GetBytes(), 0); |
615 | } | 615 | } |
616 | return m_angularVelocity; | 616 | return m_angularVelocity; |
617 | } | 617 | } |
618 | set { m_angularVelocity = value; } | 618 | set { m_angularVelocity = value; } |
619 | } | 619 | } |
@@ -631,7 +631,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
631 | get { return m_description; } | 631 | get { return m_description; } |
632 | set { m_description = value; } | 632 | set { m_description = value; } |
633 | } | 633 | } |
634 | 634 | ||
635 | public Color Color | 635 | public Color Color |
636 | { | 636 | { |
637 | get { return m_color; } | 637 | get { return m_color; } |
@@ -702,7 +702,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
702 | // set of attributes on shape change. For instance, | 702 | // set of attributes on shape change. For instance, |
703 | // changing the lighting on a shape shouldn't cause | 703 | // changing the lighting on a shape shouldn't cause |
704 | // this. | 704 | // this. |
705 | if (m_shape != null) | 705 | if (m_shape != null) |
706 | shape_changed = true; | 706 | shape_changed = true; |
707 | 707 | ||
708 | m_shape = value; | 708 | m_shape = value; |
@@ -740,7 +740,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
740 | } | 740 | } |
741 | 741 | ||
742 | #endregion | 742 | #endregion |
743 | 743 | ||
744 | //--------------- | 744 | //--------------- |
745 | 745 | ||
746 | 746 | ||
@@ -771,7 +771,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
771 | get { return m_parentGroup; } | 771 | get { return m_parentGroup; } |
772 | } | 772 | } |
773 | 773 | ||
774 | 774 | ||
775 | 775 | ||
776 | public scriptEvents ScriptEvents | 776 | public scriptEvents ScriptEvents |
777 | { | 777 | { |
@@ -802,8 +802,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
802 | 802 | ||
803 | public LLQuaternion SitTargetOrientationLL | 803 | public LLQuaternion SitTargetOrientationLL |
804 | { | 804 | { |
805 | get | 805 | get |
806 | { | 806 | { |
807 | return new LLQuaternion( | 807 | return new LLQuaternion( |
808 | m_sitTargetOrientation.x, | 808 | m_sitTargetOrientation.x, |
809 | m_sitTargetOrientation.y, | 809 | m_sitTargetOrientation.y, |
@@ -830,97 +830,97 @@ namespace OpenSim.Region.Environment.Scenes | |||
830 | } | 830 | } |
831 | } | 831 | } |
832 | 832 | ||
833 | public uint ParentID | 833 | public uint ParentID |
834 | { | 834 | { |
835 | get { return _parentID; } | 835 | get { return _parentID; } |
836 | set { _parentID = value; } | 836 | set { _parentID = value; } |
837 | } | 837 | } |
838 | 838 | ||
839 | public int CreationDate | 839 | public int CreationDate |
840 | { | 840 | { |
841 | get { return _creationDate; } | 841 | get { return _creationDate; } |
842 | set { _creationDate = value; } | 842 | set { _creationDate = value; } |
843 | } | 843 | } |
844 | 844 | ||
845 | public uint Category | 845 | public uint Category |
846 | { | 846 | { |
847 | get { return _category; } | 847 | get { return _category; } |
848 | set { _category = value; } | 848 | set { _category = value; } |
849 | } | 849 | } |
850 | 850 | ||
851 | public int SalePrice | 851 | public int SalePrice |
852 | { | 852 | { |
853 | get { return _salePrice; } | 853 | get { return _salePrice; } |
854 | set { _salePrice = value; } | 854 | set { _salePrice = value; } |
855 | } | 855 | } |
856 | 856 | ||
857 | public byte ObjectSaleType | 857 | public byte ObjectSaleType |
858 | { | 858 | { |
859 | get { return _objectSaleType; } | 859 | get { return _objectSaleType; } |
860 | set { _objectSaleType = value; } | 860 | set { _objectSaleType = value; } |
861 | } | 861 | } |
862 | 862 | ||
863 | public int OwnershipCost | 863 | public int OwnershipCost |
864 | { | 864 | { |
865 | get { return _ownershipCost; } | 865 | get { return _ownershipCost; } |
866 | set { _ownershipCost = value; } | 866 | set { _ownershipCost = value; } |
867 | } | 867 | } |
868 | 868 | ||
869 | public LLUUID GroupID | 869 | public LLUUID GroupID |
870 | { | 870 | { |
871 | get { return _groupID; } | 871 | get { return _groupID; } |
872 | set { _groupID = value; } | 872 | set { _groupID = value; } |
873 | } | 873 | } |
874 | 874 | ||
875 | public LLUUID OwnerID | 875 | public LLUUID OwnerID |
876 | { | 876 | { |
877 | get { return _ownerID; } | 877 | get { return _ownerID; } |
878 | set { _ownerID = value; } | 878 | set { _ownerID = value; } |
879 | } | 879 | } |
880 | 880 | ||
881 | public LLUUID LastOwnerID | 881 | public LLUUID LastOwnerID |
882 | { | 882 | { |
883 | get { return _lastOwnerID; } | 883 | get { return _lastOwnerID; } |
884 | set { _lastOwnerID = value; } | 884 | set { _lastOwnerID = value; } |
885 | } | 885 | } |
886 | 886 | ||
887 | public uint BaseMask | 887 | public uint BaseMask |
888 | { | 888 | { |
889 | get { return _baseMask; } | 889 | get { return _baseMask; } |
890 | set { _baseMask = value; } | 890 | set { _baseMask = value; } |
891 | } | 891 | } |
892 | 892 | ||
893 | public uint OwnerMask | 893 | public uint OwnerMask |
894 | { | 894 | { |
895 | get { return _ownerMask; } | 895 | get { return _ownerMask; } |
896 | set { _ownerMask = value; } | 896 | set { _ownerMask = value; } |
897 | } | 897 | } |
898 | 898 | ||
899 | public uint GroupMask | 899 | public uint GroupMask |
900 | { | 900 | { |
901 | get { return _groupMask; } | 901 | get { return _groupMask; } |
902 | set { _groupMask = value; } | 902 | set { _groupMask = value; } |
903 | } | 903 | } |
904 | 904 | ||
905 | public uint EveryoneMask | 905 | public uint EveryoneMask |
906 | { | 906 | { |
907 | get { return _everyoneMask; } | 907 | get { return _everyoneMask; } |
908 | set { _everyoneMask = value; } | 908 | set { _everyoneMask = value; } |
909 | } | 909 | } |
910 | 910 | ||
911 | public uint NextOwnerMask | 911 | public uint NextOwnerMask |
912 | { | 912 | { |
913 | get { return _nextOwnerMask; } | 913 | get { return _nextOwnerMask; } |
914 | set { _nextOwnerMask = value; } | 914 | set { _nextOwnerMask = value; } |
915 | } | 915 | } |
916 | 916 | ||
917 | public libsecondlife.LLObject.ObjectFlags Flags | 917 | public libsecondlife.LLObject.ObjectFlags Flags |
918 | { | 918 | { |
919 | get { return _flags; } | 919 | get { return _flags; } |
920 | set { _flags = value; } | 920 | set { _flags = value; } |
921 | } | 921 | } |
922 | 922 | ||
923 | public LLUUID SitTargetAvatar | 923 | public LLUUID SitTargetAvatar |
924 | { | 924 | { |
925 | get { return m_sitTargetAvatar; } | 925 | get { return m_sitTargetAvatar; } |
926 | set { m_sitTargetAvatar = value; } | 926 | set { m_sitTargetAvatar = value; } |
@@ -929,8 +929,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
929 | [XmlIgnore] | 929 | [XmlIgnore] |
930 | public virtual LLUUID RegionID | 930 | public virtual LLUUID RegionID |
931 | { | 931 | { |
932 | get | 932 | get |
933 | { | 933 | { |
934 | if (ParentGroup != null && ParentGroup.Scene != null) | 934 | if (ParentGroup != null && ParentGroup.Scene != null) |
935 | return ParentGroup.Scene.RegionInfo.RegionID; | 935 | return ParentGroup.Scene.RegionInfo.RegionID; |
936 | else | 936 | else |
@@ -943,9 +943,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
943 | [XmlIgnore] | 943 | [XmlIgnore] |
944 | public LLUUID ParentUUID | 944 | public LLUUID ParentUUID |
945 | { | 945 | { |
946 | get | 946 | get |
947 | { | 947 | { |
948 | if (ParentGroup != null) | 948 | if (ParentGroup != null) |
949 | { | 949 | { |
950 | _parentUUID = ParentGroup.UUID; | 950 | _parentUUID = ParentGroup.UUID; |
951 | } | 951 | } |
@@ -953,7 +953,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
953 | } | 953 | } |
954 | set { _parentUUID = value; } | 954 | set { _parentUUID = value; } |
955 | } | 955 | } |
956 | 956 | ||
957 | #endregion Public Properties with only Get | 957 | #endregion Public Properties with only Get |
958 | 958 | ||
959 | #region Private Methods | 959 | #region Private Methods |
@@ -2460,7 +2460,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2460 | return; | 2460 | return; |
2461 | } | 2461 | } |
2462 | } | 2462 | } |
2463 | 2463 | ||
2464 | 2464 | ||
2465 | 2465 | ||
2466 | if (m_parentGroup.GetSceneMaxUndo() > 0) | 2466 | if (m_parentGroup.GetSceneMaxUndo() > 0) |
@@ -2914,7 +2914,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2914 | ScaleOffset = Math.Abs(ScaleOffset); | 2914 | ScaleOffset = Math.Abs(ScaleOffset); |
2915 | Vector3 offset = returnresult.normal * ScaleOffset; | 2915 | Vector3 offset = returnresult.normal * ScaleOffset; |
2916 | returnresult.ipoint = AXpos + offset; | 2916 | returnresult.ipoint = AXpos + offset; |
2917 | 2917 | ||
2918 | ///pos = (intersectionpoint + offset); | 2918 | ///pos = (intersectionpoint + offset); |
2919 | } | 2919 | } |
2920 | else | 2920 | else |
@@ -3354,27 +3354,27 @@ namespace OpenSim.Region.Environment.Scenes | |||
3354 | public void SetCameraAtOffset(LLVector3 v) { | 3354 | public void SetCameraAtOffset(LLVector3 v) { |
3355 | m_cameraAtOffset = v; | 3355 | m_cameraAtOffset = v; |
3356 | } | 3356 | } |
3357 | 3357 | ||
3358 | public void SetCameraEyeOffset(LLVector3 v) { | 3358 | public void SetCameraEyeOffset(LLVector3 v) { |
3359 | m_cameraEyeOffset = v; | 3359 | m_cameraEyeOffset = v; |
3360 | } | 3360 | } |
3361 | 3361 | ||
3362 | public void SetForceMouselook(bool force) { | 3362 | public void SetForceMouselook(bool force) { |
3363 | m_forceMouselook = force; | 3363 | m_forceMouselook = force; |
3364 | } | 3364 | } |
3365 | 3365 | ||
3366 | public LLVector3 GetCameraAtOffset() { | 3366 | public LLVector3 GetCameraAtOffset() { |
3367 | return m_cameraAtOffset; | 3367 | return m_cameraAtOffset; |
3368 | } | 3368 | } |
3369 | 3369 | ||
3370 | public LLVector3 GetCameraEyeOffset() { | 3370 | public LLVector3 GetCameraEyeOffset() { |
3371 | return m_cameraEyeOffset; | 3371 | return m_cameraEyeOffset; |
3372 | } | 3372 | } |
3373 | 3373 | ||
3374 | public bool GetForceMouselook() { | 3374 | public bool GetForceMouselook() { |
3375 | return m_forceMouselook; | 3375 | return m_forceMouselook; |
3376 | } | 3376 | } |
3377 | 3377 | ||
3378 | #endregion Public Methods | 3378 | #endregion Public Methods |
3379 | } | 3379 | } |
3380 | } | 3380 | } |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index cad2496..5669af6 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -1198,7 +1198,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1198 | RemoveFromPhysicalScene(); | 1198 | RemoveFromPhysicalScene(); |
1199 | } | 1199 | } |
1200 | } | 1200 | } |
1201 | 1201 | ||
1202 | cameraAtOffset = part.GetCameraAtOffset(); | 1202 | cameraAtOffset = part.GetCameraAtOffset(); |
1203 | cameraEyeOffset = part.GetCameraEyeOffset(); | 1203 | cameraEyeOffset = part.GetCameraEyeOffset(); |
1204 | forceMouselook = part.GetForceMouselook(); | 1204 | forceMouselook = part.GetForceMouselook(); |
@@ -1347,7 +1347,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1347 | 1347 | ||
1348 | RemoveAnimation(animID); | 1348 | RemoveAnimation(animID); |
1349 | } | 1349 | } |
1350 | 1350 | ||
1351 | public LLUUID[] GetAnimationArray() | 1351 | public LLUUID[] GetAnimationArray() |
1352 | { | 1352 | { |
1353 | LLUUID[] animIDs; | 1353 | LLUUID[] animIDs; |
@@ -1696,7 +1696,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1696 | 1696 | ||
1697 | 1697 | ||
1698 | /// <summary> | 1698 | /// <summary> |
1699 | /// Do everything required once a client completes its movement into a region | 1699 | /// Do everything required once a client completes its movement into a region |
1700 | /// </summary> | 1700 | /// </summary> |
1701 | public void SendInitialData() | 1701 | public void SendInitialData() |
1702 | { | 1702 | { |
@@ -1898,7 +1898,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1898 | { | 1898 | { |
1899 | if (IsChildAgent) | 1899 | if (IsChildAgent) |
1900 | return; | 1900 | return; |
1901 | 1901 | ||
1902 | LLVector3 pos2 = AbsolutePosition; | 1902 | LLVector3 pos2 = AbsolutePosition; |
1903 | LLVector3 vel = Velocity; | 1903 | LLVector3 vel = Velocity; |
1904 | 1904 | ||
@@ -1968,9 +1968,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1968 | // This means we need to remove the current caps handler here and possibly compensate later, | 1968 | // This means we need to remove the current caps handler here and possibly compensate later, |
1969 | // in case both scenes are being hosted on the same region server. Messy | 1969 | // in case both scenes are being hosted on the same region server. Messy |
1970 | m_scene.RemoveCapsHandler(UUID); | 1970 | m_scene.RemoveCapsHandler(UUID); |
1971 | newpos = newpos + (vel); | 1971 | newpos = newpos + (vel); |
1972 | 1972 | ||
1973 | CachedUserInfo userInfo = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(UUID); | 1973 | CachedUserInfo userInfo = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(UUID); |
1974 | if (userInfo != null) | 1974 | if (userInfo != null) |
1975 | { | 1975 | { |
1976 | userInfo.DropInventory(); | 1976 | userInfo.DropInventory(); |
@@ -1978,11 +1978,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
1978 | else | 1978 | else |
1979 | { | 1979 | { |
1980 | m_log.WarnFormat("[SCENE PRESENCE]: No cached user info found for {0} {1} on leaving region", Name, UUID); | 1980 | m_log.WarnFormat("[SCENE PRESENCE]: No cached user info found for {0} {1} on leaving region", Name, UUID); |
1981 | } | 1981 | } |
1982 | 1982 | ||
1983 | bool crossingSuccessful = | 1983 | bool crossingSuccessful = |
1984 | m_scene.InformNeighbourOfCrossing(neighbourHandle, m_controllingClient.AgentId, newpos, | 1984 | m_scene.InformNeighbourOfCrossing(neighbourHandle, m_controllingClient.AgentId, newpos, |
1985 | m_physicsActor.Flying); | 1985 | m_physicsActor.Flying); |
1986 | if (crossingSuccessful) | 1986 | if (crossingSuccessful) |
1987 | { | 1987 | { |
1988 | AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo(); | 1988 | AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo(); |
@@ -1998,8 +1998,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1998 | m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, | 1998 | m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, |
1999 | capsPath); | 1999 | capsPath); |
2000 | MakeChildAgent(); | 2000 | MakeChildAgent(); |
2001 | CrossAttachmentsIntoNewRegion(neighbourHandle); | 2001 | CrossAttachmentsIntoNewRegion(neighbourHandle); |
2002 | 2002 | ||
2003 | m_scene.SendKillObject(m_localId); | 2003 | m_scene.SendKillObject(m_localId); |
2004 | m_scene.NotifyMyCoarseLocationChange(); | 2004 | m_scene.NotifyMyCoarseLocationChange(); |
2005 | // the user may change thier profile information in other region, | 2005 | // the user may change thier profile information in other region, |
@@ -2010,7 +2010,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2010 | else | 2010 | else |
2011 | { | 2011 | { |
2012 | // Restore the user structures that we needed to delete before asking the receiving region to complete the crossing | 2012 | // Restore the user structures that we needed to delete before asking the receiving region to complete the crossing |
2013 | m_scene.CommsManager.UserProfileCacheService.RequestInventoryForUser(UUID); | 2013 | m_scene.CommsManager.UserProfileCacheService.RequestInventoryForUser(UUID); |
2014 | m_scene.AddCapsHandler(UUID); | 2014 | m_scene.AddCapsHandler(UUID); |
2015 | } | 2015 | } |
2016 | } | 2016 | } |
@@ -2825,7 +2825,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2825 | } | 2825 | } |
2826 | } | 2826 | } |
2827 | } | 2827 | } |
2828 | 2828 | ||
2829 | LastCommands = allflags; | 2829 | LastCommands = allflags; |
2830 | } | 2830 | } |
2831 | 2831 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs index f46aba4..0e551cb 100644 --- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs | |||
@@ -126,7 +126,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
126 | m_report.Interval = statsUpdatesEveryMS; | 126 | m_report.Interval = statsUpdatesEveryMS; |
127 | m_report.Elapsed += new ElapsedEventHandler(statsHeartBeat); | 127 | m_report.Elapsed += new ElapsedEventHandler(statsHeartBeat); |
128 | m_report.Enabled = true; | 128 | m_report.Enabled = true; |
129 | 129 | ||
130 | if (StatsManager.SimExtraStats != null) | 130 | if (StatsManager.SimExtraStats != null) |
131 | OnSendStatsResult += StatsManager.SimExtraStats.ReceiveClassicSimStatsPacket; | 131 | OnSendStatsResult += StatsManager.SimExtraStats.ReceiveClassicSimStatsPacket; |
132 | } | 132 | } |
diff --git a/OpenSim/Region/Environment/Scenes/UndoState.cs b/OpenSim/Region/Environment/Scenes/UndoState.cs index 5d1f6a0..fdbfa8c 100644 --- a/OpenSim/Region/Environment/Scenes/UndoState.cs +++ b/OpenSim/Region/Environment/Scenes/UndoState.cs | |||
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
41 | Rotation = rot; | 41 | Rotation = rot; |
42 | Scale = scale; | 42 | Scale = scale; |
43 | } | 43 | } |
44 | 44 | ||
45 | public UndoState(SceneObjectPart part) | 45 | public UndoState(SceneObjectPart part) |
46 | { | 46 | { |
47 | if (part != null) | 47 | if (part != null) |
@@ -50,7 +50,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
50 | { | 50 | { |
51 | Position = part.AbsolutePosition; | 51 | Position = part.AbsolutePosition; |
52 | Rotation = part.RotationOffset; | 52 | Rotation = part.RotationOffset; |
53 | 53 | ||
54 | } | 54 | } |
55 | else | 55 | else |
56 | { | 56 | { |
@@ -90,7 +90,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
90 | if (part != null) | 90 | if (part != null) |
91 | { | 91 | { |
92 | part.Undoing = true; | 92 | part.Undoing = true; |
93 | 93 | ||
94 | if (part.ParentID == 0) | 94 | if (part.ParentID == 0) |
95 | { | 95 | { |
96 | part.ParentGroup.AbsolutePosition = Position; | 96 | part.ParentGroup.AbsolutePosition = Position; |
@@ -105,7 +105,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
105 | part.ScheduleTerseUpdate(); | 105 | part.ScheduleTerseUpdate(); |
106 | } | 106 | } |
107 | part.Undoing = false; | 107 | part.Undoing = false; |
108 | 108 | ||
109 | } | 109 | } |
110 | } | 110 | } |
111 | 111 | ||
diff --git a/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs b/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs index d83bba6..16636e0 100644 --- a/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs +++ b/OpenSim/Region/Examples/SimpleModule/ComplexObject.cs | |||
@@ -49,7 +49,6 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
49 | 49 | ||
50 | public RotatingWheel() | 50 | public RotatingWheel() |
51 | { | 51 | { |
52 | |||
53 | } | 52 | } |
54 | 53 | ||
55 | public RotatingWheel(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, | 54 | public RotatingWheel(ulong regionHandle, SceneObjectGroup parent, LLUUID ownerID, uint localID, |
@@ -78,7 +77,6 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
78 | 77 | ||
79 | public ComplexObject() | 78 | public ComplexObject() |
80 | { | 79 | { |
81 | |||
82 | } | 80 | } |
83 | 81 | ||
84 | public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos) | 82 | public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos) |
diff --git a/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs b/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs index 6a18091..e7d5db8 100644 --- a/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs +++ b/OpenSim/Region/Examples/SimpleModule/CpuCounterObject.cs | |||
@@ -59,7 +59,7 @@ namespace OpenSim.Region.Examples.SimpleModule | |||
59 | { | 59 | { |
60 | float cpu = m_counter.NextValue()/40f; | 60 | float cpu = m_counter.NextValue()/40f; |
61 | LLVector3 size = new LLVector3(cpu, cpu, cpu); | 61 | LLVector3 size = new LLVector3(cpu, cpu, cpu); |
62 | 62 | ||
63 | RootPart.Resize(size); | 63 | RootPart.Resize(size); |
64 | 64 | ||
65 | base.UpdateMovement(); | 65 | base.UpdateMovement(); |
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 213f1d4..3bf0956 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
70 | public BasicScene() | 70 | public BasicScene() |
71 | { | 71 | { |
72 | } | 72 | } |
73 | 73 | ||
74 | public override void Initialise(IMesher meshmerizer, IConfigSource config) | 74 | public override void Initialise(IMesher meshmerizer, IConfigSource config) |
75 | { | 75 | { |
76 | // Does nothing right now | 76 | // Does nothing right now |
diff --git a/OpenSim/Region/Physics/Manager/IMesher.cs b/OpenSim/Region/Physics/Manager/IMesher.cs index 48e4ba6..0042c40 100644 --- a/OpenSim/Region/Physics/Manager/IMesher.cs +++ b/OpenSim/Region/Physics/Manager/IMesher.cs | |||
@@ -48,6 +48,5 @@ namespace OpenSim.Region.Physics.Manager | |||
48 | int[] getIndexListAsIntLocked(); | 48 | int[] getIndexListAsIntLocked(); |
49 | float[] getVertexListAsFloatLocked(); | 49 | float[] getVertexListAsFloatLocked(); |
50 | void releasePinned(); | 50 | void releasePinned(); |
51 | |||
52 | } | 51 | } |
53 | } | 52 | } |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index beca4da..d4af271 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -209,10 +209,8 @@ namespace OpenSim.Region.Physics.Manager | |||
209 | public override bool Stopped | 209 | public override bool Stopped |
210 | { | 210 | { |
211 | get{ return false; } | 211 | get{ return false; } |
212 | |||
213 | } | 212 | } |
214 | 213 | ||
215 | |||
216 | public override PhysicsVector Position | 214 | public override PhysicsVector Position |
217 | { | 215 | { |
218 | get { return PhysicsVector.Zero; } | 216 | get { return PhysicsVector.Zero; } |
diff --git a/OpenSim/Region/Physics/Meshing/Extruder.cs b/OpenSim/Region/Physics/Meshing/Extruder.cs index b14deeb..0c94669 100644 --- a/OpenSim/Region/Physics/Meshing/Extruder.cs +++ b/OpenSim/Region/Physics/Meshing/Extruder.cs | |||
@@ -286,7 +286,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
286 | // It's not quite clear what pushY (Y top shear) does, but subtracting it from the start and end | 286 | // It's not quite clear what pushY (Y top shear) does, but subtracting it from the start and end |
287 | // angles appears to approximate it's effects on path cut. Likewise, adding it to the angle used | 287 | // angles appears to approximate it's effects on path cut. Likewise, adding it to the angle used |
288 | // to calculate the sine for generating the path radius appears to approximate it's effects there | 288 | // to calculate the sine for generating the path radius appears to approximate it's effects there |
289 | // too, but there are some subtle differences in the radius which are noticeable as the prim size | 289 | // too, but there are some subtle differences in the radius which are noticeable as the prim size |
290 | // increases and it may affect megaprims quite a bit. The effect of the Y top shear parameter on | 290 | // increases and it may affect megaprims quite a bit. The effect of the Y top shear parameter on |
291 | // the meshes generated with this technique appear nearly identical in shape to the same prims when | 291 | // the meshes generated with this technique appear nearly identical in shape to the same prims when |
292 | // displayed by the viewer. | 292 | // displayed by the viewer. |
@@ -369,28 +369,26 @@ namespace OpenSim.Region.Physics.Meshing | |||
369 | float yOffset; | 369 | float yOffset; |
370 | float zOffset; | 370 | float zOffset; |
371 | 371 | ||
372 | |||
373 | xOffset = 0.5f * (skewStart + totalSkew * (float)percentOfPath); | 372 | xOffset = 0.5f * (skewStart + totalSkew * (float)percentOfPath); |
374 | xOffset += (float) System.Math.Sin(angle) * pushX * 0.45f; | 373 | xOffset += (float) System.Math.Sin(angle) * pushX * 0.45f; |
375 | yOffset = (float)(System.Math.Cos(angle) * (0.5f - yPathScale)) * radiusScale; | 374 | yOffset = (float)(System.Math.Cos(angle) * (0.5f - yPathScale)) * radiusScale; |
376 | zOffset = (float)(System.Math.Sin(angle + pushY * 0.9f) * (0.5f - yPathScale)) * radiusScale; | 375 | zOffset = (float)(System.Math.Sin(angle + pushY * 0.9f) * (0.5f - yPathScale)) * radiusScale; |
377 | 376 | ||
378 | 377 | // next apply twist rotation to the profile layer | |
379 | // next apply twist rotation to the profile layer | 378 | if (twistTotal != 0.0f || twistBot != 0.0f) |
380 | if (twistTotal != 0.0f || twistBot != 0.0f) | 379 | { |
380 | Quaternion profileRot = new Quaternion(new Vertex(0.0f, 0.0f, 1.0f), twist); | ||
381 | foreach (Vertex v in newLayer.vertices) | ||
381 | { | 382 | { |
382 | Quaternion profileRot = new Quaternion(new Vertex(0.0f, 0.0f, 1.0f), twist); | 383 | if (v != null) |
383 | foreach (Vertex v in newLayer.vertices) | ||
384 | { | 384 | { |
385 | if (v != null) | 385 | vTemp = v * profileRot; |
386 | { | 386 | v.X = vTemp.X; |
387 | vTemp = v * profileRot; | 387 | v.Y = vTemp.Y; |
388 | v.X = vTemp.X; | 388 | v.Z = vTemp.Z; |
389 | v.Y = vTemp.Y; | ||
390 | v.Z = vTemp.Z; | ||
391 | } | ||
392 | } | 389 | } |
393 | } | 390 | } |
391 | } | ||
394 | 392 | ||
395 | // now orient the rotation of the profile layer relative to it's position on the path | 393 | // now orient the rotation of the profile layer relative to it's position on the path |
396 | // adding pushY to the angle used to generate the quat appears to approximate the viewer | 394 | // adding pushY to the angle used to generate the quat appears to approximate the viewer |
diff --git a/OpenSim/Region/Physics/Meshing/HelperTypes.cs b/OpenSim/Region/Physics/Meshing/HelperTypes.cs index 816b6bb..2cb8d04 100644 --- a/OpenSim/Region/Physics/Meshing/HelperTypes.cs +++ b/OpenSim/Region/Physics/Meshing/HelperTypes.cs | |||
@@ -118,7 +118,7 @@ public class Vertex : PhysicsVector, IComparable<Vertex> | |||
118 | { | 118 | { |
119 | return new Vertex(Y * v.Z - Z * v.Y, Z * v.X - X * v.Z, X * v.Y - Y * v.X); | 119 | return new Vertex(Y * v.Z - Z * v.Y, Z * v.X - X * v.Z, X * v.Y - Y * v.X); |
120 | } | 120 | } |
121 | 121 | ||
122 | // disable warning: mono compiler moans about overloading | 122 | // disable warning: mono compiler moans about overloading |
123 | // operators hiding base operator but should not according to C# | 123 | // operators hiding base operator but should not according to C# |
124 | // language spec | 124 | // language spec |
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index f041aec..a038dc2 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -941,7 +941,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
941 | extr.twistBot = (float)primShape.PathTwistBegin * (float)Math.PI * 0.01f; | 941 | extr.twistBot = (float)primShape.PathTwistBegin * (float)Math.PI * 0.01f; |
942 | extr.pathBegin = primShape.PathBegin; | 942 | extr.pathBegin = primShape.PathBegin; |
943 | extr.pathEnd = primShape.PathEnd; | 943 | extr.pathEnd = primShape.PathEnd; |
944 | 944 | ||
945 | //System.Console.WriteLine("[MESH]: twistTop = " + twistTop.ToString() + "|" + extr.twistTop.ToString() + ", twistMid = " + twistMid.ToString() + "|" + extr.twistMid.ToString() + ", twistbot = " + twistBot.ToString() + "|" + extr.twistBot.ToString()); | 945 | //System.Console.WriteLine("[MESH]: twistTop = " + twistTop.ToString() + "|" + extr.twistTop.ToString() + ", twistMid = " + twistMid.ToString() + "|" + extr.twistMid.ToString() + ", twistbot = " + twistBot.ToString() + "|" + extr.twistBot.ToString()); |
946 | //Mesh result = extr.Extrude(m); | 946 | //Mesh result = extr.Extrude(m); |
947 | Mesh result = extr.ExtrudeLinearPath(m); | 947 | Mesh result = extr.ExtrudeLinearPath(m); |
@@ -1340,7 +1340,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1340 | } | 1340 | } |
1341 | 1341 | ||
1342 | /// <summary> | 1342 | /// <summary> |
1343 | /// Creates a mesh for prim types torus, ring, tube, and sphere | 1343 | /// Creates a mesh for prim types torus, ring, tube, and sphere |
1344 | /// </summary> | 1344 | /// </summary> |
1345 | /// <param name="primName"></param> | 1345 | /// <param name="primName"></param> |
1346 | /// <param name="primShape"></param> | 1346 | /// <param name="primShape"></param> |
@@ -1655,7 +1655,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1655 | 1655 | ||
1656 | // Vertex vTemp = new Vertex(0.0f, 0.0f, 0.0f); | 1656 | // Vertex vTemp = new Vertex(0.0f, 0.0f, 0.0f); |
1657 | 1657 | ||
1658 | 1658 | ||
1659 | float skew = primShape.PathSkew * 0.01f; | 1659 | float skew = primShape.PathSkew * 0.01f; |
1660 | float pathScaleX = (float)(200 - primShape.PathScaleX) * 0.01f; | 1660 | float pathScaleX = (float)(200 - primShape.PathScaleX) * 0.01f; |
1661 | float pathScaleY = (float)(200 - primShape.PathScaleY) * 0.01f; | 1661 | float pathScaleY = (float)(200 - primShape.PathScaleY) * 0.01f; |
@@ -1700,7 +1700,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1700 | //System.Console.WriteLine("primShape.PathTaperX: " + primShape.PathTaperX.ToString()); | 1700 | //System.Console.WriteLine("primShape.PathTaperX: " + primShape.PathTaperX.ToString()); |
1701 | //System.Console.WriteLine("primShape.PathTaperY: " + primShape.PathTaperY.ToString()); | 1701 | //System.Console.WriteLine("primShape.PathTaperY: " + primShape.PathTaperY.ToString()); |
1702 | 1702 | ||
1703 | 1703 | ||
1704 | //System.Console.WriteLine("primShape.PathRadiusOffset: " + primShape.PathRadiusOffset.ToString()); | 1704 | //System.Console.WriteLine("primShape.PathRadiusOffset: " + primShape.PathRadiusOffset.ToString()); |
1705 | #endif | 1705 | #endif |
1706 | 1706 | ||
@@ -1875,7 +1875,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1875 | 1875 | ||
1876 | if (primShape.SculptEntry && primShape.SculptType != (byte)0 && primShape.SculptData.Length > 0) | 1876 | if (primShape.SculptEntry && primShape.SculptType != (byte)0 && primShape.SculptData.Length > 0) |
1877 | { | 1877 | { |
1878 | 1878 | ||
1879 | SculptMesh smesh = CreateSculptMesh(primName, primShape, size, lod); | 1879 | SculptMesh smesh = CreateSculptMesh(primName, primShape, size, lod); |
1880 | mesh = (Mesh)smesh; | 1880 | mesh = (Mesh)smesh; |
1881 | CalcNormals(mesh); | 1881 | CalcNormals(mesh); |
@@ -1967,7 +1967,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
1967 | float pathShearY = primShape.PathShearY < 128 ? (float)primShape.PathShearY * 0.01f : (float)(primShape.PathShearY - 256) * 0.01f; | 1967 | float pathShearY = primShape.PathShearY < 128 ? (float)primShape.PathShearY * 0.01f : (float)(primShape.PathShearY - 256) * 0.01f; |
1968 | float pathBegin = (float)primShape.PathBegin * 2.0e-5f; | 1968 | float pathBegin = (float)primShape.PathBegin * 2.0e-5f; |
1969 | float pathEnd = 1.0f - (float)primShape.PathEnd * 2.0e-5f; | 1969 | float pathEnd = 1.0f - (float)primShape.PathEnd * 2.0e-5f; |
1970 | 1970 | ||
1971 | float profileBegin = (float)primShape.ProfileBegin * 2.0e-5f; | 1971 | float profileBegin = (float)primShape.ProfileBegin * 2.0e-5f; |
1972 | float profileEnd = 1.0f - (float)primShape.ProfileEnd * 2.0e-5f; | 1972 | float profileEnd = 1.0f - (float)primShape.ProfileEnd * 2.0e-5f; |
1973 | 1973 | ||
diff --git a/OpenSim/Region/Physics/Meshing/SculptMesh.cs b/OpenSim/Region/Physics/Meshing/SculptMesh.cs index 95a244d..1c3153a 100644 --- a/OpenSim/Region/Physics/Meshing/SculptMesh.cs +++ b/OpenSim/Region/Physics/Meshing/SculptMesh.cs | |||
@@ -52,7 +52,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
52 | { | 52 | { |
53 | if (_lod == 2f || _lod == 4f || _lod == 8f || _lod == 16f || _lod == 32f || _lod == 64f) | 53 | if (_lod == 2f || _lod == 4f || _lod == 8f || _lod == 16f || _lod == 32f || _lod == 64f) |
54 | lod = (int)_lod; | 54 | lod = (int)_lod; |
55 | 55 | ||
56 | try | 56 | try |
57 | { | 57 | { |
58 | idata = OpenJPEG.DecodeToImage(jpegData); | 58 | idata = OpenJPEG.DecodeToImage(jpegData); |
@@ -81,7 +81,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
84 | 84 | ||
85 | } | 85 | } |
86 | private Vertex ColorToVertex(Color input) | 86 | private Vertex ColorToVertex(Color input) |
87 | { | 87 | { |
@@ -225,7 +225,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
225 | // Create a vertex position from the RGB channels in the current pixel | 225 | // Create a vertex position from the RGB channels in the current pixel |
226 | // int ypos = y * bLOD.Width; | 226 | // int ypos = y * bLOD.Width; |
227 | 227 | ||
228 | 228 | ||
229 | if (y == 0) | 229 | if (y == 0) |
230 | { | 230 | { |
231 | v1 = northpole; | 231 | v1 = northpole; |
@@ -291,7 +291,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
291 | Add(tri2); | 291 | Add(tri2); |
292 | } | 292 | } |
293 | } | 293 | } |
294 | 294 | ||
295 | } | 295 | } |
296 | //Vertex vt31 = sVertices[(y * x_max + x)]; | 296 | //Vertex vt31 = sVertices[(y * x_max + x)]; |
297 | //Vertex vt32 = sVertices[(y * x_max + 0)]; | 297 | //Vertex vt32 = sVertices[(y * x_max + 0)]; |
@@ -311,7 +311,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
311 | //Add(tri3); | 311 | //Add(tri3); |
312 | // } | 312 | // } |
313 | //} | 313 | //} |
314 | 314 | ||
315 | //Vertex vt41 = sVertices[(y * x_max + x)]; | 315 | //Vertex vt41 = sVertices[(y * x_max + x)]; |
316 | //Vertex vt42 = sVertices[((y + 1) * x_max + 0)]; | 316 | //Vertex vt42 = sVertices[((y + 1) * x_max + 0)]; |
317 | //Vertex vt43 = sVertices[((y + 1) * x_max + x)]; | 317 | //Vertex vt43 = sVertices[((y + 1) * x_max + x)]; |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
329 | //Add(tri4); | 329 | //Add(tri4); |
330 | //} | 330 | //} |
331 | //} | 331 | //} |
332 | 332 | ||
333 | } | 333 | } |
334 | } | 334 | } |
335 | } | 335 | } |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs index bc2ad69..074170a 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODETestClass.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
40 | private OdePlugin cbt; | 40 | private OdePlugin cbt; |
41 | private PhysicsScene ps; | 41 | private PhysicsScene ps; |
42 | private IMeshingPlugin imp; | 42 | private IMeshingPlugin imp; |
43 | 43 | ||
44 | [SetUp] | 44 | [SetUp] |
45 | public void Initialize() | 45 | public void Initialize() |
46 | { | 46 | { |
@@ -96,11 +96,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
96 | 96 | ||
97 | Assert.That(!oprim.m_taintadd); | 97 | Assert.That(!oprim.m_taintadd); |
98 | Console.WriteLine("Prim Position (" + oprim.m_localID + "): " + prim.Position.ToString()); | 98 | Console.WriteLine("Prim Position (" + oprim.m_localID + "): " + prim.Position.ToString()); |
99 | 99 | ||
100 | // Make sure we're above the ground | 100 | // Make sure we're above the ground |
101 | //Assert.That(prim.Position.Z > 20f); | 101 | //Assert.That(prim.Position.Z > 20f); |
102 | //Console.WriteLine("PrimCollisionScore (" + oprim.m_localID + "): " + oprim.m_collisionscore); | 102 | //Console.WriteLine("PrimCollisionScore (" + oprim.m_localID + "): " + oprim.m_collisionscore); |
103 | 103 | ||
104 | // Make sure we've got a Body | 104 | // Make sure we've got a Body |
105 | Assert.That(oprim.Body != (IntPtr)0); | 105 | Assert.That(oprim.Body != (IntPtr)0); |
106 | //Console.WriteLine( | 106 | //Console.WriteLine( |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 3f8aa26..f285911 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -252,7 +252,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
252 | public int physics_logging_interval = 0; | 252 | public int physics_logging_interval = 0; |
253 | public bool physics_logging_append_existing_logfile = false; | 253 | public bool physics_logging_append_existing_logfile = false; |
254 | 254 | ||
255 | |||
256 | /// <summary> | 255 | /// <summary> |
257 | /// Initiailizes the scene | 256 | /// Initiailizes the scene |
258 | /// Sets many properties that ODE requires to be stable | 257 | /// Sets many properties that ODE requires to be stable |
@@ -352,14 +351,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
352 | 351 | ||
353 | geomDefaultDensity = physicsconfig.GetFloat("geometry_default_density", 10.000006836f); | 352 | geomDefaultDensity = physicsconfig.GetFloat("geometry_default_density", 10.000006836f); |
354 | bodyFramesAutoDisable = physicsconfig.GetInt("body_frames_auto_disable", 20); | 353 | bodyFramesAutoDisable = physicsconfig.GetInt("body_frames_auto_disable", 20); |
355 | 354 | ||
356 | bodyPIDD = physicsconfig.GetFloat("body_pid_derivative", 35f); | 355 | bodyPIDD = physicsconfig.GetFloat("body_pid_derivative", 35f); |
357 | bodyPIDG = physicsconfig.GetFloat("body_pid_gain", 25f); | 356 | bodyPIDG = physicsconfig.GetFloat("body_pid_gain", 25f); |
358 | 357 | ||
359 | meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true); | 358 | meshSculptedPrim = physicsconfig.GetBoolean("mesh_sculpted_prim", true); |
360 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); | 359 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); |
361 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); | 360 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); |
362 | |||
363 | 361 | ||
364 | if (Environment.OSVersion.Platform == PlatformID.Unix) | 362 | if (Environment.OSVersion.Platform == PlatformID.Unix) |
365 | { | 363 | { |
@@ -367,7 +365,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
367 | avPIDP = physicsconfig.GetFloat("av_pid_proportional_linux", 1400.0f); | 365 | avPIDP = physicsconfig.GetFloat("av_pid_proportional_linux", 1400.0f); |
368 | avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_linux", 2000000f); | 366 | avStandupTensor = physicsconfig.GetFloat("av_capsule_standup_tensor_linux", 2000000f); |
369 | bodyMotorJointMaxforceTensor = physicsconfig.GetFloat("body_motor_joint_maxforce_tensor_linux", 2f); | 367 | bodyMotorJointMaxforceTensor = physicsconfig.GetFloat("body_motor_joint_maxforce_tensor_linux", 2f); |
370 | |||
371 | } | 368 | } |
372 | else | 369 | else |
373 | { | 370 | { |
@@ -547,7 +544,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
547 | } | 544 | } |
548 | catch (AccessViolationException) | 545 | catch (AccessViolationException) |
549 | { | 546 | { |
550 | |||
551 | m_log.Warn("[PHYSICS]: Unable to collide test an object"); | 547 | m_log.Warn("[PHYSICS]: Unable to collide test an object"); |
552 | return; | 548 | return; |
553 | } | 549 | } |
@@ -603,7 +599,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
603 | p2.CollidingGround = true; | 599 | p2.CollidingGround = true; |
604 | break; | 600 | break; |
605 | } | 601 | } |
606 | |||
607 | 602 | ||
608 | // we don't want prim or avatar to explode | 603 | // we don't want prim or avatar to explode |
609 | 604 | ||
@@ -850,87 +845,87 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
850 | case ActorTypes.Agent: | 845 | case ActorTypes.Agent: |
851 | cc2 = (OdeCharacter)p2; | 846 | cc2 = (OdeCharacter)p2; |
852 | 847 | ||
853 | // obj1LocalID = cc2.m_localID; | 848 | // obj1LocalID = cc2.m_localID; |
854 | switch ((ActorTypes)p1.PhysicsActorType) | 849 | switch ((ActorTypes)p1.PhysicsActorType) |
855 | { | 850 | { |
856 | case ActorTypes.Agent: | 851 | case ActorTypes.Agent: |
857 | cc1 = (OdeCharacter)p1; | 852 | cc1 = (OdeCharacter)p1; |
858 | obj2LocalID = cc1.m_localID; | 853 | obj2LocalID = cc1.m_localID; |
859 | cc1.AddCollisionEvent(cc2.m_localID, collisiondepth); | 854 | cc1.AddCollisionEvent(cc2.m_localID, collisiondepth); |
860 | //ctype = (int)CollisionCategories.Character; | 855 | //ctype = (int)CollisionCategories.Character; |
861 | 856 | ||
862 | //if (cc1.CollidingObj) | 857 | //if (cc1.CollidingObj) |
863 | //cStartStop = (int)StatusIndicators.Generic; | 858 | //cStartStop = (int)StatusIndicators.Generic; |
864 | //else | 859 | //else |
865 | //cStartStop = (int)StatusIndicators.Start; | 860 | //cStartStop = (int)StatusIndicators.Start; |
866 | 861 | ||
867 | //returncollisions = true; | 862 | //returncollisions = true; |
868 | break; | 863 | break; |
869 | case ActorTypes.Prim: | 864 | case ActorTypes.Prim: |
870 | cp1 = (OdePrim)p1; | 865 | cp1 = (OdePrim)p1; |
871 | obj2LocalID = cp1.m_localID; | 866 | obj2LocalID = cp1.m_localID; |
872 | cp1.AddCollisionEvent(cc2.m_localID, collisiondepth); | 867 | cp1.AddCollisionEvent(cc2.m_localID, collisiondepth); |
873 | //ctype = (int)CollisionCategories.Geom; | 868 | //ctype = (int)CollisionCategories.Geom; |
874 | 869 | ||
875 | //if (cp1.CollidingObj) | 870 | //if (cp1.CollidingObj) |
876 | //cStartStop = (int)StatusIndicators.Generic; | 871 | //cStartStop = (int)StatusIndicators.Generic; |
877 | //else | 872 | //else |
878 | //cStartStop = (int)StatusIndicators.Start; | 873 | //cStartStop = (int)StatusIndicators.Start; |
879 | 874 | ||
880 | //returncollisions = true; | 875 | //returncollisions = true; |
881 | break; | 876 | break; |
882 | 877 | ||
883 | case ActorTypes.Ground: | 878 | case ActorTypes.Ground: |
884 | case ActorTypes.Unknown: | 879 | case ActorTypes.Unknown: |
885 | obj2LocalID = 0; | 880 | obj2LocalID = 0; |
886 | //ctype = (int)CollisionCategories.Land; | 881 | //ctype = (int)CollisionCategories.Land; |
887 | //returncollisions = true; | 882 | //returncollisions = true; |
888 | break; | 883 | break; |
889 | } | 884 | } |
890 | 885 | ||
891 | cc2.AddCollisionEvent(obj2LocalID, collisiondepth); | 886 | cc2.AddCollisionEvent(obj2LocalID, collisiondepth); |
892 | break; | 887 | break; |
893 | case ActorTypes.Prim: | 888 | case ActorTypes.Prim: |
894 | cp2 = (OdePrim)p2; | 889 | cp2 = (OdePrim)p2; |
895 | 890 | ||
896 | // obj1LocalID = cp2.m_localID; | 891 | // obj1LocalID = cp2.m_localID; |
897 | switch ((ActorTypes)p1.PhysicsActorType) | 892 | switch ((ActorTypes)p1.PhysicsActorType) |
898 | { | 893 | { |
899 | case ActorTypes.Agent: | 894 | case ActorTypes.Agent: |
900 | cc1 = (OdeCharacter)p1; | 895 | cc1 = (OdeCharacter)p1; |
901 | obj2LocalID = cc1.m_localID; | 896 | obj2LocalID = cc1.m_localID; |
902 | cc1.AddCollisionEvent(cp2.m_localID, collisiondepth); | 897 | cc1.AddCollisionEvent(cp2.m_localID, collisiondepth); |
903 | //ctype = (int)CollisionCategories.Character; | 898 | //ctype = (int)CollisionCategories.Character; |
904 | 899 | ||
905 | //if (cc1.CollidingObj) | 900 | //if (cc1.CollidingObj) |
906 | //cStartStop = (int)StatusIndicators.Generic; | 901 | //cStartStop = (int)StatusIndicators.Generic; |
907 | //else | 902 | //else |
908 | //cStartStop = (int)StatusIndicators.Start; | 903 | //cStartStop = (int)StatusIndicators.Start; |
909 | //returncollisions = true; | 904 | //returncollisions = true; |
910 | 905 | ||
911 | break; | 906 | break; |
912 | case ActorTypes.Prim: | 907 | case ActorTypes.Prim: |
913 | cp1 = (OdePrim)p1; | 908 | cp1 = (OdePrim)p1; |
914 | obj2LocalID = cp1.m_localID; | 909 | obj2LocalID = cp1.m_localID; |
915 | cp1.AddCollisionEvent(cp2.m_localID, collisiondepth); | 910 | cp1.AddCollisionEvent(cp2.m_localID, collisiondepth); |
916 | //ctype = (int)CollisionCategories.Geom; | 911 | //ctype = (int)CollisionCategories.Geom; |
917 | 912 | ||
918 | //if (cp1.CollidingObj) | 913 | //if (cp1.CollidingObj) |
919 | //cStartStop = (int)StatusIndicators.Generic; | 914 | //cStartStop = (int)StatusIndicators.Generic; |
920 | //else | 915 | //else |
921 | //cStartStop = (int)StatusIndicators.Start; | 916 | //cStartStop = (int)StatusIndicators.Start; |
922 | 917 | ||
923 | //returncollisions = true; | 918 | //returncollisions = true; |
924 | break; | 919 | break; |
925 | 920 | ||
926 | case ActorTypes.Ground: | 921 | case ActorTypes.Ground: |
927 | case ActorTypes.Unknown: | 922 | case ActorTypes.Unknown: |
928 | obj2LocalID = 0; | 923 | obj2LocalID = 0; |
929 | //ctype = (int)CollisionCategories.Land; | 924 | //ctype = (int)CollisionCategories.Land; |
930 | 925 | ||
931 | //returncollisions = true; | 926 | //returncollisions = true; |
932 | break; | 927 | break; |
933 | } | 928 | } |
934 | 929 | ||
935 | cp2.AddCollisionEvent(obj2LocalID, collisiondepth); | 930 | cp2.AddCollisionEvent(obj2LocalID, collisiondepth); |
936 | break; | 931 | break; |
@@ -1015,7 +1010,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1015 | /// <param name="timeStep"></param> | 1010 | /// <param name="timeStep"></param> |
1016 | private void collision_optimized(float timeStep) | 1011 | private void collision_optimized(float timeStep) |
1017 | { | 1012 | { |
1018 | |||
1019 | foreach (OdeCharacter chr in _characters) | 1013 | foreach (OdeCharacter chr in _characters) |
1020 | { | 1014 | { |
1021 | // Reset the collision values to false | 1015 | // Reset the collision values to false |
@@ -1579,7 +1573,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1579 | // if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) | 1573 | // if (pbs.ProfileShape == ProfileShape.EquilateralTriangle) |
1580 | // return true; | 1574 | // return true; |
1581 | 1575 | ||
1582 | 1576 | ||
1583 | 1577 | ||
1584 | // return false; | 1578 | // return false; |
1585 | 1579 | ||
@@ -1625,7 +1619,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1625 | //m_log.Info(timeStep.ToString()); | 1619 | //m_log.Info(timeStep.ToString()); |
1626 | step_time += timeStep; | 1620 | step_time += timeStep; |
1627 | 1621 | ||
1628 | |||
1629 | // If We're loaded down by something else, | 1622 | // If We're loaded down by something else, |
1630 | // or debugging with the Visual Studio project on pause | 1623 | // or debugging with the Visual Studio project on pause |
1631 | // skip a few frames to catch up gracefully. | 1624 | // skip a few frames to catch up gracefully. |
@@ -1739,7 +1732,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1739 | } | 1732 | } |
1740 | 1733 | ||
1741 | d.WorldQuickStep(world, ODE_STEPSIZE); | 1734 | d.WorldQuickStep(world, ODE_STEPSIZE); |
1742 | |||
1743 | d.JointGroupEmpty(contactgroup); | 1735 | d.JointGroupEmpty(contactgroup); |
1744 | //ode.dunlock(world); | 1736 | //ode.dunlock(world); |
1745 | } | 1737 | } |
@@ -2075,7 +2067,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2075 | if (resultarr2[y, x] <= 0) | 2067 | if (resultarr2[y, x] <= 0) |
2076 | { | 2068 | { |
2077 | returnarr[i] = 0.0000001f; | 2069 | returnarr[i] = 0.0000001f; |
2078 | 2070 | ||
2079 | } | 2071 | } |
2080 | else | 2072 | else |
2081 | returnarr[i] = resultarr2[y, x]; | 2073 | returnarr[i] = resultarr2[y, x]; |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index 25c0d9a..9195063 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -361,23 +361,23 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
361 | a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting | 361 | a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting |
362 | vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis. | 362 | vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis. |
363 | */ | 363 | */ |
364 | 364 | ||
365 | /* How we arrived at this llEuler2Rot | 365 | /* How we arrived at this llEuler2Rot |
366 | * | 366 | * |
367 | * Experiment in SL to determine conventions: | 367 | * Experiment in SL to determine conventions: |
368 | * llEuler2Rot(<PI,0,0>)=<1,0,0,0> | 368 | * llEuler2Rot(<PI,0,0>)=<1,0,0,0> |
369 | * llEuler2Rot(<0,PI,0>)=<0,1,0,0> | 369 | * llEuler2Rot(<0,PI,0>)=<0,1,0,0> |
370 | * llEuler2Rot(<0,0,PI>)=<0,0,1,0> | 370 | * llEuler2Rot(<0,0,PI>)=<0,0,1,0> |
371 | * | 371 | * |
372 | * Important facts about Quaternions | 372 | * Important facts about Quaternions |
373 | * - multiplication is non-commutative (a*b != b*a) | 373 | * - multiplication is non-commutative (a*b != b*a) |
374 | * - http://en.wikipedia.org/wiki/Quaternion#Basis_multiplication | 374 | * - http://en.wikipedia.org/wiki/Quaternion#Basis_multiplication |
375 | * | 375 | * |
376 | * Above SL experiment gives (c1,c2,c3,s1,s2,s3 as defined in our llEuler2Rot): | 376 | * Above SL experiment gives (c1,c2,c3,s1,s2,s3 as defined in our llEuler2Rot): |
377 | * Qx = c1+i*s1 | 377 | * Qx = c1+i*s1 |
378 | * Qy = c2+j*s2; | 378 | * Qy = c2+j*s2; |
379 | * Qz = c3+k*s3; | 379 | * Qz = c3+k*s3; |
380 | * | 380 | * |
381 | * Rotations applied in order (from above) Z, Y, X | 381 | * Rotations applied in order (from above) Z, Y, X |
382 | * Q = (Qz * Qy) * Qx | 382 | * Q = (Qz * Qy) * Qx |
383 | * ((c1+i*s1)*(c2+j*s2))*(c3+k*s3) | 383 | * ((c1+i*s1)*(c2+j*s2))*(c3+k*s3) |
@@ -389,23 +389,23 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
389 | * y=j*(c1*s2*c3-s1*c2*s3) | 389 | * y=j*(c1*s2*c3-s1*c2*s3) |
390 | * z=k*(s1*s2*c3+c1*c2*s3) | 390 | * z=k*(s1*s2*c3+c1*c2*s3) |
391 | * s= c1*c2*c3-s1*s2*s3 | 391 | * s= c1*c2*c3-s1*s2*s3 |
392 | * | 392 | * |
393 | * This implementation agrees with the functions found here: | 393 | * This implementation agrees with the functions found here: |
394 | * http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions | 394 | * http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions |
395 | * And with the results in SL. | 395 | * And with the results in SL. |
396 | * | 396 | * |
397 | * It's also possible to calculate llEuler2Rot by direct multiplication of | 397 | * It's also possible to calculate llEuler2Rot by direct multiplication of |
398 | * the Qz, Qy, and Qx vectors (as above - and done in the "accurate" function | 398 | * the Qz, Qy, and Qx vectors (as above - and done in the "accurate" function |
399 | * from the wiki). | 399 | * from the wiki). |
400 | * Apparently in some cases this is better from a numerical precision perspective? | 400 | * Apparently in some cases this is better from a numerical precision perspective? |
401 | */ | 401 | */ |
402 | 402 | ||
403 | public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) | 403 | public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) |
404 | { | 404 | { |
405 | m_host.AddScriptLPS(1); | 405 | m_host.AddScriptLPS(1); |
406 | 406 | ||
407 | double x,y,z,s; | 407 | double x,y,z,s; |
408 | 408 | ||
409 | double c1 = Math.Cos(v.x/2.0); | 409 | double c1 = Math.Cos(v.x/2.0); |
410 | double c2 = Math.Cos(v.y/2.0); | 410 | double c2 = Math.Cos(v.y/2.0); |
411 | double c3 = Math.Cos(v.z/2.0); | 411 | double c3 = Math.Cos(v.z/2.0); |
@@ -417,7 +417,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
417 | y = c1*s2*c3-s1*c2*s3; | 417 | y = c1*s2*c3-s1*c2*s3; |
418 | z = s1*s2*c3+c1*c2*s3; | 418 | z = s1*s2*c3+c1*c2*s3; |
419 | s = c1*c2*c3-s1*s2*s3; | 419 | s = c1*c2*c3-s1*s2*s3; |
420 | 420 | ||
421 | return new LSL_Types.Quaternion(x, y, z, s); | 421 | return new LSL_Types.Quaternion(x, y, z, s); |
422 | } | 422 | } |
423 | 423 | ||
@@ -427,7 +427,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
427 | double x,y,z,s; | 427 | double x,y,z,s; |
428 | int f=0; | 428 | int f=0; |
429 | // Important Note: q1=<x,y,z,s> is equal to q2=<-x,-y,-z,-s> | 429 | // Important Note: q1=<x,y,z,s> is equal to q2=<-x,-y,-z,-s> |
430 | // Computing quaternion x,y,z,s values | 430 | // Computing quaternion x,y,z,s values |
431 | x = ((fwd.x - left.y - up.z + 1) / 4); | 431 | x = ((fwd.x - left.y - up.z + 1) / 4); |
432 | x *= x; | 432 | x *= x; |
433 | x = Math.Sqrt(Math.Sqrt(x)); | 433 | x = Math.Sqrt(Math.Sqrt(x)); |
@@ -441,7 +441,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
441 | s *= s; | 441 | s *= s; |
442 | s = Math.Sqrt(Math.Sqrt(s)); | 442 | s = Math.Sqrt(Math.Sqrt(s)); |
443 | 443 | ||
444 | // Set f for signs detection | 444 | // Set f for signs detection |
445 | if (fwd.y+left.x >= 0){f+=1;} | 445 | if (fwd.y+left.x >= 0){f+=1;} |
446 | if (fwd.z+up.x >= 0){f+=2;} | 446 | if (fwd.z+up.x >= 0){f+=2;} |
447 | if (left.z-up.y >= 0){f+=4;} | 447 | if (left.z-up.y >= 0){f+=4;} |
@@ -510,7 +510,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
510 | x = 2 * (r.x * r.y - r.z * r.s); | 510 | x = 2 * (r.x * r.y - r.z * r.s); |
511 | y = -r.x * r.x + r.y * r.y - r.z * r.z + r.s * r.s; | 511 | y = -r.x * r.x + r.y * r.y - r.z * r.z + r.s * r.s; |
512 | z = 2 * (r.x * r.s + r.y * r.z); | 512 | z = 2 * (r.x * r.s + r.y * r.z); |
513 | return (new LSL_Types.Vector3(x, y, z)); | 513 | return (new LSL_Types.Vector3(x, y, z)); |
514 | } | 514 | } |
515 | 515 | ||
516 | public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) | 516 | public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) |
@@ -536,7 +536,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
536 | z = -r.x * r.x - r.y * r.y + r.z * r.z + r.s * r.s; | 536 | z = -r.x * r.x - r.y * r.y + r.z * r.z + r.s * r.s; |
537 | return (new LSL_Types.Vector3(x, y, z)); | 537 | return (new LSL_Types.Vector3(x, y, z)); |
538 | } | 538 | } |
539 | 539 | ||
540 | public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) | 540 | public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) |
541 | { | 541 | { |
542 | //A and B should both be normalized | 542 | //A and B should both be normalized |
@@ -1215,7 +1215,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1215 | 1215 | ||
1216 | /// <summary> | 1216 | /// <summary> |
1217 | /// Set flexi parameters of a part. | 1217 | /// Set flexi parameters of a part. |
1218 | /// | 1218 | /// |
1219 | /// FIXME: Much of this code should probably be within the part itself. | 1219 | /// FIXME: Much of this code should probably be within the part itself. |
1220 | /// </summary> | 1220 | /// </summary> |
1221 | /// <param name="part"></param> | 1221 | /// <param name="part"></param> |
@@ -1226,7 +1226,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1226 | /// <param name="wind"></param> | 1226 | /// <param name="wind"></param> |
1227 | /// <param name="tension"></param> | 1227 | /// <param name="tension"></param> |
1228 | /// <param name="Force"></param> | 1228 | /// <param name="Force"></param> |
1229 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, | 1229 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, |
1230 | float wind, float tension, LSL_Types.Vector3 Force) | 1230 | float wind, float tension, LSL_Types.Vector3 Force) |
1231 | { | 1231 | { |
1232 | if (part == null) | 1232 | if (part == null) |
@@ -1239,7 +1239,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1239 | { | 1239 | { |
1240 | needs_fakedelete = true; | 1240 | needs_fakedelete = true; |
1241 | } | 1241 | } |
1242 | part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do | 1242 | part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do |
1243 | // work once the prim is already flexi | 1243 | // work once the prim is already flexi |
1244 | part.Shape.FlexiSoftness = softness; | 1244 | part.Shape.FlexiSoftness = softness; |
1245 | part.Shape.FlexiGravity = gravity; | 1245 | part.Shape.FlexiGravity = gravity; |
@@ -1265,7 +1265,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1265 | if (needs_fakedelete) | 1265 | if (needs_fakedelete) |
1266 | { | 1266 | { |
1267 | if (part.ParentGroup != null) | 1267 | if (part.ParentGroup != null) |
1268 | { | 1268 | { |
1269 | part.ParentGroup.FakeDeleteGroup(); | 1269 | part.ParentGroup.FakeDeleteGroup(); |
1270 | } | 1270 | } |
1271 | } | 1271 | } |
@@ -1276,7 +1276,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1276 | 1276 | ||
1277 | /// <summary> | 1277 | /// <summary> |
1278 | /// Set a light point on a part | 1278 | /// Set a light point on a part |
1279 | /// | 1279 | /// |
1280 | /// FIXME: Much of this code should probably be in SceneObjectGroup | 1280 | /// FIXME: Much of this code should probably be in SceneObjectGroup |
1281 | /// </summary> | 1281 | /// </summary> |
1282 | /// <param name="part"></param> | 1282 | /// <param name="part"></param> |
@@ -1781,7 +1781,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1781 | m_host.SoundGain = volume; | 1781 | m_host.SoundGain = volume; |
1782 | m_host.SoundFlags = 1; // looping | 1782 | m_host.SoundFlags = 1; // looping |
1783 | m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? | 1783 | m_host.SoundRadius = 20; // Magic number, 20 seems reasonable. Make configurable? |
1784 | 1784 | ||
1785 | m_host.ScheduleFullUpdate(); | 1785 | m_host.ScheduleFullUpdate(); |
1786 | m_host.SendFullUpdateToAllClients(); | 1786 | m_host.SendFullUpdateToAllClients(); |
1787 | } | 1787 | } |
@@ -2908,13 +2908,13 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2908 | bool found = false; | 2908 | bool found = false; |
2909 | LLUUID destId = LLUUID.Zero; | 2909 | LLUUID destId = LLUUID.Zero; |
2910 | LLUUID objId = LLUUID.Zero; | 2910 | LLUUID objId = LLUUID.Zero; |
2911 | 2911 | ||
2912 | if (!LLUUID.TryParse(destination, out destId)) | 2912 | if (!LLUUID.TryParse(destination, out destId)) |
2913 | { | 2913 | { |
2914 | llSay(0, "Could not parse key " + destination); | 2914 | llSay(0, "Could not parse key " + destination); |
2915 | return; | 2915 | return; |
2916 | } | 2916 | } |
2917 | 2917 | ||
2918 | // move the first object found with this inventory name | 2918 | // move the first object found with this inventory name |
2919 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 2919 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
2920 | { | 2920 | { |
@@ -2931,7 +2931,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2931 | llSay(0, String.Format("Could not find object '{0}'", inventory)); | 2931 | llSay(0, String.Format("Could not find object '{0}'", inventory)); |
2932 | throw new Exception(String.Format("The inventory object '{0}' could not be found", inventory)); | 2932 | throw new Exception(String.Format("The inventory object '{0}' could not be found", inventory)); |
2933 | } | 2933 | } |
2934 | 2934 | ||
2935 | // check if destination is an avatar | 2935 | // check if destination is an avatar |
2936 | if (World.GetScenePresence(destId) != null) | 2936 | if (World.GetScenePresence(destId) != null) |
2937 | { | 2937 | { |
@@ -2993,7 +2993,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
2993 | { | 2993 | { |
2994 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.m_Dataserver.RegisterRequest( | 2994 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.m_Dataserver.RegisterRequest( |
2995 | m_localID, m_itemID, item.AssetID.ToString()); | 2995 | m_localID, m_itemID, item.AssetID.ToString()); |
2996 | 2996 | ||
2997 | LLVector3 region = new LLVector3( | 2997 | LLVector3 region = new LLVector3( |
2998 | World.RegionInfo.RegionLocX * Constants.RegionSize, | 2998 | World.RegionInfo.RegionLocX * Constants.RegionSize, |
2999 | World.RegionInfo.RegionLocY * Constants.RegionSize, | 2999 | World.RegionInfo.RegionLocY * Constants.RegionSize, |
@@ -4155,13 +4155,13 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
4155 | if (LLUUID.TryParse(id,out key)) | 4155 | if (LLUUID.TryParse(id,out key)) |
4156 | { | 4156 | { |
4157 | ScenePresence presence = World.GetScenePresence(key); | 4157 | ScenePresence presence = World.GetScenePresence(key); |
4158 | 4158 | ||
4159 | if (presence != null) | 4159 | if (presence != null) |
4160 | { | 4160 | { |
4161 | return presence.ControllingClient.Name; | 4161 | return presence.ControllingClient.Name; |
4162 | //return presence.Name; | 4162 | //return presence.Name; |
4163 | } | 4163 | } |
4164 | 4164 | ||
4165 | if (World.GetSceneObjectPart(key) != null) | 4165 | if (World.GetSceneObjectPart(key) != null) |
4166 | { | 4166 | { |
4167 | return World.GetSceneObjectPart(key).Name; | 4167 | return World.GetSceneObjectPart(key).Name; |
@@ -4516,7 +4516,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
4516 | private Primitive.ParticleSystem getNewParticleSystemWithSLDefaultValues() | 4516 | private Primitive.ParticleSystem getNewParticleSystemWithSLDefaultValues() |
4517 | { | 4517 | { |
4518 | Primitive.ParticleSystem ps = new Primitive.ParticleSystem(); | 4518 | Primitive.ParticleSystem ps = new Primitive.ParticleSystem(); |
4519 | 4519 | ||
4520 | // TODO find out about the other defaults and add them here | 4520 | // TODO find out about the other defaults and add them here |
4521 | ps.PartStartColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); | 4521 | ps.PartStartColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); |
4522 | ps.PartEndColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); | 4522 | ps.PartEndColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); |
@@ -4530,7 +4530,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
4530 | ps.PartMaxAge = 10.0f; | 4530 | ps.PartMaxAge = 10.0f; |
4531 | return ps; | 4531 | return ps; |
4532 | } | 4532 | } |
4533 | 4533 | ||
4534 | public void llParticleSystem(LSL_Types.list rules) | 4534 | public void llParticleSystem(LSL_Types.list rules) |
4535 | { | 4535 | { |
4536 | m_host.AddScriptLPS(1); | 4536 | m_host.AddScriptLPS(1); |
@@ -4725,7 +4725,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
4725 | itemList.Add(itemID); | 4725 | itemList.Add(itemID); |
4726 | } | 4726 | } |
4727 | } | 4727 | } |
4728 | 4728 | ||
4729 | if (itemList.Count == 0) | 4729 | if (itemList.Count == 0) |
4730 | return; | 4730 | return; |
4731 | 4731 | ||
@@ -4973,7 +4973,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
4973 | public void llSetRemoteScriptAccessPin(int pin) | 4973 | public void llSetRemoteScriptAccessPin(int pin) |
4974 | { | 4974 | { |
4975 | m_host.AddScriptLPS(1); | 4975 | m_host.AddScriptLPS(1); |
4976 | 4976 | ||
4977 | m_host.ScriptAccessPin = pin; | 4977 | m_host.ScriptAccessPin = pin; |
4978 | } | 4978 | } |
4979 | 4979 | ||
@@ -4983,19 +4983,19 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
4983 | bool found = false; | 4983 | bool found = false; |
4984 | LLUUID destId = LLUUID.Zero; | 4984 | LLUUID destId = LLUUID.Zero; |
4985 | LLUUID srcId = LLUUID.Zero; | 4985 | LLUUID srcId = LLUUID.Zero; |
4986 | 4986 | ||
4987 | if (!LLUUID.TryParse(target, out destId)) | 4987 | if (!LLUUID.TryParse(target, out destId)) |
4988 | { | 4988 | { |
4989 | llSay(0, "Could not parse key " + target); | 4989 | llSay(0, "Could not parse key " + target); |
4990 | return; | 4990 | return; |
4991 | } | 4991 | } |
4992 | 4992 | ||
4993 | // target must be a different prim than the one containing the script | 4993 | // target must be a different prim than the one containing the script |
4994 | if (m_host.UUID == destId) | 4994 | if (m_host.UUID == destId) |
4995 | { | 4995 | { |
4996 | return; | 4996 | return; |
4997 | } | 4997 | } |
4998 | 4998 | ||
4999 | // copy the first script found with this inventory name | 4999 | // copy the first script found with this inventory name |
5000 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 5000 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
5001 | { | 5001 | { |
@@ -5010,13 +5010,13 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5010 | } | 5010 | } |
5011 | } | 5011 | } |
5012 | } | 5012 | } |
5013 | 5013 | ||
5014 | if (!found) | 5014 | if (!found) |
5015 | { | 5015 | { |
5016 | llSay(0, "Could not find script " + name); | 5016 | llSay(0, "Could not find script " + name); |
5017 | return; | 5017 | return; |
5018 | } | 5018 | } |
5019 | 5019 | ||
5020 | // the rest of the permission checks are done in RezScript, so check the pin there as well | 5020 | // the rest of the permission checks are done in RezScript, so check the pin there as well |
5021 | World.RezScript(srcId, m_host, destId, pin, running, start_param); | 5021 | World.RezScript(srcId, m_host, destId, pin, running, start_param); |
5022 | // this will cause the delay even if the script pin or permissions were wrong - seems ok | 5022 | // this will cause the delay even if the script pin or permissions were wrong - seems ok |
@@ -5066,11 +5066,11 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5066 | m_host.AddScriptLPS(1); | 5066 | m_host.AddScriptLPS(1); |
5067 | return Util.Md5Hash(src + ":" + nonce.ToString()); | 5067 | return Util.Md5Hash(src + ":" + nonce.ToString()); |
5068 | } | 5068 | } |
5069 | 5069 | ||
5070 | private ObjectShapePacket.ObjectDataBlock SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) | 5070 | private ObjectShapePacket.ObjectDataBlock SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) |
5071 | { | 5071 | { |
5072 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); | 5072 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); |
5073 | 5073 | ||
5074 | if (holeshape != (int)BuiltIn_Commands_BaseClass.PRIM_HOLE_DEFAULT && | 5074 | if (holeshape != (int)BuiltIn_Commands_BaseClass.PRIM_HOLE_DEFAULT && |
5075 | holeshape != (int)BuiltIn_Commands_BaseClass.PRIM_HOLE_CIRCLE && | 5075 | holeshape != (int)BuiltIn_Commands_BaseClass.PRIM_HOLE_CIRCLE && |
5076 | holeshape != (int)BuiltIn_Commands_BaseClass.PRIM_HOLE_SQUARE && | 5076 | holeshape != (int)BuiltIn_Commands_BaseClass.PRIM_HOLE_SQUARE && |
@@ -5128,23 +5128,23 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5128 | } | 5128 | } |
5129 | shapeBlock.PathTwistBegin = (sbyte)(200 * twist.x); | 5129 | shapeBlock.PathTwistBegin = (sbyte)(200 * twist.x); |
5130 | shapeBlock.PathTwist = (sbyte)(200 * twist.y); | 5130 | shapeBlock.PathTwist = (sbyte)(200 * twist.y); |
5131 | 5131 | ||
5132 | shapeBlock.ObjectLocalID = m_host.LocalId; | 5132 | shapeBlock.ObjectLocalID = m_host.LocalId; |
5133 | 5133 | ||
5134 | // retain pathcurve | 5134 | // retain pathcurve |
5135 | shapeBlock.PathCurve = m_host.Shape.PathCurve; | 5135 | shapeBlock.PathCurve = m_host.Shape.PathCurve; |
5136 | 5136 | ||
5137 | return shapeBlock; | 5137 | return shapeBlock; |
5138 | } | 5138 | } |
5139 | 5139 | ||
5140 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) | 5140 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) |
5141 | { | 5141 | { |
5142 | ObjectShapePacket.ObjectDataBlock shapeBlock; | 5142 | ObjectShapePacket.ObjectDataBlock shapeBlock; |
5143 | 5143 | ||
5144 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); | 5144 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); |
5145 | 5145 | ||
5146 | shapeBlock.ProfileCurve += fudge; | 5146 | shapeBlock.ProfileCurve += fudge; |
5147 | 5147 | ||
5148 | if (taper_b.x < 0f) | 5148 | if (taper_b.x < 0f) |
5149 | { | 5149 | { |
5150 | taper_b.x = 0f; | 5150 | taper_b.x = 0f; |
@@ -5181,25 +5181,25 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5181 | } | 5181 | } |
5182 | shapeBlock.PathShearX = (byte)(100 * topshear.x); | 5182 | shapeBlock.PathShearX = (byte)(100 * topshear.x); |
5183 | shapeBlock.PathShearY = (byte)(100 * topshear.y); | 5183 | shapeBlock.PathShearY = (byte)(100 * topshear.y); |
5184 | 5184 | ||
5185 | m_host.UpdateShape(shapeBlock); | 5185 | m_host.UpdateShape(shapeBlock); |
5186 | } | 5186 | } |
5187 | 5187 | ||
5188 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) | 5188 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) |
5189 | { | 5189 | { |
5190 | ObjectShapePacket.ObjectDataBlock shapeBlock; | 5190 | ObjectShapePacket.ObjectDataBlock shapeBlock; |
5191 | 5191 | ||
5192 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); | 5192 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); |
5193 | 5193 | ||
5194 | // profile/path swapped for a sphere | 5194 | // profile/path swapped for a sphere |
5195 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; | 5195 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; |
5196 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; | 5196 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; |
5197 | 5197 | ||
5198 | shapeBlock.ProfileCurve += fudge; | 5198 | shapeBlock.ProfileCurve += fudge; |
5199 | 5199 | ||
5200 | shapeBlock.PathScaleX = 100; | 5200 | shapeBlock.PathScaleX = 100; |
5201 | shapeBlock.PathScaleY = 100; | 5201 | shapeBlock.PathScaleY = 100; |
5202 | 5202 | ||
5203 | if (dimple.x < 0f) | 5203 | if (dimple.x < 0f) |
5204 | { | 5204 | { |
5205 | dimple.x = 0f; | 5205 | dimple.x = 0f; |
@@ -5222,22 +5222,22 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5222 | } | 5222 | } |
5223 | shapeBlock.ProfileBegin = (ushort)(50000 * dimple.x); | 5223 | shapeBlock.ProfileBegin = (ushort)(50000 * dimple.x); |
5224 | shapeBlock.ProfileEnd = (ushort)(50000 * (1 - dimple.y)); | 5224 | shapeBlock.ProfileEnd = (ushort)(50000 * (1 - dimple.y)); |
5225 | 5225 | ||
5226 | m_host.UpdateShape(shapeBlock); | 5226 | m_host.UpdateShape(shapeBlock); |
5227 | } | 5227 | } |
5228 | 5228 | ||
5229 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) | 5229 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) |
5230 | { | 5230 | { |
5231 | ObjectShapePacket.ObjectDataBlock shapeBlock; | 5231 | ObjectShapePacket.ObjectDataBlock shapeBlock; |
5232 | 5232 | ||
5233 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); | 5233 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); |
5234 | 5234 | ||
5235 | shapeBlock.ProfileCurve += fudge; | 5235 | shapeBlock.ProfileCurve += fudge; |
5236 | 5236 | ||
5237 | // profile/path swapped for a torrus, tube, ring | 5237 | // profile/path swapped for a torrus, tube, ring |
5238 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; | 5238 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; |
5239 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; | 5239 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; |
5240 | 5240 | ||
5241 | if (holesize.x < 0.05f) | 5241 | if (holesize.x < 0.05f) |
5242 | { | 5242 | { |
5243 | holesize.x = 0.05f; | 5243 | holesize.x = 0.05f; |
@@ -5342,15 +5342,15 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5342 | skew = 0.95f; | 5342 | skew = 0.95f; |
5343 | } | 5343 | } |
5344 | shapeBlock.PathSkew = (sbyte)(100 * skew); | 5344 | shapeBlock.PathSkew = (sbyte)(100 * skew); |
5345 | 5345 | ||
5346 | m_host.UpdateShape(shapeBlock); | 5346 | m_host.UpdateShape(shapeBlock); |
5347 | } | 5347 | } |
5348 | 5348 | ||
5349 | private void SetPrimitiveShapeParams(string map, int type) | 5349 | private void SetPrimitiveShapeParams(string map, int type) |
5350 | { | 5350 | { |
5351 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); | 5351 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); |
5352 | LLUUID sculptId; | 5352 | LLUUID sculptId; |
5353 | 5353 | ||
5354 | if (!LLUUID.TryParse(map, out sculptId)) | 5354 | if (!LLUUID.TryParse(map, out sculptId)) |
5355 | { | 5355 | { |
5356 | llSay(0, "Could not parse key " + map); | 5356 | llSay(0, "Could not parse key " + map); |
@@ -5360,7 +5360,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5360 | shapeBlock.ObjectLocalID = m_host.LocalId; | 5360 | shapeBlock.ObjectLocalID = m_host.LocalId; |
5361 | shapeBlock.PathScaleX = 100; | 5361 | shapeBlock.PathScaleX = 100; |
5362 | shapeBlock.PathScaleY = 150; | 5362 | shapeBlock.PathScaleY = 150; |
5363 | 5363 | ||
5364 | if (type != (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_CYLINDER && | 5364 | if (type != (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_CYLINDER && |
5365 | type != (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_PLANE && | 5365 | type != (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_PLANE && |
5366 | type != (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_SPHERE && | 5366 | type != (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_SPHERE && |
@@ -5369,7 +5369,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5369 | // default | 5369 | // default |
5370 | type = (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_SPHERE; | 5370 | type = (int)BuiltIn_Commands_BaseClass.PRIM_SCULPT_TYPE_SPHERE; |
5371 | } | 5371 | } |
5372 | 5372 | ||
5373 | // retain pathcurve | 5373 | // retain pathcurve |
5374 | shapeBlock.PathCurve = m_host.Shape.PathCurve; | 5374 | shapeBlock.PathCurve = m_host.Shape.PathCurve; |
5375 | 5375 | ||
@@ -5422,7 +5422,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5422 | 5422 | ||
5423 | v=new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5423 | v=new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
5424 | SetScale(part, v); | 5424 | SetScale(part, v); |
5425 | 5425 | ||
5426 | break; | 5426 | break; |
5427 | case (int)BuiltIn_Commands_BaseClass.PRIM_ROTATION: | 5427 | case (int)BuiltIn_Commands_BaseClass.PRIM_ROTATION: |
5428 | if (remain < 1) | 5428 | if (remain < 1) |
@@ -5432,13 +5432,13 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5432 | SetRot(part, q); | 5432 | SetRot(part, q); |
5433 | 5433 | ||
5434 | break; | 5434 | break; |
5435 | 5435 | ||
5436 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE: | 5436 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE: |
5437 | if (remain < 3) | 5437 | if (remain < 3) |
5438 | return; | 5438 | return; |
5439 | 5439 | ||
5440 | code = Convert.ToInt32(rules.Data[idx++]); | 5440 | code = Convert.ToInt32(rules.Data[idx++]); |
5441 | 5441 | ||
5442 | remain = rules.Length - idx; | 5442 | remain = rules.Length - idx; |
5443 | float hollow; | 5443 | float hollow; |
5444 | LSL_Types.Vector3 twist; | 5444 | LSL_Types.Vector3 twist; |
@@ -5449,9 +5449,9 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5449 | float skew; | 5449 | float skew; |
5450 | LSL_Types.Vector3 holesize; | 5450 | LSL_Types.Vector3 holesize; |
5451 | LSL_Types.Vector3 profilecut; | 5451 | LSL_Types.Vector3 profilecut; |
5452 | 5452 | ||
5453 | switch (code) | 5453 | switch (code) |
5454 | { | 5454 | { |
5455 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_BOX: | 5455 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_BOX: |
5456 | if (remain < 6) | 5456 | if (remain < 6) |
5457 | return; | 5457 | return; |
@@ -5465,7 +5465,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5465 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; | 5465 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; |
5466 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 1); | 5466 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 1); |
5467 | break; | 5467 | break; |
5468 | 5468 | ||
5469 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_CYLINDER: | 5469 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_CYLINDER: |
5470 | if (remain < 6) | 5470 | if (remain < 6) |
5471 | return; | 5471 | return; |
@@ -5480,12 +5480,12 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5480 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; | 5480 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; |
5481 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 0); | 5481 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 0); |
5482 | break; | 5482 | break; |
5483 | 5483 | ||
5484 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_PRISM: | 5484 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_PRISM: |
5485 | if (remain < 6) | 5485 | if (remain < 6) |
5486 | return; | 5486 | return; |
5487 | 5487 | ||
5488 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5488 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5489 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5489 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5490 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5490 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5491 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5491 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5507,12 +5507,12 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5507 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5507 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5508 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, 5); | 5508 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, 5); |
5509 | break; | 5509 | break; |
5510 | 5510 | ||
5511 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_TORUS: | 5511 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_TORUS: |
5512 | if (remain < 11) | 5512 | if (remain < 11) |
5513 | return; | 5513 | return; |
5514 | 5514 | ||
5515 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5515 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5516 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5516 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5517 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5517 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5518 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5518 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5526,12 +5526,12 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5526 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5526 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5527 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0); | 5527 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0); |
5528 | break; | 5528 | break; |
5529 | 5529 | ||
5530 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_TUBE: | 5530 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_TUBE: |
5531 | if (remain < 11) | 5531 | if (remain < 11) |
5532 | return; | 5532 | return; |
5533 | 5533 | ||
5534 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5534 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5535 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5535 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5536 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5536 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5537 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5537 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5545,12 +5545,12 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5545 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5545 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5546 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1); | 5546 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1); |
5547 | break; | 5547 | break; |
5548 | 5548 | ||
5549 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_RING: | 5549 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_RING: |
5550 | if (remain < 11) | 5550 | if (remain < 11) |
5551 | return; | 5551 | return; |
5552 | 5552 | ||
5553 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5553 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5554 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5554 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5555 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5555 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5556 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5556 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5564,7 +5564,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5564 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5564 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5565 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3); | 5565 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3); |
5566 | break; | 5566 | break; |
5567 | 5567 | ||
5568 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_SCULPT: | 5568 | case (int)BuiltIn_Commands_BaseClass.PRIM_TYPE_SCULPT: |
5569 | if (remain < 2) | 5569 | if (remain < 2) |
5570 | return; | 5570 | return; |
@@ -5575,7 +5575,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5575 | SetPrimitiveShapeParams(map, face); | 5575 | SetPrimitiveShapeParams(map, face); |
5576 | break; | 5576 | break; |
5577 | } | 5577 | } |
5578 | 5578 | ||
5579 | break; | 5579 | break; |
5580 | 5580 | ||
5581 | case (int)BuiltIn_Commands_BaseClass.PRIM_TEXTURE: | 5581 | case (int)BuiltIn_Commands_BaseClass.PRIM_TEXTURE: |
@@ -5630,7 +5630,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5630 | float intensity = (float)Convert.ToDouble(rules.Data[idx++]); | 5630 | float intensity = (float)Convert.ToDouble(rules.Data[idx++]); |
5631 | float radius = (float)Convert.ToDouble(rules.Data[idx++]); | 5631 | float radius = (float)Convert.ToDouble(rules.Data[idx++]); |
5632 | float falloff = (float)Convert.ToDouble(rules.Data[idx++]); | 5632 | float falloff = (float)Convert.ToDouble(rules.Data[idx++]); |
5633 | 5633 | ||
5634 | SetPointLight(part, (light == 1), lightcolor, intensity, radius, falloff); | 5634 | SetPointLight(part, (light == 1), lightcolor, intensity, radius, falloff); |
5635 | 5635 | ||
5636 | break; | 5636 | break; |
@@ -5701,7 +5701,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
5701 | public LSL_Types.list llGetAnimationList( string id ) | 5701 | public LSL_Types.list llGetAnimationList( string id ) |
5702 | { | 5702 | { |
5703 | m_host.AddScriptLPS(1); | 5703 | m_host.AddScriptLPS(1); |
5704 | 5704 | ||
5705 | LSL_Types.list l = new LSL_Types.list(); | 5705 | LSL_Types.list l = new LSL_Types.list(); |
5706 | ScenePresence av = World.GetScenePresence(id); | 5706 | ScenePresence av = World.GetScenePresence(id); |
5707 | if (av == null) | 5707 | if (av == null) |
@@ -6560,7 +6560,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6560 | IConfigSource config = new IniConfigSource(Application.iniFilePath); | 6560 | IConfigSource config = new IniConfigSource(Application.iniFilePath); |
6561 | if (config.Configs["LL-Functions"] == null) | 6561 | if (config.Configs["LL-Functions"] == null) |
6562 | config.AddConfig("LL-Functions"); | 6562 | config.AddConfig("LL-Functions"); |
6563 | 6563 | ||
6564 | if (config.Configs["LL-Functions"].GetBoolean("AllowGodFunctions", false)) | 6564 | if (config.Configs["LL-Functions"].GetBoolean("AllowGodFunctions", false)) |
6565 | { | 6565 | { |
6566 | if (World.ExternalChecks.ExternalChecksCanRunConsoleCommand(m_host.OwnerID)) | 6566 | if (World.ExternalChecks.ExternalChecksCanRunConsoleCommand(m_host.OwnerID)) |
@@ -6829,7 +6829,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6829 | //PARCEL_MEDIA_COMMAND_LOOP_SET float loop Use this to get or set the parcel's media loop duration. (1.19.1 RC0 or later) | 6829 | //PARCEL_MEDIA_COMMAND_LOOP_SET float loop Use this to get or set the parcel's media loop duration. (1.19.1 RC0 or later) |
6830 | m_host.AddScriptLPS(1); | 6830 | m_host.AddScriptLPS(1); |
6831 | for (int i = 0; i < commandList.Data.Length; i++) | 6831 | for (int i = 0; i < commandList.Data.Length; i++) |
6832 | { | 6832 | { |
6833 | switch ((ParcelMediaCommandEnum)commandList.Data[i]) | 6833 | switch ((ParcelMediaCommandEnum)commandList.Data[i]) |
6834 | { | 6834 | { |
6835 | case ParcelMediaCommandEnum.Play: | 6835 | case ParcelMediaCommandEnum.Play: |
@@ -6839,7 +6839,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6839 | if (!agent.IsChildAgent) | 6839 | if (!agent.IsChildAgent) |
6840 | { | 6840 | { |
6841 | agent.ControllingClient.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); | 6841 | agent.ControllingClient.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); |
6842 | } | 6842 | } |
6843 | } | 6843 | } |
6844 | break; | 6844 | break; |
6845 | case ParcelMediaCommandEnum.Stop: | 6845 | case ParcelMediaCommandEnum.Stop: |
@@ -6870,7 +6870,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6870 | { | 6870 | { |
6871 | //Set the new media URL only if the user is the owner of the land | 6871 | //Set the new media URL only if the user is the owner of the land |
6872 | osSetParcelMediaURL(commandList.Data[i + 1].ToString()); | 6872 | osSetParcelMediaURL(commandList.Data[i + 1].ToString()); |
6873 | 6873 | ||
6874 | List<ScenePresence> scenePresenceList = World.GetScenePresences(); | 6874 | List<ScenePresence> scenePresenceList = World.GetScenePresences(); |
6875 | LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 6875 | LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); |
6876 | //Send an update of the mediaURL to all the clients that are in the parcel | 6876 | //Send an update of the mediaURL to all the clients that are in the parcel |
@@ -6881,8 +6881,8 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6881 | //Send parcel media update to the client | 6881 | //Send parcel media update to the client |
6882 | agent.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, landData.MediaID, landData.MediaAutoScale, "", landData.Description, 0, 0, 1); | 6882 | agent.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, landData.MediaID, landData.MediaAutoScale, "", landData.Description, 0, 0, 1); |
6883 | } | 6883 | } |
6884 | } | 6884 | } |
6885 | 6885 | ||
6886 | } | 6886 | } |
6887 | i++; | 6887 | i++; |
6888 | } | 6888 | } |
@@ -6892,7 +6892,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6892 | NotImplemented("llParcelMediaCommandList parameter do not supported yet: " + Enum.Parse(mediaCommandEnum.GetType(), commandList.Data[i].ToString()).ToString()); | 6892 | NotImplemented("llParcelMediaCommandList parameter do not supported yet: " + Enum.Parse(mediaCommandEnum.GetType(), commandList.Data[i].ToString()).ToString()); |
6893 | break; | 6893 | break; |
6894 | }//end switch | 6894 | }//end switch |
6895 | 6895 | ||
6896 | } | 6896 | } |
6897 | 6897 | ||
6898 | 6898 | ||
@@ -6935,7 +6935,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6935 | } | 6935 | } |
6936 | } | 6936 | } |
6937 | return list; | 6937 | return list; |
6938 | 6938 | ||
6939 | } | 6939 | } |
6940 | 6940 | ||
6941 | public LSL_Types.LSLInteger llModPow(int a, int b, int c) | 6941 | public LSL_Types.LSLInteger llModPow(int a, int b, int c) |
@@ -6979,7 +6979,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6979 | { | 6979 | { |
6980 | m_host.AddScriptLPS(1); | 6980 | m_host.AddScriptLPS(1); |
6981 | LLUUID invItemID=InventorySelf(); | 6981 | LLUUID invItemID=InventorySelf(); |
6982 | if (invItemID == LLUUID.Zero) | 6982 | if (invItemID == LLUUID.Zero) |
6983 | return new LSL_Types.Vector3(); | 6983 | return new LSL_Types.Vector3(); |
6984 | if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) | 6984 | if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) |
6985 | return new LSL_Types.Vector3(); | 6985 | return new LSL_Types.Vector3(); |
@@ -6989,7 +6989,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
6989 | return new LSL_Types.Vector3(); | 6989 | return new LSL_Types.Vector3(); |
6990 | } | 6990 | } |
6991 | ScenePresence presence = World.GetScenePresence(m_host.OwnerID); | 6991 | ScenePresence presence = World.GetScenePresence(m_host.OwnerID); |
6992 | if (presence != null) | 6992 | if (presence != null) |
6993 | { | 6993 | { |
6994 | LSL_Types.Vector3 pos = new LSL_Types.Vector3(presence.CameraPosition.x,presence.CameraPosition.y,presence.CameraPosition.z); | 6994 | LSL_Types.Vector3 pos = new LSL_Types.Vector3(presence.CameraPosition.x,presence.CameraPosition.y,presence.CameraPosition.z); |
6995 | return pos; | 6995 | return pos; |
@@ -7111,8 +7111,8 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
7111 | public void llSetCameraParams(LSL_Types.list rules) | 7111 | public void llSetCameraParams(LSL_Types.list rules) |
7112 | { | 7112 | { |
7113 | m_host.AddScriptLPS(1); | 7113 | m_host.AddScriptLPS(1); |
7114 | 7114 | ||
7115 | // our key in the object we are in | 7115 | // our key in the object we are in |
7116 | LLUUID invItemID=InventorySelf(); | 7116 | LLUUID invItemID=InventorySelf(); |
7117 | if (invItemID == LLUUID.Zero) return; | 7117 | if (invItemID == LLUUID.Zero) return; |
7118 | 7118 | ||
@@ -7126,10 +7126,10 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
7126 | if ((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; | 7126 | if ((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; |
7127 | 7127 | ||
7128 | ScenePresence presence = World.GetScenePresence(agentID); | 7128 | ScenePresence presence = World.GetScenePresence(agentID); |
7129 | 7129 | ||
7130 | // we are not interested in child-agents | 7130 | // we are not interested in child-agents |
7131 | if (presence.IsChildAgent) return; | 7131 | if (presence.IsChildAgent) return; |
7132 | 7132 | ||
7133 | SortedDictionary<int, float> parameters = new SortedDictionary<int, float>(); | 7133 | SortedDictionary<int, float> parameters = new SortedDictionary<int, float>(); |
7134 | object[] data = rules.Data; | 7134 | object[] data = rules.Data; |
7135 | for (int i = 0; i < data.Length; ++i) { | 7135 | for (int i = 0; i < data.Length; ++i) { |
@@ -7142,8 +7142,8 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
7142 | case BuiltIn_Commands_BaseClass.CAMERA_FOCUS_OFFSET: | 7142 | case BuiltIn_Commands_BaseClass.CAMERA_FOCUS_OFFSET: |
7143 | case BuiltIn_Commands_BaseClass.CAMERA_POSITION: | 7143 | case BuiltIn_Commands_BaseClass.CAMERA_POSITION: |
7144 | LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; | 7144 | LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; |
7145 | parameters.Add(type + 1, (float)v.x); | 7145 | parameters.Add(type + 1, (float)v.x); |
7146 | parameters.Add(type + 2, (float)v.y); | 7146 | parameters.Add(type + 2, (float)v.y); |
7147 | parameters.Add(type + 3, (float)v.z); | 7147 | parameters.Add(type + 3, (float)v.z); |
7148 | break; | 7148 | break; |
7149 | default: | 7149 | default: |
@@ -7163,7 +7163,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
7163 | { | 7163 | { |
7164 | m_host.AddScriptLPS(1); | 7164 | m_host.AddScriptLPS(1); |
7165 | 7165 | ||
7166 | // our key in the object we are in | 7166 | // our key in the object we are in |
7167 | LLUUID invItemID=InventorySelf(); | 7167 | LLUUID invItemID=InventorySelf(); |
7168 | if (invItemID == LLUUID.Zero) return; | 7168 | if (invItemID == LLUUID.Zero) return; |
7169 | 7169 | ||
@@ -7177,10 +7177,10 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
7177 | if ((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; | 7177 | if ((m_host.TaskInventory[invItemID].PermsMask & BuiltIn_Commands_BaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; |
7178 | 7178 | ||
7179 | ScenePresence presence = World.GetScenePresence(agentID); | 7179 | ScenePresence presence = World.GetScenePresence(agentID); |
7180 | 7180 | ||
7181 | // we are not interested in child-agents | 7181 | // we are not interested in child-agents |
7182 | if (presence.IsChildAgent) return; | 7182 | if (presence.IsChildAgent) return; |
7183 | 7183 | ||
7184 | presence.ControllingClient.SendClearFollowCamProperties(objectID); | 7184 | presence.ControllingClient.SendClearFollowCamProperties(objectID); |
7185 | } | 7185 | } |
7186 | 7186 | ||
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs index e98dec6..3b317ac 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs | |||
@@ -703,7 +703,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
703 | // Otherwise, if we have strings, compare them alphabetically. | 703 | // Otherwise, if we have strings, compare them alphabetically. |
704 | string str1 = new string(space1); | 704 | string str1 = new string(space1); |
705 | string str2 = new string(space2); | 705 | string str2 = new string(space2); |
706 | 706 | ||
707 | int result; | 707 | int result; |
708 | 708 | ||
709 | if (char.IsDigit(space1[0]) && char.IsDigit(space2[0])) | 709 | if (char.IsDigit(space1[0]) && char.IsDigit(space2[0])) |
@@ -1427,22 +1427,22 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1427 | bool ret = i1.value != i2.value; | 1427 | bool ret = i1.value != i2.value; |
1428 | return ret; | 1428 | return ret; |
1429 | } | 1429 | } |
1430 | 1430 | ||
1431 | static public LSLInteger operator +(LSLInteger i1, int i2) | 1431 | static public LSLInteger operator +(LSLInteger i1, int i2) |
1432 | { | 1432 | { |
1433 | return new LSLInteger(i1.value + i2); | 1433 | return new LSLInteger(i1.value + i2); |
1434 | } | 1434 | } |
1435 | 1435 | ||
1436 | static public LSLInteger operator -(LSLInteger i1, int i2) | 1436 | static public LSLInteger operator -(LSLInteger i1, int i2) |
1437 | { | 1437 | { |
1438 | return new LSLInteger(i1.value - i2); | 1438 | return new LSLInteger(i1.value - i2); |
1439 | } | 1439 | } |
1440 | 1440 | ||
1441 | static public LSLInteger operator *(LSLInteger i1, int i2) | 1441 | static public LSLInteger operator *(LSLInteger i1, int i2) |
1442 | { | 1442 | { |
1443 | return new LSLInteger(i1.value * i2); | 1443 | return new LSLInteger(i1.value * i2); |
1444 | } | 1444 | } |
1445 | 1445 | ||
1446 | static public LSLInteger operator /(LSLInteger i1, int i2) | 1446 | static public LSLInteger operator /(LSLInteger i1, int i2) |
1447 | { | 1447 | { |
1448 | return new LSLInteger(i1.value / i2); | 1448 | return new LSLInteger(i1.value / i2); |
@@ -1452,22 +1452,22 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1452 | { | 1452 | { |
1453 | return new LSLFloat((double)i1.value + f); | 1453 | return new LSLFloat((double)i1.value + f); |
1454 | } | 1454 | } |
1455 | 1455 | ||
1456 | static public LSLFloat operator -(LSLInteger i1, double f) | 1456 | static public LSLFloat operator -(LSLInteger i1, double f) |
1457 | { | 1457 | { |
1458 | return new LSLFloat((double)i1.value - f); | 1458 | return new LSLFloat((double)i1.value - f); |
1459 | } | 1459 | } |
1460 | 1460 | ||
1461 | static public LSLFloat operator *(LSLInteger i1, double f) | 1461 | static public LSLFloat operator *(LSLInteger i1, double f) |
1462 | { | 1462 | { |
1463 | return new LSLFloat((double)i1.value * f); | 1463 | return new LSLFloat((double)i1.value * f); |
1464 | } | 1464 | } |
1465 | 1465 | ||
1466 | static public LSLFloat operator /(LSLInteger i1, double f) | 1466 | static public LSLFloat operator /(LSLInteger i1, double f) |
1467 | { | 1467 | { |
1468 | return new LSLFloat((double)i1.value / f); | 1468 | return new LSLFloat((double)i1.value / f); |
1469 | } | 1469 | } |
1470 | 1470 | ||
1471 | static public LSLInteger operator -(LSLInteger i) | 1471 | static public LSLInteger operator -(LSLInteger i) |
1472 | { | 1472 | { |
1473 | return new LSLInteger(-i.value); | 1473 | return new LSLInteger(-i.value); |
@@ -1623,17 +1623,17 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1623 | f.value--; | 1623 | f.value--; |
1624 | return f; | 1624 | return f; |
1625 | } | 1625 | } |
1626 | 1626 | ||
1627 | static public LSLFloat operator +(LSLFloat f, int i) | 1627 | static public LSLFloat operator +(LSLFloat f, int i) |
1628 | { | 1628 | { |
1629 | return new LSLFloat(f.value + (double)i); | 1629 | return new LSLFloat(f.value + (double)i); |
1630 | } | 1630 | } |
1631 | 1631 | ||
1632 | static public LSLFloat operator -(LSLFloat f, int i) | 1632 | static public LSLFloat operator -(LSLFloat f, int i) |
1633 | { | 1633 | { |
1634 | return new LSLFloat(f.value - (double)i); | 1634 | return new LSLFloat(f.value - (double)i); |
1635 | } | 1635 | } |
1636 | 1636 | ||
1637 | static public LSLFloat operator *(LSLFloat f, int i) | 1637 | static public LSLFloat operator *(LSLFloat f, int i) |
1638 | { | 1638 | { |
1639 | return new LSLFloat(f.value * (double)i); | 1639 | return new LSLFloat(f.value * (double)i); |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs index 5f86c9c..77cc7ea 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs | |||
@@ -88,7 +88,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin | |||
88 | { | 88 | { |
89 | if (!DataserverRequests.ContainsKey(identifier)) | 89 | if (!DataserverRequests.ContainsKey(identifier)) |
90 | return; | 90 | return; |
91 | 91 | ||
92 | ds=DataserverRequests[identifier]; | 92 | ds=DataserverRequests[identifier]; |
93 | DataserverRequests.Remove(identifier); | 93 | DataserverRequests.Remove(identifier); |
94 | } | 94 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs index 79c1dde..5c57874 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs | |||
@@ -126,7 +126,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
126 | /// Queue containing events waiting to be executed | 126 | /// Queue containing events waiting to be executed |
127 | /// </summary> | 127 | /// </summary> |
128 | public Queue<QueueItemStruct> eventQueue = new Queue<QueueItemStruct>(); | 128 | public Queue<QueueItemStruct> eventQueue = new Queue<QueueItemStruct>(); |
129 | 129 | ||
130 | #region " Queue structures " | 130 | #region " Queue structures " |
131 | /// <summary> | 131 | /// <summary> |
132 | /// Queue item structure | 132 | /// Queue item structure |
@@ -193,7 +193,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
193 | } | 193 | } |
194 | 194 | ||
195 | #endregion | 195 | #endregion |
196 | 196 | ||
197 | #region " Shutdown all threads " | 197 | #region " Shutdown all threads " |
198 | ~EventQueueManager() | 198 | ~EventQueueManager() |
199 | { | 199 | { |
@@ -408,10 +408,10 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
408 | 408 | ||
409 | // Set flag if script should be removed or not | 409 | // Set flag if script should be removed or not |
410 | EventQueueThread.KillCurrentScript = KillScriptOnMaxFunctionExecutionTime; | 410 | EventQueueThread.KillCurrentScript = KillScriptOnMaxFunctionExecutionTime; |
411 | 411 | ||
412 | // Abort this thread | 412 | // Abort this thread |
413 | AbortThreadClass(EventQueueThread); | 413 | AbortThreadClass(EventQueueThread); |
414 | 414 | ||
415 | // We do not need to start another, MaintenenceThread will do that for us | 415 | // We do not need to start another, MaintenenceThread will do that for us |
416 | //StartNewThreadClass(); | 416 | //StartNewThreadClass(); |
417 | } | 417 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs index 255ab99..4376e00 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs | |||
@@ -44,7 +44,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
44 | public class EventQueueThreadClass : iScriptEngineFunctionModule | 44 | public class EventQueueThreadClass : iScriptEngineFunctionModule |
45 | { | 45 | { |
46 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | /// <summary> | 48 | /// <summary> |
49 | /// How many ms to sleep if queue is empty | 49 | /// How many ms to sleep if queue is empty |
50 | /// </summary> | 50 | /// </summary> |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs b/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs index f04ac01..9a465f6 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptServerInterfaces.cs | |||
@@ -73,7 +73,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
73 | void remote_data(uint localID, LLUUID itemID); | 73 | void remote_data(uint localID, LLUUID itemID); |
74 | void http_response(uint localID, LLUUID itemID); | 74 | void http_response(uint localID, LLUUID itemID); |
75 | } | 75 | } |
76 | 76 | ||
77 | public interface ServerRemotingObject | 77 | public interface ServerRemotingObject |
78 | { | 78 | { |
79 | RemoteEvents Events(); | 79 | RemoteEvents Events(); |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index 06c7387..fa3e35b 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | |||
@@ -355,8 +355,6 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
355 | 355 | ||
356 | private static string CreateYPCompilerScript(string compileScript) | 356 | private static string CreateYPCompilerScript(string compileScript) |
357 | { | 357 | { |
358 | |||
359 | |||
360 | compileScript = String.Empty + | 358 | compileScript = String.Empty + |
361 | "using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog; " + | 359 | "using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog; " + |
362 | "using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;\r\n" + | 360 | "using OpenSim.Region.ScriptEngine.Common; using System.Collections.Generic;\r\n" + |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs index 3f7b95e..8618d6c 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
61 | myCode = myCode.Substring(0, cs_pointer); | 61 | myCode = myCode.Substring(0, cs_pointer); |
62 | } | 62 | } |
63 | myCode.Replace("//yp", "%YPCode"); | 63 | myCode.Replace("//yp", "%YPCode"); |
64 | 64 | ||
65 | StringWriter myCS_SW = new StringWriter(); | 65 | StringWriter myCS_SW = new StringWriter(); |
66 | StringReader myCode_SR = new StringReader(" yp_nop_header_nop. \n "+myCode + "\n"); | 66 | StringReader myCode_SR = new StringReader(" yp_nop_header_nop. \n "+myCode + "\n"); |
67 | 67 | ||
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs index 999208d..415c646 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs | |||
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
54 | { | 54 | { |
55 | _arity = arity; | 55 | _arity = arity; |
56 | } | 56 | } |
57 | 57 | ||
58 | /// <summary> | 58 | /// <summary> |
59 | /// Append the answer to the list and update the indexes, if any. | 59 | /// Append the answer to the list and update the indexes, if any. |
60 | /// Elements of answer must be ground, since arguments with unbound variables make this | 60 | /// Elements of answer must be ground, since arguments with unbound variables make this |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs index 9a1f00d..56ed719 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
54 | /// This uses YP.makeCopy to copy the ErrorTerm and Message so that they are valid after unbinding. | 54 | /// This uses YP.makeCopy to copy the ErrorTerm and Message so that they are valid after unbinding. |
55 | /// </summary> | 55 | /// </summary> |
56 | /// <param name="ErrorTerm">the error term of the error</param> | 56 | /// <param name="ErrorTerm">the error term of the error</param> |
57 | /// <param name="Messsage">the message term of the error. If this is a string, it is converted to an | 57 | /// <param name="Messsage">the message term of the error. If this is a string, it is converted to an |
58 | /// Atom so it can be used by Prolog code. | 58 | /// Atom so it can be used by Prolog code. |
59 | /// Message, converted to a string, is use as the printable exception message. | 59 | /// Message, converted to a string, is use as the printable exception message. |
60 | /// </param> | 60 | /// </param> |
@@ -66,7 +66,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
66 | _term = YP.makeCopy(new Functor2(Atom.a("error"), ErrorTerm, Message), new Variable.CopyStore()); | 66 | _term = YP.makeCopy(new Functor2(Atom.a("error"), ErrorTerm, Message), new Variable.CopyStore()); |
67 | } | 67 | } |
68 | 68 | ||
69 | public class TypeErrorInfo | 69 | public class TypeErrorInfo |
70 | { | 70 | { |
71 | public readonly Atom _Type; | 71 | public readonly Atom _Type; |
72 | public readonly object _Culprit; | 72 | public readonly object _Culprit; |
@@ -116,14 +116,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
116 | /// <returns></returns> | 116 | /// <returns></returns> |
117 | public object getProcedureName() | 117 | public object getProcedureName() |
118 | { | 118 | { |
119 | if (!(_Type._name == "procedure" && | 119 | if (!(_Type._name == "procedure" && |
120 | _Culprit is Functor2 && ((Functor2)_Culprit)._name == Atom.SLASH)) | 120 | _Culprit is Functor2 && ((Functor2)_Culprit)._name == Atom.SLASH)) |
121 | return null; | 121 | return null; |
122 | return ((Functor2)_Culprit)._arg1; | 122 | return ((Functor2)_Culprit)._arg1; |
123 | } | 123 | } |
124 | 124 | ||
125 | /// <summary> | 125 | /// <summary> |
126 | /// If _Type is procedure and _Culprit is name/arity and arity is an integer, return the arity. | 126 | /// If _Type is procedure and _Culprit is name/arity and arity is an integer, return the arity. |
127 | /// Otherwise return -1. | 127 | /// Otherwise return -1. |
128 | /// </summary> | 128 | /// </summary> |
129 | /// <returns></returns> | 129 | /// <returns></returns> |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs index b69f9c4..694e733 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -147,7 +147,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
147 | /// <summary> | 147 | /// <summary> |
148 | /// Convert term to an int. | 148 | /// Convert term to an int. |
149 | /// If term is a single-element List, use its first element | 149 | /// If term is a single-element List, use its first element |
150 | /// (to handle the char types like "a"). | 150 | /// (to handle the char types like "a"). |
151 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only | 151 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only |
152 | /// called from arithmetic functions). | 152 | /// called from arithmetic functions). |
153 | /// </summary> | 153 | /// </summary> |
@@ -172,8 +172,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
172 | { | 172 | { |
173 | throw new PrologException | 173 | throw new PrologException |
174 | (new Functor2 | 174 | (new Functor2 |
175 | ("type_error", Atom.a("evaluable"), | 175 | ("type_error", Atom.a("evaluable"), |
176 | new Functor2(Atom.SLASH, getFunctorName(term), getFunctorArgs(term).Length)), | 176 | new Functor2(Atom.SLASH, getFunctorName(term), getFunctorArgs(term).Length)), |
177 | "Term must be an integer"); | 177 | "Term must be an integer"); |
178 | } | 178 | } |
179 | } | 179 | } |
@@ -181,7 +181,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
181 | /// <summary> | 181 | /// <summary> |
182 | /// Convert term to a double. This may convert an int to a double, etc. | 182 | /// Convert term to a double. This may convert an int to a double, etc. |
183 | /// If term is a single-element List, use its first element | 183 | /// If term is a single-element List, use its first element |
184 | /// (to handle the char types like "a"). | 184 | /// (to handle the char types like "a"). |
185 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only | 185 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only |
186 | /// called from arithmetic functions). | 186 | /// called from arithmetic functions). |
187 | /// </summary> | 187 | /// </summary> |
@@ -195,7 +195,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
195 | // Assume it is a char type like "a". | 195 | // Assume it is a char type like "a". |
196 | term = YP.getValue(((Functor2)term)._arg1); | 196 | term = YP.getValue(((Functor2)term)._arg1); |
197 | if (term is Variable) | 197 | if (term is Variable) |
198 | throw new PrologException(Atom.a("instantiation_error"), | 198 | throw new PrologException(Atom.a("instantiation_error"), |
199 | "Expected a number but the argument is an unbound variable"); | 199 | "Expected a number but the argument is an unbound variable"); |
200 | 200 | ||
201 | try | 201 | try |
@@ -776,8 +776,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
776 | if (term1TypeCode == -2) | 776 | if (term1TypeCode == -2) |
777 | { | 777 | { |
778 | // Variable. | 778 | // Variable. |
779 | // We always check for equality first because we want to be sure | 779 | // We always check for equality first because we want to be sure |
780 | // that less than returns false if the terms are equal, in | 780 | // that less than returns false if the terms are equal, in |
781 | // case that the less than check really behaves like less than or equal. | 781 | // case that the less than check really behaves like less than or equal. |
782 | if ((Variable)Term1 != (Variable)Term2) | 782 | if ((Variable)Term1 != (Variable)Term2) |
783 | // The hash code should be unique to a Variable object. | 783 | // The hash code should be unique to a Variable object. |
@@ -820,8 +820,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
820 | } | 820 | } |
821 | 821 | ||
822 | /// <summary> | 822 | /// <summary> |
823 | /// Type code is -2 if term is a Variable, 0 if it is an Atom, | 823 | /// Type code is -2 if term is a Variable, 0 if it is an Atom, |
824 | /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, | 824 | /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, |
825 | /// 4 if it is Functor. | 825 | /// 4 if it is Functor. |
826 | /// Otherwise, type code is -1. | 826 | /// Otherwise, type code is -1. |
827 | /// This does not call YP.getValue(term). | 827 | /// This does not call YP.getValue(term). |
@@ -1167,7 +1167,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1167 | "Arg 2 List has an element which is an unbound variable"); | 1167 | "Arg 2 List has an element which is an unbound variable"); |
1168 | if (!(listAtom is Atom && ((Atom)listAtom)._name.Length == 1)) | 1168 | if (!(listAtom is Atom && ((Atom)listAtom)._name.Length == 1)) |
1169 | throw new PrologException | 1169 | throw new PrologException |
1170 | (new Functor2("type_error", Atom.a("character"), listAtom), | 1170 | (new Functor2("type_error", Atom.a("character"), listAtom), |
1171 | "Arg 2 List has an element which is not a one character atom"); | 1171 | "Arg 2 List has an element which is not a one character atom"); |
1172 | charArray[i] = ((Atom)listAtom)._name[0]; | 1172 | charArray[i] = ((Atom)listAtom)._name[0]; |
1173 | } | 1173 | } |
@@ -1209,7 +1209,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1209 | int codeInt; | 1209 | int codeInt; |
1210 | if (!getInt(codeArray[i], out codeInt) || codeInt < 0) | 1210 | if (!getInt(codeArray[i], out codeInt) || codeInt < 0) |
1211 | throw new PrologException | 1211 | throw new PrologException |
1212 | (new Functor1("representation_error", Atom.a("character_code")), | 1212 | (new Functor1("representation_error", Atom.a("character_code")), |
1213 | "Element of Arg 2 List is not a character code"); | 1213 | "Element of Arg 2 List is not a character code"); |
1214 | charArray[i] = (char)codeInt; | 1214 | charArray[i] = (char)codeInt; |
1215 | } | 1215 | } |
@@ -1323,7 +1323,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1323 | { | 1323 | { |
1324 | if (!YP.number(Number)) | 1324 | if (!YP.number(Number)) |
1325 | throw new PrologException | 1325 | throw new PrologException |
1326 | (new Functor2("type_error", Atom.a("number"), Number), | 1326 | (new Functor2("type_error", Atom.a("number"), Number), |
1327 | "Arg 1 Number is not var or number"); | 1327 | "Arg 1 Number is not var or number"); |
1328 | // We just checked, so convertDouble shouldn't throw an exception. | 1328 | // We just checked, so convertDouble shouldn't throw an exception. |
1329 | numberString = YP.doubleToString(YP.convertDouble(Number)); | 1329 | numberString = YP.doubleToString(YP.convertDouble(Number)); |
@@ -1413,7 +1413,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1413 | { | 1413 | { |
1414 | if (!(Char is Atom) || ((Atom)Char)._name.Length != 1) | 1414 | if (!(Char is Atom) || ((Atom)Char)._name.Length != 1) |
1415 | throw new PrologException | 1415 | throw new PrologException |
1416 | (new Functor2("type_error", Atom.a("character"), Char), | 1416 | (new Functor2("type_error", Atom.a("character"), Char), |
1417 | "Arg 1 Char is not var or one-character atom"); | 1417 | "Arg 1 Char is not var or one-character atom"); |
1418 | 1418 | ||
1419 | if (Code is Variable) | 1419 | if (Code is Variable) |
@@ -1795,7 +1795,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1795 | IndexedAnswers indexedAnswers; | 1795 | IndexedAnswers indexedAnswers; |
1796 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) | 1796 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) |
1797 | { | 1797 | { |
1798 | // Create an IndexedAnswers as the only clause of the predicate. | 1798 | // Create an IndexedAnswers as the only clause of the predicate. |
1799 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); | 1799 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); |
1800 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); | 1800 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); |
1801 | } | 1801 | } |
@@ -1826,7 +1826,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1826 | IndexedAnswers indexedAnswers; | 1826 | IndexedAnswers indexedAnswers; |
1827 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) | 1827 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) |
1828 | { | 1828 | { |
1829 | // Create an IndexedAnswers as the only clause of the predicate. | 1829 | // Create an IndexedAnswers as the only clause of the predicate. |
1830 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); | 1830 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); |
1831 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); | 1831 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); |
1832 | } | 1832 | } |
@@ -1855,7 +1855,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1855 | { | 1855 | { |
1856 | List<IClause> clauses; | 1856 | List<IClause> clauses; |
1857 | if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) | 1857 | if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) |
1858 | return unknownPredicate(name, arguments.Length, | 1858 | return unknownPredicate(name, arguments.Length, |
1859 | "Undefined dynamic predicate: " + name + "/" + arguments.Length); | 1859 | "Undefined dynamic predicate: " + name + "/" + arguments.Length); |
1860 | 1860 | ||
1861 | if (clauses.Count == 1) | 1861 | if (clauses.Count == 1) |
@@ -1889,7 +1889,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1889 | } | 1889 | } |
1890 | 1890 | ||
1891 | /// <summary> | 1891 | /// <summary> |
1892 | /// If _prologFlags["unknown"] is fail then return fail(), else if | 1892 | /// If _prologFlags["unknown"] is fail then return fail(), else if |
1893 | /// _prologFlags["unknown"] is warning then write the message to YP.write and | 1893 | /// _prologFlags["unknown"] is warning then write the message to YP.write and |
1894 | /// return fail(), else throw a PrologException for existence_error. . | 1894 | /// return fail(), else throw a PrologException for existence_error. . |
1895 | /// </summary> | 1895 | /// </summary> |
@@ -1917,7 +1917,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1917 | } | 1917 | } |
1918 | 1918 | ||
1919 | /// <summary> | 1919 | /// <summary> |
1920 | /// This is deprecated and just calls matchDynamic. This matches all clauses, | 1920 | /// This is deprecated and just calls matchDynamic. This matches all clauses, |
1921 | /// not just the ones defined with assertFact. | 1921 | /// not just the ones defined with assertFact. |
1922 | /// </summary> | 1922 | /// </summary> |
1923 | /// <param name="name"></param> | 1923 | /// <param name="name"></param> |
@@ -2066,7 +2066,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2066 | /// dynamic predicate. | 2066 | /// dynamic predicate. |
2067 | /// </summary> | 2067 | /// </summary> |
2068 | /// <param name="NameSlashArity"></param> | 2068 | /// <param name="NameSlashArity"></param> |
2069 | /// <param name="declaringClass">if not null, used to resolve references to the default | 2069 | /// <param name="declaringClass">if not null, used to resolve references to the default |
2070 | /// module Atom.a("")</param> | 2070 | /// module Atom.a("")</param> |
2071 | /// <returns></returns> | 2071 | /// <returns></returns> |
2072 | public static IEnumerable<bool> current_predicate(object NameSlashArity, Type declaringClass) | 2072 | public static IEnumerable<bool> current_predicate(object NameSlashArity, Type declaringClass) |
@@ -2078,7 +2078,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2078 | Functor2 NameArityFunctor = NameSlashArity as Functor2; | 2078 | Functor2 NameArityFunctor = NameSlashArity as Functor2; |
2079 | if (!(NameArityFunctor != null && NameArityFunctor._name == Atom.SLASH)) | 2079 | if (!(NameArityFunctor != null && NameArityFunctor._name == Atom.SLASH)) |
2080 | throw new PrologException | 2080 | throw new PrologException |
2081 | (new Functor2("type_error", Atom.a("predicate_indicator"), NameSlashArity), | 2081 | (new Functor2("type_error", Atom.a("predicate_indicator"), NameSlashArity), |
2082 | "Must be a name/arity predicate indicator"); | 2082 | "Must be a name/arity predicate indicator"); |
2083 | object name = YP.getValue(NameArityFunctor._arg1); | 2083 | object name = YP.getValue(NameArityFunctor._arg1); |
2084 | object arity = YP.getValue(NameArityFunctor._arg2); | 2084 | object arity = YP.getValue(NameArityFunctor._arg2); |
@@ -2163,12 +2163,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2163 | } | 2163 | } |
2164 | 2164 | ||
2165 | /// <summary> | 2165 | /// <summary> |
2166 | /// If Goal is a simple predicate, call YP.getFunctorName(Goal) using arguments from | 2166 | /// If Goal is a simple predicate, call YP.getFunctorName(Goal) using arguments from |
2167 | /// YP.getFunctorArgs(Goal). If not found, this throws a PrologException for existence_error. | 2167 | /// YP.getFunctorArgs(Goal). If not found, this throws a PrologException for existence_error. |
2168 | /// Otherwise, compile the goal as a single clause predicate and invoke it. | 2168 | /// Otherwise, compile the goal as a single clause predicate and invoke it. |
2169 | /// </summary> | 2169 | /// </summary> |
2170 | /// <param name="Goal"></param> | 2170 | /// <param name="Goal"></param> |
2171 | /// <param name="declaringClass">if not null, used to resolve references to the default | 2171 | /// <param name="declaringClass">if not null, used to resolve references to the default |
2172 | /// module Atom.a("")</param> | 2172 | /// module Atom.a("")</param> |
2173 | /// <returns></returns> | 2173 | /// <returns></returns> |
2174 | public static IEnumerable<bool> getIterator(object Goal, Type declaringClass) | 2174 | public static IEnumerable<bool> getIterator(object Goal, Type declaringClass) |
@@ -2259,7 +2259,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2259 | (new Functor2("type_error", Atom.a("atom"), Key), "Arg 1 Key is not an atom"); | 2259 | (new Functor2("type_error", Atom.a("atom"), Key), "Arg 1 Key is not an atom"); |
2260 | if (!_prologFlags.ContainsKey(((Atom)Key)._name)) | 2260 | if (!_prologFlags.ContainsKey(((Atom)Key)._name)) |
2261 | throw new PrologException | 2261 | throw new PrologException |
2262 | (new Functor2("domain_error", Atom.a("prolog_flag"), Key), | 2262 | (new Functor2("domain_error", Atom.a("prolog_flag"), Key), |
2263 | "Arg 1 Key is not a recognized flag"); | 2263 | "Arg 1 Key is not a recognized flag"); |
2264 | 2264 | ||
2265 | foreach (bool l1 in YP.unify(Value, _prologFlags[((Atom)Key)._name])) | 2265 | foreach (bool l1 in YP.unify(Value, _prologFlags[((Atom)Key)._name])) |
@@ -2343,7 +2343,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2343 | string results = ""; | 2343 | string results = ""; |
2344 | for (Match m = Regex.Match(inData,inPattern); m.Success; m=m.NextMatch()) | 2344 | for (Match m = Regex.Match(inData,inPattern); m.Success; m=m.NextMatch()) |
2345 | { | 2345 | { |
2346 | //Console.WriteLine( m ); | 2346 | //Console.WriteLine( m ); |
2347 | results += presep+ m + postsep; | 2347 | results += presep+ m + postsep; |
2348 | } | 2348 | } |
2349 | return results; | 2349 | return results; |
@@ -2662,7 +2662,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2662 | #pragma warning restore 0168 | 2662 | #pragma warning restore 0168 |
2663 | } | 2663 | } |
2664 | } | 2664 | } |
2665 | 2665 | ||
2666 | /// <summary> | 2666 | /// <summary> |
2667 | /// CodeListReader extends TextReader and overrides Read to read the next code from | 2667 | /// CodeListReader extends TextReader and overrides Read to read the next code from |
2668 | /// the CodeList which is a Prolog list of integer character codes. | 2668 | /// the CodeList which is a Prolog list of integer character codes. |
@@ -2683,7 +2683,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
2683 | /// <returns></returns> | 2683 | /// <returns></returns> |
2684 | public override int Read() | 2684 | public override int Read() |
2685 | { | 2685 | { |
2686 | Functor2 CodeListPair = _CodeList as Functor2; | 2686 | Functor2 CodeListPair = _CodeList as Functor2; |
2687 | int code; | 2687 | int code; |
2688 | if (!(CodeListPair != null && CodeListPair._name == Atom.DOT && | 2688 | if (!(CodeListPair != null && CodeListPair._name == Atom.DOT && |
2689 | getInt(CodeListPair._arg1, out code))) | 2689 | getInt(CodeListPair._arg1, out code))) |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 42d9bf8..c94b56a 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs | |||
@@ -39,13 +39,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
39 | public class ScriptManager : Common.ScriptEngineBase.ScriptManager | 39 | public class ScriptManager : Common.ScriptEngineBase.ScriptManager |
40 | { | 40 | { |
41 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 41 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
42 | 42 | ||
43 | public ScriptManager(Common.ScriptEngineBase.ScriptEngine scriptEngine) | 43 | public ScriptManager(Common.ScriptEngineBase.ScriptEngine scriptEngine) |
44 | : base(scriptEngine) | 44 | : base(scriptEngine) |
45 | { | 45 | { |
46 | base.m_scriptEngine = scriptEngine; | 46 | base.m_scriptEngine = scriptEngine; |
47 | } | 47 | } |
48 | private Compiler.LSL.Compiler LSLCompiler; | 48 | private Compiler.LSL.Compiler LSLCompiler; |
49 | 49 | ||
50 | public override void Initialize() | 50 | public override void Initialize() |
51 | { | 51 | { |
@@ -63,7 +63,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
63 | public override void _StartScript(uint localID, LLUUID itemID, string Script, int startParam, bool postOnRez) | 63 | public override void _StartScript(uint localID, LLUUID itemID, string Script, int startParam, bool postOnRez) |
64 | { | 64 | { |
65 | m_log.DebugFormat( | 65 | m_log.DebugFormat( |
66 | "[{0}]: ScriptManager StartScript: localID: {1}, itemID: {2}", | 66 | "[{0}]: ScriptManager StartScript: localID: {1}, itemID: {2}", |
67 | m_scriptEngine.ScriptEngineName, localID, itemID); | 67 | m_scriptEngine.ScriptEngineName, localID, itemID); |
68 | 68 | ||
69 | //IScriptHost root = host.GetRoot(); | 69 | //IScriptHost root = host.GetRoot(); |
@@ -73,13 +73,13 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
73 | string CompiledScriptFile = String.Empty; | 73 | string CompiledScriptFile = String.Empty; |
74 | 74 | ||
75 | SceneObjectPart m_host = World.GetSceneObjectPart(localID); | 75 | SceneObjectPart m_host = World.GetSceneObjectPart(localID); |
76 | 76 | ||
77 | if (null == m_host) | 77 | if (null == m_host) |
78 | { | 78 | { |
79 | m_log.ErrorFormat( | 79 | m_log.ErrorFormat( |
80 | "[{0}]: Could not find scene object part corresponding to localID {1} to start script", | 80 | "[{0}]: Could not find scene object part corresponding to localID {1} to start script", |
81 | m_scriptEngine.ScriptEngineName, localID); | 81 | m_scriptEngine.ScriptEngineName, localID); |
82 | 82 | ||
83 | return; | 83 | return; |
84 | } | 84 | } |
85 | 85 | ||
diff --git a/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs b/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs index 6924dd2..21888fa 100644 --- a/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/RemoteServer/EventManager.cs | |||
@@ -53,12 +53,12 @@ namespace OpenSim.Region.ScriptEngine.RemoteServer | |||
53 | public EventManager(ScriptEngine _ScriptEngine) | 53 | public EventManager(ScriptEngine _ScriptEngine) |
54 | { | 54 | { |
55 | myScriptEngine = _ScriptEngine; | 55 | myScriptEngine = _ScriptEngine; |
56 | 56 | ||
57 | m_TCPClient = new TCPClient(); | 57 | m_TCPClient = new TCPClient(); |
58 | RPC = new TRPC_Remote(m_TCPClient); | 58 | RPC = new TRPC_Remote(m_TCPClient); |
59 | RPC.ReceiveCommand += new TRPC_Remote.ReceiveCommandDelegate(RPC_ReceiveCommand); | 59 | RPC.ReceiveCommand += new TRPC_Remote.ReceiveCommandDelegate(RPC_ReceiveCommand); |
60 | myScriptServerID = m_TCPClient.ConnectAndReturnID(remoteHost, remotePort); | 60 | myScriptServerID = m_TCPClient.ConnectAndReturnID(remoteHost, remotePort); |
61 | 61 | ||
62 | myScriptEngine.Log.Info("[RemoteEngine]: Hooking up to server events"); | 62 | myScriptEngine.Log.Info("[RemoteEngine]: Hooking up to server events"); |
63 | //myScriptEngine.World.EventManager.OnObjectGrab += touch_start; | 63 | //myScriptEngine.World.EventManager.OnObjectGrab += touch_start; |
64 | myScriptEngine.World.EventManager.OnRezScript += OnRezScript; | 64 | myScriptEngine.World.EventManager.OnRezScript += OnRezScript; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 9604828..4de207a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -348,23 +348,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
348 | a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting | 348 | a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting |
349 | vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis. | 349 | vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis. |
350 | */ | 350 | */ |
351 | 351 | ||
352 | /* How we arrived at this llEuler2Rot | 352 | /* How we arrived at this llEuler2Rot |
353 | * | 353 | * |
354 | * Experiment in SL to determine conventions: | 354 | * Experiment in SL to determine conventions: |
355 | * llEuler2Rot(<PI,0,0>)=<1,0,0,0> | 355 | * llEuler2Rot(<PI,0,0>)=<1,0,0,0> |
356 | * llEuler2Rot(<0,PI,0>)=<0,1,0,0> | 356 | * llEuler2Rot(<0,PI,0>)=<0,1,0,0> |
357 | * llEuler2Rot(<0,0,PI>)=<0,0,1,0> | 357 | * llEuler2Rot(<0,0,PI>)=<0,0,1,0> |
358 | * | 358 | * |
359 | * Important facts about Quaternions | 359 | * Important facts about Quaternions |
360 | * - multiplication is non-commutative (a*b != b*a) | 360 | * - multiplication is non-commutative (a*b != b*a) |
361 | * - http://en.wikipedia.org/wiki/Quaternion#Basis_multiplication | 361 | * - http://en.wikipedia.org/wiki/Quaternion#Basis_multiplication |
362 | * | 362 | * |
363 | * Above SL experiment gives (c1,c2,c3,s1,s2,s3 as defined in our llEuler2Rot): | 363 | * Above SL experiment gives (c1,c2,c3,s1,s2,s3 as defined in our llEuler2Rot): |
364 | * Qx = c1+i*s1 | 364 | * Qx = c1+i*s1 |
365 | * Qy = c2+j*s2; | 365 | * Qy = c2+j*s2; |
366 | * Qz = c3+k*s3; | 366 | * Qz = c3+k*s3; |
367 | * | 367 | * |
368 | * Rotations applied in order (from above) Z, Y, X | 368 | * Rotations applied in order (from above) Z, Y, X |
369 | * Q = (Qz * Qy) * Qx | 369 | * Q = (Qz * Qy) * Qx |
370 | * ((c1+i*s1)*(c2+j*s2))*(c3+k*s3) | 370 | * ((c1+i*s1)*(c2+j*s2))*(c3+k*s3) |
@@ -376,23 +376,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
376 | * y=j*(c1*s2*c3-s1*c2*s3) | 376 | * y=j*(c1*s2*c3-s1*c2*s3) |
377 | * z=k*(s1*s2*c3+c1*c2*s3) | 377 | * z=k*(s1*s2*c3+c1*c2*s3) |
378 | * s= c1*c2*c3-s1*s2*s3 | 378 | * s= c1*c2*c3-s1*s2*s3 |
379 | * | 379 | * |
380 | * This implementation agrees with the functions found here: | 380 | * This implementation agrees with the functions found here: |
381 | * http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions | 381 | * http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions |
382 | * And with the results in SL. | 382 | * And with the results in SL. |
383 | * | 383 | * |
384 | * It's also possible to calculate llEuler2Rot by direct multiplication of | 384 | * It's also possible to calculate llEuler2Rot by direct multiplication of |
385 | * the Qz, Qy, and Qx vectors (as above - and done in the "accurate" function | 385 | * the Qz, Qy, and Qx vectors (as above - and done in the "accurate" function |
386 | * from the wiki). | 386 | * from the wiki). |
387 | * Apparently in some cases this is better from a numerical precision perspective? | 387 | * Apparently in some cases this is better from a numerical precision perspective? |
388 | */ | 388 | */ |
389 | 389 | ||
390 | public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) | 390 | public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) |
391 | { | 391 | { |
392 | m_host.AddScriptLPS(1); | 392 | m_host.AddScriptLPS(1); |
393 | 393 | ||
394 | double x,y,z,s; | 394 | double x,y,z,s; |
395 | 395 | ||
396 | double c1 = Math.Cos(v.x/2.0); | 396 | double c1 = Math.Cos(v.x/2.0); |
397 | double c2 = Math.Cos(v.y/2.0); | 397 | double c2 = Math.Cos(v.y/2.0); |
398 | double c3 = Math.Cos(v.z/2.0); | 398 | double c3 = Math.Cos(v.z/2.0); |
@@ -404,7 +404,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
404 | y = c1*s2*c3-s1*c2*s3; | 404 | y = c1*s2*c3-s1*c2*s3; |
405 | z = s1*s2*c3+c1*c2*s3; | 405 | z = s1*s2*c3+c1*c2*s3; |
406 | s = c1*c2*c3-s1*s2*s3; | 406 | s = c1*c2*c3-s1*s2*s3; |
407 | 407 | ||
408 | return new LSL_Types.Quaternion(x, y, z, s); | 408 | return new LSL_Types.Quaternion(x, y, z, s); |
409 | } | 409 | } |
410 | 410 | ||
@@ -414,7 +414,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
414 | double x, y, z, s; | 414 | double x, y, z, s; |
415 | int f = 0; | 415 | int f = 0; |
416 | // Important Note: q1=<x,y,z,s> is equal to q2=<-x,-y,-z,-s> | 416 | // Important Note: q1=<x,y,z,s> is equal to q2=<-x,-y,-z,-s> |
417 | // Computing quaternion x,y,z,s values | 417 | // Computing quaternion x,y,z,s values |
418 | x = ((fwd.x - left.y - up.z + 1) / 4); | 418 | x = ((fwd.x - left.y - up.z + 1) / 4); |
419 | x *= x; | 419 | x *= x; |
420 | x = Math.Sqrt(Math.Sqrt(x)); | 420 | x = Math.Sqrt(Math.Sqrt(x)); |
@@ -428,7 +428,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
428 | s *= s; | 428 | s *= s; |
429 | s = Math.Sqrt(Math.Sqrt(s)); | 429 | s = Math.Sqrt(Math.Sqrt(s)); |
430 | 430 | ||
431 | // Set f for signs detection | 431 | // Set f for signs detection |
432 | if (fwd.y + left.x >= 0) { f += 1; } | 432 | if (fwd.y + left.x >= 0) { f += 1; } |
433 | if (fwd.z + up.x >= 0) { f += 2; } | 433 | if (fwd.z + up.x >= 0) { f += 2; } |
434 | if (left.z - up.y >= 0) { f += 4; } | 434 | if (left.z - up.y >= 0) { f += 4; } |
@@ -1013,9 +1013,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1013 | return; | 1013 | return; |
1014 | } | 1014 | } |
1015 | } | 1015 | } |
1016 | 1016 | ||
1017 | public void SetGlow(SceneObjectPart part, int face, float glow) | 1017 | public void SetGlow(SceneObjectPart part, int face, float glow) |
1018 | { | 1018 | { |
1019 | LLObject.TextureEntry tex = part.Shape.Textures; | 1019 | LLObject.TextureEntry tex = part.Shape.Textures; |
1020 | if (face > -1) | 1020 | if (face > -1) |
1021 | { | 1021 | { |
@@ -1023,7 +1023,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1023 | tex.FaceTextures[face].Glow = glow; | 1023 | tex.FaceTextures[face].Glow = glow; |
1024 | part.UpdateTexture(tex); | 1024 | part.UpdateTexture(tex); |
1025 | return; | 1025 | return; |
1026 | } | 1026 | } |
1027 | else if (face == -1) | 1027 | else if (face == -1) |
1028 | { | 1028 | { |
1029 | for (uint i = 0; i < 32; i++) | 1029 | for (uint i = 0; i < 32; i++) |
@@ -1038,15 +1038,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1038 | return; | 1038 | return; |
1039 | } | 1039 | } |
1040 | } | 1040 | } |
1041 | 1041 | ||
1042 | public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump) | 1042 | public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump) |
1043 | { | 1043 | { |
1044 | 1044 | ||
1045 | Shininess sval = new Shininess(); | 1045 | Shininess sval = new Shininess(); |
1046 | 1046 | ||
1047 | switch (shiny) | 1047 | switch (shiny) |
1048 | { | 1048 | { |
1049 | case 0: | 1049 | case 0: |
1050 | sval = Shininess.None; | 1050 | sval = Shininess.None; |
1051 | break; | 1051 | break; |
1052 | case 1: | 1052 | case 1: |
@@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1062 | sval = Shininess.None; | 1062 | sval = Shininess.None; |
1063 | break; | 1063 | break; |
1064 | } | 1064 | } |
1065 | 1065 | ||
1066 | LLObject.TextureEntry tex = part.Shape.Textures; | 1066 | LLObject.TextureEntry tex = part.Shape.Textures; |
1067 | if (face > -1) | 1067 | if (face > -1) |
1068 | { | 1068 | { |
@@ -1070,8 +1070,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1070 | tex.FaceTextures[face].Shiny = sval; | 1070 | tex.FaceTextures[face].Shiny = sval; |
1071 | tex.FaceTextures[face].Bump = bump; | 1071 | tex.FaceTextures[face].Bump = bump; |
1072 | part.UpdateTexture(tex); | 1072 | part.UpdateTexture(tex); |
1073 | return; | 1073 | return; |
1074 | } | 1074 | } |
1075 | else if (face == -1) | 1075 | else if (face == -1) |
1076 | { | 1076 | { |
1077 | for (uint i = 0; i < 32; i++) | 1077 | for (uint i = 0; i < 32; i++) |
@@ -1088,8 +1088,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1088 | return; | 1088 | return; |
1089 | } | 1089 | } |
1090 | } | 1090 | } |
1091 | 1091 | ||
1092 | public void SetFullBright(SceneObjectPart part, int face, bool bright) | 1092 | public void SetFullBright(SceneObjectPart part, int face, bool bright) |
1093 | { | 1093 | { |
1094 | LLObject.TextureEntry tex = part.Shape.Textures; | 1094 | LLObject.TextureEntry tex = part.Shape.Textures; |
1095 | if (face > -1) | 1095 | if (face > -1) |
@@ -1106,14 +1106,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1106 | if (tex.FaceTextures[i] != null) | 1106 | if (tex.FaceTextures[i] != null) |
1107 | { | 1107 | { |
1108 | tex.FaceTextures[i].Fullbright = bright; | 1108 | tex.FaceTextures[i].Fullbright = bright; |
1109 | } | 1109 | } |
1110 | } | 1110 | } |
1111 | tex.DefaultTexture.Fullbright = bright; | 1111 | tex.DefaultTexture.Fullbright = bright; |
1112 | part.UpdateTexture(tex); | 1112 | part.UpdateTexture(tex); |
1113 | return; | 1113 | return; |
1114 | } | 1114 | } |
1115 | } | 1115 | } |
1116 | 1116 | ||
1117 | public double llGetAlpha(int face) | 1117 | public double llGetAlpha(int face) |
1118 | { | 1118 | { |
1119 | m_host.AddScriptLPS(1); | 1119 | m_host.AddScriptLPS(1); |
@@ -1169,7 +1169,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1169 | 1169 | ||
1170 | /// <summary> | 1170 | /// <summary> |
1171 | /// Set flexi parameters of a part. | 1171 | /// Set flexi parameters of a part. |
1172 | /// | 1172 | /// |
1173 | /// FIXME: Much of this code should probably be within the part itself. | 1173 | /// FIXME: Much of this code should probably be within the part itself. |
1174 | /// </summary> | 1174 | /// </summary> |
1175 | /// <param name="part"></param> | 1175 | /// <param name="part"></param> |
@@ -1179,7 +1179,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1179 | /// <param name="friction"></param> | 1179 | /// <param name="friction"></param> |
1180 | /// <param name="wind"></param> | 1180 | /// <param name="wind"></param> |
1181 | /// <param name="tension"></param> | 1181 | /// <param name="tension"></param> |
1182 | /// <param name="Force"></param> | 1182 | /// <param name="Force"></param> |
1183 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, | 1183 | private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, |
1184 | float wind, float tension, LSL_Types.Vector3 Force) | 1184 | float wind, float tension, LSL_Types.Vector3 Force) |
1185 | { | 1185 | { |
@@ -1230,7 +1230,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1230 | 1230 | ||
1231 | /// <summary> | 1231 | /// <summary> |
1232 | /// Set a light point on a part | 1232 | /// Set a light point on a part |
1233 | /// | 1233 | /// |
1234 | /// FIXME: Much of this code should probably be in SceneObjectGroup | 1234 | /// FIXME: Much of this code should probably be in SceneObjectGroup |
1235 | /// </summary> | 1235 | /// </summary> |
1236 | /// <param name="part"></param> | 1236 | /// <param name="part"></param> |
@@ -1238,7 +1238,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1238 | /// <param name="color"></param> | 1238 | /// <param name="color"></param> |
1239 | /// <param name="intensity"></param> | 1239 | /// <param name="intensity"></param> |
1240 | /// <param name="radius"></param> | 1240 | /// <param name="radius"></param> |
1241 | /// <param name="falloff"></param> | 1241 | /// <param name="falloff"></param> |
1242 | private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) | 1242 | private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) |
1243 | { | 1243 | { |
1244 | if (part == null) | 1244 | if (part == null) |
@@ -2880,13 +2880,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2880 | bool found = false; | 2880 | bool found = false; |
2881 | LLUUID destId = LLUUID.Zero; | 2881 | LLUUID destId = LLUUID.Zero; |
2882 | LLUUID objId = LLUUID.Zero; | 2882 | LLUUID objId = LLUUID.Zero; |
2883 | 2883 | ||
2884 | if (!LLUUID.TryParse(destination, out destId)) | 2884 | if (!LLUUID.TryParse(destination, out destId)) |
2885 | { | 2885 | { |
2886 | llSay(0, "Could not parse key " + destination); | 2886 | llSay(0, "Could not parse key " + destination); |
2887 | return; | 2887 | return; |
2888 | } | 2888 | } |
2889 | 2889 | ||
2890 | // move the first object found with this inventory name | 2890 | // move the first object found with this inventory name |
2891 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 2891 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
2892 | { | 2892 | { |
@@ -4451,7 +4451,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4451 | private Primitive.ParticleSystem getNewParticleSystemWithSLDefaultValues() | 4451 | private Primitive.ParticleSystem getNewParticleSystemWithSLDefaultValues() |
4452 | { | 4452 | { |
4453 | Primitive.ParticleSystem ps = new Primitive.ParticleSystem(); | 4453 | Primitive.ParticleSystem ps = new Primitive.ParticleSystem(); |
4454 | 4454 | ||
4455 | // TODO find out about the other defaults and add them here | 4455 | // TODO find out about the other defaults and add them here |
4456 | ps.PartStartColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); | 4456 | ps.PartStartColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); |
4457 | ps.PartEndColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); | 4457 | ps.PartEndColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); |
@@ -4465,7 +4465,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4465 | ps.PartMaxAge = 10.0f; | 4465 | ps.PartMaxAge = 10.0f; |
4466 | return ps; | 4466 | return ps; |
4467 | } | 4467 | } |
4468 | 4468 | ||
4469 | public void llParticleSystem(LSL_Types.list rules) | 4469 | public void llParticleSystem(LSL_Types.list rules) |
4470 | { | 4470 | { |
4471 | m_host.AddScriptLPS(1); | 4471 | m_host.AddScriptLPS(1); |
@@ -4660,7 +4660,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4660 | itemList.Add(itemID); | 4660 | itemList.Add(itemID); |
4661 | } | 4661 | } |
4662 | } | 4662 | } |
4663 | 4663 | ||
4664 | if (itemList.Count == 0) | 4664 | if (itemList.Count == 0) |
4665 | return; | 4665 | return; |
4666 | 4666 | ||
@@ -4936,11 +4936,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4936 | m_host.AddScriptLPS(1); | 4936 | m_host.AddScriptLPS(1); |
4937 | return Util.Md5Hash(src + ":" + nonce.ToString()); | 4937 | return Util.Md5Hash(src + ":" + nonce.ToString()); |
4938 | } | 4938 | } |
4939 | 4939 | ||
4940 | private ObjectShapePacket.ObjectDataBlock SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) | 4940 | private ObjectShapePacket.ObjectDataBlock SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) |
4941 | { | 4941 | { |
4942 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); | 4942 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); |
4943 | 4943 | ||
4944 | if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT && | 4944 | if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT && |
4945 | holeshape != (int)ScriptBaseClass.PRIM_HOLE_CIRCLE && | 4945 | holeshape != (int)ScriptBaseClass.PRIM_HOLE_CIRCLE && |
4946 | holeshape != (int)ScriptBaseClass.PRIM_HOLE_SQUARE && | 4946 | holeshape != (int)ScriptBaseClass.PRIM_HOLE_SQUARE && |
@@ -4998,23 +4998,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
4998 | } | 4998 | } |
4999 | shapeBlock.PathTwistBegin = (sbyte)(200 * twist.x); | 4999 | shapeBlock.PathTwistBegin = (sbyte)(200 * twist.x); |
5000 | shapeBlock.PathTwist = (sbyte)(200 * twist.y); | 5000 | shapeBlock.PathTwist = (sbyte)(200 * twist.y); |
5001 | 5001 | ||
5002 | shapeBlock.ObjectLocalID = m_host.LocalId; | 5002 | shapeBlock.ObjectLocalID = m_host.LocalId; |
5003 | 5003 | ||
5004 | // retain pathcurve | 5004 | // retain pathcurve |
5005 | shapeBlock.PathCurve = m_host.Shape.PathCurve; | 5005 | shapeBlock.PathCurve = m_host.Shape.PathCurve; |
5006 | 5006 | ||
5007 | return shapeBlock; | 5007 | return shapeBlock; |
5008 | } | 5008 | } |
5009 | 5009 | ||
5010 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) | 5010 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) |
5011 | { | 5011 | { |
5012 | ObjectShapePacket.ObjectDataBlock shapeBlock; | 5012 | ObjectShapePacket.ObjectDataBlock shapeBlock; |
5013 | 5013 | ||
5014 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); | 5014 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); |
5015 | 5015 | ||
5016 | shapeBlock.ProfileCurve += fudge; | 5016 | shapeBlock.ProfileCurve += fudge; |
5017 | 5017 | ||
5018 | if (taper_b.x < 0f) | 5018 | if (taper_b.x < 0f) |
5019 | { | 5019 | { |
5020 | taper_b.x = 0f; | 5020 | taper_b.x = 0f; |
@@ -5051,25 +5051,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5051 | } | 5051 | } |
5052 | shapeBlock.PathShearX = (byte)(100 * topshear.x); | 5052 | shapeBlock.PathShearX = (byte)(100 * topshear.x); |
5053 | shapeBlock.PathShearY = (byte)(100 * topshear.y); | 5053 | shapeBlock.PathShearY = (byte)(100 * topshear.y); |
5054 | 5054 | ||
5055 | m_host.UpdateShape(shapeBlock); | 5055 | m_host.UpdateShape(shapeBlock); |
5056 | } | 5056 | } |
5057 | 5057 | ||
5058 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) | 5058 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) |
5059 | { | 5059 | { |
5060 | ObjectShapePacket.ObjectDataBlock shapeBlock; | 5060 | ObjectShapePacket.ObjectDataBlock shapeBlock; |
5061 | 5061 | ||
5062 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); | 5062 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); |
5063 | 5063 | ||
5064 | // profile/path swapped for a sphere | 5064 | // profile/path swapped for a sphere |
5065 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; | 5065 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; |
5066 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; | 5066 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; |
5067 | 5067 | ||
5068 | shapeBlock.ProfileCurve += fudge; | 5068 | shapeBlock.ProfileCurve += fudge; |
5069 | 5069 | ||
5070 | shapeBlock.PathScaleX = 100; | 5070 | shapeBlock.PathScaleX = 100; |
5071 | shapeBlock.PathScaleY = 100; | 5071 | shapeBlock.PathScaleY = 100; |
5072 | 5072 | ||
5073 | if (dimple.x < 0f) | 5073 | if (dimple.x < 0f) |
5074 | { | 5074 | { |
5075 | dimple.x = 0f; | 5075 | dimple.x = 0f; |
@@ -5092,22 +5092,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5092 | } | 5092 | } |
5093 | shapeBlock.ProfileBegin = (ushort)(50000 * dimple.x); | 5093 | shapeBlock.ProfileBegin = (ushort)(50000 * dimple.x); |
5094 | shapeBlock.ProfileEnd = (ushort)(50000 * (1 - dimple.y)); | 5094 | shapeBlock.ProfileEnd = (ushort)(50000 * (1 - dimple.y)); |
5095 | 5095 | ||
5096 | m_host.UpdateShape(shapeBlock); | 5096 | m_host.UpdateShape(shapeBlock); |
5097 | } | 5097 | } |
5098 | 5098 | ||
5099 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) | 5099 | private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) |
5100 | { | 5100 | { |
5101 | ObjectShapePacket.ObjectDataBlock shapeBlock; | 5101 | ObjectShapePacket.ObjectDataBlock shapeBlock; |
5102 | 5102 | ||
5103 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); | 5103 | shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); |
5104 | 5104 | ||
5105 | shapeBlock.ProfileCurve += fudge; | 5105 | shapeBlock.ProfileCurve += fudge; |
5106 | 5106 | ||
5107 | // profile/path swapped for a torrus, tube, ring | 5107 | // profile/path swapped for a torrus, tube, ring |
5108 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; | 5108 | shapeBlock.PathBegin = shapeBlock.ProfileBegin; |
5109 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; | 5109 | shapeBlock.PathEnd = shapeBlock.ProfileEnd; |
5110 | 5110 | ||
5111 | if (holesize.x < 0.05f) | 5111 | if (holesize.x < 0.05f) |
5112 | { | 5112 | { |
5113 | holesize.x = 0.05f; | 5113 | holesize.x = 0.05f; |
@@ -5212,15 +5212,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5212 | skew = 0.95f; | 5212 | skew = 0.95f; |
5213 | } | 5213 | } |
5214 | shapeBlock.PathSkew = (sbyte)(100 * skew); | 5214 | shapeBlock.PathSkew = (sbyte)(100 * skew); |
5215 | 5215 | ||
5216 | m_host.UpdateShape(shapeBlock); | 5216 | m_host.UpdateShape(shapeBlock); |
5217 | } | 5217 | } |
5218 | 5218 | ||
5219 | private void SetPrimitiveShapeParams(string map, int type) | 5219 | private void SetPrimitiveShapeParams(string map, int type) |
5220 | { | 5220 | { |
5221 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); | 5221 | ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); |
5222 | LLUUID sculptId; | 5222 | LLUUID sculptId; |
5223 | 5223 | ||
5224 | if (!LLUUID.TryParse(map, out sculptId)) | 5224 | if (!LLUUID.TryParse(map, out sculptId)) |
5225 | { | 5225 | { |
5226 | llSay(0, "Could not parse key " + map); | 5226 | llSay(0, "Could not parse key " + map); |
@@ -5230,7 +5230,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5230 | shapeBlock.ObjectLocalID = m_host.LocalId; | 5230 | shapeBlock.ObjectLocalID = m_host.LocalId; |
5231 | shapeBlock.PathScaleX = 100; | 5231 | shapeBlock.PathScaleX = 100; |
5232 | shapeBlock.PathScaleY = 150; | 5232 | shapeBlock.PathScaleY = 150; |
5233 | 5233 | ||
5234 | if (type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_CYLINDER && | 5234 | if (type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_CYLINDER && |
5235 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_PLANE && | 5235 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_PLANE && |
5236 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE && | 5236 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE && |
@@ -5239,7 +5239,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5239 | // default | 5239 | // default |
5240 | type = (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE; | 5240 | type = (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE; |
5241 | } | 5241 | } |
5242 | 5242 | ||
5243 | // retain pathcurve | 5243 | // retain pathcurve |
5244 | shapeBlock.PathCurve = m_host.Shape.PathCurve; | 5244 | shapeBlock.PathCurve = m_host.Shape.PathCurve; |
5245 | 5245 | ||
@@ -5256,7 +5256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5256 | public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) | 5256 | public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) |
5257 | { | 5257 | { |
5258 | m_host.AddScriptLPS(1); | 5258 | m_host.AddScriptLPS(1); |
5259 | 5259 | ||
5260 | if (m_host.ParentGroup == null) | 5260 | if (m_host.ParentGroup == null) |
5261 | return; | 5261 | return; |
5262 | 5262 | ||
@@ -5302,13 +5302,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5302 | SetRot(part, q); | 5302 | SetRot(part, q); |
5303 | 5303 | ||
5304 | break; | 5304 | break; |
5305 | 5305 | ||
5306 | case (int)ScriptBaseClass.PRIM_TYPE: | 5306 | case (int)ScriptBaseClass.PRIM_TYPE: |
5307 | if (remain < 3) | 5307 | if (remain < 3) |
5308 | return; | 5308 | return; |
5309 | 5309 | ||
5310 | code = Convert.ToInt32(rules.Data[idx++]); | 5310 | code = Convert.ToInt32(rules.Data[idx++]); |
5311 | 5311 | ||
5312 | remain = rules.Length - idx; | 5312 | remain = rules.Length - idx; |
5313 | float hollow; | 5313 | float hollow; |
5314 | LSL_Types.Vector3 twist; | 5314 | LSL_Types.Vector3 twist; |
@@ -5319,9 +5319,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5319 | float skew; | 5319 | float skew; |
5320 | LSL_Types.Vector3 holesize; | 5320 | LSL_Types.Vector3 holesize; |
5321 | LSL_Types.Vector3 profilecut; | 5321 | LSL_Types.Vector3 profilecut; |
5322 | 5322 | ||
5323 | switch (code) | 5323 | switch (code) |
5324 | { | 5324 | { |
5325 | case (int)ScriptBaseClass.PRIM_TYPE_BOX: | 5325 | case (int)ScriptBaseClass.PRIM_TYPE_BOX: |
5326 | if (remain < 6) | 5326 | if (remain < 6) |
5327 | return; | 5327 | return; |
@@ -5335,7 +5335,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5335 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; | 5335 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; |
5336 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 1); | 5336 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 1); |
5337 | break; | 5337 | break; |
5338 | 5338 | ||
5339 | case (int)ScriptBaseClass.PRIM_TYPE_CYLINDER: | 5339 | case (int)ScriptBaseClass.PRIM_TYPE_CYLINDER: |
5340 | if (remain < 6) | 5340 | if (remain < 6) |
5341 | return; | 5341 | return; |
@@ -5350,12 +5350,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5350 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; | 5350 | m_host.Shape.PathCurve = (byte) Extrusion.Straight; |
5351 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 0); | 5351 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 0); |
5352 | break; | 5352 | break; |
5353 | 5353 | ||
5354 | case (int)ScriptBaseClass.PRIM_TYPE_PRISM: | 5354 | case (int)ScriptBaseClass.PRIM_TYPE_PRISM: |
5355 | if (remain < 6) | 5355 | if (remain < 6) |
5356 | return; | 5356 | return; |
5357 | 5357 | ||
5358 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5358 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5359 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5359 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5360 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5360 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5361 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5361 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5377,12 +5377,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5377 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5377 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5378 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, 5); | 5378 | SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, 5); |
5379 | break; | 5379 | break; |
5380 | 5380 | ||
5381 | case (int)ScriptBaseClass.PRIM_TYPE_TORUS: | 5381 | case (int)ScriptBaseClass.PRIM_TYPE_TORUS: |
5382 | if (remain < 11) | 5382 | if (remain < 11) |
5383 | return; | 5383 | return; |
5384 | 5384 | ||
5385 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5385 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5386 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5386 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5387 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5387 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5388 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5388 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5396,12 +5396,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5396 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5396 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5397 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0); | 5397 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0); |
5398 | break; | 5398 | break; |
5399 | 5399 | ||
5400 | case (int)ScriptBaseClass.PRIM_TYPE_TUBE: | 5400 | case (int)ScriptBaseClass.PRIM_TYPE_TUBE: |
5401 | if (remain < 11) | 5401 | if (remain < 11) |
5402 | return; | 5402 | return; |
5403 | 5403 | ||
5404 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5404 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5405 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5405 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5406 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5406 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5407 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5407 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5415,12 +5415,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5415 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5415 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5416 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1); | 5416 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1); |
5417 | break; | 5417 | break; |
5418 | 5418 | ||
5419 | case (int)ScriptBaseClass.PRIM_TYPE_RING: | 5419 | case (int)ScriptBaseClass.PRIM_TYPE_RING: |
5420 | if (remain < 11) | 5420 | if (remain < 11) |
5421 | return; | 5421 | return; |
5422 | 5422 | ||
5423 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape | 5423 | face = Convert.ToInt32(rules.Data[idx++]); // holeshape |
5424 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut | 5424 | v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut |
5425 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); | 5425 | hollow = (float)Convert.ToDouble(rules.Data[idx++]); |
5426 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); | 5426 | twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); |
@@ -5434,7 +5434,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5434 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; | 5434 | m_host.Shape.PathCurve = (byte) Extrusion.Curve1; |
5435 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3); | 5435 | SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3); |
5436 | break; | 5436 | break; |
5437 | 5437 | ||
5438 | case (int)ScriptBaseClass.PRIM_TYPE_SCULPT: | 5438 | case (int)ScriptBaseClass.PRIM_TYPE_SCULPT: |
5439 | if (remain < 2) | 5439 | if (remain < 2) |
5440 | return; | 5440 | return; |
@@ -5445,7 +5445,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5445 | SetPrimitiveShapeParams(map, face); | 5445 | SetPrimitiveShapeParams(map, face); |
5446 | break; | 5446 | break; |
5447 | } | 5447 | } |
5448 | 5448 | ||
5449 | break; | 5449 | break; |
5450 | 5450 | ||
5451 | case (int)ScriptBaseClass.PRIM_TEXTURE: | 5451 | case (int)ScriptBaseClass.PRIM_TEXTURE: |
@@ -5509,31 +5509,31 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5509 | return; | 5509 | return; |
5510 | face = Convert.ToInt32(rules.Data[idx++]); | 5510 | face = Convert.ToInt32(rules.Data[idx++]); |
5511 | float glow = (float)Convert.ToDouble(rules.Data[idx++]); | 5511 | float glow = (float)Convert.ToDouble(rules.Data[idx++]); |
5512 | 5512 | ||
5513 | SetGlow(part, face, glow); | 5513 | SetGlow(part, face, glow); |
5514 | 5514 | ||
5515 | break; | 5515 | break; |
5516 | case (int)ScriptBaseClass.PRIM_BUMP_SHINY: | 5516 | case (int)ScriptBaseClass.PRIM_BUMP_SHINY: |
5517 | if (remain < 3) | 5517 | if (remain < 3) |
5518 | return; | 5518 | return; |
5519 | face = Convert.ToInt32(rules.Data[idx++]); | 5519 | face = Convert.ToInt32(rules.Data[idx++]); |
5520 | int shiny = Convert.ToInt32(rules.Data[idx++]); | 5520 | int shiny = Convert.ToInt32(rules.Data[idx++]); |
5521 | Bumpiness bump = (Bumpiness)Convert.ToByte(rules.Data[idx++]); | 5521 | Bumpiness bump = (Bumpiness)Convert.ToByte(rules.Data[idx++]); |
5522 | 5522 | ||
5523 | SetShiny(part, face, shiny, bump); | 5523 | SetShiny(part, face, shiny, bump); |
5524 | 5524 | ||
5525 | break; | 5525 | break; |
5526 | case (int)ScriptBaseClass.PRIM_FULLBRIGHT: | 5526 | case (int)ScriptBaseClass.PRIM_FULLBRIGHT: |
5527 | if (remain < 2) | 5527 | if (remain < 2) |
5528 | return; | 5528 | return; |
5529 | face = Convert.ToInt32(rules.Data[idx++]); | 5529 | face = Convert.ToInt32(rules.Data[idx++]); |
5530 | string bv = rules.Data[idx++].ToString(); | 5530 | string bv = rules.Data[idx++].ToString(); |
5531 | bool st; | 5531 | bool st; |
5532 | if (bv.Equals("1")) | 5532 | if (bv.Equals("1")) |
5533 | st = true; | 5533 | st = true; |
5534 | else | 5534 | else |
5535 | st = false; | 5535 | st = false; |
5536 | 5536 | ||
5537 | SetFullBright(part, face , st); | 5537 | SetFullBright(part, face , st); |
5538 | break; | 5538 | break; |
5539 | case (int)ScriptBaseClass.PRIM_MATERIAL: | 5539 | case (int)ScriptBaseClass.PRIM_MATERIAL: |
@@ -5552,29 +5552,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5552 | case (int)ScriptBaseClass.PRIM_PHANTOM: | 5552 | case (int)ScriptBaseClass.PRIM_PHANTOM: |
5553 | if (remain < 1) | 5553 | if (remain < 1) |
5554 | return; | 5554 | return; |
5555 | 5555 | ||
5556 | string ph = rules.Data[idx++].ToString(); | 5556 | string ph = rules.Data[idx++].ToString(); |
5557 | bool phantom; | 5557 | bool phantom; |
5558 | 5558 | ||
5559 | if (ph.Equals("1")) | 5559 | if (ph.Equals("1")) |
5560 | phantom = true; | 5560 | phantom = true; |
5561 | else | 5561 | else |
5562 | phantom = false; | 5562 | phantom = false; |
5563 | 5563 | ||
5564 | part.ScriptSetPhantomStatus(phantom); | 5564 | part.ScriptSetPhantomStatus(phantom); |
5565 | part.ScheduleFullUpdate(); | 5565 | part.ScheduleFullUpdate(); |
5566 | break; | 5566 | break; |
5567 | case (int)ScriptBaseClass.PRIM_PHYSICS: | 5567 | case (int)ScriptBaseClass.PRIM_PHYSICS: |
5568 | if (remain < 1) | 5568 | if (remain < 1) |
5569 | return; | 5569 | return; |
5570 | string phy = rules.Data[idx++].ToString(); | 5570 | string phy = rules.Data[idx++].ToString(); |
5571 | bool physics; | 5571 | bool physics; |
5572 | 5572 | ||
5573 | if (phy.Equals("1")) | 5573 | if (phy.Equals("1")) |
5574 | physics = true; | 5574 | physics = true; |
5575 | else | 5575 | else |
5576 | physics = false; | 5576 | physics = false; |
5577 | 5577 | ||
5578 | m_host.ScriptSetPhysicsStatus(physics); | 5578 | m_host.ScriptSetPhysicsStatus(physics); |
5579 | part.ScheduleFullUpdate(); | 5579 | part.ScheduleFullUpdate(); |
5580 | break; | 5580 | break; |
@@ -5645,7 +5645,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5645 | public LSL_Types.list llGetAnimationList( string id ) | 5645 | public LSL_Types.list llGetAnimationList( string id ) |
5646 | { | 5646 | { |
5647 | m_host.AddScriptLPS(1); | 5647 | m_host.AddScriptLPS(1); |
5648 | 5648 | ||
5649 | LSL_Types.list l = new LSL_Types.list(); | 5649 | LSL_Types.list l = new LSL_Types.list(); |
5650 | ScenePresence av = World.GetScenePresence(id); | 5650 | ScenePresence av = World.GetScenePresence(id); |
5651 | if (av == null) | 5651 | if (av == null) |
@@ -6758,7 +6758,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6758 | //PARCEL_MEDIA_COMMAND_LOOP_SET float loop Use this to get or set the parcel's media loop duration. (1.19.1 RC0 or later) | 6758 | //PARCEL_MEDIA_COMMAND_LOOP_SET float loop Use this to get or set the parcel's media loop duration. (1.19.1 RC0 or later) |
6759 | m_host.AddScriptLPS(1); | 6759 | m_host.AddScriptLPS(1); |
6760 | for (int i = 0; i < commandList.Data.Length; i++) | 6760 | for (int i = 0; i < commandList.Data.Length; i++) |
6761 | { | 6761 | { |
6762 | switch ((ParcelMediaCommandEnum)commandList.Data[i]) | 6762 | switch ((ParcelMediaCommandEnum)commandList.Data[i]) |
6763 | { | 6763 | { |
6764 | case ParcelMediaCommandEnum.Play: | 6764 | case ParcelMediaCommandEnum.Play: |
@@ -6768,7 +6768,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6768 | if (!agent.IsChildAgent) | 6768 | if (!agent.IsChildAgent) |
6769 | { | 6769 | { |
6770 | agent.ControllingClient.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); | 6770 | agent.ControllingClient.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); |
6771 | } | 6771 | } |
6772 | } | 6772 | } |
6773 | break; | 6773 | break; |
6774 | case ParcelMediaCommandEnum.Stop: | 6774 | case ParcelMediaCommandEnum.Stop: |
@@ -6799,7 +6799,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6799 | { | 6799 | { |
6800 | //Set the new media URL only if the user is the owner of the land | 6800 | //Set the new media URL only if the user is the owner of the land |
6801 | osSetParcelMediaURL(commandList.Data[i + 1].ToString()); | 6801 | osSetParcelMediaURL(commandList.Data[i + 1].ToString()); |
6802 | 6802 | ||
6803 | List<ScenePresence> scenePresenceList = World.GetScenePresences(); | 6803 | List<ScenePresence> scenePresenceList = World.GetScenePresences(); |
6804 | LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); | 6804 | LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); |
6805 | //Send an update of the mediaURL to all the clients that are in the parcel | 6805 | //Send an update of the mediaURL to all the clients that are in the parcel |
@@ -6810,8 +6810,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6810 | //Send parcel media update to the client | 6810 | //Send parcel media update to the client |
6811 | agent.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, landData.MediaID, landData.MediaAutoScale, "", landData.Description, 0, 0, 1); | 6811 | agent.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, landData.MediaID, landData.MediaAutoScale, "", landData.Description, 0, 0, 1); |
6812 | } | 6812 | } |
6813 | } | 6813 | } |
6814 | 6814 | ||
6815 | } | 6815 | } |
6816 | i++; | 6816 | i++; |
6817 | } | 6817 | } |
@@ -6821,7 +6821,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6821 | NotImplemented("llParcelMediaCommandList parameter do not supported yet: " + Enum.Parse(mediaCommandEnum.GetType(), commandList.Data[i].ToString()).ToString()); | 6821 | NotImplemented("llParcelMediaCommandList parameter do not supported yet: " + Enum.Parse(mediaCommandEnum.GetType(), commandList.Data[i].ToString()).ToString()); |
6822 | break; | 6822 | break; |
6823 | }//end switch | 6823 | }//end switch |
6824 | 6824 | ||
6825 | } | 6825 | } |
6826 | 6826 | ||
6827 | 6827 | ||
@@ -6864,7 +6864,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6864 | } | 6864 | } |
6865 | } | 6865 | } |
6866 | return list; | 6866 | return list; |
6867 | 6867 | ||
6868 | } | 6868 | } |
6869 | 6869 | ||
6870 | public LSL_Types.LSLInteger llModPow(int a, int b, int c) | 6870 | public LSL_Types.LSLInteger llModPow(int a, int b, int c) |
@@ -6908,7 +6908,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6908 | { | 6908 | { |
6909 | m_host.AddScriptLPS(1); | 6909 | m_host.AddScriptLPS(1); |
6910 | LLUUID invItemID=InventorySelf(); | 6910 | LLUUID invItemID=InventorySelf(); |
6911 | if (invItemID == LLUUID.Zero) | 6911 | if (invItemID == LLUUID.Zero) |
6912 | return new LSL_Types.Vector3(); | 6912 | return new LSL_Types.Vector3(); |
6913 | if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) | 6913 | if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) |
6914 | return new LSL_Types.Vector3(); | 6914 | return new LSL_Types.Vector3(); |
@@ -7036,8 +7036,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7036 | public void llSetCameraParams(LSL_Types.list rules) | 7036 | public void llSetCameraParams(LSL_Types.list rules) |
7037 | { | 7037 | { |
7038 | m_host.AddScriptLPS(1); | 7038 | m_host.AddScriptLPS(1); |
7039 | 7039 | ||
7040 | // our key in the object we are in | 7040 | // our key in the object we are in |
7041 | LLUUID invItemID=InventorySelf(); | 7041 | LLUUID invItemID=InventorySelf(); |
7042 | if (invItemID == LLUUID.Zero) return; | 7042 | if (invItemID == LLUUID.Zero) return; |
7043 | 7043 | ||
@@ -7051,10 +7051,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7051 | if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; | 7051 | if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; |
7052 | 7052 | ||
7053 | ScenePresence presence = World.GetScenePresence(agentID); | 7053 | ScenePresence presence = World.GetScenePresence(agentID); |
7054 | 7054 | ||
7055 | // we are not interested in child-agents | 7055 | // we are not interested in child-agents |
7056 | if (presence.IsChildAgent) return; | 7056 | if (presence.IsChildAgent) return; |
7057 | 7057 | ||
7058 | SortedDictionary<int, float> parameters = new SortedDictionary<int, float>(); | 7058 | SortedDictionary<int, float> parameters = new SortedDictionary<int, float>(); |
7059 | object[] data = rules.Data; | 7059 | object[] data = rules.Data; |
7060 | for (int i = 0; i < data.Length; ++i) { | 7060 | for (int i = 0; i < data.Length; ++i) { |
@@ -7067,8 +7067,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7067 | case ScriptBaseClass.CAMERA_FOCUS_OFFSET: | 7067 | case ScriptBaseClass.CAMERA_FOCUS_OFFSET: |
7068 | case ScriptBaseClass.CAMERA_POSITION: | 7068 | case ScriptBaseClass.CAMERA_POSITION: |
7069 | LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; | 7069 | LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; |
7070 | parameters.Add(type + 1, (float)v.x); | 7070 | parameters.Add(type + 1, (float)v.x); |
7071 | parameters.Add(type + 2, (float)v.y); | 7071 | parameters.Add(type + 2, (float)v.y); |
7072 | parameters.Add(type + 3, (float)v.z); | 7072 | parameters.Add(type + 3, (float)v.z); |
7073 | break; | 7073 | break; |
7074 | default: | 7074 | default: |
@@ -7088,7 +7088,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7088 | { | 7088 | { |
7089 | m_host.AddScriptLPS(1); | 7089 | m_host.AddScriptLPS(1); |
7090 | 7090 | ||
7091 | // our key in the object we are in | 7091 | // our key in the object we are in |
7092 | LLUUID invItemID=InventorySelf(); | 7092 | LLUUID invItemID=InventorySelf(); |
7093 | if (invItemID == LLUUID.Zero) return; | 7093 | if (invItemID == LLUUID.Zero) return; |
7094 | 7094 | ||
@@ -7102,10 +7102,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7102 | if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; | 7102 | if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; |
7103 | 7103 | ||
7104 | ScenePresence presence = World.GetScenePresence(agentID); | 7104 | ScenePresence presence = World.GetScenePresence(agentID); |
7105 | 7105 | ||
7106 | // we are not interested in child-agents | 7106 | // we are not interested in child-agents |
7107 | if (presence.IsChildAgent) return; | 7107 | if (presence.IsChildAgent) return; |
7108 | 7108 | ||
7109 | presence.ControllingClient.SendClearFollowCamProperties(objectID); | 7109 | presence.ControllingClient.SendClearFollowCamProperties(objectID); |
7110 | } | 7110 | } |
7111 | 7111 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs index 6c88ae86..52d277e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs | |||
@@ -89,7 +89,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
89 | { | 89 | { |
90 | if (!DataserverRequests.ContainsKey(identifier)) | 90 | if (!DataserverRequests.ContainsKey(identifier)) |
91 | return; | 91 | return; |
92 | 92 | ||
93 | ds=DataserverRequests[identifier]; | 93 | ds=DataserverRequests[identifier]; |
94 | DataserverRequests.Remove(identifier); | 94 | DataserverRequests.Remove(identifier); |
95 | } | 95 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs index 89bf51c..3f3cf39 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
70 | new LSL_Types.LSLInteger(rInfo.GetIntValue()), | 70 | new LSL_Types.LSLInteger(rInfo.GetIntValue()), |
71 | new LSL_Types.LSLString(rInfo.GetStrVal()) | 71 | new LSL_Types.LSLString(rInfo.GetStrVal()) |
72 | }; | 72 | }; |
73 | 73 | ||
74 | foreach (AsyncCommandManager m in m_CmdManager.Managers) | 74 | foreach (AsyncCommandManager m in m_CmdManager.Managers) |
75 | { | 75 | { |
76 | if (m.m_ScriptEngine.PostScriptEvent( | 76 | if (m.m_ScriptEngine.PostScriptEvent( |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs index 5b32cde..c28aa9a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs | |||
@@ -81,7 +81,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
81 | return; | 81 | return; |
82 | 82 | ||
83 | MethodInfo mi = inits[api]; | 83 | MethodInfo mi = inits[api]; |
84 | 84 | ||
85 | Object[] args = new Object[1]; | 85 | Object[] args = new Object[1]; |
86 | args[0] = data; | 86 | args[0] = data; |
87 | 87 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs index 681b2f2..d6a339b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs | |||
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
54 | { | 54 | { |
55 | _arity = arity; | 55 | _arity = arity; |
56 | } | 56 | } |
57 | 57 | ||
58 | /// <summary> | 58 | /// <summary> |
59 | /// Append the answer to the list and update the indexes, if any. | 59 | /// Append the answer to the list and update the indexes, if any. |
60 | /// Elements of answer must be ground, since arguments with unbound variables make this | 60 | /// Elements of answer must be ground, since arguments with unbound variables make this |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs index a2fe7ec..9f5ae3d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
54 | /// This uses YP.makeCopy to copy the ErrorTerm and Message so that they are valid after unbinding. | 54 | /// This uses YP.makeCopy to copy the ErrorTerm and Message so that they are valid after unbinding. |
55 | /// </summary> | 55 | /// </summary> |
56 | /// <param name="ErrorTerm">the error term of the error</param> | 56 | /// <param name="ErrorTerm">the error term of the error</param> |
57 | /// <param name="Messsage">the message term of the error. If this is a string, it is converted to an | 57 | /// <param name="Messsage">the message term of the error. If this is a string, it is converted to an |
58 | /// Atom so it can be used by Prolog code. | 58 | /// Atom so it can be used by Prolog code. |
59 | /// Message, converted to a string, is use as the printable exception message. | 59 | /// Message, converted to a string, is use as the printable exception message. |
60 | /// </param> | 60 | /// </param> |
@@ -66,7 +66,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
66 | _term = YP.makeCopy(new Functor2(Atom.a("error"), ErrorTerm, Message), new Variable.CopyStore()); | 66 | _term = YP.makeCopy(new Functor2(Atom.a("error"), ErrorTerm, Message), new Variable.CopyStore()); |
67 | } | 67 | } |
68 | 68 | ||
69 | public class TypeErrorInfo | 69 | public class TypeErrorInfo |
70 | { | 70 | { |
71 | public readonly Atom _Type; | 71 | public readonly Atom _Type; |
72 | public readonly object _Culprit; | 72 | public readonly object _Culprit; |
@@ -116,14 +116,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
116 | /// <returns></returns> | 116 | /// <returns></returns> |
117 | public object getProcedureName() | 117 | public object getProcedureName() |
118 | { | 118 | { |
119 | if (!(_Type._name == "procedure" && | 119 | if (!(_Type._name == "procedure" && |
120 | _Culprit is Functor2 && ((Functor2)_Culprit)._name == Atom.SLASH)) | 120 | _Culprit is Functor2 && ((Functor2)_Culprit)._name == Atom.SLASH)) |
121 | return null; | 121 | return null; |
122 | return ((Functor2)_Culprit)._arg1; | 122 | return ((Functor2)_Culprit)._arg1; |
123 | } | 123 | } |
124 | 124 | ||
125 | /// <summary> | 125 | /// <summary> |
126 | /// If _Type is procedure and _Culprit is name/arity and arity is an integer, return the arity. | 126 | /// If _Type is procedure and _Culprit is name/arity and arity is an integer, return the arity. |
127 | /// Otherwise return -1. | 127 | /// Otherwise return -1. |
128 | /// </summary> | 128 | /// </summary> |
129 | /// <returns></returns> | 129 | /// <returns></returns> |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs index 97c9087..2e90d74 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -147,7 +147,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
147 | /// <summary> | 147 | /// <summary> |
148 | /// Convert term to an int. | 148 | /// Convert term to an int. |
149 | /// If term is a single-element List, use its first element | 149 | /// If term is a single-element List, use its first element |
150 | /// (to handle the char types like "a"). | 150 | /// (to handle the char types like "a"). |
151 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only | 151 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only |
152 | /// called from arithmetic functions). | 152 | /// called from arithmetic functions). |
153 | /// </summary> | 153 | /// </summary> |
@@ -172,8 +172,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
172 | { | 172 | { |
173 | throw new PrologException | 173 | throw new PrologException |
174 | (new Functor2 | 174 | (new Functor2 |
175 | ("type_error", Atom.a("evaluable"), | 175 | ("type_error", Atom.a("evaluable"), |
176 | new Functor2(Atom.SLASH, getFunctorName(term), getFunctorArgs(term).Length)), | 176 | new Functor2(Atom.SLASH, getFunctorName(term), getFunctorArgs(term).Length)), |
177 | "Term must be an integer"); | 177 | "Term must be an integer"); |
178 | } | 178 | } |
179 | } | 179 | } |
@@ -181,7 +181,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
181 | /// <summary> | 181 | /// <summary> |
182 | /// Convert term to a double. This may convert an int to a double, etc. | 182 | /// Convert term to a double. This may convert an int to a double, etc. |
183 | /// If term is a single-element List, use its first element | 183 | /// If term is a single-element List, use its first element |
184 | /// (to handle the char types like "a"). | 184 | /// (to handle the char types like "a"). |
185 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only | 185 | /// If can't convert, throw a PrologException for type_error evaluable (because this is only |
186 | /// called from arithmetic functions). | 186 | /// called from arithmetic functions). |
187 | /// </summary> | 187 | /// </summary> |
@@ -195,7 +195,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
195 | // Assume it is a char type like "a". | 195 | // Assume it is a char type like "a". |
196 | term = YP.getValue(((Functor2)term)._arg1); | 196 | term = YP.getValue(((Functor2)term)._arg1); |
197 | if (term is Variable) | 197 | if (term is Variable) |
198 | throw new PrologException(Atom.a("instantiation_error"), | 198 | throw new PrologException(Atom.a("instantiation_error"), |
199 | "Expected a number but the argument is an unbound variable"); | 199 | "Expected a number but the argument is an unbound variable"); |
200 | 200 | ||
201 | try | 201 | try |
@@ -776,8 +776,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
776 | if (term1TypeCode == -2) | 776 | if (term1TypeCode == -2) |
777 | { | 777 | { |
778 | // Variable. | 778 | // Variable. |
779 | // We always check for equality first because we want to be sure | 779 | // We always check for equality first because we want to be sure |
780 | // that less than returns false if the terms are equal, in | 780 | // that less than returns false if the terms are equal, in |
781 | // case that the less than check really behaves like less than or equal. | 781 | // case that the less than check really behaves like less than or equal. |
782 | if ((Variable)Term1 != (Variable)Term2) | 782 | if ((Variable)Term1 != (Variable)Term2) |
783 | // The hash code should be unique to a Variable object. | 783 | // The hash code should be unique to a Variable object. |
@@ -820,8 +820,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
820 | } | 820 | } |
821 | 821 | ||
822 | /// <summary> | 822 | /// <summary> |
823 | /// Type code is -2 if term is a Variable, 0 if it is an Atom, | 823 | /// Type code is -2 if term is a Variable, 0 if it is an Atom, |
824 | /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, | 824 | /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, |
825 | /// 4 if it is Functor. | 825 | /// 4 if it is Functor. |
826 | /// Otherwise, type code is -1. | 826 | /// Otherwise, type code is -1. |
827 | /// This does not call YP.getValue(term). | 827 | /// This does not call YP.getValue(term). |
@@ -1167,7 +1167,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1167 | "Arg 2 List has an element which is an unbound variable"); | 1167 | "Arg 2 List has an element which is an unbound variable"); |
1168 | if (!(listAtom is Atom && ((Atom)listAtom)._name.Length == 1)) | 1168 | if (!(listAtom is Atom && ((Atom)listAtom)._name.Length == 1)) |
1169 | throw new PrologException | 1169 | throw new PrologException |
1170 | (new Functor2("type_error", Atom.a("character"), listAtom), | 1170 | (new Functor2("type_error", Atom.a("character"), listAtom), |
1171 | "Arg 2 List has an element which is not a one character atom"); | 1171 | "Arg 2 List has an element which is not a one character atom"); |
1172 | charArray[i] = ((Atom)listAtom)._name[0]; | 1172 | charArray[i] = ((Atom)listAtom)._name[0]; |
1173 | } | 1173 | } |
@@ -1209,7 +1209,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1209 | int codeInt; | 1209 | int codeInt; |
1210 | if (!getInt(codeArray[i], out codeInt) || codeInt < 0) | 1210 | if (!getInt(codeArray[i], out codeInt) || codeInt < 0) |
1211 | throw new PrologException | 1211 | throw new PrologException |
1212 | (new Functor1("representation_error", Atom.a("character_code")), | 1212 | (new Functor1("representation_error", Atom.a("character_code")), |
1213 | "Element of Arg 2 List is not a character code"); | 1213 | "Element of Arg 2 List is not a character code"); |
1214 | charArray[i] = (char)codeInt; | 1214 | charArray[i] = (char)codeInt; |
1215 | } | 1215 | } |
@@ -1323,7 +1323,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1323 | { | 1323 | { |
1324 | if (!YP.number(Number)) | 1324 | if (!YP.number(Number)) |
1325 | throw new PrologException | 1325 | throw new PrologException |
1326 | (new Functor2("type_error", Atom.a("number"), Number), | 1326 | (new Functor2("type_error", Atom.a("number"), Number), |
1327 | "Arg 1 Number is not var or number"); | 1327 | "Arg 1 Number is not var or number"); |
1328 | // We just checked, so convertDouble shouldn't throw an exception. | 1328 | // We just checked, so convertDouble shouldn't throw an exception. |
1329 | numberString = YP.doubleToString(YP.convertDouble(Number)); | 1329 | numberString = YP.doubleToString(YP.convertDouble(Number)); |
@@ -1413,7 +1413,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1413 | { | 1413 | { |
1414 | if (!(Char is Atom) || ((Atom)Char)._name.Length != 1) | 1414 | if (!(Char is Atom) || ((Atom)Char)._name.Length != 1) |
1415 | throw new PrologException | 1415 | throw new PrologException |
1416 | (new Functor2("type_error", Atom.a("character"), Char), | 1416 | (new Functor2("type_error", Atom.a("character"), Char), |
1417 | "Arg 1 Char is not var or one-character atom"); | 1417 | "Arg 1 Char is not var or one-character atom"); |
1418 | 1418 | ||
1419 | if (Code is Variable) | 1419 | if (Code is Variable) |
@@ -1795,7 +1795,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1795 | IndexedAnswers indexedAnswers; | 1795 | IndexedAnswers indexedAnswers; |
1796 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) | 1796 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) |
1797 | { | 1797 | { |
1798 | // Create an IndexedAnswers as the only clause of the predicate. | 1798 | // Create an IndexedAnswers as the only clause of the predicate. |
1799 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); | 1799 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); |
1800 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); | 1800 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); |
1801 | } | 1801 | } |
@@ -1826,7 +1826,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1826 | IndexedAnswers indexedAnswers; | 1826 | IndexedAnswers indexedAnswers; |
1827 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) | 1827 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) |
1828 | { | 1828 | { |
1829 | // Create an IndexedAnswers as the only clause of the predicate. | 1829 | // Create an IndexedAnswers as the only clause of the predicate. |
1830 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); | 1830 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); |
1831 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); | 1831 | clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); |
1832 | } | 1832 | } |
@@ -1855,7 +1855,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1855 | { | 1855 | { |
1856 | List<IClause> clauses; | 1856 | List<IClause> clauses; |
1857 | if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) | 1857 | if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) |
1858 | return unknownPredicate(name, arguments.Length, | 1858 | return unknownPredicate(name, arguments.Length, |
1859 | "Undefined dynamic predicate: " + name + "/" + arguments.Length); | 1859 | "Undefined dynamic predicate: " + name + "/" + arguments.Length); |
1860 | 1860 | ||
1861 | if (clauses.Count == 1) | 1861 | if (clauses.Count == 1) |
@@ -1889,7 +1889,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1889 | } | 1889 | } |
1890 | 1890 | ||
1891 | /// <summary> | 1891 | /// <summary> |
1892 | /// If _prologFlags["unknown"] is fail then return fail(), else if | 1892 | /// If _prologFlags["unknown"] is fail then return fail(), else if |
1893 | /// _prologFlags["unknown"] is warning then write the message to YP.write and | 1893 | /// _prologFlags["unknown"] is warning then write the message to YP.write and |
1894 | /// return fail(), else throw a PrologException for existence_error. . | 1894 | /// return fail(), else throw a PrologException for existence_error. . |
1895 | /// </summary> | 1895 | /// </summary> |
@@ -1917,7 +1917,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
1917 | } | 1917 | } |
1918 | 1918 | ||
1919 | /// <summary> | 1919 | /// <summary> |
1920 | /// This is deprecated and just calls matchDynamic. This matches all clauses, | 1920 | /// This is deprecated and just calls matchDynamic. This matches all clauses, |
1921 | /// not just the ones defined with assertFact. | 1921 | /// not just the ones defined with assertFact. |
1922 | /// </summary> | 1922 | /// </summary> |
1923 | /// <param name="name"></param> | 1923 | /// <param name="name"></param> |
@@ -2066,7 +2066,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2066 | /// dynamic predicate. | 2066 | /// dynamic predicate. |
2067 | /// </summary> | 2067 | /// </summary> |
2068 | /// <param name="NameSlashArity"></param> | 2068 | /// <param name="NameSlashArity"></param> |
2069 | /// <param name="declaringClass">if not null, used to resolve references to the default | 2069 | /// <param name="declaringClass">if not null, used to resolve references to the default |
2070 | /// module Atom.a("")</param> | 2070 | /// module Atom.a("")</param> |
2071 | /// <returns></returns> | 2071 | /// <returns></returns> |
2072 | public static IEnumerable<bool> current_predicate(object NameSlashArity, Type declaringClass) | 2072 | public static IEnumerable<bool> current_predicate(object NameSlashArity, Type declaringClass) |
@@ -2078,7 +2078,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2078 | Functor2 NameArityFunctor = NameSlashArity as Functor2; | 2078 | Functor2 NameArityFunctor = NameSlashArity as Functor2; |
2079 | if (!(NameArityFunctor != null && NameArityFunctor._name == Atom.SLASH)) | 2079 | if (!(NameArityFunctor != null && NameArityFunctor._name == Atom.SLASH)) |
2080 | throw new PrologException | 2080 | throw new PrologException |
2081 | (new Functor2("type_error", Atom.a("predicate_indicator"), NameSlashArity), | 2081 | (new Functor2("type_error", Atom.a("predicate_indicator"), NameSlashArity), |
2082 | "Must be a name/arity predicate indicator"); | 2082 | "Must be a name/arity predicate indicator"); |
2083 | object name = YP.getValue(NameArityFunctor._arg1); | 2083 | object name = YP.getValue(NameArityFunctor._arg1); |
2084 | object arity = YP.getValue(NameArityFunctor._arg2); | 2084 | object arity = YP.getValue(NameArityFunctor._arg2); |
@@ -2163,12 +2163,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2163 | } | 2163 | } |
2164 | 2164 | ||
2165 | /// <summary> | 2165 | /// <summary> |
2166 | /// If Goal is a simple predicate, call YP.getFunctorName(Goal) using arguments from | 2166 | /// If Goal is a simple predicate, call YP.getFunctorName(Goal) using arguments from |
2167 | /// YP.getFunctorArgs(Goal). If not found, this throws a PrologException for existence_error. | 2167 | /// YP.getFunctorArgs(Goal). If not found, this throws a PrologException for existence_error. |
2168 | /// Otherwise, compile the goal as a single clause predicate and invoke it. | 2168 | /// Otherwise, compile the goal as a single clause predicate and invoke it. |
2169 | /// </summary> | 2169 | /// </summary> |
2170 | /// <param name="Goal"></param> | 2170 | /// <param name="Goal"></param> |
2171 | /// <param name="declaringClass">if not null, used to resolve references to the default | 2171 | /// <param name="declaringClass">if not null, used to resolve references to the default |
2172 | /// module Atom.a("")</param> | 2172 | /// module Atom.a("")</param> |
2173 | /// <returns></returns> | 2173 | /// <returns></returns> |
2174 | public static IEnumerable<bool> getIterator(object Goal, Type declaringClass) | 2174 | public static IEnumerable<bool> getIterator(object Goal, Type declaringClass) |
@@ -2259,7 +2259,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2259 | (new Functor2("type_error", Atom.a("atom"), Key), "Arg 1 Key is not an atom"); | 2259 | (new Functor2("type_error", Atom.a("atom"), Key), "Arg 1 Key is not an atom"); |
2260 | if (!_prologFlags.ContainsKey(((Atom)Key)._name)) | 2260 | if (!_prologFlags.ContainsKey(((Atom)Key)._name)) |
2261 | throw new PrologException | 2261 | throw new PrologException |
2262 | (new Functor2("domain_error", Atom.a("prolog_flag"), Key), | 2262 | (new Functor2("domain_error", Atom.a("prolog_flag"), Key), |
2263 | "Arg 1 Key is not a recognized flag"); | 2263 | "Arg 1 Key is not a recognized flag"); |
2264 | 2264 | ||
2265 | foreach (bool l1 in YP.unify(Value, _prologFlags[((Atom)Key)._name])) | 2265 | foreach (bool l1 in YP.unify(Value, _prologFlags[((Atom)Key)._name])) |
@@ -2343,7 +2343,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2343 | string results = ""; | 2343 | string results = ""; |
2344 | for (Match m = Regex.Match(inData,inPattern); m.Success; m=m.NextMatch()) | 2344 | for (Match m = Regex.Match(inData,inPattern); m.Success; m=m.NextMatch()) |
2345 | { | 2345 | { |
2346 | //Console.WriteLine( m ); | 2346 | //Console.WriteLine( m ); |
2347 | results += presep+ m + postsep; | 2347 | results += presep+ m + postsep; |
2348 | } | 2348 | } |
2349 | return results; | 2349 | return results; |
@@ -2662,7 +2662,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2662 | #pragma warning restore 0168 | 2662 | #pragma warning restore 0168 |
2663 | } | 2663 | } |
2664 | } | 2664 | } |
2665 | 2665 | ||
2666 | /// <summary> | 2666 | /// <summary> |
2667 | /// CodeListReader extends TextReader and overrides Read to read the next code from | 2667 | /// CodeListReader extends TextReader and overrides Read to read the next code from |
2668 | /// the CodeList which is a Prolog list of integer character codes. | 2668 | /// the CodeList which is a Prolog list of integer character codes. |
@@ -2683,7 +2683,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog | |||
2683 | /// <returns></returns> | 2683 | /// <returns></returns> |
2684 | public override int Read() | 2684 | public override int Read() |
2685 | { | 2685 | { |
2686 | Functor2 CodeListPair = _CodeList as Functor2; | 2686 | Functor2 CodeListPair = _CodeList as Functor2; |
2687 | int code; | 2687 | int code; |
2688 | if (!(CodeListPair != null && CodeListPair._name == Atom.DOT && | 2688 | if (!(CodeListPair != null && CodeListPair._name == Atom.DOT && |
2689 | getInt(CodeListPair._arg1, out code))) | 2689 | getInt(CodeListPair._arg1, out code))) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs b/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs index f9b160d..0f79019 100644 --- a/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs +++ b/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs | |||
@@ -54,11 +54,11 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
54 | { | 54 | { |
55 | string path = Path.Combine(Directory.GetCurrentDirectory(), | 55 | string path = Path.Combine(Directory.GetCurrentDirectory(), |
56 | Path.Combine(s, assemblyName))+".dll"; | 56 | Path.Combine(s, assemblyName))+".dll"; |
57 | 57 | ||
58 | if (File.Exists(path)) | 58 | if (File.Exists(path)) |
59 | return Assembly.LoadFrom(path); | 59 | return Assembly.LoadFrom(path); |
60 | } | 60 | } |
61 | 61 | ||
62 | return null; | 62 | return null; |
63 | } | 63 | } |
64 | } | 64 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs index 4962023..db90f3e 100644 --- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs | |||
@@ -412,8 +412,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools | |||
412 | 412 | ||
413 | private static string CreateYPCompilerScript(string compileScript) | 413 | private static string CreateYPCompilerScript(string compileScript) |
414 | { | 414 | { |
415 | |||
416 | |||
417 | compileScript = String.Empty + | 415 | compileScript = String.Empty + |
418 | "using OpenSim.Region.ScriptEngine.Shared.YieldProlog; " + | 416 | "using OpenSim.Region.ScriptEngine.Shared.YieldProlog; " + |
419 | "using OpenSim.Region.ScriptEngine.Shared; using System.Collections.Generic;\r\n" + | 417 | "using OpenSim.Region.ScriptEngine.Shared; using System.Collections.Generic;\r\n" + |
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs index 57e8776..45f92e3 100644 --- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs +++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs | |||
@@ -87,9 +87,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools | |||
87 | string quote = String.Empty; | 87 | string quote = String.Empty; |
88 | bool last_was_escape = false; | 88 | bool last_was_escape = false; |
89 | int quote_replaced_count = 0; | 89 | int quote_replaced_count = 0; |
90 | 90 | ||
91 | string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";"); | 91 | string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";"); |
92 | 92 | ||
93 | string removecomments = conelinecomments.Replace(removefwnoncomments, ""); | 93 | string removecomments = conelinecomments.Replace(removefwnoncomments, ""); |
94 | removecomments = cstylecomments.Replace(removecomments, ""); | 94 | removecomments = cstylecomments.Replace(removecomments, ""); |
95 | string[] localscript = removecomments.Split('"'); | 95 | string[] localscript = removecomments.Split('"'); |
@@ -120,7 +120,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools | |||
120 | // checks for alpha.alpha way of referring to objects in C# | 120 | // checks for alpha.alpha way of referring to objects in C# |
121 | // ignores alpha.x alpha.y, alpha.z for refering to vector components | 121 | // ignores alpha.x alpha.y, alpha.z for refering to vector components |
122 | Match SecurityM; | 122 | Match SecurityM; |
123 | 123 | ||
124 | // BROKEN: this check is very wrong. It block's any url in strings. | 124 | // BROKEN: this check is very wrong. It block's any url in strings. |
125 | SecurityM = Regex.Match(checkscript, @"(?:[a-zA-Z])\.(?:[a-rt-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); | 125 | SecurityM = Regex.Match(checkscript, @"(?:[a-zA-Z])\.(?:[a-rt-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); |
126 | 126 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs index 831b918..22b3742 100644 --- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs +++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools | |||
61 | myCode = myCode.Substring(0, cs_pointer); | 61 | myCode = myCode.Substring(0, cs_pointer); |
62 | } | 62 | } |
63 | myCode.Replace("//yp", "%YPCode"); | 63 | myCode.Replace("//yp", "%YPCode"); |
64 | 64 | ||
65 | StringWriter myCS_SW = new StringWriter(); | 65 | StringWriter myCS_SW = new StringWriter(); |
66 | StringReader myCode_SR = new StringReader(" yp_nop_header_nop. \n "+myCode + "\n"); | 66 | StringReader myCode_SR = new StringReader(" yp_nop_header_nop. \n "+myCode + "\n"); |
67 | 67 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index 8326e16..5497e2c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | |||
@@ -1335,22 +1335,22 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1335 | bool ret = i1.value != i2.value; | 1335 | bool ret = i1.value != i2.value; |
1336 | return ret; | 1336 | return ret; |
1337 | } | 1337 | } |
1338 | 1338 | ||
1339 | static public LSLInteger operator +(LSLInteger i1, int i2) | 1339 | static public LSLInteger operator +(LSLInteger i1, int i2) |
1340 | { | 1340 | { |
1341 | return new LSLInteger(i1.value + i2); | 1341 | return new LSLInteger(i1.value + i2); |
1342 | } | 1342 | } |
1343 | 1343 | ||
1344 | static public LSLInteger operator -(LSLInteger i1, int i2) | 1344 | static public LSLInteger operator -(LSLInteger i1, int i2) |
1345 | { | 1345 | { |
1346 | return new LSLInteger(i1.value - i2); | 1346 | return new LSLInteger(i1.value - i2); |
1347 | } | 1347 | } |
1348 | 1348 | ||
1349 | static public LSLInteger operator *(LSLInteger i1, int i2) | 1349 | static public LSLInteger operator *(LSLInteger i1, int i2) |
1350 | { | 1350 | { |
1351 | return new LSLInteger(i1.value * i2); | 1351 | return new LSLInteger(i1.value * i2); |
1352 | } | 1352 | } |
1353 | 1353 | ||
1354 | static public LSLInteger operator /(LSLInteger i1, int i2) | 1354 | static public LSLInteger operator /(LSLInteger i1, int i2) |
1355 | { | 1355 | { |
1356 | return new LSLInteger(i1.value / i2); | 1356 | return new LSLInteger(i1.value / i2); |
@@ -1360,22 +1360,22 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1360 | { | 1360 | { |
1361 | return new LSLFloat((double)i1.value + f); | 1361 | return new LSLFloat((double)i1.value + f); |
1362 | } | 1362 | } |
1363 | 1363 | ||
1364 | static public LSLFloat operator -(LSLInteger i1, double f) | 1364 | static public LSLFloat operator -(LSLInteger i1, double f) |
1365 | { | 1365 | { |
1366 | return new LSLFloat((double)i1.value - f); | 1366 | return new LSLFloat((double)i1.value - f); |
1367 | } | 1367 | } |
1368 | 1368 | ||
1369 | static public LSLFloat operator *(LSLInteger i1, double f) | 1369 | static public LSLFloat operator *(LSLInteger i1, double f) |
1370 | { | 1370 | { |
1371 | return new LSLFloat((double)i1.value * f); | 1371 | return new LSLFloat((double)i1.value * f); |
1372 | } | 1372 | } |
1373 | 1373 | ||
1374 | static public LSLFloat operator /(LSLInteger i1, double f) | 1374 | static public LSLFloat operator /(LSLInteger i1, double f) |
1375 | { | 1375 | { |
1376 | return new LSLFloat((double)i1.value / f); | 1376 | return new LSLFloat((double)i1.value / f); |
1377 | } | 1377 | } |
1378 | 1378 | ||
1379 | static public LSLInteger operator -(LSLInteger i) | 1379 | static public LSLInteger operator -(LSLInteger i) |
1380 | { | 1380 | { |
1381 | return new LSLInteger(-i.value); | 1381 | return new LSLInteger(-i.value); |
@@ -1536,17 +1536,17 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1536 | f.value--; | 1536 | f.value--; |
1537 | return f; | 1537 | return f; |
1538 | } | 1538 | } |
1539 | 1539 | ||
1540 | static public LSLFloat operator +(LSLFloat f, int i) | 1540 | static public LSLFloat operator +(LSLFloat f, int i) |
1541 | { | 1541 | { |
1542 | return new LSLFloat(f.value + (double)i); | 1542 | return new LSLFloat(f.value + (double)i); |
1543 | } | 1543 | } |
1544 | 1544 | ||
1545 | static public LSLFloat operator -(LSLFloat f, int i) | 1545 | static public LSLFloat operator -(LSLFloat f, int i) |
1546 | { | 1546 | { |
1547 | return new LSLFloat(f.value - (double)i); | 1547 | return new LSLFloat(f.value - (double)i); |
1548 | } | 1548 | } |
1549 | 1549 | ||
1550 | static public LSLFloat operator *(LSLFloat f, int i) | 1550 | static public LSLFloat operator *(LSLFloat f, int i) |
1551 | { | 1551 | { |
1552 | return new LSLFloat(f.value * (double)i); | 1552 | return new LSLFloat(f.value * (double)i); |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index cdba1ac..c528c02 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -363,7 +363,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
363 | new WorkItemCallback( | 363 | new WorkItemCallback( |
364 | this.DoOnRezScriptQueue), new Object[0]); | 364 | this.DoOnRezScriptQueue), new Object[0]); |
365 | } | 365 | } |
366 | else | 366 | else |
367 | { | 367 | { |
368 | m_CurrentCompile = null; | 368 | m_CurrentCompile = null; |
369 | } | 369 | } |
@@ -394,7 +394,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
394 | new WorkItemCallback( | 394 | new WorkItemCallback( |
395 | this.DoOnRezScriptQueue), new Object[0]); | 395 | this.DoOnRezScriptQueue), new Object[0]); |
396 | } | 396 | } |
397 | else | 397 | else |
398 | { | 398 | { |
399 | m_CurrentCompile = null; | 399 | m_CurrentCompile = null; |
400 | } | 400 | } |
@@ -1113,7 +1113,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1113 | { | 1113 | { |
1114 | string savedState = Path.Combine(Path.GetDirectoryName(m_Assembly), | 1114 | string savedState = Path.Combine(Path.GetDirectoryName(m_Assembly), |
1115 | m_ItemID.ToString() + ".state"); | 1115 | m_ItemID.ToString() + ".state"); |
1116 | 1116 | ||
1117 | try | 1117 | try |
1118 | { | 1118 | { |
1119 | File.Delete(savedState); | 1119 | File.Delete(savedState); |
diff --git a/OpenSim/TestSuite/BotManager.cs b/OpenSim/TestSuite/BotManager.cs index a431a43..29864ab 100644 --- a/OpenSim/TestSuite/BotManager.cs +++ b/OpenSim/TestSuite/BotManager.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.TestSuite | |||
51 | protected Random somthing = new Random(Environment.TickCount); | 51 | protected Random somthing = new Random(Environment.TickCount); |
52 | protected int numbots = 0; | 52 | protected int numbots = 0; |
53 | protected IConfig Previous_config; | 53 | protected IConfig Previous_config; |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data | 56 | /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data |
57 | /// </summary> | 57 | /// </summary> |
@@ -97,7 +97,7 @@ namespace OpenSim.TestSuite | |||
97 | startupBot(i, Previous_config); | 97 | startupBot(i, Previous_config); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | 100 | ||
101 | /// <summary> | 101 | /// <summary> |
102 | /// This starts up the bot and stores the thread for the bot in the thread array | 102 | /// This starts up the bot and stores the thread for the bot in the thread array |
103 | /// </summary> | 103 | /// </summary> |
@@ -128,7 +128,7 @@ namespace OpenSim.TestSuite | |||
128 | { | 128 | { |
129 | string returnstring = ""; | 129 | string returnstring = ""; |
130 | string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; | 130 | string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; |
131 | 131 | ||
132 | for (int i = 0; i < 7; i++) | 132 | for (int i = 0; i < 7; i++) |
133 | { | 133 | { |
134 | returnstring += chars.Substring(somthing.Next(chars.Length),1); | 134 | returnstring += chars.Substring(somthing.Next(chars.Length),1); |
@@ -178,7 +178,7 @@ namespace OpenSim.TestSuite | |||
178 | { | 178 | { |
179 | return new ConsoleBase("Region", this); | 179 | return new ConsoleBase("Region", this); |
180 | } | 180 | } |
181 | 181 | ||
182 | /// <summary> | 182 | /// <summary> |
183 | /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit | 183 | /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit |
184 | /// </summary> | 184 | /// </summary> |
@@ -199,7 +199,7 @@ namespace OpenSim.TestSuite | |||
199 | case "addbots": | 199 | case "addbots": |
200 | int newbots; | 200 | int newbots; |
201 | Helpers.TryParse(cmdparams[0], out newbots); | 201 | Helpers.TryParse(cmdparams[0], out newbots); |
202 | 202 | ||
203 | if (newbots > 0) | 203 | if (newbots > 0) |
204 | addbots(newbots); | 204 | addbots(newbots); |
205 | break; | 205 | break; |
diff --git a/OpenSim/TestSuite/Main.cs b/OpenSim/TestSuite/Main.cs index b944304..8b2de81 100644 --- a/OpenSim/TestSuite/Main.cs +++ b/OpenSim/TestSuite/Main.cs | |||
@@ -58,9 +58,9 @@ namespace OpenSim.TestSuite | |||
58 | else | 58 | else |
59 | { | 59 | { |
60 | // TODO: unused: int botcount = config.GetInt("botcount", 1); | 60 | // TODO: unused: int botcount = config.GetInt("botcount", 1); |
61 | 61 | ||
62 | // BotManager bm = new BotManager(); | 62 | // BotManager bm = new BotManager(); |
63 | 63 | ||
64 | Utils.TestPass("Completed Startup"); | 64 | Utils.TestPass("Completed Startup"); |
65 | } | 65 | } |
66 | } | 66 | } |
@@ -69,18 +69,18 @@ namespace OpenSim.TestSuite | |||
69 | { | 69 | { |
70 | //Set up our nifty config.. thanks to nini | 70 | //Set up our nifty config.. thanks to nini |
71 | ArgvConfigSource cs = new ArgvConfigSource(args); | 71 | ArgvConfigSource cs = new ArgvConfigSource(args); |
72 | 72 | ||
73 | // TODO: unused: cs.AddSwitch("Startup", "botcount","n"); | 73 | // TODO: unused: cs.AddSwitch("Startup", "botcount","n"); |
74 | cs.AddSwitch("Startup", "loginuri","l"); | 74 | cs.AddSwitch("Startup", "loginuri","l"); |
75 | cs.AddSwitch("Startup", "firstname"); | 75 | cs.AddSwitch("Startup", "firstname"); |
76 | cs.AddSwitch("Startup", "lastname"); | 76 | cs.AddSwitch("Startup", "lastname"); |
77 | cs.AddSwitch("Startup", "password"); | 77 | cs.AddSwitch("Startup", "password"); |
78 | cs.AddSwitch("Startup", "help","h"); | 78 | cs.AddSwitch("Startup", "help","h"); |
79 | 79 | ||
80 | IConfig ol = cs.Configs["Startup"]; | 80 | IConfig ol = cs.Configs["Startup"]; |
81 | return ol; | 81 | return ol; |
82 | } | 82 | } |
83 | 83 | ||
84 | private static void Help() | 84 | private static void Help() |
85 | { | 85 | { |
86 | Console.WriteLine( | 86 | Console.WriteLine( |
diff --git a/OpenSim/Tests/Inventory/TestInventory.cs b/OpenSim/Tests/Inventory/TestInventory.cs index 7863904..3c90e1f 100644 --- a/OpenSim/Tests/Inventory/TestInventory.cs +++ b/OpenSim/Tests/Inventory/TestInventory.cs | |||
@@ -94,7 +94,7 @@ namespace OpenSim.Test.Inventory | |||
94 | if (a.parentFolderID != b.parentFolderID) return false; | 94 | if (a.parentFolderID != b.parentFolderID) return false; |
95 | return true; | 95 | return true; |
96 | } | 96 | } |
97 | 97 | ||
98 | /// <summary> | 98 | /// <summary> |
99 | /// Test that we can insert a root folder | 99 | /// Test that we can insert a root folder |
100 | /// </summary> | 100 | /// </summary> |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index dbc58ff..25044db 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | |||
@@ -123,7 +123,7 @@ namespace LaunchSLClient | |||
123 | string sandboxHostName = ""; | 123 | string sandboxHostName = ""; |
124 | string sandboxPort = ""; | 124 | string sandboxPort = ""; |
125 | string text; | 125 | string text; |
126 | 126 | ||
127 | Regex myRegex = new Regex(".*internal_ip_port=\\\"(?<port>.*?)\\\".*external_host_name=\\\"(?<name>.*?)\\\".*"); | 127 | Regex myRegex = new Regex(".*internal_ip_port=\\\"(?<port>.*?)\\\".*external_host_name=\\\"(?<name>.*?)\\\".*"); |
128 | 128 | ||
129 | FileInfo defaultFile = new FileInfo("Regions/default.xml"); | 129 | FileInfo defaultFile = new FileInfo("Regions/default.xml"); |
diff --git a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs index a43795a..d6a3d04 100644 --- a/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs +++ b/OpenSim/Tools/OpenSim.GUI/InputTextBoxControl.cs | |||
@@ -38,7 +38,7 @@ namespace OpenSim.GUI | |||
38 | { | 38 | { |
39 | this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); | 39 | this.KeyDown += new System.Windows.Forms.KeyEventHandler(TextInputControl_KeyDown); |
40 | } | 40 | } |
41 | 41 | ||
42 | private List<string> CommandHistory = new List<string>(); | 42 | private List<string> CommandHistory = new List<string>(); |
43 | private bool InHistory = false; | 43 | private bool InHistory = false; |
44 | private int HistoryPosition = -1; | 44 | private int HistoryPosition = -1; |
diff --git a/OpenSim/Tools/pCampBot/BotManager.cs b/OpenSim/Tools/pCampBot/BotManager.cs index 302dc08..4bdc494 100644 --- a/OpenSim/Tools/pCampBot/BotManager.cs +++ b/OpenSim/Tools/pCampBot/BotManager.cs | |||
@@ -51,7 +51,7 @@ namespace pCampBot | |||
51 | protected Random somthing = new Random(Environment.TickCount); | 51 | protected Random somthing = new Random(Environment.TickCount); |
52 | protected int numbots = 0; | 52 | protected int numbots = 0; |
53 | protected IConfig Previous_config; | 53 | protected IConfig Previous_config; |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data | 56 | /// Constructor Creates MainConsole.Instance to take commands and provide the place to write data |
57 | /// </summary> | 57 | /// </summary> |
@@ -96,7 +96,7 @@ namespace pCampBot | |||
96 | startupBot(i, Previous_config); | 96 | startupBot(i, Previous_config); |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | /// <summary> | 100 | /// <summary> |
101 | /// This starts up the bot and stores the thread for the bot in the thread array | 101 | /// This starts up the bot and stores the thread for the bot in the thread array |
102 | /// </summary> | 102 | /// </summary> |
@@ -127,7 +127,7 @@ namespace pCampBot | |||
127 | { | 127 | { |
128 | string returnstring = ""; | 128 | string returnstring = ""; |
129 | string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; | 129 | string chars = "abcdefghijklmnopqrstuvwxyz0123456789"; |
130 | 130 | ||
131 | for (int i = 0; i < 7; i++) | 131 | for (int i = 0; i < 7; i++) |
132 | { | 132 | { |
133 | returnstring += chars.Substring(somthing.Next(chars.Length),1); | 133 | returnstring += chars.Substring(somthing.Next(chars.Length),1); |
@@ -177,7 +177,7 @@ namespace pCampBot | |||
177 | { | 177 | { |
178 | return new ConsoleBase("Region", this); | 178 | return new ConsoleBase("Region", this); |
179 | } | 179 | } |
180 | 180 | ||
181 | /// <summary> | 181 | /// <summary> |
182 | /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit | 182 | /// Command runnint tool.. Currently use it to add bots, shutdown and (dangerous)Forcequit |
183 | /// </summary> | 183 | /// </summary> |
@@ -198,7 +198,7 @@ namespace pCampBot | |||
198 | case "addbots": | 198 | case "addbots": |
199 | int newbots; | 199 | int newbots; |
200 | Helpers.TryParse(cmdparams[0], out newbots); | 200 | Helpers.TryParse(cmdparams[0], out newbots); |
201 | 201 | ||
202 | if (newbots > 0) | 202 | if (newbots > 0) |
203 | addbots(newbots); | 203 | addbots(newbots); |
204 | break; | 204 | break; |
diff --git a/OpenSim/Tools/pCampBot/pCampBot.cs b/OpenSim/Tools/pCampBot/pCampBot.cs index 81ec2b2..9cde451 100644 --- a/OpenSim/Tools/pCampBot/pCampBot.cs +++ b/OpenSim/Tools/pCampBot/pCampBot.cs | |||
@@ -54,9 +54,9 @@ namespace pCampBot | |||
54 | else | 54 | else |
55 | { | 55 | { |
56 | int botcount = config.GetInt("botcount", 1); | 56 | int botcount = config.GetInt("botcount", 1); |
57 | 57 | ||
58 | BotManager bm = new BotManager(); | 58 | BotManager bm = new BotManager(); |
59 | 59 | ||
60 | //startup specified number of bots. 1 is the default | 60 | //startup specified number of bots. 1 is the default |
61 | bm.dobotStartup(botcount, config); | 61 | bm.dobotStartup(botcount, config); |
62 | while (true) | 62 | while (true) |
@@ -70,18 +70,18 @@ namespace pCampBot | |||
70 | { | 70 | { |
71 | //Set up our nifty config.. thanks to nini | 71 | //Set up our nifty config.. thanks to nini |
72 | ArgvConfigSource cs = new ArgvConfigSource(args); | 72 | ArgvConfigSource cs = new ArgvConfigSource(args); |
73 | 73 | ||
74 | cs.AddSwitch("Startup", "botcount","n"); | 74 | cs.AddSwitch("Startup", "botcount","n"); |
75 | cs.AddSwitch("Startup", "loginuri","l"); | 75 | cs.AddSwitch("Startup", "loginuri","l"); |
76 | cs.AddSwitch("Startup", "firstname"); | 76 | cs.AddSwitch("Startup", "firstname"); |
77 | cs.AddSwitch("Startup", "lastname"); | 77 | cs.AddSwitch("Startup", "lastname"); |
78 | cs.AddSwitch("Startup", "password"); | 78 | cs.AddSwitch("Startup", "password"); |
79 | cs.AddSwitch("Startup", "help","h"); | 79 | cs.AddSwitch("Startup", "help","h"); |
80 | 80 | ||
81 | IConfig ol = cs.Configs["Startup"]; | 81 | IConfig ol = cs.Configs["Startup"]; |
82 | return ol; | 82 | return ol; |
83 | } | 83 | } |
84 | 84 | ||
85 | private static void Help() | 85 | private static void Help() |
86 | { | 86 | { |
87 | Console.WriteLine( | 87 | Console.WriteLine( |