General code refactoring.

This commit is contained in:
Christian Kratky
2020-05-21 12:40:51 +02:00
parent 3f5d4e9825
commit dbe12b9c48
27 changed files with 192 additions and 119 deletions
@@ -20,7 +20,7 @@ namespace MQTTnet.Implementations
public CrossPlatformSocket()
{
// Having this contructor is important because avoiding the address family as parameter
// Having this constructor is important because avoiding the address family as parameter
// will make use of dual mode in the .net framework.
_socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
}
@@ -33,75 +33,34 @@ namespace MQTTnet.Implementations
public bool NoDelay
{
get
{
return (int)_socket.GetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay) > 0;
}
set
{
_socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, value ? 1 : 0);
}
get => (int)_socket.GetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay) > 0;
set => _socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, value ? 1 : 0);
}
public bool DualMode
{
get
{
return _socket.DualMode;
}
set
{
_socket.DualMode = value;
}
get => _socket.DualMode;
set => _socket.DualMode = value;
}
public int ReceiveBufferSize
{
get
{
return _socket.ReceiveBufferSize;
}
set
{
_socket.ReceiveBufferSize = value;
}
get => _socket.ReceiveBufferSize;
set => _socket.ReceiveBufferSize = value;
}
public int SendBufferSize
{
get
{
return _socket.SendBufferSize;
}
set
{
_socket.SendBufferSize = value;
}
get => _socket.SendBufferSize;
set => _socket.SendBufferSize = value;
}
public EndPoint RemoteEndPoint
{
get
{
return _socket.RemoteEndPoint;
}
}
public EndPoint RemoteEndPoint => _socket.RemoteEndPoint;
public bool ReuseAddress
{
get
{
return (int)_socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress) != 0;
}
set
{
_socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, value ? 1 : 0);
}
get => (int)_socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress) != 0;
set => _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, value ? 1 : 0);
}
public async Task<CrossPlatformSocket> AcceptAsync()
@@ -17,14 +17,14 @@ using MQTTnet.Server;
namespace MQTTnet.Implementations
{
public class MqttTcpChannel : IMqttChannel
public sealed class MqttTcpChannel : IMqttChannel
{
private readonly MqttClientTcpOptions _options;
private readonly int _bufferSize;
readonly MqttClientTcpOptions _options;
readonly int _bufferSize;
private StreamSocket _socket;
private Stream _readStream;
private Stream _writeStream;
StreamSocket _socket;
Stream _readStream;
Stream _writeStream;
public MqttTcpChannel(IMqttClientOptions clientOptions)
{
@@ -13,7 +13,7 @@ using System.Threading.Tasks;
namespace MQTTnet.Implementations
{
public sealed class MqttTcpChannel : IDisposable, IMqttChannel
public sealed class MqttTcpChannel : IMqttChannel
{
readonly IMqttClientOptions _clientOptions;
readonly MqttClientTcpOptions _options;
@@ -162,7 +162,6 @@ namespace MQTTnet.Implementations
}
catch (ObjectDisposedException)
{
return;
}
catch (IOException exception)
{
@@ -205,7 +204,6 @@ namespace MQTTnet.Implementations
{
return certificateValidationCallback(x509Certificate, chain, sslPolicyErrors, _clientOptions);
}
#endregion
var certificateValidationHandler = _options?.TlsOptions?.CertificateValidationHandler;
@@ -229,7 +227,7 @@ namespace MQTTnet.Implementations
if (chain.ChainStatus.Any(c => c.Status == X509ChainStatusFlags.RevocationStatusUnknown || c.Status == X509ChainStatusFlags.Revoked || c.Status == X509ChainStatusFlags.OfflineRevocation))
{
if (!_options.TlsOptions.IgnoreCertificateRevocationErrors)
if (_options?.TlsOptions?.IgnoreCertificateRevocationErrors != true)
{
return false;
}
@@ -237,13 +235,13 @@ namespace MQTTnet.Implementations
if (chain.ChainStatus.Any(c => c.Status == X509ChainStatusFlags.PartialChain))
{
if (!_options.TlsOptions.IgnoreCertificateChainErrors)
if (_options?.TlsOptions?.IgnoreCertificateChainErrors != true)
{
return false;
}
}
return _options.TlsOptions.AllowUntrustedCertificates;
return _options?.TlsOptions?.AllowUntrustedCertificates == true;
}
X509CertificateCollection LoadCertificates()
@@ -130,7 +130,7 @@ namespace MQTTnet.Implementations
}
}
private Task OnClientAcceptedAsync(IMqttChannelAdapter channelAdapter)
Task OnClientAcceptedAsync(IMqttChannelAdapter channelAdapter)
{
var clientHandler = ClientHandler;
if (clientHandler == null)
@@ -24,8 +24,8 @@ namespace MQTTnet.Implementations
readonly MqttServerTlsTcpEndpointOptions _tlsOptions;
readonly X509Certificate2 _tlsCertificate;
private CrossPlatformSocket _socket;
private IPEndPoint _localEndPoint;
CrossPlatformSocket _socket;
IPEndPoint _localEndPoint;
public MqttTcpServerListener(
AddressFamily addressFamily,
@@ -35,7 +35,7 @@ namespace MQTTnet.Implementations
public bool IsSecureConnection { get; private set; }
public X509Certificate2 ClientCertificate { get; private set; }
public X509Certificate2 ClientCertificate { get; }
public async Task ConnectAsync(CancellationToken cancellationToken)
{