Add the adapter Endpoint to the connection validator.

This commit is contained in:
Christian Kratky
2018-07-04 21:57:51 +02:00
parent 6ca6a52ae8
commit 9fa5e2dc1f
2 changed files with 8 additions and 4 deletions
@@ -212,7 +212,7 @@ namespace MQTTnet.Server
// Switch to the required protocol version before sending any response.
clientAdapter.PacketSerializer.ProtocolVersion = connectPacket.ProtocolVersion;
var connectReturnCode = ValidateConnection(connectPacket);
var connectReturnCode = ValidateConnection(connectPacket, clientAdapter);
if (connectReturnCode != MqttConnectReturnCode.ConnectionAccepted)
{
await clientAdapter.SendPacketAsync(
@@ -268,7 +268,7 @@ namespace MQTTnet.Server
}
}
private MqttConnectReturnCode ValidateConnection(MqttConnectPacket connectPacket)
private MqttConnectReturnCode ValidateConnection(MqttConnectPacket connectPacket, IMqttChannelAdapter clientAdapter)
{
if (_options.ConnectionValidator == null)
{
@@ -279,7 +279,8 @@ namespace MQTTnet.Server
connectPacket.ClientId,
connectPacket.Username,
connectPacket.Password,
connectPacket.WillMessage);
connectPacket.WillMessage,
clientAdapter.Endpoint);
_options.ConnectionValidator(context);
return context.ReturnCode;
@@ -4,12 +4,13 @@ namespace MQTTnet.Server
{
public class MqttConnectionValidatorContext
{
public MqttConnectionValidatorContext(string clientId, string username, string password, MqttApplicationMessage willMessage)
public MqttConnectionValidatorContext(string clientId, string username, string password, MqttApplicationMessage willMessage, string endpoint)
{
ClientId = clientId;
Username = username;
Password = password;
WillMessage = willMessage;
Endpoint = endpoint;
}
public string ClientId { get; }
@@ -20,6 +21,8 @@ namespace MQTTnet.Server
public MqttApplicationMessage WillMessage { get; }
public string Endpoint { get; }
public MqttConnectReturnCode ReturnCode { get; set; } = MqttConnectReturnCode.ConnectionAccepted;
}
}