�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �% (); *_get_all_cpusers = \*Cpanel::Config::Users::getcpusers; __PACKAGE__->new(@ARGV)->run() if !caller; sub run { my ($self) = @_; for my $username ( sort( _get_all_cpusers() ) ) { $self->say("$username …"); try { my $cpuser = Cpanel::Config::CpUserGuard->new($username); if ( $cpuser->{'data'}{'IP'} && ( '127.0.0.1' ne $cpuser->{'data'}{'IP'} ) ) { $cpuser->abort(); } else { $self->say("\tDeducing “IP” …"); $cpuser->{'data'}{'IP'} = _deduce_user_ip( $username, $cpuser ); $self->say("\tDeduced: $cpuser->{'data'}{'IP'}"); $cpuser->save(); $self->say("\tSaved!"); } } catch { warn $_; }; } return; } sub _deduce_user_ip { my ( $username, $cpuser_obj ) = @_; my @domains = ( $cpuser_obj->{'data'}{'DOMAIN'}, @{ $cpuser_obj->{'data'}{'DOMAINS'} }, ); for my $d (@domains) { next if !Cpanel::Config::userdata::Load::user_has_domain( $username, $d ); my $ref = Cpanel::Config::userdata::Load::load_userdata_domain( $username, $d ); if ( $ref && %$ref ) { return $ref->{'ip'} if $ref->{'ip'}; warn "“$username”’s vhost “$d” file lacks “ip”!\n"; } else { warn "“$username”’s web vhost “$d” failed to load??\n"; } } die "Found no IP address among “$username”’s web vhosts!"; } 1;