File: //proc/10489/root/scripts/updatessldomains
#!/usr/local/cpanel/3rdparty/bin/perl
# cpanel - scripts/updatessldomains                Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited
# ignore our parent if it dies as this could result in
# a blank domainips files
$SIG{'HUP'} = 'IGNORE';
$SIG{'INT'} = 'IGNORE';
use strict;
use Cpanel::Config                  ();
use Cpanel::Config::userdata::Cache ();
use Cpanel::SafeFile                ();
use IO::Handle                      ();
use Getopt::Long                    ();
use Pod::Usage                      ();
my $help = 0;
Getopt::Long::GetOptions( 'help' => \$help );
Pod::Usage::pod2usage(1) if $help;
my $ssl_port = Cpanel::Config::get_ssl_httpd_port();
my %SSLDOMAINIPS;
my $userdata = Cpanel::Config::userdata::Cache::load_cache();
for my $dns_name ( keys %{$userdata} ) {
    my ( $type, $ssl_ip ) = @{ $userdata->{$dns_name} }[ 2, 6 ];
    next unless $ssl_ip;
    next unless ( $type eq 'main' || $type eq 'sub' );
    $ssl_ip =~ s/:.*//;    # Strip off port number
    $SSLDOMAINIPS{$dns_name} = $ssl_ip;
}
my $ssldomains_fh  = IO::Handle->new();
my $ssldomainslock = Cpanel::SafeFile::safeopen( $ssldomains_fh, '>', '/etc/ssldomains' ) || die "Unable to write: $!";
foreach my $ssldomain ( sort keys %SSLDOMAINIPS ) {
    print $ssldomains_fh "$ssldomain: $SSLDOMAINIPS{$ssldomain}\n";
}
Cpanel::SafeFile::safeclose( $ssldomains_fh, $ssldomainslock );
chmod oct(600), '/etc/ssldomains';
__END__
=head1 NAME
updatessldomains - Update the /etc/ssldomains list of SSL domains assigned to IP addresses
=head1 SYNOPSIS
updatessldomains [options]
    Options:
      --help       Brief help message
=cut