diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs
index e93ca1f38..65f053ce4 100644
--- a/src/Discord.Net/DiscordClient.cs
+++ b/src/Discord.Net/DiscordClient.cs
@@ -253,7 +253,8 @@ namespace Discord
_api.Token = token;
string gateway = (await _api.Gateway().ConfigureAwait(false)).Url;
- gateway = gateway.Replace("discord.gg", "discordapp.net"); //Temporary SSL workaround
+ if (_config.UseAlternateEndpoint)
+ gateway = gateway.Replace("discord.gg", "discordapp.net"); //Temporary SSL workaround
if (_config.LogLevel >= LogMessageSeverity.Verbose)
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, $"Websocket endpoint: {gateway}");
diff --git a/src/Discord.Net/DiscordClientConfig.cs b/src/Discord.Net/DiscordClientConfig.cs
index c4a67597b..91eb9ec06 100644
--- a/src/Discord.Net/DiscordClientConfig.cs
+++ b/src/Discord.Net/DiscordClientConfig.cs
@@ -49,6 +49,9 @@ namespace Discord
/// (Experimental) Enables the voice websocket and UDP client. This option requires the libsodium .dll or .so be in the local lib/ folder.
public bool EnableVoiceEncryption { get { return _enableVoiceEncryption; } set { SetValue(ref _enableVoiceEncryption, value); } }
private bool _enableVoiceEncryption = true;
+ /// (Experimental) Enables the client to be simultaneously connected to multiple channels at once (Discord still limits you to one channel per server).
+ public bool EnableVoiceMultiserver { get { return _enableVoiceMultiserver; } set { SetValue(ref _enableVoiceMultiserver, value); } }
+ private bool _enableVoiceMultiserver = false;
#else
internal DiscordVoiceMode VoiceMode => DiscordVoiceMode.Disabled;
internal bool EnableVoiceEncryption => false;
@@ -60,15 +63,17 @@ namespace Discord
/// (Experimental) Maintains the LastActivity property for users, showing when they last made an action (sent message, joined server, typed, etc).
public bool TrackActivity { get { return _trackActivity; } set { SetValue(ref _trackActivity, value); } }
private bool _trackActivity = true;
+ /// (Experimental) Uses a temporary workaround to the SSL issues via an alternate endpoint provided by the Discord developers. This option will be removed when the certificate chain is fixed on the main endpoints.
+ public bool UseAlternateEndpoint { get { return _useAlternateEndpoint; } set { SetValue(ref _useAlternateEndpoint, value); } }
+ private bool _useAlternateEndpoint = false;
- /// (Experimental) Enables the client to be simultaneously connected to multiple channels at once (Discord still limits you to one channel per server).
- public bool EnableVoiceMultiserver { get { return _enableVoiceMultiserver; } set { SetValue(ref _enableVoiceMultiserver, value); } }
- private bool _enableVoiceMultiserver = false;
+ //Internals
internal bool VoiceOnly { get { return _voiceOnly; } set { SetValue(ref _voiceOnly, value); } }
private bool _voiceOnly;
internal uint VoiceClientId { get { return _voiceClientId; } set { SetValue(ref _voiceClientId, value); } }
private uint _voiceClientId;
+
internal string UserAgent
{
get