�&ǐ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 �% (); unless ( caller() ) { __PACKAGE__->new(@ARGV)->process() or exit 1; } =head1 NAME activesync-invite-reply =head1 USAGE activesync-invite-reply [--help] =head1 DESCRIPTION Process an ActiveSync invite reply. This utility is not meant to be run directly. =cut sub process { alarm 60; Cpanel::ActiveSync::InviteReply::logmsg('Processing an invite reply …'); my $message = do { local $/; readline STDIN; }; if ( !$message ) { Cpanel::ActiveSync::InviteReply::logmsg('Nothing came through on stdin'); return 1; } my $user = $ENV{REMOTE_USER} || die 'REMOTE_USER is not set'; my $http_auth = $ENV{HTTP_AUTHORIZATION} || die 'HTTP_AUTHORIZATION is not set'; if ( $message !~ /method=.?REPLY/i ) { Cpanel::ActiveSync::InviteReply::logmsg('This does not appear to be an invite reply. You should pre-screen messages before launching this utility.'); return 1; } my $ok = eval { Cpanel::ActiveSync::InviteReply::process( $user, $http_auth, $message ) }; if ( my $exception = $@ ) { Cpanel::ActiveSync::InviteReply::logmsg($exception); } return $ok; } 1;