LCOV - code coverage report
Current view: top level - http/server - pool_server.cpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 54.5 % 33 18
Test Date: 2026-02-20 15:38:22 Functions: 57.1 % 7 4

            Line data    Source code
       1              : #include "pool_server.hpp"
       2              : #include "../../util/logger.hpp"
       3              : #include "../../asio/ssl/certificate_manager.hpp"
       4              : 
       5              : namespace thinger::http {
       6              : 
       7           54 : pool_server::pool_server() 
       8          108 :     : worker_client("http_pool_server") {
       9           54 :     LOG_DEBUG("Created HTTP pool server");
      10           54 : }
      11              : 
      12           54 : pool_server::~pool_server() {
      13           54 :     LOG_DEBUG("Destroying HTTP pool server");
      14           54 :     if (is_running()) {
      15           45 :         stop();
      16              :     }
      17           54 : }
      18              : 
      19           12 : std::unique_ptr<asio::socket_server> pool_server::create_socket_server(
      20              :     const std::string& host, const std::string& port) {
      21              :     
      22              :     // Use legacy constructor that automatically uses workers
      23           12 :     auto server = std::make_unique<asio::socket_server>(host, port);
      24              :     
      25              :     // Configure SSL if enabled
      26           12 :     if (ssl_enabled_) {
      27            0 :         server->enable_ssl(true);
      28              :         
      29            0 :         auto& cert_mgr = asio::certificate_manager::instance();
      30            0 :         auto default_ctx = cert_mgr.get_default_certificate();
      31              :         
      32            0 :         if (!default_ctx) {
      33            0 :             LOG_ERROR("No default SSL certificate configured");
      34            0 :             return nullptr;
      35              :         }
      36              : 
      37            0 :         server->set_ssl_context(default_ctx);
      38            0 :         server->set_sni_callback(asio::certificate_manager::sni_callback);
      39            0 :     }
      40              : 
      41           12 :     return server;
      42           12 : }
      43              : 
      44            0 : std::unique_ptr<asio::unix_socket_server> pool_server::create_unix_socket_server(
      45              :     const std::string& unix_path) {
      46              :     
      47              :     // Use legacy constructor that automatically uses workers
      48            0 :     auto server = std::make_unique<asio::unix_socket_server>(unix_path);
      49              :     
      50            0 :     return server;
      51              : }
      52              : 
      53           60 : bool pool_server::stop() {
      54              :     // Stop the socket server
      55           60 :     bool result = http_server_base::stop();
      56              :     
      57              :     // Call base class implementation to handle notifications
      58           60 :     worker_client::stop();
      59              :     
      60           60 :     return result;
      61              : }
      62              : 
      63            0 : void pool_server::wait() {
      64              :     // Use worker_client's wait implementation
      65            0 :     worker_client::wait();
      66            0 : }
      67              : 
      68              : } // namespace thinger::http
        

Generated by: LCOV version 2.0-1