RPC::ONC - Perl interface to ONC RPC


perlrpcgen documentation Contained in the perlrpcgen distribution.

Index


Code Index:

NAME

Top

RPC::ONC - Perl interface to ONC RPC

SYNOPSIS

Top

    use RPC::ONC;

    # Create a client of the NFS service.

    $clnt = &RPC::ONC::Client::clnt_create('foo.bar.com',
				      NFS_PROGRAM, NFS_VERSION,
				      'netpath');

    # Set the timeout to 3 seconds.
    $clnt->clnt_control(CLSET_TIMEOUT, pack('LL', 3, 0));

DESCRIPTION

Top

The RPC::ONC module provides access to some of the ONC RPC routines for making and receiving remote procedure calls, as well as functions to access members of RPC-related structures. It's intended to be used with 'perlrpcgen', which generates Perl XS stubs for RPC clients and servers.

Most of these routines work the same as their C equivalents and are thus not described in detail.

CAVEAT

Top

Not all of the ONC RPC calls are provided in this alpha version--I've been filling them in more or less as needed. Let me know if there's one you really need.

GLOBALS

Top

RPC::ONC::errno

Number of the error that just occurred.

RPC::ONC::errstr

Message corresponding to error that just occurred.

CLASSES

Top

RPC::ONC::Client

RPC::ONC::Client wraps CLIENT *.

clnt_create(host, prognum, versnum, nettype)

If the call fails, clnt_create will set RPC::ONC::errno and RPC::ONC::errstr and croak.

clnt_control(clnt, req, info)

The info argument should be packed as an appropriate structure for the operation.

clnt_destroy(clnt)
set_cl_auth(clnt, auth)

Takes an RPC::ONC::Client object and an RPC::ONC::Auth object and assigns the cl_auth field of the first to the second.

RPC::ONC::Auth

RPC::ONC::Auth wraps AUTH *.

authnone_create
authsys_create_default
auth_destroy(auth)

RPC::ONC::svc_req

RPC::ONC::svc_req wraps struct svc_req *.

rq_prog(svc_req)

Returns the rq_prog field.

rq_vers(svc_req)

Returns the rq_vers field.

rq_proc(svc_req)

Returns the rq_proc field.

rq_cred(svc_req)

Returns the rq_cred field as an RPC::ONC::opaque_auth object.

authsys_parms(svc_req)

Returns the rq_clntcred field as an RPC::ONC::authsys_parms object. Will croak if the credentials are not the right flavor.

authdes_cred(svc_req)

Returns the rq_clntcred field as an RPC::ONC::authdes_cred object. Will croak if the credentials are not the right flavor.

RPC::ONC::opaque_auth

oa_flavor(opaque_auth)

Returns the oa_flavor field.

RPC::ONC::authsys_parms

aup_time(authsys_parms)

Returns the aup_time field.

aup_machname(authsys_parms)

Returns the aup_machname field.

aup_uid(authsys_parms)

Returns the aup_uid field.

aup_gid(authsys_parms)

Returns the aup_gid field.

aup_gids(authsys_parms)

Returns the aup_gids field as an array.

RPC::ONC::Svcxprt

RPC::ONC::Svcxprt wraps struct svcxprt *.

svc_getcaller(transp)

Returns a sockaddr_in * which you can unpack to get the IP address of the caller.

SEE ALSO

Top

perlrpcgen(1)

AUTHOR

Top

Jake Donham <jake@organic.com>

THANKS

Top

Thanks to Organic Online <http://www.organic.com/> for letting me hack at work.


perlrpcgen documentation Contained in the perlrpcgen distribution.

# $Id: ONC.pm,v 1.1 1997/05/01 22:08:10 jake Exp $

#   Copyright 1997 Jake Donham <jake@organic.com>

#   You may distribute under the terms of either the GNU General
#   Public License or the Artistic License, as specified in the README
#   file.

package RPC::ONC;

require Exporter;
require DynaLoader;
require AutoLoader;

@ISA = qw(Exporter DynaLoader);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
@EXPORT = qw(
	
);
sub AUTOLOAD {
    # This AUTOLOAD is used to 'autoload' constants from the constant()
    # XS function.  If a constant is not found then control is passed
    # to the AUTOLOAD in AutoLoader.

    local($constname);
    ($constname = $AUTOLOAD) =~ s/.*:://;
    $val = constant($constname, @_ ? $_[0] : 0);
    if ($! != 0) {
	if ($! =~ /Invalid/) {
	    $AutoLoader::AUTOLOAD = $AUTOLOAD;
	    goto &AutoLoader::AUTOLOAD;
	}
	else {
	    ($pack,$file,$line) = caller;
	    die "Your vendor has not defined RPC::ONC macro $constname, used at $file line $line.
";
	}
    }
    eval "sub $AUTOLOAD { $val }";
    goto &$AUTOLOAD;
}

bootstrap RPC::ONC;

# Preloaded methods go here.

# Autoload methods go after __END__, and are processed by the autosplit program.

1;
__END__