summaryrefslogtreecommitdiffstats
path: root/Bugzilla/BugUrl/SourceForge.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla/BugUrl/SourceForge.pm')
-rw-r--r--Bugzilla/BugUrl/SourceForge.pm29
1 files changed, 12 insertions, 17 deletions
diff --git a/Bugzilla/BugUrl/SourceForge.pm b/Bugzilla/BugUrl/SourceForge.pm
index 69d4f98c2..11cdd0ff1 100644
--- a/Bugzilla/BugUrl/SourceForge.pm
+++ b/Bugzilla/BugUrl/SourceForge.pm
@@ -9,17 +9,21 @@ package Bugzilla::BugUrl::SourceForge;
use strict;
use base qw(Bugzilla::BugUrl);
-use Bugzilla::Error;
-use Bugzilla::Util;
-
###############################
#### Methods ####
###############################
sub should_handle {
my ($class, $uri) = @_;
+
+ # SourceForge tracker URLs have only one form:
+ # http://sourceforge.net/tracker/?func=detail&aid=111&group_id=111&atid=111
return ($uri->authority =~ /^sourceforge.net$/i
- and $uri->path =~ m|/tracker/|) ? 1 : 0;
+ and $uri->path =~ m|/tracker/|
+ and $uri->query_param('func') eq 'detail'
+ and $uri->query_param('aid')
+ and $uri->query_param('group_id')
+ and $uri->query_param('atid')) ? 1 : 0;
}
sub _check_value {
@@ -27,19 +31,10 @@ sub _check_value {
my $uri = $class->SUPER::_check_value(@_);
- # SourceForge tracker URLs have only one form:
- # http://sourceforge.net/tracker/?func=detail&aid=111&group_id=111&atid=111
- if ($uri->query_param('func') eq 'detail' and $uri->query_param('aid')
- and $uri->query_param('group_id') and $uri->query_param('atid'))
- {
- # Remove any # part if there is one.
- $uri->fragment(undef);
- return $uri;
- }
- else {
- my $value = $uri->as_string;
- ThrowUserError('bug_url_invalid', { url => $value });
- }
+ # Remove any # part if there is one.
+ $uri->fragment(undef);
+
+ return $uri;
}
1;