소스 검색

Add the adapter Endpoint to the connection validator.

release/3.x.x
Christian Kratky 6 년 전
부모
커밋
9fa5e2dc1f
2개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. +4
    -3
      Source/MQTTnet/Server/MqttClientSessionsManager.cs
  2. +4
    -1
      Source/MQTTnet/Server/MqttConnectionValidatorContext.cs

+ 4
- 3
Source/MQTTnet/Server/MqttClientSessionsManager.cs 파일 보기

@@ -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
- 1
Source/MQTTnet/Server/MqttConnectionValidatorContext.cs 파일 보기

@@ -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;
}
}

불러오는 중...
취소
저장