W3C home > Mailing lists > Public > www-validator-cvs@w3.org > August 2010

link-checker commit: Update mod_perl HTTP_AUTHORIZATION hack for recent 2.x, drop support for 1.x.

From: Mercurial notifier <nobody@w3.org>
Date: Thu, 05 Aug 2010 14:47:05 +0000
To: link-checker updates <www-validator-cvs@w3.org>
Message-Id: <E1Oh1ir-0005mz-JS@blinky.w3.org>
changeset:   145:8637385490f8
user:        ville
date:        Thu Jun 15 17:57:27 2006 +0000
files:       bin/checklink
description:
Update mod_perl HTTP_AUTHORIZATION hack for recent 2.x, drop support for 1.x.


diff -r 92ac276d7eab -r 8637385490f8 bin/checklink
--- a/bin/checklink	Thu Jun 15 17:53:14 2006 +0000
+++ b/bin/checklink	Thu Jun 15 17:57:27 2006 +0000
@@ -5,7 +5,7 @@
 # (c) 1999-2006 World Wide Web Consortium
 # based on Renaud Bruyeron's checklink.pl
 #
-# $Id: checklink,v 4.35 2006-06-15 17:53:14 ville Exp $
+# $Id: checklink,v 4.36 2006-06-15 17:57:27 ville Exp $
 #
 # This program is licensed under the W3C(r) Software License:
 #       http://www.w3.org/Consortium/Legal/copyright-software
@@ -116,6 +116,9 @@
 
 use constant LINE_UNKNOWN  => -1;
 
+use constant MP2 =>
+  (exists($ENV{MOD_PERL_API_VERSION}) && $ENV{MOD_PERL_API_VERSION} >= 2);
+
 @W3C::LinkChecker::ISA =  qw(HTML::Parser);
 
 BEGIN
@@ -125,15 +128,15 @@
   $PROGRAM     = 'W3C-checklink';
   $VERSION     = '4.2.1';
   $REVISION    = sprintf('version %s (c) 1999-2006 W3C', $VERSION);
-  my ($cvsver) = q$Revision: 4.35 $ =~ /(\d+[\d\.]*\.\d+)/;
+  my ($cvsver) = q$Revision: 4.36 $ =~ /(\d+[\d\.]*\.\d+)/;
   $AGENT       = sprintf('%s/%s [%s] %s',
                          $PROGRAM, $VERSION, $cvsver, LWP::RobotUA->_agent());
 
   # Pull in mod_perl modules if applicable.
-  if ($ENV{MOD_PERL}) {
-    eval "require Apache2::compat"; # For mod_perl 2
-    require Apache;
-  }
+  eval {
+    local $SIG{__DIE__};
+    require Apache2::RequestUtil;
+  } if MP2();
 
   my @content_types = qw(application/xhtml+xml text/html);
   $Accept = join(', ', @content_types) . ', */*;q=0.5';
@@ -388,10 +391,11 @@
 
   # All Apache configurations don't set HTTP_AUTHORIZATION for CGI scripts.
   # If we're under mod_perl, there is a way around it...
-  if ($ENV{MOD_PERL}) {
-    my $auth = Apache->request()->header_in('Authorization');
-    $ENV{HTTP_AUTHORIZATION} ||= $auth if $auth;
-  }
+  eval {
+    local $SIG{__DIE__};
+    my $auth = Apache2::RequestUtil->request()->headers_in()->{Authorization};
+    $ENV{HTTP_AUTHORIZATION} = $auth if $auth;
+  } if (MP2() && !$ENV{HTTP_AUTHORIZATION});
 
   $uri =~ s/^\s+//g;
   if ($uri =~ m/^file:/) {
Received on Thursday, 5 August 2010 14:47:21 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:17:44 UTC