user.cgi 689 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use Carp;
  4. use XML::RPC;
  5. use MyCGI;
  6. use OpenSim::Utility;
  7. use OpenSim::UserServer;
  8. my $param = &MyCGI::getParam();
  9. my $request = $param->{'POSTDATA'};
  10. &OpenSim::Utility::Log("user", "request", $request);
  11. my $xmlrpc = new XML::RPC();
  12. my $response = $xmlrpc->receive($request, \&XMLRPCHandler);
  13. &OpenSim::Utility::Log("user", "response", $response);
  14. &MyCGI::outputXml("utf-8", $response);
  15. sub XMLRPCHandler {
  16. my ($methodname, @param) = @_;
  17. my $handler_list = &OpenSim::UserServer::getHandlerList();
  18. if (!$handler_list->{$methodname}) {
  19. Carp::croak("?");
  20. } else {
  21. my $handler = $handler_list->{$methodname};
  22. $handler->(@param);
  23. }
  24. }