Generic Function | Package: net.rpc | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## rpc-do-request

Arguments: port (name t) arg &rest keys &allow-other-keys

This function is called each time a remote request, sent with rpc-send-request, is executed at the receiving end.

The default method simply returns 0.

We provide two methods that implement the behavior of the `with-rpc-port-enabler` mixin class. An application can define methods on subclasses of `rpc-port` to control access to the port in other ways.

### Around Method: (with-rpc-port-enabler t t)

This method signals an error unless the port has been enabled with an `:enable-client` request with an appropriate passcode.

This is an `:around` method to ensure that the method body is called before any primary methods, regardless of the class precedence list. The application may define a primary method to add other filtering algorithms.

### Around Method: (with-rpc-port-enabler (eql :enable-client) t)

This method tests the arg argument against the passcode defined in the port.

If the server was defined with a :passcode value that is an atom, then the :tester function is called with arg and passcode. If the function returns a non-nil value, the port is enabled for subsequent requests and remote calls.

If the port was defined with a :passcode value that is a list, then arg is matched with the member function against the list with tester as the test function. If arg is found in the list, the port is enabled, and the matching passcode is removed from the server list.

See also rpc.htm for general information on the Remote Procedure Call utility in Allegro CL.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version