Security Advisories (1)
CVE-2024-58041 (2026-02-23)

Smolder versions through 1.51 for Perl uses insecure rand() function for cryptographic functions. Smolder 1.51 and earlier for Perl uses the rand() function as the default source of entropy, which is not cryptographically secure, for cryptographic functions. Specifically Smolder::DB::Developer uses the Data::Random library which specifically states that it is "Useful mostly for test programs". Data::Random uses the rand() function.

NAME

Smolder::Conf - Smolder configuration module

SYNOPSIS

# all configuration directives are available as exported subs
use Smolder::Conf qw(Secret Port);
$secret = Secret;

# you can also call get() in Smolder::Conf directly
$port = Smolder::Conf->get("Port");

# or you can access them as methods in the Smolder::Conf module
$port = Smolder::Conf->Port;

DESCRIPTION

This module provides access to the configuration settings in smolder.conf.

Full details on all configuration parameters is available in the configuration document, which you can find at docs/configuration.

METHODS

get_config

Class method that returns the underlying Config::ApacheFormat object.

get

Given a directive name, returns the value (which may be a list) of a configuration directive. Directive names are case-insensitive.

$value = Smolder::Conf->get("DirectiveName")

@values = Smolder::Conf->get("DirectiveName")

check

Sanity-check Smolder configuration. This will croak() with an error message if something is wrong with the configuration file.

This is run when the Smolder::Conf loads unless the environment variable "SMOLDER_CONF_NOCHECK" is set to a true value.

template_dir

The directory path for the templates for this install of Smolder

htdocs_dir

The directory path for the htdocs for this install of Smolder

sql_dir

The directory path for the raw SQL files for this install of Smolder

data_dir

The directory path for data directory for this install of Smolder

test_data_dir

The directory path for test data directory for this copy of Smolder

ACCESSOR METHODS

All configuration directives can be accessed as methods themselves.

my $port = Smolder::Conf->port();

Gets the value of a directive using an autoloaded method. Directive names are case-insensitive.

EXPORTING DIRECTIVES

Each configuration directive can also be accessed as an exported subroutine.

use Smolder::Conf qw(port FromAddress);
...
my $port = port();
my $from = FromAddress();

Directive names are case-insensitive. Gets the value of a variable using an exported, autoloaded method. Case-insensitive.