#!/usr/local/cpanel/3rdparty/bin/perl # Copyright (c) 2023, cPanel, L.L.C. # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. # # 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. package ea_apache24_config_runtime::SOURCES::restartsrv_httpd; use strict; use warnings; our $disable_flag_file = '/var/cpanel/ea4-disable-500-restartsrv_httpd-for-glibc'; run(@ARGV) unless caller(); sub run { my @args = @_; my ($path) = map( { m/^--pkg_list=(.*)$/ ? ($1) : () } @args ); my $hard_restart = 0; if ( defined $path && -e $path ) { if ( open( my $fh, '<', $path ) ) { my @lines = <$fh>; close($fh); if ( grep { m/^ea-apache24$/ || m/^ea-apache24-mod[_\-]/ } @lines ) { $hard_restart = 1; } } else { warn "Failed to open “$path”: $!\n"; $hard_restart = 1; # err on the side of caution } } if( $0 =~ m{glibc-restartsrv_httpd$} ) { return 0 if -e $disable_flag_file; $hard_restart = 1 } if ($hard_restart) { system('/usr/local/cpanel/scripts/restartsrv_httpd --stop'); system('/usr/local/cpanel/scripts/restartsrv_httpd'); } else { system('/usr/local/cpanel/scripts/restartsrv_httpd'); } } 1;