Implements tls self-sign usage and cleans up listener setup

This commit is contained in:
2025-11-03 02:38:06 -05:00
parent e7d713ef3b
commit 05d4908906
3 changed files with 14 additions and 27 deletions

View File

@@ -31,7 +31,6 @@ struct ConnectionArguments
//! If true then the server will use stdout to log things.
bool use_stdout { true };
spdlog::level::level_enum log_level { spdlog::level::info };
bool listen_localhost_only { true };
std::string format() const;
};

View File

@@ -159,15 +159,21 @@ ServerContext::ServerContext( const ConnectionArguments& arguments ) :
app.setFileTypes( { "html", "wasm", "svg", "js", "png", "jpg" } );
if ( arguments.listen_localhost_only )
const bool use_ssl { config::get< bool >( "host", "use_ssl", true ) };
const auto ipv4_listener { config::get< std::string >( "host", "ipv4_listen", "127.0.0.1" ) };
const auto ipv6_listener { config::get< std::string >( "host", "ipv6_listen", "::1" ) };
if ( use_ssl )
{
app.addListener( "127.0.0.1", IDHAN_DEFAULT_PORT );
app.addListener( "::1", IDHAN_DEFAULT_PORT );
}
else
{
app.addListener( "0.0.0.0", IDHAN_DEFAULT_PORT );
app.addListener( "::", IDHAN_DEFAULT_PORT );
const auto server_cert_path { config::get< std::string >( "host", "server_cert_path", "./server.crt" ) };
const auto server_key_path { config::get< std::string >( "host", "server_key_path", "./server.key" ) };
if ( !ipv4_listener.empty() )
app.addListener( ipv4_listener, IDHAN_DEFAULT_PORT, use_ssl, server_cert_path, server_key_path );
if ( !ipv6_listener.empty() )
app.addListener( ipv6_listener, IDHAN_DEFAULT_PORT, use_ssl, server_cert_path, server_key_path );
}
drogon::orm::PostgresConfig config {};

View File

@@ -58,10 +58,6 @@ int main( int argc, char** argv )
config_location.setDefaultValue( "./config.json" );
parser.addOption( config_location );
QCommandLineOption localhost_only { "localhost_only", "Only listens on localhost", "localhost_only" };
localhost_only.setDefaultValue( "true" );
parser.addOption( localhost_only );
QCoreApplication app { argc, argv };
app.setApplicationName( "IDHAN" );
@@ -126,20 +122,6 @@ int main( int argc, char** argv )
spdlog::info( "Using stdout for logging" );
}
if ( parser.isSet( localhost_only ) )
{
const auto parser_value = parser.value( localhost_only );
if ( parser_value == "false" || parser_value == "0" )
{
arguments.listen_localhost_only = false;
}
else
{
arguments.listen_localhost_only = true;
}
}
{
std::locale locale { "" };
const auto name { locale.name() };