/usr/share/perl5/RPC/XML/methodSignature.xpl is in librpc-xml-perl 0.80-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE methoddef SYSTEM "rpc-method.dtd">
<!--
Generated automatically by make_method 1.15
Any changes made here will be lost.
-->
<methoddef>
<name>system.methodSignature</name>
<version>1.2</version>
<signature>array string</signature>
<signature>array array</signature>
<help>
Return the signatures that the specified method(s) may be called with. Always
returns an ARRAY, even if there is only one signature. Either a single method
must be named in the STRING parameter, or a list of one or more may be
specified in the ARRAY parameter. If an ARRAY is passed, then return value will
be an ARRAY containing other ARRAY values, one per requested name.
</help>
<code language="perl">
<![CDATA[
#!/usr/bin/perl
###############################################################################
#
# Sub Name: methodSignature
#
# Description: Retrieve the list of method signatures for the specified
# methods.
#
# Arguments: NAME IN/OUT TYPE DESCRIPTION
# $srv in ref Server object instance
# $arg in ref/sc Listref or scalar specification
#
# Globals: None.
#
# Environment: None.
#
# Returns: Success: listref
# Failure: fault object
#
###############################################################################
sub methodSignature
{
use strict;
my $srv = shift;
my $arg = shift;
my $name = $srv->{method_name};
my @list = (ref $arg) ? @$arg : ($arg);
my (@results, $list, $method);
for (@list)
{
if (ref($method = $srv->get_method($_)) and (! $method->hidden))
{
push(@results,
[ map { [ split(/ /) ] } @{$method->signature} ]);
}
else
{
return RPC::XML::fault->new(302, "$name: Method $_ unknown");
}
}
return (ref $arg) ? \@results : $results[0];
}
__END__
]]></code>
</methoddef>
|