ipv6 update

This commit is contained in:
Luke Pulverenti 2016-03-25 01:39:49 -04:00
parent 1a72e3b596
commit 22730746eb
3 changed files with 23 additions and 1 deletions

View File

@ -126,6 +126,23 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
}
}
private void AddIpv4Option(HttpWebRequest request, HttpRequestOptions options)
{
if (!options.PreferIpv4)
{
return;
}
request.ServicePoint.BindIPEndPointDelegate = (servicePount, remoteEndPoint, retryCount) =>
{
if (remoteEndPoint.AddressFamily == AddressFamily.InterNetwork)
{
return new IPEndPoint(IPAddress.Any, 0);
}
throw new InvalidOperationException("no IPv4 address");
};
}
private WebRequest GetRequest(HttpRequestOptions options, string method, bool enableHttpCompression)
{
var request = CreateWebRequest(options.Url);
@ -133,6 +150,8 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
if (httpWebRequest != null)
{
AddIpv4Option(httpWebRequest, options);
AddRequestHeaders(httpWebRequest, options);
httpWebRequest.AutomaticDecompression = enableHttpCompression ? DecompressionMethods.Deflate : DecompressionMethods.None;

View File

@ -96,6 +96,7 @@ namespace MediaBrowser.Common.Net
public TimeSpan CacheLength { get; set; }
public int TimeoutMs { get; set; }
public bool PreferIpv4 { get; set; }
private string GetHeaderValue(string name)
{

View File

@ -70,7 +70,9 @@ namespace MediaBrowser.Server.Implementations.Connect
LogErrors = logErrors,
// Seeing block length errors with our server
EnableHttpCompression = false
EnableHttpCompression = false,
PreferIpv4 = true
}).ConfigureAwait(false))
{