From 20937d56e64841004e0631e458f947a363318804 Mon Sep 17 00:00:00 2001 From: sfja Date: Thu, 9 Apr 2026 15:29:02 +0200 Subject: [PATCH] use specified port --- backend/src/main.cpp | 8 +++----- backend/src/server.cpp | 11 ++++++----- backend/src/server.hpp | 4 +++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/backend/src/main.cpp b/backend/src/main.cpp index d272f77..6e15f73 100644 --- a/backend/src/main.cpp +++ b/backend/src/main.cpp @@ -9,10 +9,8 @@ #include #include -#ifdef BACKEND_TCP_PORT -#define PORT BACKEND_TCP_PORT -#else -#define PORT 8888 +#ifndef BACKEND_TCP_PORT +#define BACKEND_TCP_PORT 8888 #endif #ifndef BACKEND_MQTT_PORT @@ -29,7 +27,7 @@ int main(void) auto mqtt_client = mst::mqtt::Client( BACKEND_MQTT_HOST, BACKEND_MQTT_PORT, "test", "1234"); - auto server = mst::server::Server(); + auto server = mst::server::Server(BACKEND_TCP_PORT); mqtt_client.subscribe("/skateboard/update", [&](std::string_view text) { std::println("Skateboard sent: {}", text); diff --git a/backend/src/server.cpp b/backend/src/server.cpp index a80080f..ecc017a 100644 --- a/backend/src/server.cpp +++ b/backend/src/server.cpp @@ -29,7 +29,7 @@ struct Measurement { double angle; }; -auto get_listener_socket() -> int +auto get_listener_socket(const std::string& port) -> int { int listener; // Listening socket descriptor int status; @@ -41,7 +41,7 @@ auto get_listener_socket() -> int struct addrinfo* addr; - if ((status = ::getaddrinfo(NULL, "8889", &hints, &addr)) != 0) + if ((status = ::getaddrinfo(NULL, port.c_str(), &hints, &addr)) != 0) throw Error(std::format("getaddrinfo ({})", ::gai_strerror(status))); struct addrinfo* p; @@ -86,15 +86,16 @@ struct Server::State { std::vector subscriber_fds; }; -Server::Server() - : m_state(std::make_unique()) +Server::Server(uint16_t port) + : m_port(port) + , m_state(std::make_unique()) { } Server::~Server() = default; void Server::listen() { - m_listener_fd = get_listener_socket(); + m_listener_fd = get_listener_socket(std::to_string(m_port)); m_state->pollfds.push_back(::pollfd { .fd = m_listener_fd, .events = POLLIN, diff --git a/backend/src/server.hpp b/backend/src/server.hpp index e21e635..06ed6cd 100644 --- a/backend/src/server.hpp +++ b/backend/src/server.hpp @@ -1,5 +1,6 @@ #pragma once +#include #include #include @@ -11,7 +12,7 @@ struct Error : public std::runtime_error { class Server { public: - explicit Server(); + explicit Server(uint16_t port); ~Server(); void listen(); @@ -23,6 +24,7 @@ private: void create_connection(); void handle_request(size_t i); + uint16_t m_port; int m_listener_fd { }; std::unique_ptr m_state { nullptr }; };