summaryrefslogtreecommitdiff
path: root/docs/docbook/devdoc/rpc_plugin.xml
diff options
context:
space:
mode:
authorcvs2svn Import User <samba-bugs@samba.org>2003-05-01 11:47:49 +0000
committercvs2svn Import User <samba-bugs@samba.org>2003-05-01 11:47:49 +0000
commit67ce764d69b13203d9bd73e055e22f71dfebdba6 (patch)
tree6d54dcff5cb7ebd51c63b2dde77ea52a090afe5f /docs/docbook/devdoc/rpc_plugin.xml
parentbac83636a5993dbcd1c0beefd628044771603523 (diff)
parent75cace04fdcb672cc6c3c3ec8403206f2b222c50 (diff)
downloadsamba-67ce764d69b13203d9bd73e055e22f71dfebdba6.tar.gz
samba-67ce764d69b13203d9bd73e055e22f71dfebdba6.tar.bz2
samba-67ce764d69b13203d9bd73e055e22f71dfebdba6.zip
This commit was manufactured by cvs2svn to create branch 'SAMBA_3_0'.(This used to be commit a1ffe2a29c0e6be54af09d6647b7f54369d75a1e)
Diffstat (limited to 'docs/docbook/devdoc/rpc_plugin.xml')
-rw-r--r--docs/docbook/devdoc/rpc_plugin.xml83
1 files changed, 83 insertions, 0 deletions
diff --git a/docs/docbook/devdoc/rpc_plugin.xml b/docs/docbook/devdoc/rpc_plugin.xml
new file mode 100644
index 0000000000..c83742a247
--- /dev/null
+++ b/docs/docbook/devdoc/rpc_plugin.xml
@@ -0,0 +1,83 @@
+<chapter id="rpc-plugin">
+<chapterinfo>
+ <author>
+ <firstname>Anthony</firstname><surname>Liguori</surname>
+ <affiliation>
+ <orgname>IBM</orgname>
+ <address><email>aliguor@us.ibm.com</email></address>
+ </affiliation>
+ </author>
+ <author>
+ <firstname>Jelmer</firstname><surname>Vernooij</surname>
+ <affiliation>
+ <orgname>Samba Team</orgname>
+ <address><email>jelmer@samba.org</email></address>
+ </affiliation>
+ </author>
+ <pubdate>January 2003</pubdate>
+</chapterinfo>
+
+<title>RPC Pluggable Modules</title>
+
+<sect1>
+<title>About</title>
+
+<para>
+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.
+</para>
+
+</sect1>
+
+<sect1>
+<title>General Overview</title>
+
+<para>
+When an RPC call is sent to smbd, smbd tries to load a shared library by the
+name <filename>librpc_&lt;pipename&gt;.so</filename> to handle the call if
+it doesn't know how to handle the call internally. For instance, LSA calls
+are handled by <filename>librpc_lsass.so</filename>..
+These shared libraries should be located in the <filename>&lt;sambaroot&gt;/lib/rpc</filename>. smbd then attempts to call the init_module function within
+the shared library. Check the chapter on modules for more information.
+</para>
+
+<para>
+In the init_module function, the library should call
+rpc_pipe_register_commands(). This function takes the following arguments:
+</para>
+
+<para><programlisting>
+int rpc_pipe_register_commands(const char *clnt, const char *srv,
+ const struct api_struct *cmds, int size);
+</programlisting></para>
+
+<variablelist>
+
+<varlistentry><term>clnt</term>
+<listitem><para>the Client name of the named pipe</para></listitem>
+</varlistentry>
+
+<varlistentry><term>srv</term>
+<listitem><para>the Server name of the named pipe</para></listitem>
+</varlistentry>
+
+<varlistentry><term>cmds</term>
+<listitem><para>a list of api_structs that map RPC ordinal numbers to function calls</para></listitem>
+</varlistentry>
+
+<varlistentry><term>size</term>
+<listitem><para>the number of api_structs contained in cmds</para></listitem>
+</varlistentry>
+
+</variablelist>
+
+<para>
+See rpc_server/srv_reg.c and rpc_server/srv_reg_nt.c for a small example of
+how to use this library.
+</para>
+
+</sect1>
+</chapter>