- From: Olivier Thereaux via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 16 Mar 2007 06:56:12 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/validator/httpd/cgi-bin
In directory hutz:/tmp/cvs-serv11904/httpd/cgi-bin
Modified Files:
check
Log Message:
more info in debug. fixing parse mode fallback for unknown document types
Index: check
===================================================================
RCS file: /sources/public/validator/httpd/cgi-bin/check,v
retrieving revision 1.481
retrieving revision 1.482
diff -u -d -r1.481 -r1.482
--- check 16 Mar 2007 03:20:16 -0000 1.481
+++ check 16 Mar 2007 06:56:09 -0000 1.482
@@ -654,6 +654,7 @@
qw(no_proxy http_proxy https_proxy ftp_proxy FTP_PASSIVE)),
{ name => 'Content-Encoding', value => $File->{ContentEnc} },
{ name => 'Content-Language', value => $File->{ContentLang} },
+ { name => 'Content-Location', value => $File->{ContentLoc} },
{ name => 'Transfer-Encoding', value => $File->{TransferEnc} },
{ name => 'Parse Mode', value => $File->{Mode} },
{ name => 'Parser', value => $parser_name },
@@ -703,8 +704,15 @@
# check the received mime type against Allowed mime types
if ($File->{ContentType}){
my @allowedMediaType = split(" ", $CFG->{Types}->{$File->{DOCTYPE}}->{Types}->{Allowed});
- my $usedCTisAllowed = FALSE;
- foreach (@allowedMediaType) { $usedCTisAllowed = TRUE if ($_ eq $File->{ContentType}); }
+ my $usedCTisAllowed;
+ if (scalar @allowedMediaType) {
+ $usedCTisAllowed = FALSE;
+ foreach (@allowedMediaType) { $usedCTisAllowed = TRUE if ($_ eq $File->{ContentType}); }
+ }
+ else {
+ # wedon't know what media type is recommended, so better shut up
+ $usedCTisAllowed = TRUE;
+ }
if(! $usedCTisAllowed ){
&add_warning('W23', {
W23_type => $File->{ContentType},
@@ -1121,6 +1129,7 @@
$File->{ContentType} = $ct;
$File->{ContentEnc} = $res->content_encoding;
$File->{ContentLang} = $res->content_language;
+ $File->{ContentLoc} = $res->header('Content-Location');
$File->{TransferEnc} = $res->header('Client-Transfer-Encoding');
$File->{Charset}->{HTTP} = lc $charset;
$File->{Modified} = $lastmod;
@@ -1737,7 +1746,15 @@
$mode = 'TBD' unless $mode eq 'SGML' or $mode eq 'XML';
- if ($File->{Mode} ne 'TBD' and $mode ne $File->{Mode}) {
+ # if the document type is not known ($mode = TBD)
+ # but the content-type clearly shows we should used SGML or XML ($File->{Mode} ne 'TBD')
+ # then we're happy - we use that
+ if (($mode eq 'TBD') and ($File->{Mode} ne 'TBD')) {
+ $mode = $File->{Mode};
+ }
+
+ # if document-type recommended mode and content-type recommended mode clash
+ if (($mode ne 'TBD') and ($mode ne $File->{Mode}) ) {
&add_warning('W07', {
W07_mime => $File->{ContentType},
W07_ct => $File->{Mode},
@@ -1746,12 +1763,17 @@
return;
}
- # $File->{Mode} eq 'TBD'
if ($mode eq 'SGML' or $mode eq 'XML') {
$File->{Mode} = $mode
} else {
+ # if by now we still don't know, use SGML as default.
+ # but warn that we are not pleased
+
$File->{Mode} = 'SGML';
- &add_warning('W06', {});
+ &add_warning('W06', {
+ W06_mime => $File->{ContentType},
+ w06_doctype => $File->{Version}
+ });
}
}
Received on Friday, 16 March 2007 06:56:31 UTC