diff options
Diffstat (limited to 'share/perl/user.cgi')
-rw-r--r-- | share/perl/user.cgi | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/share/perl/user.cgi b/share/perl/user.cgi new file mode 100644 index 0000000..3fa63aa --- /dev/null +++ b/share/perl/user.cgi | |||
@@ -0,0 +1,28 @@ | |||
1 | #!/usr/bin/perl -w | ||
2 | |||
3 | use strict; | ||
4 | use Carp; | ||
5 | use XML::RPC; | ||
6 | use MyCGI; | ||
7 | use OpenSim::Utility; | ||
8 | use OpenSim::UserServer; | ||
9 | |||
10 | my $param = &MyCGI::getParam(); | ||
11 | my $request = $param->{'POSTDATA'}; | ||
12 | &OpenSim::Utility::Log("user", "request", $request); | ||
13 | my $xmlrpc = new XML::RPC(); | ||
14 | my $response = $xmlrpc->receive($request, \&XMLRPCHandler); | ||
15 | &OpenSim::Utility::Log("user", "response", $response); | ||
16 | &MyCGI::outputXml("utf-8", $response); | ||
17 | |||
18 | sub XMLRPCHandler { | ||
19 | my ($methodname, @param) = @_; | ||
20 | my $handler_list = &OpenSim::UserServer::getHandlerList(); | ||
21 | if (!$handler_list->{$methodname}) { | ||
22 | Carp::croak("?"); | ||
23 | } else { | ||
24 | my $handler = $handler_list->{$methodname}; | ||
25 | $handler->(@param); | ||
26 | } | ||
27 | } | ||
28 | |||