summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chatManager.cpp4
-rw-r--r--src/chatManager.hpp8
-rw-r--r--src/chatServer.cpp3
-rw-r--r--src/chatServer.hpp6
-rw-r--r--src/format.hpp2
-rw-r--r--src/main.cpp68
-rw-r--r--src/session.cpp20
-rw-r--r--src/session.hpp15
-rw-r--r--src/sessionManager.cpp7
9 files changed, 66 insertions, 67 deletions
diff --git a/src/chatManager.cpp b/src/chatManager.cpp
index 6d92e32..83e07c3 100644
--- a/src/chatManager.cpp
+++ b/src/chatManager.cpp
@@ -18,7 +18,7 @@ void CChatManager::newMessage(const SMessage &msg) {
}
std::string CChatManager::fmtBroadcastMessage(const SMessage &msg) {
- return NFormatter::fmt(NONE, "{}: {}", msg.username, msg.msg);
+ return NFormatter::fmt(NONE, "{}: {}", msg.username, msg.msg);
}
void CChatManager::broadcastMessage(const SMessage &msg) {
@@ -26,5 +26,5 @@ void CChatManager::broadcastMessage(const SMessage &msg) {
}
std::vector<CChatManager::SMessage> CChatManager::getChat() {
- return m_vMessages;
+ return m_vMessages;
}
diff --git a/src/chatManager.hpp b/src/chatManager.hpp
index 4bfc10f..b2055f8 100644
--- a/src/chatManager.hpp
+++ b/src/chatManager.hpp
@@ -10,11 +10,11 @@ class CChatManager {
std::string msg;
std::string username;
};
- void newMessage(const SMessage &msg);
- void broadcastMessage(const SMessage &msg);
- std::string fmtBroadcastMessage(const SMessage &msg);
+ void newMessage(const SMessage &msg);
+ void broadcastMessage(const SMessage &msg);
+ std::string fmtBroadcastMessage(const SMessage &msg);
- std::vector<SMessage> getChat();
+ std::vector<SMessage> getChat();
private:
std::vector<SMessage> m_vMessages;
diff --git a/src/chatServer.cpp b/src/chatServer.cpp
index d8a340d..11d4919 100644
--- a/src/chatServer.cpp
+++ b/src/chatServer.cpp
@@ -4,7 +4,8 @@
#include "server.hpp"
#include "sessionManager.hpp"
-CChatServer::CChatServer(uint16_t port): m_port(port) {
+CChatServer::CChatServer(uint16_t port)
+ : m_port(port) {
log(LOG, "ChatServer: initialized");
};
diff --git a/src/chatServer.hpp b/src/chatServer.hpp
index f6ebb23..00d2979 100644
--- a/src/chatServer.hpp
+++ b/src/chatServer.hpp
@@ -9,10 +9,10 @@ class CChatServer {
void cleanup();
private:
- uint16_t m_port;
+ uint16_t m_port;
- void initManagers();
- void initServer();
+ void initManagers();
+ void initServer();
std::jthread m_sessionManagerThread;
};
diff --git a/src/format.hpp b/src/format.hpp
index dd210c0..019f3d6 100644
--- a/src/format.hpp
+++ b/src/format.hpp
@@ -9,7 +9,7 @@ enum eFormatType : int8_t {
WARN,
ERR,
SYS,
- NONEWLINE
+ NONEWLINE
};
namespace NFormatter {
diff --git a/src/main.cpp b/src/main.cpp
index 8b32a44..6b813e8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -30,45 +30,45 @@ static void registerSignals() {
}
static void help() {
- log(ERR, "usage: chat-server <port>");
+ log(ERR, "usage: chat-server <port>");
}
// TODO: ARGC, ARGV. the CServer ctor should take a port number
int main(int argc, char *argv[]) {
std::vector<std::string> args{argv + 1, argv + argc};
- if (args.empty()) {
- help();
-
- return EXIT_FAILURE;
- }
- uint16_t port = 0;
- for (const auto &arg : args) {
- if (arg == "-h" || arg == "--help") {
- help();
- return EXIT_SUCCESS;
- } else if (std::ranges::all_of(arg, ::isdigit)) {
- port = std::stoi(arg);
- if (std::stoi(arg) < 0) {
- log(ERR, "Port number must be greater than 0");
-
- return EXIT_FAILURE;
- } else if (std::stoi(arg) > 65535) {
- log(ERR, "Port number must be less than 65536");
-
- return EXIT_FAILURE;
- }
-
- port = std::stoi(arg);
- log(LOG, "Port number: {}", port);
- }
- }
-
- if (port == 0) {
- log(ERR, "Port number is required");
-
- help();
- return EXIT_FAILURE;
- }
+ if (args.empty()) {
+ help();
+
+ return EXIT_FAILURE;
+ }
+ uint16_t port = 0;
+ for (const auto &arg : args) {
+ if (arg == "-h" || arg == "--help") {
+ help();
+ return EXIT_SUCCESS;
+ } else if (std::ranges::all_of(arg, ::isdigit)) {
+ port = std::stoi(arg);
+ if (std::stoi(arg) < 0) {
+ log(ERR, "Port number must be greater than 0");
+
+ return EXIT_FAILURE;
+ } else if (std::stoi(arg) > 65535) {
+ log(ERR, "Port number must be less than 65536");
+
+ return EXIT_FAILURE;
+ }
+
+ port = std::stoi(arg);
+ log(LOG, "Port number: {}", port);
+ }
+ }
+
+ if (port == 0) {
+ log(ERR, "Port number is required");
+
+ help();
+ return EXIT_FAILURE;
+ }
registerSignals();
diff --git a/src/session.cpp b/src/session.cpp
index 61e1402..070562c 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -3,8 +3,8 @@
#include "log.hpp"
#include "server.hpp"
#include "sessionManager.hpp"
-#include <arpa/inet.h>
#include <algorithm>
+#include <arpa/inet.h>
#include <cerrno>
#include <cstring>
#include <sys/socket.h>
@@ -77,14 +77,14 @@ void CSession::SRecvData::sanitize() {
if (const auto start = data.find_first_not_of(" \t\r\n"); start != std::string::npos) {
const auto end = data.find_last_not_of(" \t\r\n");
- data = data.substr(start, end - start + 1);
+ data = data.substr(start, end - start + 1);
} else
data.clear();
}
std::unique_ptr<CSession::SRecvData> CSession::read() {
auto recvData = std::make_unique<SRecvData>();
-
+
recvData->data.resize(recvData->size);
ssize_t size = recv(m_sockfd.get(), &recvData->data[0], recvData->size, 0);
@@ -93,7 +93,7 @@ std::unique_ptr<CSession::SRecvData> CSession::read() {
onErrno(READ);
} else if (size == 0)
recvData->good = false;
- // onDisconnect();
+ // onDisconnect();
else
recvData->data.resize(size);
@@ -111,12 +111,12 @@ std::unique_ptr<CSession::SRecvData> CSession::read(const std::string &msg) {
void CSession::run() {
onConnect();
if (registerSession()) {
- // g_pSessionManager->broadcast(g_pChatManager->getChat());
- for (const auto &chat : g_pChatManager->getChat())
- write(g_pChatManager->fmtBroadcastMessage(chat));
- recvLoop();
- } else
- log(LOG, "Client {} exited without even registering", m_ip);
+ // g_pSessionManager->broadcast(g_pChatManager->getChat());
+ for (const auto &chat : g_pChatManager->getChat())
+ write(g_pChatManager->fmtBroadcastMessage(chat));
+ recvLoop();
+ } else
+ log(LOG, "Client {} exited without even registering", m_ip);
g_pSessionManager->removeSession(self);
}
diff --git a/src/session.hpp b/src/session.hpp
index d7bc11c..3571ecb 100644
--- a/src/session.hpp
+++ b/src/session.hpp
@@ -13,25 +13,24 @@ class CSession {
~CSession();
struct SRecvData {
- std::string data;
- const size_t size = 1024;
- bool good = true;
+ std::string data;
+ const size_t size = 1024;
+ bool good = true;
bool isEmpty() const;
void sanitize();
};
-
std::string getName();
- void setSelf(std::pair<std::jthread, std::shared_ptr<CSession>> *self);
+ void setSelf(std::pair<std::jthread, std::shared_ptr<CSession>> *self);
std::unique_ptr<SRecvData> read();
std::unique_ptr<SRecvData> read(const std::string &msg);
- bool write(const std::string &msg);
+ bool write(const std::string &msg);
template <typename... Args>
bool write(std::format_string<Args...> fmt, Args &&...args);
- template <typename... Args>
- bool write(eFormatType type, std::format_string<Args...> fmt, Args &&...args);
+ template <typename... Args>
+ bool write(eFormatType type, std::format_string<Args...> fmt, Args &&...args);
void run();
diff --git a/src/sessionManager.cpp b/src/sessionManager.cpp
index 049ec2b..2a833e8 100644
--- a/src/sessionManager.cpp
+++ b/src/sessionManager.cpp
@@ -21,8 +21,8 @@ CSessionManager::~CSessionManager() {
for (auto &[thread, session] : m_vSessions) {
if (thread.joinable())
thread.detach();
- session.reset();
- }
+ session.reset();
+ }
log(SYS, "SessionManager: bye");
}
@@ -63,8 +63,7 @@ void CSessionManager::removeSession(std::pair<std::jthread, std::shared_ptr<CSes
if (it != m_vSessions.end()) {
if (it->first.joinable())
it->first.detach(); // .detach the thread since it's removing itself
- it->second.reset();
+ it->second.reset();
m_vSessions.erase(it);
}
-
}