summaryrefslogtreecommitdiff
path: root/www/p5-Catalyst-Plugin-Server/files/patch-lib-Catalyst-Plugin-Server-XMLRPC.pm
blob: 7b356d36e031b358802c35da0299c46e195151c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
--- lib/Catalyst/Plugin/Server/XMLRPC.pm.orig
+++ lib/Catalyst/Plugin/Server/XMLRPC.pm
@@ -512,7 +512,7 @@ Alias of $c->req->parameters
 
     __PACKAGE__->mk_accessors(
         qw/ path prefix separator attribute convert_params
-            show_errors xml_encoding
+            show_errors xml_encoding allow_nil
         /
     );
 
@@ -532,6 +532,8 @@ Alias of $c->req->parameters
                                 || $DefaultShowErrors );
         $self->xml_encoding( $c->config->{xmlrpc}->{xml_encoding} )
                 if $c->config->{xmlrpc}->{xml_encoding};
+        $self->allow_nil( $c->config->{xmlrpc}->{allow_nil} )
+                if $c->config->{xmlrpc}->{allow_nil};
         $self->attribute($DefaultAttr);
         $self->convert_params( 1 );
 
@@ -690,6 +692,9 @@ Alias of $c->req->parameters
         local $RPC::XML::ENCODING = $c->server->xmlrpc->config->xml_encoding
                 if $c->server->xmlrpc->config->xml_encoding;
         
+        local $RPC::XML::ALLOW_NIL = $c->server->xmlrpc->config->allow_nil
+                if $c->server->xmlrpc->config->allow_nil;
+
         local $Clone::Fast::BREAK_REFS = 1;
 
         my $res = RPC::XML::response->new(clone($status));
@@ -808,6 +813,13 @@ default encoding to C<UTF-8> for instance.
 
 Defaults to C<us-ascii> which is the default of C<RPC::XML>.
 
+=item allow_nil
+
+Allow undefined values to be encoded as a C<< nil >> element of an empty
+string.
+
+Defaults to false which is the default of C<RPC::XML>.
+
 =back
 
 =head1 DIAGNOSTICS