NAME

Developer::Dashboard::Web::Server::Daemon - Lightweight daemon descriptor for the PSGI server wrapper

SYNOPSIS

my $daemon = Developer::Dashboard::Web::Server::Daemon->new(
    host => '127.0.0.1',
    port => 17891,
);

DESCRIPTION

This module stores the resolved listen host and port that the runtime manager and PSGI server wrapper use when reserving and starting the dashboard web listener.

METHODS

new, sockhost, sockport, internal_sockhost, internal_sockport

Construct and query the lightweight daemon descriptor.

PURPOSE

This module is the small value object that carries resolved listen addresses for the web server. It records the public host and port, and when SSL is enabled it also records the internal backend host and port used behind the public TLS frontend.

WHY IT EXISTS

It exists so daemon resolution can be passed around as a typed object instead of loose hashes. That keeps the public and internal socket details explicit in the runtime manager and web server code.

WHEN TO USE

Use this file when changing what metadata the web server carries between port reservation, runner setup, and SSL frontend proxying.

HOW TO USE

Create it with the resolved host and port values, then pass it into Developer::Dashboard::Web::Server methods that need to build URLs or runners from those values.

WHAT USES IT

It is used only by the web server lifecycle code and the tests that verify public versus internal daemon metadata under SSL and non-SSL serving.

EXAMPLES

Example 1:

perl -Ilib -MDeveloper::Dashboard::Web::Server::Daemon -e 1

Do a direct compile-and-load check against the module from a source checkout.

Example 2:

prove -lv t/03-web-app.t t/08-web-update-coverage.t t/web_app_static_files.t

Run the focused regression tests that most directly exercise this module's behavior.

Example 3:

HARNESS_PERL_SWITCHES=-MDevel::Cover prove -lr t

Recheck the module under the repository coverage gate rather than relying on a load-only probe.

Example 4:

prove -lr t

Put any module-level change back through the entire repository suite before release.