- From: Mercurial notifier <nobody@w3.org>
- Date: Thu, 05 Aug 2010 14:47:27 +0000
- To: link-checker updates <www-validator-cvs@w3.org>
changeset: 361:8aee47762a31
user: ville
date: Thu Mar 11 17:54:33 2010 +0000
files: NEWS bin/checklink etc/checklink.conf
description:
Make forbidden protocols configurable (#29).
diff -r 132872da47d3 -r 8aee47762a31 NEWS
--- a/NEWS Thu Mar 11 17:13:42 2010 +0000
+++ b/NEWS Thu Mar 11 17:54:33 2010 +0000
@@ -10,6 +10,7 @@
- Improved heuristics when passed non-absolute URLs.
- Support for cookies (command line only for now).
- More "false positive" failure avoidance efforts for "make test".
+- The set of forbidden protocols is now configurable.
- New dependencies: CSS-DOM >= 0.09.
- Updated dependencies: Perl >= 5.8.
diff -r 132872da47d3 -r 8aee47762a31 bin/checklink
--- a/bin/checklink Thu Mar 11 17:13:42 2010 +0000
+++ b/bin/checklink Thu Mar 11 17:54:33 2010 +0000
@@ -5,7 +5,7 @@
# (c) 1999-2010 World Wide Web Consortium
# based on Renaud Bruyeron's checklink.pl
#
-# $Id: checklink,v 4.192 2010-03-11 17:13:42 ville Exp $
+# $Id: checklink,v 4.193 2010-03-11 17:54:32 ville Exp $
#
# This program is licensed under the W3C(r) Software License:
# http://www.w3.org/Consortium/Legal/copyright-software
@@ -91,7 +91,6 @@
$self->allow_private_ips(1);
- # TODO: bug 29
$self->protocols_forbidden([qw(mailto javascript)]);
return $self;
@@ -306,7 +305,7 @@
$PROGRAM = 'W3C-checklink';
$VERSION = '4.5';
$REVISION = sprintf('version %s (c) 1999-2010 W3C', $VERSION);
- my ($cvsver) = q$Revision: 4.192 $ =~ /(\d+[\d\.]*\.\d+)/;
+ my ($cvsver) = q$Revision: 4.193 $ =~ /(\d+[\d\.]*\.\d+)/;
$AGENT = sprintf(
'%s/%s [%s] %s',
$PROGRAM, $VERSION, $cvsver,
@@ -502,6 +501,13 @@
EOF
}
+# Add configured forbidden protocols
+if ($Cfg{Forbidden_Protocols}) {
+ my $forbidden = $ua->protocols_forbidden();
+ push(@$forbidden, split(/[,\s]+/, lc($Cfg{Forbidden_Protocols})));
+ $ua->protocols_forbidden($forbidden);
+}
+
if ($Opts{Command_Line}) {
require Text::Wrap;
@@ -568,7 +574,7 @@
require CGI::Cookie;
# file: URIs are not allowed in CGI mode
- my $forbidden = $ua->protocols_forbidden() || [];
+ my $forbidden = $ua->protocols_forbidden();
push(@$forbidden, 'file');
$ua->protocols_forbidden($forbidden);
diff -r 132872da47d3 -r 8aee47762a31 etc/checklink.conf
--- a/etc/checklink.conf Thu Mar 11 17:13:42 2010 +0000
+++ b/etc/checklink.conf Thu Mar 11 17:54:33 2010 +0000
@@ -1,6 +1,6 @@
#
# Configuration file for the W3C Link Checker
-# $Id: checklink.conf,v 1.7 2009-02-10 18:36:31 ville Exp $
+# $Id: checklink.conf,v 1.8 2010-03-11 17:54:33 ville Exp $
#
# See Config::General(3) for the syntax; 'SplitPolicy' is 'equalsign' here.
#
@@ -50,3 +50,13 @@
#
# Default:
# Doc_URI = http://validator.w3.org/docs/checklink.html
+
+
+#
+# Forbidden_Protocols is a comma separated list of protocols/URI schemes
+# that the link checker is not allowed to use. The javascript and mailto
+# schemes are always forbidden, and so is the file protocol when running
+# as a CGI script.
+#
+# Default:
+# Forbidden_Protocols = javascript,mailto
Received on Thursday, 5 August 2010 14:47:38 UTC