diff options
Diffstat (limited to 'docs/docbook/devdoc')
-rw-r--r-- | docs/docbook/devdoc/Tracing.sgml | 7 | ||||
-rw-r--r-- | docs/docbook/devdoc/architecture.sgml | 53 | ||||
-rw-r--r-- | docs/docbook/devdoc/dev-doc.sgml | 8 | ||||
-rw-r--r-- | docs/docbook/devdoc/encryption.sgml | 11 | ||||
-rw-r--r-- | docs/docbook/devdoc/gencache.sgml | 117 | ||||
-rw-r--r-- | docs/docbook/devdoc/modules.sgml | 150 | ||||
-rw-r--r-- | docs/docbook/devdoc/packagers.sgml | 38 | ||||
-rw-r--r-- | docs/docbook/devdoc/printing.sgml | 4 | ||||
-rw-r--r-- | docs/docbook/devdoc/rpc_plugin.sgml | 77 | ||||
-rw-r--r-- | docs/docbook/devdoc/sam.sgml | 3 | ||||
-rw-r--r-- | docs/docbook/devdoc/unix-smb.sgml | 4 | ||||
-rw-r--r-- | docs/docbook/devdoc/wins.sgml | 4 |
12 files changed, 25 insertions, 451 deletions
diff --git a/docs/docbook/devdoc/Tracing.sgml b/docs/docbook/devdoc/Tracing.sgml index f55c47bc4e..ccf1e1c3c8 100644 --- a/docs/docbook/devdoc/Tracing.sgml +++ b/docs/docbook/devdoc/Tracing.sgml @@ -1,6 +1,11 @@ <chapter id="tracing"> <chapterinfo> - &author.tridge; + <author> + <firstname>Andrew</firstname><surname>Tridgell</surname> + <affiliation> + <orgname>Samba Team</orgname> + </affiliation> + </author> </chapterinfo> <title>Tracing samba system calls</title> diff --git a/docs/docbook/devdoc/architecture.sgml b/docs/docbook/devdoc/architecture.sgml index e05039054b..312a63af97 100644 --- a/docs/docbook/devdoc/architecture.sgml +++ b/docs/docbook/devdoc/architecture.sgml @@ -4,7 +4,6 @@ <firstname>Dan</firstname><surname>Shearer</surname> </author> <pubdate> November 1997</pubdate> - &author.jelmer; </chapterinfo> <title>Samba Architecture</title> @@ -182,56 +181,4 @@ for browsing and WINS support. </para> </sect1> - -<sect1> -<title>Samba's subsystems</title> - -<para>Samba's <filename>source/</filename> directory contains quite some directories. Here's a small explanation of what each of them contains.</para> - -<simplelist> -<member>aparser - Obsolete</member> -<member>auth - The authentication subsystem, maintained by Andrew Bartlett</member> -<member>bin - Output directory for all the binary files</member> -<member>client - Contains 'plain' SMB client sources: smbclient and -some mount help utilities</member> -<member>groupdb - Group database and mapping code</member> -<member>include - All of samba's include files</member> -<member>intl - Internationalization files. Not used at the moment.</member> -<member>lib - General C helper functions. Not SMB-specific.</member> -<member>libads - Library with ActiveDirectory related functions.</member> -<member>libsmb - Library with SMB specific functions.</member> -<member>locking - Locking functions!</member> -<member>modules - Source files for various modules (VFS and charset).</member> -<member>msdfs - DCE-DFS code</member> -<member>nmbd - Code for the nmbd daemon</member> -<member>nsswitch - Winbind source code</member> -<member>pam_smbpass - Source code for pam module for authenticating against samba's passdb</member> -<member>param - smb.conf parsing code</member> -<member>passdb - User database(SAM) code with the various backends</member> -<member>po - Internationalisation code - not used atm</member> -<member>popt - Samba's internal copy of the popt library</member> -<member>printing - Printing stuff</member> -<member>profile - Profiling support</member> -<member>python - Python bindings for various libsmb functions</member> -<member>registry - Registry backend</member> -<member>rpc_client - RPC Client library for making remote procedure calls</member> -<member>rpc_parse - Functions for parsing RPC structures (???)</member> -<member>rpc_server - Functions for being an RPC server</member> -<member>rpcclient - Command-line client that is a basically a front-end to rpc_client/</member> -<member>sam - Code for the new (but unused) SAM</member> -<member>script - Various scripts</member> -<member>smbd - Source code for the smbd daemon</member> -<member>smbwrapper - Source code for library that overloads VFS function calls, for usage with LD_PRELOAD=...</member> -<member>stf - Testsuite system?</member> -<member>tdb - Source code of samba's Trivial Database (much like gdbm)</member> -<member>tests - Source code for the larger tests used by configure</member> -<member>torture - 'Torture' utilities, used for testing samba and other cifs servers</member> -<member>ubiqx - The ubiqx library from Chris Hertel</member> -<member>utils - Various small utilities(pdbedit, net, etc)</member> -<member>web - SWAT sourcecode</member> -<member>wrepld - Sourcecode of the WINS replication daemon</member> -</simplelist> - -</sect1> - </chapter> diff --git a/docs/docbook/devdoc/dev-doc.sgml b/docs/docbook/devdoc/dev-doc.sgml index ee2a40535d..e256dbe3a2 100644 --- a/docs/docbook/devdoc/dev-doc.sgml +++ b/docs/docbook/devdoc/dev-doc.sgml @@ -1,5 +1,4 @@ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ -<!ENTITY % globalentities SYSTEM '../global.ent'> %globalentities; <!ENTITY NetBIOS SYSTEM "NetBIOS.sgml"> <!ENTITY Architecture SYSTEM "architecture.sgml"> <!ENTITY debug SYSTEM "debug.sgml"> @@ -13,9 +12,6 @@ <!ENTITY wins SYSTEM "wins.sgml"> <!ENTITY sam SYSTEM "sam.sgml"> <!ENTITY encryption SYSTEM "encryption.sgml"> -<!ENTITY rpc-plugin SYSTEM "rpc_plugin.sgml"> -<!ENTITY modules SYSTEM "modules.sgml"> -<!ENTITY packagers SYSTEM "packagers.sgml"> ]> <book id="Samba-Developers-Guide"> @@ -27,7 +23,6 @@ <surname>SAMBA Team</surname> </author> <address><email>samba@samba.org</email></address> - <editor>&person.jelmer;</editor> </bookinfo> <dedication> @@ -71,8 +66,5 @@ url="http://www.fsf.org/licenses/gpl.txt">http://www.fsf.org/licenses/gpl.txt</u &wins; &sam; &encryption; -&modules; -&rpc-plugin; -&packagers; </book> diff --git a/docs/docbook/devdoc/encryption.sgml b/docs/docbook/devdoc/encryption.sgml index 64ff4262cb..3ca8aa109c 100644 --- a/docs/docbook/devdoc/encryption.sgml +++ b/docs/docbook/devdoc/encryption.sgml @@ -2,7 +2,16 @@ <chapterinfo> - &author.jeremy; + <author> + <firstname>Jeremy</firstname><surname>Allison</surname> + <affiliation> + <orgname>Samba Team</orgname> + <address> + <email>samba@samba.org</email> + </address> + </affiliation> + </author> + <pubdate>19 Apr 1999</pubdate> </chapterinfo> diff --git a/docs/docbook/devdoc/gencache.sgml b/docs/docbook/devdoc/gencache.sgml deleted file mode 100644 index 096bdce789..0000000000 --- a/docs/docbook/devdoc/gencache.sgml +++ /dev/null @@ -1,117 +0,0 @@ -<chapter id="gencache"> -<chapterinfo> - &author.mimir; - <pubdate>April 2003</pubdate> -</chapterinfo> - -<title>General cache mechanism and API</title> - -<sect1> -<title>Abstract</title> -<para> -General cache (gencache) was designed to combine various kinds of caching -mechanisms into one, defined by a simple API. This way, anyone can use it -to create their own caching layer on top of gencache. An example of -such approach is the netbios name cache. -</para> -</sect1> - -<sect1> -<title>The mechanism</title> -<para> -Gencache utilises <emphasise>tdb</emphasise> database, like many other -parts of Samba. As its origins are in Berkeley DB implementation, it -uses key/value pairs stored in binary file. The values gencache -operates on are string-based, however. This makes very easy to use it -in command line environment eg. to quickly take a look at what's in -the cache or set some value. -</para> - -<para> -All the data is stored in <filename>gencache.tdb</filename> -file. Records put there are in key/value format as mentioned below, -but as it's a cache, the timeout plays also important role and has a -special place in the key/value pair, as well as API. -</para> -</sect1> - - -<sect1> -<title>The data structure</title> -<para> -The record stored in <filename>gencache.tdb</filename> file consists -of the key, the value and the expiration timeout. While the first part -is stored completely independent from the others, the last two are -kept together. The form the record has is: -</para> - -<para><programlisting> -key: <string&bt; -value: <12-digit timeout&bt;/<string> -</programlisting></para> - -<para>The timeout part is the ASCII representation of -<emphasis>time_t</emphasis> value of the time when the cache entry -expires. Obviously the API, the programmer is provided with, hides this detail, -so that you don't have to care about checking it. Simply watch -carefully the return status of the function. -</para> -</sect1> - -<sect1> -<title>The API</title> - -<para><programlisting> -BOOL gencache_init() -</programlisting></para> - -<para>This is used to initialise to whole caching mechanism. It means -opening the file or creating it if non-existing. If it's already been -opened earlier, then the routine just does nothing and returns -<constant>true</constant>. If something goes wrong, say the user -doesn't have necessary rights, the function returns -<constant>false</constant>.</para> - -<para><programlisting> -BOOL gencache_shutdown() -</programlisting></para> - -<para>This is the proper way to close the cache file. It simply -returns <constant>true</constant> after successful closing file and -<constant>false</constant> upon a failure.</para> - -<para><programlisting> -BOOL gencache_set(const char* keystr, const char* value, time_t timeout) -</programlisting></para> - -<para>This is one of the most basic functions. What it allows you to -do is to set some particular cache entry. If the entry haven't -existed yet, the function will act just as it was "gencache_add" -function. If it's already been in the cache, the entry will be set to -the new value. In either case, the cache entry will be set with given -key, value and timeout. Thus it is comfortable way to just set the -entry and not care about the details.</para> - -<para><programlisting> -BOOL gencache_set_only(const char* keystr, const char* value, time_t timeout) -</programlisting></para> - -<para><programlisting> -BOOL gencache_del(const char* keystr) -</programlisting></para> - -<para><programlisting> -BOOL gencache_get(const char* keystr, char** valstr, time_t* timeout) -</programlisting></para> - -<para><programlisting> -void gencache_iterate(void (*fn)(const char* key, const char *value, time_t timeout, void* dptr), - void* data, const char* keystr_pattern) - -</programlisting></para> - -<sect1> -<title>Writing your own caching layer</title> -</sect1> - -</chapter> diff --git a/docs/docbook/devdoc/modules.sgml b/docs/docbook/devdoc/modules.sgml deleted file mode 100644 index c43e8a9118..0000000000 --- a/docs/docbook/devdoc/modules.sgml +++ /dev/null @@ -1,150 +0,0 @@ -<chapter id="modules"> -<chapterinfo> - &author.jelmer; - <pubdate> 19 March 2003 </pubdate> -</chapterinfo> - -<title>Modules</title> - -<sect1> -<title>Advantages</title> - -<para> -The new modules system has the following advantages: -</para> - -<simplelist> -<member>Transparent loading of static and shared modules (no need -for a subsystem to know about modules)</member> -<member>Simple selection between shared and static modules at configure time</member> -<member>"preload modules" option for increasing performance for stable modules</member> -<member>No nasty #define stuff anymore</member> -<member>All backends are available as plugin now (including pdb_ldap and pdb_tdb)</member> -</simplelist> -</sect1> - -<sect1> -<title>Loading modules</title> - -<para> -Some subsystems in samba use different backends. These backends can be -either statically linked in to samba or available as a plugin. A subsystem -should have a function that allows a module to register itself. For example, -the passdb subsystem has: -</para> - -<para><programlisting> -BOOL smb_register_passdb(const char *name, pdb_init_function init, int version); -</programlisting></para> - -<para> -This function will be called by the initialisation function of the module to -register itself. -</para> - -<sect2> -<title>Static modules</title> - -<para> -The modules system compiles a list of initialisation functions for the -static modules of each subsystem. This is a define. For example, -it is here currently (from <filename>include/config.h</filename>): -</para> - -<para><programlisting> -/* Static init functions */ -#define static_init_pdb { pdb_mysql_init(); pdb_ldap_init(); pdb_smbpasswd_init(); pdb_tdbsam_init(); pdb_guest_init();} -</programlisting></para> - -<para> -These functions should be called before the subsystem is used. That -should be done when the subsystem is initialised or first used. -</para> - -</sect2> - -<sect2> -<title>Shared modules</title> - -<para> -If a subsystem needs a certain backend, it should check if it has -already been registered. If the backend hasn't been registered already, -the subsystem should call smb_probe_module(char *subsystem, char *backend). -This function tries to load the correct module from a certain path -($LIBDIR/subsystem/backend.so). If the first character in 'backend' -is a slash, smb_probe_module() tries to load the module from the -absolute path specified in 'backend'. -</para> - -<para>After smb_probe_module() has been executed, the subsystem -should check again if the module has been registered. -</para> - -</sect2> -</sect1> - -<sect1> -<title>Writing modules</title> - -<para> -Each module has an initialisation function. For modules that are -included with samba this name is '<replaceable>subsystem</replaceable>_<replaceable>backend</replaceable>_init'. For external modules (that will never be built-in, but only available as a module) this name is always 'init_module'. (In the case of modules included with samba, the configure system will add a #define subsystem_backend_init() init_module()). -The prototype for these functions is: -</para> - -<para><programlisting> -int init_module(void); -</programlisting></para> - -<para>This function should call one or more -registration functions. The function should return non-zero on success and zero on -failure.</para> - -<para>For example, pdb_ldap_init() contains: </para> - -<para><programlisting> -int pdb_ldap_init(void) -{ - smb_register_passdb("ldapsam", pdb_init_ldapsam, PASSDB_INTERFACE_VERSION); - smb_register_passdb("ldapsam_nua", pdb_init_ldapsam_nua, PASSDB_INTERFACE_VERSION); - return TRUE; -} -</programlisting></para> - -<sect2> -<title>Static/Shared selection in configure.in</title> - -<para> -Some macros in configure.in generate the various defines and substs that -are necessary for the system to work correct. All modules that should -be built by default have to be added to the variable 'default_modules'. -For example, if ldap is found, pdb_ldap is added to this variable. -</para> - -<para> -On the bottom of configure.in, SMB_MODULE() should be called -for each module and SMB_SUBSYSTEM() for each subsystem. -</para> - -<para>Syntax:</para> - -<para><programlisting> -SMB_MODULE(<replaceable>subsystem</replaceable>_<replaceable>backend</replaceable>, <replaceable>object files</replaceable>, <replaceable>plugin name</replaceable>, <replaceable>subsystem name</replaceable>, <replaceable>static_action</replaceable>, <replaceable>shared_action</replaceable>) -SMB_SUBSYSTEM(<replaceable>subsystem</replaceable>) -</programlisting></para> - -<para>Also, make sure to add the correct directives to -<filename>Makefile.in</filename>. <replaceable>@SUBSYSTEM_STATIC@</replaceable> -will be replaced with a list of objects files of the modules that need to -be linked in statically. <replaceable>@SUBSYSTEM_MODULES@</replaceable> will -be replaced with the names of the plugins to build. -</para> - -<para>You must make sure all .c files that contain defines that can -be changed by ./configure are rebuilded in the 'modules_clean' make target. -Practically, this means all c files that contain <command>static_init_subsystem;</command> calls need to be rebuilded. -</para> - -</sect2> -</sect1> -</chapter> diff --git a/docs/docbook/devdoc/packagers.sgml b/docs/docbook/devdoc/packagers.sgml deleted file mode 100644 index edc581cf05..0000000000 --- a/docs/docbook/devdoc/packagers.sgml +++ /dev/null @@ -1,38 +0,0 @@ -<chapter id="Packaging"> -<chapterinfo> - &author.jelmer; -</chapterinfo> - -<title>Notes to packagers</title> - -<sect1> -<title>Versioning</title> - -<para>Please, please update the version number in -<filename>source/include/version.h</filename> to include the versioning of your package. This makes it easier to distinguish standard samba builds -from custom-build samba builds (distributions often patch packages). For -example, a good version would be: </para> - -<para><programlisting> -Version 2.999+3.0.alpha21-5 for Debian -</programlisting></para> - -</sect1> - -<sect1> -<title>Modules</title> - -<para>Samba now has support for building parts of samba as plugins. This -makes it possible to, for example, put ldap or mysql support in a seperate -package, thus making it possible to have a normal samba package not -depending on ldap or mysql. To build as much parts of samba -as a plugin, run: </para> - -<para><programlisting> -./configure --with-shared-modules=rpc,vfs,auth,pdb,charset -</programlisting></para> - -</sect1> - - -</chapter> diff --git a/docs/docbook/devdoc/printing.sgml b/docs/docbook/devdoc/printing.sgml index 150652ac37..363b9fb6e5 100644 --- a/docs/docbook/devdoc/printing.sgml +++ b/docs/docbook/devdoc/printing.sgml @@ -1,6 +1,8 @@ <chapter id="printing"> <chapterinfo> - &author.jerry; + <author> + <firstname>Gerald</firstname><surname>Carter</surname> + </author> <pubdate>October 2002</pubdate> </chapterinfo> diff --git a/docs/docbook/devdoc/rpc_plugin.sgml b/docs/docbook/devdoc/rpc_plugin.sgml deleted file mode 100644 index a2d1bd4c35..0000000000 --- a/docs/docbook/devdoc/rpc_plugin.sgml +++ /dev/null @@ -1,77 +0,0 @@ -<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.jelmer; - <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 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> diff --git a/docs/docbook/devdoc/sam.sgml b/docs/docbook/devdoc/sam.sgml index d4c065ca21..84c17d65e2 100644 --- a/docs/docbook/devdoc/sam.sgml +++ b/docs/docbook/devdoc/sam.sgml @@ -9,9 +9,6 @@ <title>The Upcoming SAM System</title> -<note><para>The design as described in this document is _NOT_ the design that -made it into samba 3.0. </para></note> - <sect1> <title>Security in the 'new SAM'</title> diff --git a/docs/docbook/devdoc/unix-smb.sgml b/docs/docbook/devdoc/unix-smb.sgml index eea02012e0..d6a658089c 100644 --- a/docs/docbook/devdoc/unix-smb.sgml +++ b/docs/docbook/devdoc/unix-smb.sgml @@ -1,6 +1,8 @@ <chapter id="unix-smb"> <chapterinfo> - &author.tridge; + <author> + <firstname>Andrew</firstname><surname>Tridgell</surname> + </author> <pubdate>April 1995</pubdate> </chapterinfo> diff --git a/docs/docbook/devdoc/wins.sgml b/docs/docbook/devdoc/wins.sgml index 5cdf760406..53410316c5 100644 --- a/docs/docbook/devdoc/wins.sgml +++ b/docs/docbook/devdoc/wins.sgml @@ -1,6 +1,8 @@ <chapter id="wins"> <chapterinfo> - &author.jerry; + <author> + <firstname>Gerald</firstname><surname>Carter</surname> + </author> <pubdate>October 2002</pubdate> </chapterinfo> |