summaryrefslogtreecommitdiff
path: root/docs/textdocs
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2003-01-18 01:51:46 +0000
committerGerald Carter <jerry@samba.org>2003-01-18 01:51:46 +0000
commit1df98db6e912385c113da4e31d95fca99fee4a4c (patch)
treea144055f2c9afe89eb0a454546b75add895e6ec5 /docs/textdocs
parent8c6790b6f0b5c205517846e7bad730a72569034a (diff)
downloadsamba-1df98db6e912385c113da4e31d95fca99fee4a4c.tar.gz
samba-1df98db6e912385c113da4e31d95fca99fee4a4c.tar.bz2
samba-1df98db6e912385c113da4e31d95fca99fee4a4c.zip
adding docs for rpc plugin libs
(This used to be commit 36ade606e8fc7578f83590de45efbecdbe747011)
Diffstat (limited to 'docs/textdocs')
-rw-r--r--docs/textdocs/RPC_PLUGGIN.txt34
1 files changed, 34 insertions, 0 deletions
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_<pipename>.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 <sambaroot>/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 <aliguor@us.ibm.com>