From b0aa64053bbd5189ebf1199fcbc0cc4af805c456 Mon Sep 17 00:00:00 2001 From: Kharec Date: Mon, 5 Jan 2026 07:25:55 +0100 Subject: [PATCH] refactor: check_ssl is async by default --- lib/Urupam/Validation.pm | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/lib/Urupam/Validation.pm b/lib/Urupam/Validation.pm index 1f2c786..270e63b 100644 --- a/lib/Urupam/Validation.pm +++ b/lib/Urupam/Validation.pm @@ -439,35 +439,30 @@ sub check_url_reachable_async { sub check_ssl_certificate { my ( $self, $url ) = @_; - - return Mojo::Promise->reject('URL is required') - unless defined $url && length($url) > 0; + return Mojo::Promise->resolve(1) unless defined $url && length $url; my $parsed = $self->_parse_url($url); return Mojo::Promise->resolve(1) unless $parsed && $parsed->scheme && $parsed->scheme eq 'https'; - return $self->ua->head_p($url)->then( sub { return 1; } )->catch( - sub { - my $err = shift; - my $err_str = "$err"; - my $error_type = $self->_classify_error($err_str); + $self->_fire_and_forget( + $self->ua->head_p($url)->then( sub { return 1; } )->catch( + sub { + my $err = shift; + my $err_str = "$err"; + my $error_type = $self->_classify_error($err_str); + + if ( $error_type eq 'ssl' ) { + return Mojo::Promise->reject( + "Invalid SSL certificate: $err_str"); + } - if ( $error_type eq 'ssl' ) { return Mojo::Promise->reject( - "Invalid SSL certificate: $err_str"); + $self->_format_error_message( $error_type, $err_str ) ); } - - return Mojo::Promise->reject( - $self->_format_error_message( $error_type, $err_str ) ); - } + ) ); -} -sub check_ssl_certificate_async { - my ( $self, $url ) = @_; - return Mojo::Promise->resolve(1) unless defined $url && length $url; - $self->_fire_and_forget( $self->check_ssl_certificate($url) ); return Mojo::Promise->resolve(1); } @@ -507,7 +502,7 @@ sub validate_url_with_checks { my $ssl_check = $parsed->scheme eq 'https' - ? $self->check_ssl_certificate_async($normalized) + ? $self->check_ssl_certificate($normalized) : Mojo::Promise->resolve(1); return $ssl_check->then(