123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/usr/bin/perl -w
- use strict;
- use MyCGI;
- use OpenSim::Config;
- use OpenSim::InventoryServer;
- use Carp;
- my $request_uri = $ENV{REQUEST_URI} || Carp::croak($OpenSim::Config::SYS_MSG{FATAL});
- my $request_method = "";
- if ($request_uri =~ /([^\/]+)\/$/) {
- $request_method = $1;
- } else {
- &MyCGI::outputXml("utf-8", $OpenSim::Config::SYS_MSG{FATAL});
- }
- my $param = &MyCGI::getParam();
- my $post_data = $param->{'POSTDATA'};
- &OpenSim::Utility::Log("inv", "request", $request_uri, $post_data);
- my $response = "";
- eval {
- $response = &handleRequest($request_method, $post_data);
- };
- if ($@) {
- $response = "<ERROR>$@</ERROR>";
- }
- &OpenSim::Utility::Log("inv", "response", $response);
- &MyCGI::outputXml("utf-8", $response);
- sub handleRequest {
- my ($methodname, $post_data) = @_;
- my $handler_list = &OpenSim::InventoryServer::getHandlerList();
- if (!$handler_list->{$methodname}) {
- Carp::croak("unknown method name");
- } else {
- my $handler = $handler_list->{$methodname};
- return $handler->($post_data);
- }
- }
|