diff options
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/Animation.cs | 19 | ||||
-rw-r--r-- | OpenSim/Framework/CachedTextureEventArg.cs | 46 | ||||
-rw-r--r-- | OpenSim/Framework/Console/LocalConsole.cs | 15 | ||||
-rw-r--r-- | OpenSim/Framework/EstateSettings.cs | 1 | ||||
-rw-r--r-- | OpenSim/Framework/IClientAPI.cs | 7 | ||||
-rw-r--r-- | OpenSim/Framework/IPeople.cs | 47 | ||||
-rw-r--r-- | OpenSim/Framework/IScene.cs | 7 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 6 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs | 12 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/MainServer.cs | 8 | ||||
-rw-r--r-- | OpenSim/Framework/Servers/ServerBase.cs | 5 | ||||
-rw-r--r-- | OpenSim/Framework/UserProfiles.cs | 117 | ||||
-rw-r--r-- | OpenSim/Framework/Util.cs | 22 | ||||
-rw-r--r-- | OpenSim/Framework/WebUtil.cs | 54 |
14 files changed, 338 insertions, 28 deletions
diff --git a/OpenSim/Framework/Animation.cs b/OpenSim/Framework/Animation.cs index 232f5a1..3425505 100644 --- a/OpenSim/Framework/Animation.cs +++ b/OpenSim/Framework/Animation.cs | |||
@@ -120,5 +120,24 @@ namespace OpenSim.Framework | |||
120 | sequenceNum = args["seq_num"].AsInteger(); | 120 | sequenceNum = args["seq_num"].AsInteger(); |
121 | } | 121 | } |
122 | 122 | ||
123 | public override bool Equals(object obj) | ||
124 | { | ||
125 | Animation other = obj as Animation; | ||
126 | if (other != null) | ||
127 | { | ||
128 | return (other.AnimID.Equals(this.AnimID) | ||
129 | && other.SequenceNum == this.SequenceNum | ||
130 | && other.ObjectID.Equals(this.ObjectID) ); | ||
131 | } | ||
132 | return base.Equals(obj); | ||
133 | } | ||
134 | |||
135 | public override string ToString() | ||
136 | { | ||
137 | return "AnimID=" + AnimID.ToString() | ||
138 | + "/seq=" + SequenceNum.ToString() | ||
139 | + "/objID=" + ObjectID.ToString(); | ||
140 | } | ||
141 | |||
123 | } | 142 | } |
124 | } | 143 | } |
diff --git a/OpenSim/Framework/CachedTextureEventArg.cs b/OpenSim/Framework/CachedTextureEventArg.cs new file mode 100644 index 0000000..239fc56 --- /dev/null +++ b/OpenSim/Framework/CachedTextureEventArg.cs | |||
@@ -0,0 +1,46 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
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 | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Text; | ||
30 | using OpenMetaverse; | ||
31 | |||
32 | namespace OpenSim.Framework | ||
33 | { | ||
34 | public class CachedTextureRequestArg | ||
35 | { | ||
36 | public int BakedTextureIndex; | ||
37 | public UUID WearableHashID; | ||
38 | } | ||
39 | |||
40 | public class CachedTextureResponseArg | ||
41 | { | ||
42 | public int BakedTextureIndex; | ||
43 | public UUID BakedTextureID; | ||
44 | public String HostName; | ||
45 | } | ||
46 | } | ||
diff --git a/OpenSim/Framework/Console/LocalConsole.cs b/OpenSim/Framework/Console/LocalConsole.cs index d41481f..a967db6 100644 --- a/OpenSim/Framework/Console/LocalConsole.cs +++ b/OpenSim/Framework/Console/LocalConsole.cs | |||
@@ -426,6 +426,21 @@ namespace OpenSim.Framework.Console | |||
426 | System.Console.Write("{0}", prompt); | 426 | System.Console.Write("{0}", prompt); |
427 | 427 | ||
428 | break; | 428 | break; |
429 | case ConsoleKey.Delete: | ||
430 | if (m_cursorXPosition == m_commandLine.Length) | ||
431 | break; | ||
432 | |||
433 | m_commandLine.Remove(m_cursorXPosition, 1); | ||
434 | |||
435 | SetCursorLeft(0); | ||
436 | m_cursorYPosition = SetCursorTop(m_cursorYPosition); | ||
437 | |||
438 | if (m_echo) | ||
439 | System.Console.Write("{0}{1} ", prompt, m_commandLine); | ||
440 | else | ||
441 | System.Console.Write("{0}", prompt); | ||
442 | |||
443 | break; | ||
429 | case ConsoleKey.End: | 444 | case ConsoleKey.End: |
430 | m_cursorXPosition = m_commandLine.Length; | 445 | m_cursorXPosition = m_commandLine.Length; |
431 | break; | 446 | break; |
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs index e03750b..5ddbd61 100644 --- a/OpenSim/Framework/EstateSettings.cs +++ b/OpenSim/Framework/EstateSettings.cs | |||
@@ -430,6 +430,5 @@ namespace OpenSim.Framework | |||
430 | { | 430 | { |
431 | return l_EstateGroups.Contains(groupID); | 431 | return l_EstateGroups.Contains(groupID); |
432 | } | 432 | } |
433 | |||
434 | } | 433 | } |
435 | } | 434 | } |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index ad3471a..6c9e7c9 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -65,6 +65,7 @@ namespace OpenSim.Framework | |||
65 | public delegate void NetworkStats(int inPackets, int outPackets, int unAckedBytes); | 65 | public delegate void NetworkStats(int inPackets, int outPackets, int unAckedBytes); |
66 | 66 | ||
67 | public delegate void SetAppearance(IClientAPI remoteClient, Primitive.TextureEntry textureEntry, byte[] visualParams, Vector3 AvSize, WearableCacheItem[] CacheItems); | 67 | public delegate void SetAppearance(IClientAPI remoteClient, Primitive.TextureEntry textureEntry, byte[] visualParams, Vector3 AvSize, WearableCacheItem[] CacheItems); |
68 | public delegate void CachedTextureRequest(IClientAPI remoteClient, int serial, List<CachedTextureRequestArg> cachedTextureRequest); | ||
68 | 69 | ||
69 | public delegate void StartAnim(IClientAPI remoteClient, UUID animID); | 70 | public delegate void StartAnim(IClientAPI remoteClient, UUID animID); |
70 | 71 | ||
@@ -789,6 +790,7 @@ namespace OpenSim.Framework | |||
789 | event EstateChangeInfo OnEstateChangeInfo; | 790 | event EstateChangeInfo OnEstateChangeInfo; |
790 | event EstateManageTelehub OnEstateManageTelehub; | 791 | event EstateManageTelehub OnEstateManageTelehub; |
791 | // [Obsolete("LLClientView Specific.")] | 792 | // [Obsolete("LLClientView Specific.")] |
793 | event CachedTextureRequest OnCachedTextureRequest; | ||
792 | event SetAppearance OnSetAppearance; | 794 | event SetAppearance OnSetAppearance; |
793 | // [Obsolete("LLClientView Specific - Replace and rename OnAvatarUpdate. Difference from SetAppearance?")] | 795 | // [Obsolete("LLClientView Specific - Replace and rename OnAvatarUpdate. Difference from SetAppearance?")] |
794 | event AvatarNowWearing OnAvatarNowWearing; | 796 | event AvatarNowWearing OnAvatarNowWearing; |
@@ -1100,14 +1102,15 @@ namespace OpenSim.Framework | |||
1100 | /// <param name="textureEntry"></param> | 1102 | /// <param name="textureEntry"></param> |
1101 | void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry); | 1103 | void SendAppearance(UUID agentID, byte[] visualParams, byte[] textureEntry); |
1102 | 1104 | ||
1105 | void SendCachedTextureResponse(ISceneEntity avatar, int serial, List<CachedTextureResponseArg> cachedTextures); | ||
1106 | |||
1103 | void SendStartPingCheck(byte seq); | 1107 | void SendStartPingCheck(byte seq); |
1104 | 1108 | ||
1105 | /// <summary> | 1109 | /// <summary> |
1106 | /// Tell the client that an object has been deleted | 1110 | /// Tell the client that an object has been deleted |
1107 | /// </summary> | 1111 | /// </summary> |
1108 | /// <param name="regionHandle"></param> | ||
1109 | /// <param name="localID"></param> | 1112 | /// <param name="localID"></param> |
1110 | void SendKillObject(ulong regionHandle, List<uint> localID); | 1113 | void SendKillObject(List<uint> localID); |
1111 | 1114 | ||
1112 | void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs); | 1115 | void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs); |
1113 | void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args); | 1116 | void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args); |
diff --git a/OpenSim/Framework/IPeople.cs b/OpenSim/Framework/IPeople.cs new file mode 100644 index 0000000..b88e103 --- /dev/null +++ b/OpenSim/Framework/IPeople.cs | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
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 | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using OpenMetaverse; | ||
31 | |||
32 | namespace OpenSim.Framework | ||
33 | { | ||
34 | public class UserData | ||
35 | { | ||
36 | public UUID Id { get; set; } | ||
37 | public string FirstName { get; set; } | ||
38 | public string LastName { get; set; } | ||
39 | public string HomeURL { get; set; } | ||
40 | public Dictionary<string, object> ServerURLs { get; set; } | ||
41 | } | ||
42 | |||
43 | public interface IPeople | ||
44 | { | ||
45 | List<UserData> GetUserData(string query, int page_size, int page_number); | ||
46 | } | ||
47 | } \ No newline at end of file | ||
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs index 87ec99e..8164f41 100644 --- a/OpenSim/Framework/IScene.cs +++ b/OpenSim/Framework/IScene.cs | |||
@@ -136,5 +136,10 @@ namespace OpenSim.Framework | |||
136 | ISceneObject DeserializeObject(string representation); | 136 | ISceneObject DeserializeObject(string representation); |
137 | 137 | ||
138 | bool CheckClient(UUID agentID, System.Net.IPEndPoint ep); | 138 | bool CheckClient(UUID agentID, System.Net.IPEndPoint ep); |
139 | |||
140 | /// <summary> | ||
141 | /// Start the scene and associated scripts within it. | ||
142 | /// </summary> | ||
143 | void Start(); | ||
139 | } | 144 | } |
140 | } | 145 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 97035e3..d29cc61 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | |||
@@ -454,7 +454,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
454 | } | 454 | } |
455 | 455 | ||
456 | OSHttpResponse resp = new OSHttpResponse(new HttpResponse(context, request),context); | 456 | OSHttpResponse resp = new OSHttpResponse(new HttpResponse(context, request),context); |
457 | 457 | resp.ReuseContext = true; | |
458 | HandleRequest(req, resp); | 458 | HandleRequest(req, resp); |
459 | 459 | ||
460 | 460 | ||
@@ -1850,8 +1850,8 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1850 | m_httpListener2.Start(64); | 1850 | m_httpListener2.Start(64); |
1851 | 1851 | ||
1852 | // Long Poll Service Manager with 3 worker threads a 25 second timeout for no events | 1852 | // Long Poll Service Manager with 3 worker threads a 25 second timeout for no events |
1853 | // m_PollServiceManager = new PollServiceRequestManager(this, 3, 25000); | ||
1854 | m_PollServiceManager = new PollServiceRequestManager(this, 4, 25000); | 1853 | m_PollServiceManager = new PollServiceRequestManager(this, 4, 25000); |
1854 | m_PollServiceManager.Start(); | ||
1855 | HTTPDRunning = true; | 1855 | HTTPDRunning = true; |
1856 | 1856 | ||
1857 | //HttpListenerContext context; | 1857 | //HttpListenerContext context; |
@@ -1904,7 +1904,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
1904 | HTTPDRunning = false; | 1904 | HTTPDRunning = false; |
1905 | try | 1905 | try |
1906 | { | 1906 | { |
1907 | // m_PollServiceManager.Stop(); | 1907 | m_PollServiceManager.Stop(); |
1908 | 1908 | ||
1909 | m_httpListener2.ExceptionThrown -= httpServerException; | 1909 | m_httpListener2.ExceptionThrown -= httpServerException; |
1910 | //m_httpListener2.DisconnectHandler = null; | 1910 | //m_httpListener2.DisconnectHandler = null; |
diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs index 5406f00..98789be 100644 --- a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs +++ b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs | |||
@@ -64,14 +64,17 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
64 | m_server = pSrv; | 64 | m_server = pSrv; |
65 | m_WorkerThreadCount = pWorkerThreadCount; | 65 | m_WorkerThreadCount = pWorkerThreadCount; |
66 | m_workerThreads = new Thread[m_WorkerThreadCount]; | 66 | m_workerThreads = new Thread[m_WorkerThreadCount]; |
67 | } | ||
67 | 68 | ||
69 | public void Start() | ||
70 | { | ||
68 | //startup worker threads | 71 | //startup worker threads |
69 | for (uint i = 0; i < m_WorkerThreadCount; i++) | 72 | for (uint i = 0; i < m_WorkerThreadCount; i++) |
70 | { | 73 | { |
71 | m_workerThreads[i] | 74 | m_workerThreads[i] |
72 | = Watchdog.StartThread( | 75 | = Watchdog.StartThread( |
73 | PoolWorkerJob, | 76 | PoolWorkerJob, |
74 | String.Format("PollServiceWorkerThread{0}", i), | 77 | string.Format("PollServiceWorkerThread{0}:{1}", i, m_server.Port), |
75 | ThreadPriority.Normal, | 78 | ThreadPriority.Normal, |
76 | false, | 79 | false, |
77 | false, | 80 | false, |
@@ -81,7 +84,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
81 | 84 | ||
82 | m_retrysThread = Watchdog.StartThread( | 85 | m_retrysThread = Watchdog.StartThread( |
83 | this.CheckRetries, | 86 | this.CheckRetries, |
84 | "PollServiceWatcherThread", | 87 | string.Format("PollServiceWatcherThread:{0}", m_server.Port), |
85 | ThreadPriority.Normal, | 88 | ThreadPriority.Normal, |
86 | false, | 89 | false, |
87 | true, | 90 | true, |
@@ -89,7 +92,6 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
89 | 1000 * 60 * 10); | 92 | 1000 * 60 * 10); |
90 | } | 93 | } |
91 | 94 | ||
92 | |||
93 | private void ReQueueEvent(PollServiceHttpRequest req) | 95 | private void ReQueueEvent(PollServiceHttpRequest req) |
94 | { | 96 | { |
95 | if (m_running) | 97 | if (m_running) |
@@ -140,13 +142,13 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
140 | } | 142 | } |
141 | } | 143 | } |
142 | 144 | ||
143 | ~PollServiceRequestManager() | 145 | public void Stop() |
144 | { | 146 | { |
145 | m_running = false; | 147 | m_running = false; |
146 | Thread.Sleep(1000); // let the world move | 148 | Thread.Sleep(1000); // let the world move |
147 | 149 | ||
148 | foreach (Thread t in m_workerThreads) | 150 | foreach (Thread t in m_workerThreads) |
149 | Watchdog.AbortThread(t.ManagedThreadId); | 151 | Watchdog.AbortThread(t.ManagedThreadId); |
150 | 152 | ||
151 | try | 153 | try |
152 | { | 154 | { |
diff --git a/OpenSim/Framework/Servers/MainServer.cs b/OpenSim/Framework/Servers/MainServer.cs index cfd34bb..d189580 100644 --- a/OpenSim/Framework/Servers/MainServer.cs +++ b/OpenSim/Framework/Servers/MainServer.cs | |||
@@ -121,12 +121,14 @@ namespace OpenSim.Framework.Servers | |||
121 | + " level >= 2 then long warnings are logged when receiving bad input data.\n" | 121 | + " level >= 2 then long warnings are logged when receiving bad input data.\n" |
122 | + " level >= 3 then short notices about all incoming non-poll HTTP requests are logged.\n" | 122 | + " level >= 3 then short notices about all incoming non-poll HTTP requests are logged.\n" |
123 | + " level >= 4 then the time taken to fulfill the request is logged.\n" | 123 | + " level >= 4 then the time taken to fulfill the request is logged.\n" |
124 | + " level >= 5 then a sample from the beginning of the incoming data is logged.\n" | 124 | + " level >= 5 then a sample from the beginning of the data is logged.\n" |
125 | + " level >= 6 then the entire incoming data is logged.\n" | 125 | + " level >= 6 then the entire data is logged.\n" |
126 | + " no level is specified then the current level is returned.\n\n" | 126 | + " no level is specified then the current level is returned.\n\n" |
127 | + "If out or all and\n" | 127 | + "If out or all and\n" |
128 | + " level >= 3 then short notices about all outgoing requests going through WebUtil are logged.\n" | 128 | + " level >= 3 then short notices about all outgoing requests going through WebUtil are logged.\n" |
129 | + " level >= 4 then the time taken to fulfill the request is logged.\n", | 129 | + " level >= 4 then the time taken to fulfill the request is logged.\n" |
130 | + " level >= 5 then a sample from the beginning of the data is logged.\n" | ||
131 | + " level >= 6 then the entire data is logged.\n", | ||
130 | HandleDebugHttpCommand); | 132 | HandleDebugHttpCommand); |
131 | } | 133 | } |
132 | 134 | ||
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs index 1ff8aca..b9e3c18 100644 --- a/OpenSim/Framework/Servers/ServerBase.cs +++ b/OpenSim/Framework/Servers/ServerBase.cs | |||
@@ -76,6 +76,11 @@ namespace OpenSim.Framework.Servers | |||
76 | 76 | ||
77 | protected void CreatePIDFile(string path) | 77 | protected void CreatePIDFile(string path) |
78 | { | 78 | { |
79 | if (File.Exists(path)) | ||
80 | m_log.ErrorFormat( | ||
81 | "[SERVER BASE]: Previous pid file {0} still exists on startup. Possibly previously unclean shutdown.", | ||
82 | path); | ||
83 | |||
79 | try | 84 | try |
80 | { | 85 | { |
81 | string pidstring = System.Diagnostics.Process.GetCurrentProcess().Id.ToString(); | 86 | string pidstring = System.Diagnostics.Process.GetCurrentProcess().Id.ToString(); |
diff --git a/OpenSim/Framework/UserProfiles.cs b/OpenSim/Framework/UserProfiles.cs new file mode 100644 index 0000000..6133591 --- /dev/null +++ b/OpenSim/Framework/UserProfiles.cs | |||
@@ -0,0 +1,117 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
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 | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using OpenMetaverse; | ||
30 | |||
31 | namespace OpenSim.Framework | ||
32 | { | ||
33 | public class UserClassifiedAdd | ||
34 | { | ||
35 | public UUID ClassifiedId = UUID.Zero; | ||
36 | public UUID CreatorId = UUID.Zero; | ||
37 | public int CreationDate = 0; | ||
38 | public int ExpirationDate = 0; | ||
39 | public int Category = 0; | ||
40 | public string Name = string.Empty; | ||
41 | public string Description = string.Empty; | ||
42 | public UUID ParcelId = UUID.Zero; | ||
43 | public int ParentEstate = 0; | ||
44 | public UUID SnapshotId = UUID.Zero; | ||
45 | public string SimName = string.Empty; | ||
46 | public string GlobalPos = "<0,0,0>"; | ||
47 | public string ParcelName = string.Empty; | ||
48 | public byte Flags = 0; | ||
49 | public int Price = 0; | ||
50 | } | ||
51 | |||
52 | public class UserProfileProperties | ||
53 | { | ||
54 | public UUID UserId = UUID.Zero; | ||
55 | public UUID PartnerId = UUID.Zero; | ||
56 | public bool PublishProfile = false; | ||
57 | public bool PublishMature = false; | ||
58 | public string WebUrl = string.Empty; | ||
59 | public int WantToMask = 0; | ||
60 | public string WantToText = string.Empty; | ||
61 | public int SkillsMask = 0; | ||
62 | public string SkillsText = string.Empty; | ||
63 | public string Language = string.Empty; | ||
64 | public UUID ImageId = UUID.Zero; | ||
65 | public string AboutText = string.Empty; | ||
66 | public UUID FirstLifeImageId = UUID.Zero; | ||
67 | public string FirstLifeText = string.Empty; | ||
68 | } | ||
69 | |||
70 | public class UserProfilePick | ||
71 | { | ||
72 | public UUID PickId = UUID.Zero; | ||
73 | public UUID CreatorId = UUID.Zero; | ||
74 | public bool TopPick = false; | ||
75 | public string Name = string.Empty; | ||
76 | public string OriginalName = string.Empty; | ||
77 | public string Desc = string.Empty; | ||
78 | public UUID ParcelId = UUID.Zero; | ||
79 | public UUID SnapshotId = UUID.Zero; | ||
80 | public string User = string.Empty; | ||
81 | public string SimName = string.Empty; | ||
82 | public string GlobalPos = "<0,0,0>"; | ||
83 | public int SortOrder = 0; | ||
84 | public bool Enabled = false; | ||
85 | } | ||
86 | |||
87 | public class UserProfileNotes | ||
88 | { | ||
89 | public UUID UserId; | ||
90 | public UUID TargetId; | ||
91 | public string Notes; | ||
92 | } | ||
93 | |||
94 | public class UserAccountProperties | ||
95 | { | ||
96 | public string EmailAddress = string.Empty; | ||
97 | public string Firstname = string.Empty; | ||
98 | public string LastName = string.Empty; | ||
99 | public string Password = string.Empty; | ||
100 | public string UserId = string.Empty; | ||
101 | } | ||
102 | |||
103 | public class UserAccountAuth | ||
104 | { | ||
105 | public string UserId = UUID.Zero.ToString(); | ||
106 | public string Password = string.Empty; | ||
107 | } | ||
108 | |||
109 | public class UserAppData | ||
110 | { | ||
111 | public string TagId = string.Empty; | ||
112 | public string DataKey = string.Empty; | ||
113 | public string UserId = UUID.Zero.ToString(); | ||
114 | public string DataVal = string.Empty; | ||
115 | } | ||
116 | } | ||
117 | |||
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 557f38e..0852b49 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -1852,7 +1852,7 @@ namespace OpenSim.Framework | |||
1852 | case FireAndForgetMethod.SmartThreadPool: | 1852 | case FireAndForgetMethod.SmartThreadPool: |
1853 | if (m_ThreadPool == null) | 1853 | if (m_ThreadPool == null) |
1854 | InitThreadPool(15); | 1854 | InitThreadPool(15); |
1855 | m_ThreadPool.QueueWorkItem(SmartThreadPoolCallback, new object[] { realCallback, obj }); | 1855 | m_ThreadPool.QueueWorkItem((cb, o) => cb(o), realCallback, obj); |
1856 | break; | 1856 | break; |
1857 | case FireAndForgetMethod.Thread: | 1857 | case FireAndForgetMethod.Thread: |
1858 | Thread thread = new Thread(delegate(object o) { realCallback(o); }); | 1858 | Thread thread = new Thread(delegate(object o) { realCallback(o); }); |
@@ -1922,15 +1922,15 @@ namespace OpenSim.Framework | |||
1922 | return sb.ToString(); | 1922 | return sb.ToString(); |
1923 | } | 1923 | } |
1924 | 1924 | ||
1925 | private static object SmartThreadPoolCallback(object o) | 1925 | // private static object SmartThreadPoolCallback(object o) |
1926 | { | 1926 | // { |
1927 | object[] array = (object[])o; | 1927 | // object[] array = (object[])o; |
1928 | WaitCallback callback = (WaitCallback)array[0]; | 1928 | // WaitCallback callback = (WaitCallback)array[0]; |
1929 | object obj = array[1]; | 1929 | // object obj = array[1]; |
1930 | 1930 | // | |
1931 | callback(obj); | 1931 | // callback(obj); |
1932 | return null; | 1932 | // return null; |
1933 | } | 1933 | // } |
1934 | 1934 | ||
1935 | #endregion FireAndForget Threading Pattern | 1935 | #endregion FireAndForget Threading Pattern |
1936 | 1936 | ||
@@ -2148,7 +2148,7 @@ namespace OpenSim.Framework | |||
2148 | /// <param name="secret">the secret part</param> | 2148 | /// <param name="secret">the secret part</param> |
2149 | public static bool ParseUniversalUserIdentifier(string value, out UUID uuid, out string url, out string firstname, out string lastname, out string secret) | 2149 | public static bool ParseUniversalUserIdentifier(string value, out UUID uuid, out string url, out string firstname, out string lastname, out string secret) |
2150 | { | 2150 | { |
2151 | uuid = UUID.Zero; url = string.Empty; firstname = "Unknown"; lastname = "User"; secret = string.Empty; | 2151 | uuid = UUID.Zero; url = string.Empty; firstname = "Unknown"; lastname = "UserUPUUI"; secret = string.Empty; |
2152 | 2152 | ||
2153 | string[] parts = value.Split(';'); | 2153 | string[] parts = value.Split(';'); |
2154 | if (parts.Length >= 1) | 2154 | if (parts.Length >= 1) |
diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs index bf57fd4..312e9a9 100644 --- a/OpenSim/Framework/WebUtil.cs +++ b/OpenSim/Framework/WebUtil.cs | |||
@@ -151,6 +151,39 @@ namespace OpenSim.Framework | |||
151 | } | 151 | } |
152 | } | 152 | } |
153 | 153 | ||
154 | public static void LogOutgoingDetail(Stream outputStream) | ||
155 | { | ||
156 | using (StreamReader reader = new StreamReader(Util.Copy(outputStream), Encoding.UTF8)) | ||
157 | { | ||
158 | string output; | ||
159 | |||
160 | if (DebugLevel == 5) | ||
161 | { | ||
162 | const int sampleLength = 80; | ||
163 | char[] sampleChars = new char[sampleLength]; | ||
164 | reader.Read(sampleChars, 0, sampleLength); | ||
165 | output = new string(sampleChars); | ||
166 | } | ||
167 | else | ||
168 | { | ||
169 | output = reader.ReadToEnd(); | ||
170 | } | ||
171 | |||
172 | LogOutgoingDetail(output); | ||
173 | } | ||
174 | } | ||
175 | |||
176 | public static void LogOutgoingDetail(string output) | ||
177 | { | ||
178 | if (DebugLevel == 5) | ||
179 | { | ||
180 | output = output.Substring(0, 80); | ||
181 | output = output + "..."; | ||
182 | } | ||
183 | |||
184 | m_log.DebugFormat("[WEB UTIL]: {0}", output.Replace("\n", @"\n")); | ||
185 | } | ||
186 | |||
154 | private static OSDMap ServiceOSDRequestWorker(string url, OSDMap data, string method, int timeout, bool compressed) | 187 | private static OSDMap ServiceOSDRequestWorker(string url, OSDMap data, string method, int timeout, bool compressed) |
155 | { | 188 | { |
156 | int reqnum = RequestNumber++; | 189 | int reqnum = RequestNumber++; |
@@ -178,7 +211,11 @@ namespace OpenSim.Framework | |||
178 | // If there is some input, write it into the request | 211 | // If there is some input, write it into the request |
179 | if (data != null) | 212 | if (data != null) |
180 | { | 213 | { |
181 | strBuffer = OSDParser.SerializeJsonString(data); | 214 | strBuffer = OSDParser.SerializeJsonString(data); |
215 | |||
216 | if (DebugLevel >= 5) | ||
217 | LogOutgoingDetail(strBuffer); | ||
218 | |||
182 | byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuffer); | 219 | byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuffer); |
183 | 220 | ||
184 | if (compressed) | 221 | if (compressed) |
@@ -358,6 +395,10 @@ namespace OpenSim.Framework | |||
358 | if (data != null) | 395 | if (data != null) |
359 | { | 396 | { |
360 | queryString = BuildQueryString(data); | 397 | queryString = BuildQueryString(data); |
398 | |||
399 | if (DebugLevel >= 5) | ||
400 | LogOutgoingDetail(queryString); | ||
401 | |||
361 | byte[] buffer = System.Text.Encoding.UTF8.GetBytes(queryString); | 402 | byte[] buffer = System.Text.Encoding.UTF8.GetBytes(queryString); |
362 | 403 | ||
363 | request.ContentLength = buffer.Length; | 404 | request.ContentLength = buffer.Length; |
@@ -769,6 +810,9 @@ namespace OpenSim.Framework | |||
769 | int length = (int)buffer.Length; | 810 | int length = (int)buffer.Length; |
770 | request.ContentLength = length; | 811 | request.ContentLength = length; |
771 | 812 | ||
813 | if (WebUtil.DebugLevel >= 5) | ||
814 | WebUtil.LogOutgoingDetail(buffer); | ||
815 | |||
772 | request.BeginGetRequestStream(delegate(IAsyncResult res) | 816 | request.BeginGetRequestStream(delegate(IAsyncResult res) |
773 | { | 817 | { |
774 | Stream requestStream = request.EndGetRequestStream(res); | 818 | Stream requestStream = request.EndGetRequestStream(res); |
@@ -966,6 +1010,9 @@ namespace OpenSim.Framework | |||
966 | length = (int)obj.Length; | 1010 | length = (int)obj.Length; |
967 | request.ContentLength = length; | 1011 | request.ContentLength = length; |
968 | 1012 | ||
1013 | if (WebUtil.DebugLevel >= 5) | ||
1014 | WebUtil.LogOutgoingDetail(buffer); | ||
1015 | |||
969 | Stream requestStream = null; | 1016 | Stream requestStream = null; |
970 | try | 1017 | try |
971 | { | 1018 | { |
@@ -1111,6 +1158,9 @@ namespace OpenSim.Framework | |||
1111 | int length = (int)buffer.Length; | 1158 | int length = (int)buffer.Length; |
1112 | request.ContentLength = length; | 1159 | request.ContentLength = length; |
1113 | 1160 | ||
1161 | if (WebUtil.DebugLevel >= 5) | ||
1162 | WebUtil.LogOutgoingDetail(buffer); | ||
1163 | |||
1114 | Stream requestStream = null; | 1164 | Stream requestStream = null; |
1115 | try | 1165 | try |
1116 | { | 1166 | { |
@@ -1213,4 +1263,4 @@ namespace OpenSim.Framework | |||
1213 | return deserial; | 1263 | return deserial; |
1214 | } | 1264 | } |
1215 | } | 1265 | } |
1216 | } | 1266 | } \ No newline at end of file |