X-Git-Url: http://git.maemo.org/git/?p=samba;a=blobdiff_plain;f=docs%2Fhtmldocs%2FSamba3-Developers-Guide%2Frpc-plugin.html;fp=docs%2Fhtmldocs%2FSamba3-Developers-Guide%2Frpc-plugin.html;h=d3d75599798e7046c07bb1e5c81c2a29ad4784ea;hp=0000000000000000000000000000000000000000;hb=6bca4ca307d55b6dc888e56cee47aebcddbce786;hpb=7fd70fa738b636089bcc6c961aa3eaa02f20dda2 diff --git a/docs/htmldocs/Samba3-Developers-Guide/rpc-plugin.html b/docs/htmldocs/Samba3-Developers-Guide/rpc-plugin.html new file mode 100644 index 0000000..d3d7559 --- /dev/null +++ b/docs/htmldocs/Samba3-Developers-Guide/rpc-plugin.html @@ -0,0 +1,24 @@ +Chapter 9. RPC Pluggable Modules

Chapter 9. RPC Pluggable Modules

Anthony Liguori

Jelmer Vernooij

Samba Team

January 2003

Table of Contents

About
General Overview

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 init_module function within +the shared library. Check the chapter on modules for more information. +

+In the init_module function, the library should call +rpc_pipe_register_commands(). This function takes the following arguments: +

+NTSTATUS rpc_pipe_register_commands(int version, const char *clnt, const char *srv,
+                               const struct api_struct *cmds, int size);
+
version

Version number of the RPC interface. Use the define SMB_RPC_INTERFACE_VERSION for this +argument.

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. +