diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2003-02-01 19:30:03 +0000 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2003-02-01 19:30:03 +0000 |
commit | b6f1cfdffb2bdd25e2561434bc6dcf1379e68ac5 (patch) | |
tree | 974433c568b2fd58a7b641c5eedbc80729255612 | |
parent | 229e45603270a88bf60d31856429fdaaeb45ed2a (diff) | |
download | samba-b6f1cfdffb2bdd25e2561434bc6dcf1379e68ac5.tar.gz samba-b6f1cfdffb2bdd25e2561434bc6dcf1379e68ac5.tar.bz2 samba-b6f1cfdffb2bdd25e2561434bc6dcf1379e68ac5.zip |
Convert Anthony's RPC doc to SGML/XML
(This used to be commit 5a6f79b4a0d72371957b6bbb9dcfeaeb8779af70)
-rw-r--r-- | docs/docbook/devdoc/dev-doc.sgml | 2 | ||||
-rw-r--r-- | docs/docbook/devdoc/rpc_plugin.sgml | 76 |
2 files changed, 78 insertions, 0 deletions
diff --git a/docs/docbook/devdoc/dev-doc.sgml b/docs/docbook/devdoc/dev-doc.sgml index e256dbe3a2..b5c934b1c8 100644 --- a/docs/docbook/devdoc/dev-doc.sgml +++ b/docs/docbook/devdoc/dev-doc.sgml @@ -12,6 +12,7 @@ <!ENTITY wins SYSTEM "wins.sgml"> <!ENTITY sam SYSTEM "sam.sgml"> <!ENTITY encryption SYSTEM "encryption.sgml"> +<!ENTITY rpc-plugin SYSTEM "rpc_plugin.sgml"> ]> <book id="Samba-Developers-Guide"> @@ -66,5 +67,6 @@ url="http://www.fsf.org/licenses/gpl.txt">http://www.fsf.org/licenses/gpl.txt</u &wins; &sam; &encryption; +&rpc-plugin; </book> diff --git a/docs/docbook/devdoc/rpc_plugin.sgml b/docs/docbook/devdoc/rpc_plugin.sgml new file mode 100644 index 0000000000..21582a011d --- /dev/null +++ b/docs/docbook/devdoc/rpc_plugin.sgml @@ -0,0 +1,76 @@ +<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> + <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_<pipename>.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><sambaroot>/lib/rpc</filename>. smbd then attempts to call the rpc_pipe_init function within +the shared library. +</para> + +<para> +In the rpc_pipe_init 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> |