From 702ee8950efc631a05a21926c0f686e468965cd6 Mon Sep 17 00:00:00 2001 From: Axel Burri Date: Mon, 25 Apr 2016 15:10:00 +0200 Subject: [PATCH] btrbk: bugfix: vinfo(): correctly parse url, using check_url() --- btrbk | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/btrbk b/btrbk index fb0c8be..02aa23d 100755 --- a/btrbk +++ b/btrbk @@ -1432,27 +1432,30 @@ sub vinfo($;$) my $config = shift; my %info; - my $name = $url; + my ($url_prefix, $path) = check_url($url); + die "invalid url: $url" unless(defined($path)); + my $name = $path; $name =~ s/^.*\///; + $name = '/' if($name eq ""); %info = ( - URL => $url, - NAME => $name, - PATH => $url, - PRINT => $url, - URL_PREFIX => "", + URL => $url_prefix . $path, + NAME => $name, + PATH => $path, + PRINT => $path, + URL_PREFIX => $url_prefix, ); - if($url =~ /^ssh:\/\/(\S+?)(\/\S+)$/) { - my ($host, $path) = ($1, $2); + if($url_prefix) { + my $host = $url_prefix; + die unless($host =~ s/^ssh:\/\///); + %info = ( %info, - HOST => $host, - PATH => $path, - PRINT => "$host:$path", - URL_PREFIX => "ssh://$host", - RSH_TYPE => "UNKNOWN", - RSH => [ '/bin/false' ], + HOST => $host, + PRINT => "$host:$path", + RSH_TYPE => "UNKNOWN", + RSH => [ '/bin/false' ], ); if($config) { my $ssh_port = config_key($config, "ssh_port");