From 1df98db6e912385c113da4e31d95fca99fee4a4c Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Sat, 18 Jan 2003 01:51:46 +0000 Subject: adding docs for rpc plugin libs (This used to be commit 36ade606e8fc7578f83590de45efbecdbe747011) --- docs/textdocs/RPC_PLUGGIN.txt | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/textdocs/RPC_PLUGGIN.txt diff --git a/docs/textdocs/RPC_PLUGGIN.txt b/docs/textdocs/RPC_PLUGGIN.txt new file mode 100644 index 0000000000..b8e59ecdd2 --- /dev/null +++ b/docs/textdocs/RPC_PLUGGIN.txt @@ -0,0 +1,34 @@ +RPC Pluggable Modules How-To +---------------------------- + +About +----- +This document describes how to make use the new RPC Pluggable Modules features +of Samba 3.0. This architecture was added to increase the maintainability of +Samba allowing RPC Pipes to be worked on separately from the main CVS branch. +The RPM architecture will also allow third-party vendors to add functionality +to Samba through plug-ins. + +General Overview +---------------- +When an RPC call is sent to smbd, smbd tries to load a shared library by the +name librpc_.so to handle the call if it doesn't know how to handle +the call internally. For instance, LSA calls are handled by librpc_lsass.so. +These shared libraries should be located in the /lib/rpc. smbd then +attempts to call the rpc_pipe_init function within the shared library. + +In the rpc_pipe_init function, the library should call +rpc_pipe_register_commands(). This function takes the following arguments: + +int rpc_pipe_register_commands(const char *clnt, const char *srv, + const struct api_struct *cmds, int size); + +clnt - the Client name of the named pipe. +srv - the Server name of the named pipe. +cmds - a list of api_structs that map RPC ordinal numbers to function calls. +size - the number of api_structs contained in cmds. + +See rpc_server/srv_reg.c and rpc_server/srv_reg_nt.c for a small example of +how to use this library. + +- Anthony Liguori -- cgit