]> git.donarmstrong.com Git - debbugs.git/blobdiff - cgi/soap.cgi
Don't serialize things as date/time in soap (closes: #484789)
[debbugs.git] / cgi / soap.cgi
index b5766d7a52108e25c606f5f1885109daed217a38..b30151ef5cf9f210ac97659031cf298b4ea68101 100755 (executable)
@@ -16,5 +16,13 @@ my $soap = Debbugs::SOAP::Server
 # soapy is stupid, and is using the 1999 schema; override it.
 *SOAP::XMLSchema1999::Serializer::as_base64Binary = \&SOAP::XMLSchema2001::Serializer::as_base64Binary;
 *SOAP::Serializer::as_anyURI       = \&SOAP::XMLSchema2001::Serializer::as_string;
-$soap-> handle;
+# to work around the serializer improperly using date/time stuff
+# (Nothing in Debbugs should be looked at as if it were date/time) we
+# kill off all of the date/time related bits in the serializer.
+my $typelookup = $soap->serializer()->{_typelookup};
+for my $key (keys %{$type_lookup}) {
+     next unless /Month|Day|Year|date|time|duration/;
+     delete $type_lookup->{$key};
+}
+$soap->handle;