Subject: | Invalid (empty) namespace declarations on PROPFIND are silently ignored |
litmus fails on "propfind_invalid2". This is the cure:
in propfind {}
# if has props, check for invalid namespaces (litmus does try this)
# LibXML throws errors on prefixed names without ns declaration, but
# not on prefixed props which point to an empty ("") declaration
for(@reqprops){
# undef means, this is a prop from the default DAV: ns
# '' means the prefix points to an invalid ns
# like <bar:foo xmlns:bar=""/>
if(defined($$_[0]) && $$_[0] eq ''){
# "Invalid namespace declaration for $$_[1] (ns is empty)
return HTTP::Response->new( 400, 'Bad Request' );
}
}
I think its up to you if this is a real bug and needs to be solved.
Litmus, as you already pointed out, spits out a warning here but in
general happily raises the thumb on nastier glitches...