mirror of
https://github.com/samba-team/samba.git
synced 2025-01-27 14:04:05 +03:00
0b188e7784
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.
!== !== 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