Skip to content

Commit 206967c

Browse files
committed
refactor(): route isLoggedIn flag through message dispatcher for consistency
1 parent 0960872 commit 206967c

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

  • ErmisClient
    • Desktop/src/main/java/io/github/koukobin/ermis/desktop_client/service/client
    • Mobile/ermis_client/lib/core/data_sources
  • ErmisServer/src/main/java/io/github/koukobin/ermis/server/server/netty_handlers

ErmisClient/Desktop/src/main/java/io/github/koukobin/ermis/desktop_client/service/client/Client.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,14 @@ public static boolean attemptHashedLogin(LocalAccountInfo userInfo) {
231231
// Send the request
232232
try {
233233
out.write(buffer);
234-
isLoggedIn.set(in.read().readBoolean());
234+
235+
EntryMessage msg = GlobalMessageDispatcher.getDispatcher()
236+
.observeMessages()
237+
.ofType(EntryMessage.class)
238+
.firstElement()
239+
.blockingGet();
240+
241+
isLoggedIn.set(msg.getBuffer().readBoolean());
235242
} catch (IOException ioe) {
236243
logger.error(ioe.getMessage(), ioe); // Should not happen
237244
}

ErmisClient/Mobile/ermis_client/lib/core/data_sources/api_client.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,9 @@ class Client {
146146

147147
_outputStream!.write(buffer);
148148

149-
_isLoggedIn = (await _inputStream!.read()).readBoolean();
149+
await AppEventBus.instance.on<EntryMessage>().first.then((EntryMessage msg) {
150+
_isLoggedIn = msg.buffer.readBoolean();
151+
});
150152
if (_isLoggedIn) {
151153
// Proactively reset user information to ensure that
152154
// user information does not leak into this account

ErmisServer/src/main/java/io/github/koukobin/ermis/server/server/netty_handlers/StartingEntryHandler.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import io.netty.buffer.Unpooled;
2424
import io.netty.channel.ChannelHandlerContext;
2525
import main.java.io.github.koukobin.ermis.common.entry.EntryType;
26+
import main.java.io.github.koukobin.ermis.common.message_types.ServerMessageType;
2627
import main.java.io.github.koukobin.ermis.server.configs.GeneralServerInfo;
2728
import main.java.io.github.koukobin.ermis.server.databases.postgresql.ermis_database.ErmisDatabase;
2829
import main.java.io.github.koukobin.ermis.server.server.ClientInfo;
@@ -138,7 +139,10 @@ private static void tryToLogin(ChannelHandlerContext ctx, ByteBuf msg, ClientInf
138139
getLogger().debug("Error during authentication", e);
139140
} finally {
140141
// Regardless of authentication outcome inform success to user
141-
ctx.channel().writeAndFlush(Unpooled.copyBoolean(isSuccessful));
142+
ByteBuf successBuffer = ctx.channel().alloc().ioBuffer(5);
143+
successBuffer.writeInt(ServerMessageType.ENTRY.id);
144+
successBuffer.writeBoolean(isSuccessful);
145+
ctx.channel().writeAndFlush(successBuffer);
142146
}
143147

144148
}

0 commit comments

Comments
 (0)