Skip to content

Commit c7c61fa

Browse files
Florian-LimpoeckDC2-DanielKrueger
authored andcommitted
made session present flag modifiable in connack packet
1 parent c116990 commit c7c61fa

File tree

2 files changed

+42
-1
lines changed

2 files changed

+42
-1
lines changed

hivemq-edge/src/main/java/com/hivemq/extensions/packets/connack/ModifiableConnackPacketImpl.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
public class ModifiableConnackPacketImpl implements ModifiableConnackPacket {
4242

4343
private @NotNull ConnackReasonCode reasonCode;
44-
private final boolean sessionPresent;
44+
private boolean sessionPresent;
4545
private final long sessionExpiryInterval;
4646
private final int serverKeepAlive;
4747
private @Nullable String assignedClientId;
@@ -155,6 +155,15 @@ public void setAssignedClientIdentifier(final @Nullable String assignedClientIde
155155
modified = true;
156156
}
157157

158+
@Override
159+
public void setSessionPresent(final boolean sessionPresent) {
160+
if (Objects.equals(this.sessionPresent, sessionPresent)) {
161+
return;
162+
}
163+
this.sessionPresent = sessionPresent;
164+
modified = true;
165+
}
166+
158167
@Override
159168
public @NotNull Optional<String> getAuthenticationMethod() {
160169
return Optional.ofNullable(authenticationMethod);

hivemq-edge/src/test/java/com/hivemq/extensions/packets/connack/ModifiableConnackPacketImplTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,4 +785,36 @@ public void copy_changes() {
785785
UserPropertiesImpl.of(ImmutableList.of(new MqttUserProperty("testName", "testValue"))));
786786
assertEquals(expectedPacket, copy);
787787
}
788+
789+
@Test
790+
public void setSessionPresent() {
791+
final ConnackPacketImpl packet = new ConnackPacketImpl(ConnackReasonCode.UNSPECIFIED_ERROR,
792+
true,
793+
10,
794+
60,
795+
null,
796+
null,
797+
null,
798+
3,
799+
1000,
800+
10,
801+
Qos.AT_LEAST_ONCE,
802+
true,
803+
true,
804+
true,
805+
true,
806+
null,
807+
null,
808+
null,
809+
UserPropertiesImpl.of(ImmutableList.of()));
810+
final ModifiableConnackPacketImpl modifiablePacket =
811+
new ModifiableConnackPacketImpl(packet, configurationService, true);
812+
813+
assertFalse(modifiablePacket.isModified());
814+
815+
modifiablePacket.setSessionPresent(false);
816+
817+
assertTrue(modifiablePacket.isModified());
818+
assertFalse(modifiablePacket.getSessionPresent());
819+
}
788820
}

0 commit comments

Comments
 (0)