summaryrefslogtreecommitdiff
path: root/fs_selfservice/FS-SelfService/cgi
diff options
context:
space:
mode:
authorjeff <jeff>2007-08-06 08:46:06 +0000
committerjeff <jeff>2007-08-06 08:46:06 +0000
commit8a84bdd24ab863b34a62bef0dfb6c925322fefcf (patch)
treef63857fbbff747c2e9292091e5359da8fd23f969 /fs_selfservice/FS-SelfService/cgi
parent626850462b855ee897f61a9e10917a0aca322aee (diff)
add selfservice xmlrpc facilities (#591)
Diffstat (limited to 'fs_selfservice/FS-SelfService/cgi')
-rw-r--r--fs_selfservice/FS-SelfService/cgi/xmlrpc.cgi18
1 files changed, 18 insertions, 0 deletions
diff --git a/fs_selfservice/FS-SelfService/cgi/xmlrpc.cgi b/fs_selfservice/FS-SelfService/cgi/xmlrpc.cgi
new file mode 100644
index 000000000..559ae04d8
--- /dev/null
+++ b/fs_selfservice/FS-SelfService/cgi/xmlrpc.cgi
@@ -0,0 +1,18 @@
+#!/usr/bin/perl -Tw
+
+use strict;
+use XMLRPC::Transport::HTTP;
+use XMLRPC::Lite; # for XMLRPC::Serializer
+use FS::SelfService::XMLRPC;
+
+my %typelookup = (
+ base64 => [10, sub {$_[0] =~ /[^\x09\x0a\x0d\x20-\x7f]/}, 'as_base64'],
+ dateTime => [35, sub {$_[0] =~ /^\d{8}T\d\d:\d\d:\d\d$/}, 'as_dateTime'],
+ string => [40, sub {1}, 'as_string'],
+);
+my $serializer = new XMLRPC::Serializer(typelookup => \%typelookup);
+
+XMLRPC::Transport::HTTP::CGI->dispatch_to('FS::SelfService::XMLRPC')
+ ->serializer($serializer)
+ ->handle;
+