#!/usr/bin/perl use strict; use warnings; use PVE::Network; use Time::HiRes qw(usleep); my $xline = '-' x 78; my $banner = <<__EOBANNER; $xline Welcome to the Proxmox Mail Gateway. Please use your web browser to configure this server - connect to: __EOBANNER my $addr; for (my $try = 1; $try <= 15; $try ++) { # TODO, pass `all => 1` and print them? May be seen as "leak" for some users of unprotected setups?! $addr = PVE::Network::get_local_ip(); last if defined($addr); usleep($try * 150_000); # gradually increase poll, ensure's we're ready faster in average } $addr //= ''; # useless but we must _not_ fail here $banner .= " https://${addr}:8006/\n"; $banner .= "\n$xline\n\n"; open(my $issue_fh, '>', '/etc/issue') or die "cannot open '/etc/issue' for writing - $!"; print $issue_fh $banner; close($issue_fh); exit (0);