]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 593173: Make See Also recognize both "http" and "https" links for local
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Sat, 18 Sep 2010 23:51:41 +0000 (16:51 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Sat, 18 Sep 2010 23:51:41 +0000 (16:51 -0700)
bugs as being the same bug.
r=timello, a=mkanat

Bugzilla/Bug.pm

index a8f6651e03f2f0af1a2734d638d9478c56177952..ea84fddf5eff37f09d437073cefacff7e239afb9 100644 (file)
@@ -2906,11 +2906,17 @@ sub add_see_also {
         $uri->query("id=$bug_id");
         # And remove any # part if there is one.
         $uri->fragment(undef);
-        $result = $uri->canonical->as_string;
-
-        # See Also field of the referenced bug is updated
-        # to point to the current bug.
-        if ($result =~ m/^\Q$local_bug_uri\E/ and !$skip_recursion) {
+        my $uri_canonical = $uri->canonical;
+        $result = $uri_canonical->as_string;
+
+        # If this is a link to a local bug (treating the domain
+        # case-insensitively and ignoring http(s)://), then also update
+        # the other bug to point at this one.
+        my $canonical_local = URI->new($local_bug_uri)->canonical;
+        if (!$skip_recursion 
+            and $canonical_local->authority eq $uri_canonical->authority
+            and $canonical_local->path eq $uri_canonical->path) 
+        {
             my $ref_bug = Bugzilla::Bug->check($bug_id);
             if ($ref_bug->id == $self->id) {
                 ThrowUserError('see_also_self_reference');