You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -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