summaryrefslogtreecommitdiff
path: root/src/session.cpp
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-03-09 14:16:46 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-03-20 23:44:57 +0800
commit8ab26f85e474dcdbbb2c2fb94b6a087f71952bf8 (patch)
tree752c1129db2d363dfd96dd15d27c34f2e126a4e3 /src/session.cpp
parent938ca89e48c2a01d6aa072f01545fa2da585486c (diff)
feat: broadcast message from one client to the rest, making chat actually possible
fix(chatServer, CSessionManager): .join sessionThread properly cleanup(server): unused header
Diffstat (limited to 'src/session.cpp')
-rw-r--r--src/session.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/session.cpp b/src/session.cpp
index 06f129e..428b439 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -5,7 +5,7 @@
#include <cerrno>
#include <cstring>
#include <sys/socket.h>
-#include <unistd.h>
+#include "chatManager.hpp"
CSession::CSession(Hyprutils::OS::CFileDescriptor sockfd)
: m_sockfd(std::move(sockfd)) {
@@ -47,7 +47,7 @@ void CSession::onSend(const std::string &msg) {
void CSession::recvManager() {
while (true) {
SRecvData recvData = read();
- g_pSessionManager->broadcast(recvData.data, eFormatType::CHAT);
+ g_pChatManager->newMessage({.msg=recvData.data, .username=m_name});
if (!recvData.good)
break;
}
@@ -91,8 +91,8 @@ bool CSession::registerSession() {
write("Name cannot be empty", eFormatType::ERR);
registerSession();
}
-
- m_name = recvData.data;
+ *std::remove(recvData.data, recvData.data+strlen(recvData.data), '\n') = '\0';
+ this->m_name = recvData.data;
log(LOG, "Client registered as: {}", m_name);