diff --git a/bin/update-metadata b/bin/update-metadata index 1f1506485b02707494992c422b9dffbb68218050..a14d0c8266e73d56fb78855f97d8f02d294026c7 100755 --- a/bin/update-metadata +++ b/bin/update-metadata @@ -11,7 +11,7 @@ use English qw(-no_match_vars); use File::Temp; use Getopt::Long qw(:config auto_help); use List::MoreUtils qw(uniq); -use LWP::UserAgent; +use Mojo::UserAgent; use Pod::Usage; use AccountManager::DB; @@ -55,7 +55,9 @@ AccountManager::DB->register_db( my $db = AccountManager::DB->new(); -my $ua = LWP::UserAgent->new(); +my $ua = Mojo::UserAgent->new( + max_redirect => 3 +); $db->begin_work(); @@ -70,12 +72,15 @@ foreach my $id (keys %{$configuration->{federations}}) { my $file = File::Temp->new(); my $url = $configuration->{federations}->{$id}; print "downloading metadata from url $url\n" if $options{verbose}; - my $response = $ua->get($url, ':content_file' => $file->filename()); - if (!$response->is_success()) { + my $result = $ua->get($url)->result(); + + if (!$result->is_success()) { $db->rollback(); - die "failed to download federation metadata: " . $response->status_line(); + die "failed to download federation metadata: " . $result->status_line(); } + $result->save_to($file->filename()); + my $metadata; eval { $metadata = AccountManager::Metadata->new(