diff options
author | Melanie | 2013-08-01 01:23:24 +0100 |
---|---|---|
committer | Melanie | 2013-08-01 01:23:24 +0100 |
commit | 21f5e670303ee978c747567e674e5ebe256ad2c7 (patch) | |
tree | 19c3740cbb8bf78d038e64b2fb66ea837cc8f724 /OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |
parent | Merge branch 'master' into careminster (diff) | |
parent | Include missing reference that probably stops windows build from commit 12995... (diff) | |
download | opensim-SC-21f5e670303ee978c747567e674e5ebe256ad2c7.zip opensim-SC-21f5e670303ee978c747567e674e5ebe256ad2c7.tar.gz opensim-SC-21f5e670303ee978c747567e674e5ebe256ad2c7.tar.bz2 opensim-SC-21f5e670303ee978c747567e674e5ebe256ad2c7.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 39 |
1 files changed, 28 insertions, 11 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 544b54b..2a2c819 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -69,9 +69,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
69 | 69 | ||
70 | StatsManager.RegisterStat( | 70 | StatsManager.RegisterStat( |
71 | new Stat( | 71 | new Stat( |
72 | "ClientLogoutsDueToNoReceives", | ||
73 | "Number of times a client has been logged out because no packets were received before the timeout.", | ||
74 | "", | ||
75 | "", | ||
76 | "clientstack", | ||
77 | scene.Name, | ||
78 | StatType.Pull, | ||
79 | MeasuresOfInterest.None, | ||
80 | stat => stat.Value = m_udpServer.ClientLogoutsDueToNoReceives, | ||
81 | StatVerbosity.Debug)); | ||
82 | |||
83 | StatsManager.RegisterStat( | ||
84 | new Stat( | ||
72 | "IncomingUDPReceivesCount", | 85 | "IncomingUDPReceivesCount", |
73 | "Number of UDP receives performed", | 86 | "Number of UDP receives performed", |
74 | "Number of UDP receives performed", | 87 | "", |
75 | "", | 88 | "", |
76 | "clientstack", | 89 | "clientstack", |
77 | scene.Name, | 90 | scene.Name, |
@@ -84,7 +97,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
84 | new Stat( | 97 | new Stat( |
85 | "IncomingPacketsProcessedCount", | 98 | "IncomingPacketsProcessedCount", |
86 | "Number of inbound LL protocol packets processed", | 99 | "Number of inbound LL protocol packets processed", |
87 | "Number of inbound LL protocol packets processed", | 100 | "", |
88 | "", | 101 | "", |
89 | "clientstack", | 102 | "clientstack", |
90 | scene.Name, | 103 | scene.Name, |
@@ -97,7 +110,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
97 | new Stat( | 110 | new Stat( |
98 | "OutgoingUDPSendsCount", | 111 | "OutgoingUDPSendsCount", |
99 | "Number of UDP sends performed", | 112 | "Number of UDP sends performed", |
100 | "Number of UDP sends performed", | 113 | "", |
101 | "", | 114 | "", |
102 | "clientstack", | 115 | "clientstack", |
103 | scene.Name, | 116 | scene.Name, |
@@ -149,6 +162,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
149 | /// <summary>Maximum transmission unit, or UDP packet size, for the LLUDP protocol</summary> | 162 | /// <summary>Maximum transmission unit, or UDP packet size, for the LLUDP protocol</summary> |
150 | public const int MTU = 1400; | 163 | public const int MTU = 1400; |
151 | 164 | ||
165 | /// <summary>Number of forced client logouts due to no receipt of packets before timeout.</summary> | ||
166 | public int ClientLogoutsDueToNoReceives { get; private set; } | ||
167 | |||
152 | /// <summary> | 168 | /// <summary> |
153 | /// Default packet debug level given to new clients | 169 | /// Default packet debug level given to new clients |
154 | /// </summary> | 170 | /// </summary> |
@@ -1058,7 +1074,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1058 | // Fire this out on a different thread so that we don't hold up outgoing packet processing for | 1074 | // Fire this out on a different thread so that we don't hold up outgoing packet processing for |
1059 | // everybody else if this is being called due to an ack timeout. | 1075 | // everybody else if this is being called due to an ack timeout. |
1060 | // This is the same as processing as the async process of a logout request. | 1076 | // This is the same as processing as the async process of a logout request. |
1061 | Util.FireAndForget(o => DeactivateClientDueToTimeout(client)); | 1077 | Util.FireAndForget(o => DeactivateClientDueToTimeout(client, timeoutTicks)); |
1062 | 1078 | ||
1063 | return; | 1079 | return; |
1064 | } | 1080 | } |
@@ -1842,18 +1858,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1842 | /// regular client pings. | 1858 | /// regular client pings. |
1843 | /// </remarks> | 1859 | /// </remarks> |
1844 | /// <param name='client'></param> | 1860 | /// <param name='client'></param> |
1845 | private void DeactivateClientDueToTimeout(LLClientView client) | 1861 | /// <param name='timeoutTicks'></param> |
1862 | private void DeactivateClientDueToTimeout(LLClientView client, int timeoutTicks) | ||
1846 | { | 1863 | { |
1847 | lock (client.CloseSyncLock) | 1864 | lock (client.CloseSyncLock) |
1848 | { | 1865 | { |
1866 | ClientLogoutsDueToNoReceives++; | ||
1867 | |||
1849 | m_log.WarnFormat( | 1868 | m_log.WarnFormat( |
1850 | "[LLUDPSERVER]: Ack timeout, disconnecting {0} agent for {1} in {2}", | 1869 | "[LLUDPSERVER]: No packets received from {0} agent of {1} for {2}ms in {3}. Disconnecting.", |
1851 | client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, m_scene.RegionInfo.RegionName); | 1870 | client.SceneAgent.IsChildAgent ? "child" : "root", client.Name, timeoutTicks, m_scene.Name); |
1852 | |||
1853 | StatsManager.SimExtraStats.AddAbnormalClientThreadTermination(); | ||
1854 | 1871 | ||
1855 | if (!client.SceneAgent.IsChildAgent) | 1872 | if (!client.SceneAgent.IsChildAgent) |
1856 | client.Kick("Simulator logged you out due to connection timeout"); | 1873 | client.Kick("Simulator logged you out due to connection timeout."); |
1857 | 1874 | ||
1858 | client.CloseWithoutChecks(true); | 1875 | client.CloseWithoutChecks(true); |
1859 | } | 1876 | } |