1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00
David Disseldorp 0b188e7784 s3-printing: Initiate pcap reload from parent smbd
Since commit 7022554, smbds share a printcap cache (printer_list.tdb),
therefore ordering of events between smbd processes is important when
updating printcap cache information. Consider the following two process
example:
1) smbd1 receives HUP or printcap cache time expiry
2) smbd1 checks whether pcap needs refresh, it does
3) smbd1 marks pcap as refreshed
4) smbd1 forks child1 to obtain cups printer info
5) smbd2 receives HUP or printcap cache time expiry
6) smbd2 checks whether pcap needs refresh, it does not (due to step 3)
7) smbd2 reloads printer shares prior to child1 completion (stale pcap)
8) child1 completion, pcap cache (printer_list.tdb) is updated by smbd1
9) smbd1 reloads printer shares based on new pcap information

In this case both smbd1 and smbd2 are reliant on the pcap update
performed on child1 completion.
The prior commit "reload shares after pcap cache fill" ensures that
smbd1 only reloads printer shares following pcap update, however smbd2
continues to present shares based on stale pcap data.

This commit addresses the above problem by driving pcap cache and
printer share updates from the parent smbd process.
1) smbd0 (parent) receives a HUP or printcap cache time expiry
2) smbd0 forks child0 to obtain cups printer info
3) child0 completion, pcap cache (printer_list.tdb) is updated by smbd0
4) smbd0 reloads printer shares
5) smbd0 notifies child smbds of pcap update via message_send_all()
6) child smbds read fresh pcap data and reload printer shares

This architecture has the additional advantage that only a single
process (the parent smbd) requests printer information from the printcap
backend.

Use time_mono in housekeeping functions As suggested by Björn Jacke.
2011-01-07 15:37:39 -08:00
..
2009-02-20 09:20:16 +01:00
2010-12-19 23:25:06 +01:00
2009-05-27 16:18:34 +02:00

!==
!== docbook.txt for Samba 3.0
!==
!== Author:	David Bannon, D.Bannon@latrobe.edu.au  November, 2000
!== Updates:	Gerald (Jerry) Carter, jerry@samba.org, Feb. 2001
!== Updates:	Jelmer Vernooij, jelmer@samba.org,		Aug, 2002
!== Updates:	Jelmer Vernooij, jelmer@samba.org,		Jun, 2003
!== Updates: 	Jelmer Vernooij, jelmer@samba.org,		May, 2004
!== Updates:    Jelmer Vernooij, jelmer@samba.org,              May, 2005

Quick start
-----------

Run:

$ make all

or to see what is possible:

$ make help

What are DocBook documents doing in the Samba Distribution ?
-----------------------------------------------------------

We have converted all samba docs to XML/DocBook V4.2
in order to make them easier to maintain and produce a nicer looking
product.

This short note (strange isn't it how it always starts out as a short note
and becomes a long one ?) will explain very briefly how and why we have
done this.


The format
----------

If you are new to xml, regard an xml file as 'source code'. You don't
read it directly, but use it to create other formats (like the txt and html
included in ../txtdocs and ../htmldocs).

Docbook is a particular XML style, particularly suited to producing
technical manuals. 

For more information on DocBook tags and format, see "DocBook: The 
Definitive Guide" by Walsh and Muellner, (c) O'Reilly Publishing.
This book covers DocBook V4.2 and is available on-line
at http://www.docbook.org/

The Output
----------
The current Samba Subversion tree contains the XML/DocBook source files.

A regularly generated version can be found at http://samba.org/samba/docs/.

The Tools
---------

To generate the docs, you need to have the following packages installed:

 * GNU Make
 * GNU autoconf
 * xsltproc
 * inkscape

For generating PDF and PostScript (thru LaTeX):
 * dblatex (from http://dblatex.sf.net/)

For generating PDF (thru FO):
 * fop (http://xml.apache.org/fop/)

For generating ASCII:
 * html2text

For generating Palm-viewable docs:
 * plucker-build

For generating texi files:
 * docbook2x-texi
 * makeinfo

For validating:
 * xmllint

This directory now contains a ./configure script and Makefile to 
support the automated building of man pages (including HTML versions), and 
the building of the Samba-HOWTO-Collection and the 
Samba Developers Guide (HTML,TeX,PDF,PS,Text versions).

The configure script detects which of the required utilities are installed 
and builds as much docs as it can using these tools.

Help! Building the docs generates a lot of HTTP traffic...
----------------------------------------------------------

To be able to build the docs without an internet connection (or faster with 
a slow internet connection), you need to set up "catalogs".

For the Pearson DTD, add something like:

  <public publicId="-//Pearson//DTD Books//DE" uri="file:///home/jelmer/Xml_dtd_1.1/pearson.dtd"/>

For the Samba DTD's, add something like:
  <rewriteURI uriStartString="http://www.samba.org/samba/DTD" rewritePrefix="file:///home/jelmer/samba-web/DTD"/>

catalog entries for the other DTD's and XSL scripts should be present on your 
system already.

Windows Help files
----------

http://htmlhelp.berlios.de/howto/mshh4wine.php