From 659e63f2b4b04c8ae99f46f594877035810ee8ae Mon Sep 17 00:00:00 2001 From: Master Kwoth Date: Fri, 8 Apr 2016 15:37:57 +0200 Subject: [PATCH 1/4] Voice Socket error fix --- src/Discord.Net.Audio/Net/VoiceSocket.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Discord.Net.Audio/Net/VoiceSocket.cs b/src/Discord.Net.Audio/Net/VoiceSocket.cs index f6b15055b..5cf0ed209 100644 --- a/src/Discord.Net.Audio/Net/VoiceSocket.cs +++ b/src/Discord.Net.Audio/Net/VoiceSocket.cs @@ -407,7 +407,7 @@ namespace Discord.Net.WebSockets WebSocketMessage msg; using (var reader = new JsonTextReader(new StringReader(json))) msg = _serializer.Deserialize(reader, typeof(WebSocketMessage)) as WebSocketMessage; - + var opCode = (OpCodes)msg.Operation; switch (opCode) { @@ -418,7 +418,11 @@ namespace Discord.Net.WebSockets var payload = (msg.Payload as JToken).ToObject(_serializer); _heartbeatInterval = payload.HeartbeatInterval; _ssrc = payload.SSRC; - string hostname = Host.Substring(0, Host.IndexOf('?')).Replace("wss://", ""); + string hostname; + if (Host.Contains("?")) + hostname = Host.Substring(0, Host.IndexOf('?')).Replace("wss://", ""); + else + hostname = Host.Replace("wss://", ""); var address = (await Dns.GetHostAddressesAsync(hostname).ConfigureAwait(false)).FirstOrDefault(); _endpoint = new IPEndPoint(address, payload.Port); From 765e986018ad6536b016fa080fff2ed150162b73 Mon Sep 17 00:00:00 2001 From: Master Kwoth Date: Fri, 8 Apr 2016 15:49:24 +0200 Subject: [PATCH 2/4] Now getting all of the large server data properly --- src/Discord.Net/DiscordClient.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index aa3d402c8..21b41c1fc 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -529,23 +529,23 @@ namespace Discord try { ulong serverId; - ulong[] serverIds = new ulong[50]; - int i = 0; + const short batchSize = 50; + int largeServersCount = 0; await Task.Delay(2500, cancelToken); - while (true) + do { - while (_largeServers.TryDequeue(out serverId) && i < 50) - serverIds[i++] = serverId; - if (i > 0) + largeServersCount = 0; + ulong[] serverIds = new ulong[batchSize]; + while (largeServersCount < batchSize && _largeServers.TryDequeue(out serverIds[largeServersCount++])) { } + if (largeServersCount > 0) { + Logger.Warning($"Downloading data for {largeServersCount} large servers."); cancelToken.ThrowIfCancellationRequested(); GatewaySocket.SendRequestMembers(serverIds, "", 0); await Task.Delay(1500, cancelToken); } - if (i < 50) - break; - } + } while (largeServersCount == batchSize); await Task.Delay(2500, cancelToken); EndConnect(); } From f7ba519989d22df9625688e8ffc529b7a78d5672 Mon Sep 17 00:00:00 2001 From: Master Kwoth Date: Fri, 8 Apr 2016 15:52:44 +0200 Subject: [PATCH 3/4] Changed loglevel to Verbose for large server data message --- src/Discord.Net/DiscordClient.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index 21b41c1fc..cd8a29904 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -540,7 +540,7 @@ namespace Discord while (largeServersCount < batchSize && _largeServers.TryDequeue(out serverIds[largeServersCount++])) { } if (largeServersCount > 0) { - Logger.Warning($"Downloading data for {largeServersCount} large servers."); + Logger.Verbose($"Downloading data for {largeServersCount} large servers."); cancelToken.ThrowIfCancellationRequested(); GatewaySocket.SendRequestMembers(serverIds, "", 0); await Task.Delay(1500, cancelToken); From e72d681b968c54bd0658dbd080f35e15b4e4d4de Mon Sep 17 00:00:00 2001 From: Master Kwoth Date: Fri, 8 Apr 2016 16:08:53 +0200 Subject: [PATCH 4/4] Removed unused variable --- src/Discord.Net/DiscordClient.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index cd8a29904..4862206e7 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -528,8 +528,6 @@ namespace Discord { try { - ulong serverId; - const short batchSize = 50; int largeServersCount = 0; await Task.Delay(2500, cancelToken);