diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-03-09 14:16:46 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-03-20 23:44:57 +0800 |
| commit | 8ab26f85e474dcdbbb2c2fb94b6a087f71952bf8 (patch) | |
| tree | 752c1129db2d363dfd96dd15d27c34f2e126a4e3 /src/session.cpp | |
| parent | 938ca89e48c2a01d6aa072f01545fa2da585486c (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.cpp | 8 |
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); |
