You've already forked linux-packaging-mono
Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
59
external/referencesource/System.ServiceModel/System/ServiceModel/Channels/TcpConnectionPool.cs
vendored
Normal file
59
external/referencesource/System.ServiceModel/System/ServiceModel/Channels/TcpConnectionPool.cs
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//----------------------------------------------------------------------------
|
||||
namespace System.ServiceModel.Channels
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Globalization;
|
||||
using System.ServiceModel.Diagnostics;
|
||||
|
||||
class TcpConnectionPoolRegistry : ConnectionPoolRegistry
|
||||
{
|
||||
public TcpConnectionPoolRegistry()
|
||||
: base()
|
||||
{
|
||||
}
|
||||
|
||||
protected override ConnectionPool CreatePool(IConnectionOrientedTransportChannelFactorySettings settings)
|
||||
{
|
||||
ITcpChannelFactorySettings tcpSettings = (ITcpChannelFactorySettings)settings;
|
||||
return new TcpConnectionPool(tcpSettings);
|
||||
}
|
||||
|
||||
class TcpConnectionPool : ConnectionPool
|
||||
{
|
||||
public TcpConnectionPool(ITcpChannelFactorySettings settings)
|
||||
: base(settings, settings.LeaseTimeout)
|
||||
{
|
||||
}
|
||||
|
||||
protected override string GetPoolKey(EndpointAddress address, Uri via)
|
||||
{
|
||||
int port = via.Port;
|
||||
if (port == -1)
|
||||
{
|
||||
port = TcpUri.DefaultPort;
|
||||
}
|
||||
|
||||
string normalizedHost = via.DnsSafeHost.ToUpperInvariant();
|
||||
|
||||
return string.Format(CultureInfo.InvariantCulture, @"[{0}, {1}]", normalizedHost, port);
|
||||
}
|
||||
|
||||
public override bool IsCompatible(IConnectionOrientedTransportChannelFactorySettings settings)
|
||||
{
|
||||
ITcpChannelFactorySettings tcpSettings = (ITcpChannelFactorySettings)settings;
|
||||
return (
|
||||
(this.LeaseTimeout == tcpSettings.LeaseTimeout) &&
|
||||
base.IsCompatible(settings)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user