From: Amos Jeffries Date: Tue, 31 Mar 2009 12:39:30 +0000 (+1200) Subject: AutoDocs: Upgrade to 1.5.8 and fix many doc errors. X-Git-Tag: SQUID_3_2_0_1~1084 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d85b8894814a050a57492ca259732e4b6866eecf;p=thirdparty%2Fsquid.git AutoDocs: Upgrade to 1.5.8 and fix many doc errors. Biggest change to note is a cleaner way to do lists of items in function docs as follows: /** blah blah: * - foo * - fu * - fish */ --- diff --git a/compat/compat_shared.h b/compat/compat_shared.h index 63aa8ac38e..5a2cf06cef 100644 --- a/compat/compat_shared.h +++ b/compat/compat_shared.h @@ -81,7 +81,7 @@ /** * If we don't have getrusage() then we create a fake structure * with only the fields Squid cares about. This just makes the - * source code cleaner, so we don't need lots of #ifdefs in other + * source code cleaner, so we don't need lots of ifdefs in other * places */ struct rusage diff --git a/doc/Programming-Guide/02_CodingConventions.dox b/doc/Programming-Guide/02_CodingConventions.dox index abee9694cb..defc6f8fc9 100644 --- a/doc/Programming-Guide/02_CodingConventions.dox +++ b/doc/Programming-Guide/02_CodingConventions.dox @@ -121,7 +121,7 @@ X::saidFubar() \endverbatim \par Alternatively - when a state or other context-dependant object is returned the \b \return + when a state or other context-dependant object is returned the \b \\return tag is used. It is followed by a description of the object and ideally its content. @@ -130,8 +130,8 @@ X::saidFubar() \par Simple functions do not exactly need a detailed description of their operation. - The \link PARAM input parameters \endlink and \link RETVAL Return \endlink - value should be enough for any developer to understand the function. + The \ref PARAM and \ref RETVAL + should be enough for any developer to understand the function. \par Long or Complex Functions do however need some commenting. @@ -144,7 +144,7 @@ X::saidFubar() \par Each of these design blocks inside the function should be given a comment indicating what they do. The comments should begin with - \verbatim /** \par \endverbatim + \verbatim /** \\par \endverbatim The resulting function description will then contain a paragraph on each of the blocks in the order they occur in the function. diff --git a/doc/Programming-Guide/Makefile b/doc/Programming-Guide/Makefile index 098ca89bf3..a5a9ce62e5 100644 --- a/doc/Programming-Guide/Makefile +++ b/doc/Programming-Guide/Makefile @@ -6,12 +6,12 @@ all: dyn-docs: rm -f -r tmp cd ../../ && (cat squid3.dox ; echo HTML_FILE_EXTENSION = .dyn ; echo HTML_OUTPUT = tmp ) | doxygen - 2>doxygen.log - mv tmp dyn + mv dyn dyn.bak && mv tmp dyn && rm -r dyn.bak html-docs: rm -f -r tmp cd ../../ && (cat squid3.dox | sed s/dyn/html/g | sed s/CALL_GRAPH/#/ | sed s/CALLER_GRAPH/#/ | doxygen -) 2>doxygen.log - mv tmp html + mv html html.bak && mv tmp html && rm -r html.bak clean: - rm -f -r tmp html dyn + rm -f -r tmp html dyn dyn.bak html.bak diff --git a/squid3.dox b/squid3.dox index 13b20b3801..7da906f020 100644 --- a/squid3.dox +++ b/squid3.dox @@ -1,4 +1,4 @@ -# Doxyfile 1.5.1 +# Doxyfile 1.5.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project @@ -14,6 +14,14 @@ # Project related configuration options #--------------------------------------------------------------------------- +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. @@ -46,10 +54,11 @@ CREATE_SUBDIRS = NO # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, -# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, -# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, -# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. +# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, +# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, +# Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, Slovene, +# Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English @@ -125,11 +134,19 @@ SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. @@ -138,13 +155,6 @@ JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = NO - # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. @@ -169,7 +179,7 @@ TAB_SIZE = 4 # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. -ALIASES = +ALIASES = "test=\par Unit-Tested by:\n" # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. @@ -179,14 +189,37 @@ ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to -# include (a tag file for) the STL sources as input, then you should +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it parses. +# With this tag you can assign which parser to use for a given extension. +# Doxygen has a built-in mapping, but you can override or extend it using this tag. +# The format is ext=language, where ext is a file extension, and language is one of +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C + +EXTENSION_MAPPING = cci=C++ + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration @@ -194,6 +227,26 @@ OPTIMIZE_OUTPUT_JAVA = NO BUILTIN_STL_SUPPORT = YES +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate getter +# and setter methods for a property. Setting this option to YES (the default) +# will make doxygen to replace the get and set methods by a property in the +# documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default @@ -209,6 +262,32 @@ DISTRIBUTE_GROUP_DOC = NO SUBGROUPING = YES +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to +# determine which symbols to keep in memory and which to flush to disk. +# When the cache is full, less often used symbols will be written to disk. +# For small to medium size projects (<1000 input files) the default value is +# probably good enough. For larger projects a too small cache size can cause +# doxygen to be busy swapping symbols to and from disk most of the time +# causing a significant performance penality. +# If the system has enough physical memory increasing the cache will improve the +# performance by keeping more symbols in memory. Note that the value works on +# a logarithmic scale so increasing the size by one will rougly double the +# memory usage. The cache size is given by this formula: +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, +# corresponding to a cache size of 2^16 = 65536 symbols + +SYMBOL_CACHE_SIZE = 0 + #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- @@ -243,6 +322,14 @@ EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = YES +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = YES + # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the @@ -318,11 +405,17 @@ SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. @@ -379,9 +472,22 @@ SHOW_USED_FILES = YES SHOW_DIRECTORIES = NO +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + # The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from the -# version control system). Doxygen will invoke the program by executing (via +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output @@ -389,6 +495,15 @@ SHOW_DIRECTORIES = NO FILE_VERSION_FILTER = +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by +# doxygen. The layout file controls the global structure of the generated output files +# in an output format independent way. The create the layout file that represents +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a +# file name after the option, if omitted DoxygenLayout.xml will be used as the name +# of the layout file. + +LAYOUT_FILE = + #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- @@ -451,14 +566,26 @@ WARN_LOGFILE = INPUT = ./ +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 -FILE_PATTERNS = *.dox *.h *.c *.cc *.cci +FILE_PATTERNS = *.dox \ + *.h \ + *.c \ + *.cc \ + *.cci # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. @@ -484,7 +611,18 @@ EXCLUDE_SYMLINKS = NO # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* -EXCLUDE_PATTERNS = */CVS/* */lib/libTrie/* */Programming-Guide/html/* */Programming-guide/dyn/* +EXCLUDE_PATTERNS = */CVS/* \ + */lib/libTrie/* \ + */Programming-Guide/html/* \ + */Programming-guide/dyn/* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see @@ -517,14 +655,17 @@ IMAGE_PATH = # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = "sed s/\\\/\\\*\\\*DOCS_NOSEMI\\\*\\\//\\\;/g " # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. @@ -559,22 +700,23 @@ INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES -# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES -# If the REFERENCES_RELATION tag is set to YES (the default) +# If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentstion. +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = NO @@ -663,9 +805,43 @@ HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.squid-cache.Squid-3 + # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO @@ -690,6 +866,12 @@ HHC_LOCATION = GENERATE_CHI = NO +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. @@ -701,6 +883,55 @@ BINARY_TOC = NO TOC_EXPAND = NO +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER +# are set, an additional index file will be generated that can be used as input for +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated +# HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. +# For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's +# filter section matches. +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. @@ -712,12 +943,20 @@ DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 1 -# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be -# generated containing a tree-like index structure (just like the one that +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to FRAME, a side panel will be generated +# containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are -# probably better off using the HTML help feature. +# probably better off using the HTML help feature. Other possible values +# for this tag are: HIERARCHIES, which will generate the Groups, Directories, +# and Class Hierarchy pages using a tree view instead of an ordered list; +# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which +# disables this behavior completely. For backwards compatibility with previous +# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE +# respectively. GENERATE_TREEVIEW = NO @@ -727,6 +966,14 @@ GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- @@ -939,8 +1186,10 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. @@ -1002,66 +1251,58 @@ INCLUDE_FILE_PATTERNS = # undefined via #undef or recursively expanded use the := operator # instead of the = operator. -# AYJ: List of squid components/modules boundary macros -# these need to be defined to read inside the component #if/#endif 's -PREDEFINED = \ - __cplusplus \ - HTTP_VIOLATIONS \ - WITH_VALGRIND \ - \ - DELAY_POOLS \ - ICAP_CLIENT \ - FORW_VIA_DB \ - SQUID_SNMP \ - X_ACCELERATOR_VARY \ - \ - USE_ARP_ACL \ - USE_ASYNC_IO \ - USE_CACHE_DIGESTS \ - USE_CLASSFUL \ - USE_DLMALLOC \ - USE_DNSSERVERS \ - USE_EPOLL \ - USE_GNUREGEX \ - USE_HEXDUMP \ - USE_HTCP \ - USE_ICMP \ - USE_IDENT \ - USE_IPV6 \ - USE_KQUEUE \ - USE_LEAKFINDER \ - USE_OPENSSL \ - USE_POLL \ - USE_REFERER_LOG \ - USE_SELECT \ - USE_SELECT_WIN32 \ - USE_SQUID_ESI \ - USE_SSL \ - USE_LINUX_TPROXY2 \ - USE_LINUX_TPROXY4 \ - USE_UNLINKD \ - USE_USERAGENT_LOG \ - USE_WCCP \ - USE_WCCPv2 \ - USE_WIN32_SERVICE \ - USE_XPROF_STATS \ - USE_ZPH_QOS \ - FOLLOW_X_FORWARDED_FOR - +PREDEFINED = __cplusplus \ + HTTP_VIOLATIONS \ + WITH_VALGRIND \ + DELAY_POOLS \ + ICAP_CLIENT \ + FORW_VIA_DB \ + SQUID_SNMP \ + X_ACCELERATOR_VARY \ + USE_ARP_ACL \ + USE_ASYNC_IO \ + USE_CACHE_DIGESTS \ + USE_CLASSFUL \ + USE_DLMALLOC \ + USE_DNSSERVERS \ + USE_EPOLL \ + USE_GNUREGEX \ + USE_HEXDUMP \ + USE_HTCP \ + USE_ICMP \ + USE_IDENT \ + USE_IPV6 \ + USE_KQUEUE \ + USE_LEAKFINDER \ + USE_OPENSSL \ + USE_POLL \ + USE_REFERER_LOG \ + USE_SELECT \ + USE_SELECT_WIN32 \ + USE_SQUID_ESI \ + USE_SSL \ + USE_LINUX_TPROXY2 \ + USE_LINUX_TPROXY4 \ + USE_UNLINKD \ + USE_USERAGENT_LOG \ + USE_WCCP \ + USE_WCCPv2 \ + USE_WIN32_SERVICE \ + USE_XPROF_STATS \ + USE_ZPH_QOS \ + FOLLOW_X_FORWARDED_FOR # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. -# AYJ: for some reason these don't work as specified in doxygen manual. -EXPAND_AS_DEFINED= \ - AsyncCallWrapper \ - AsyncCall \ - AsyncCallEnter \ - AsyncCallExit \ - CBDATA_CLASS2 \ - MEMPROXY_CLASS_INLINE +EXPAND_AS_DEFINED = AsyncCallWrapper \ + AsyncCall \ + AsyncCallEnter \ + AsyncCallExit \ + CBDATA_CLASS2 \ + MEMPROXY_CLASS_INLINE # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone @@ -1079,14 +1320,16 @@ SKIP_FUNCTION_MACROS = NO # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: -# TAGFILES = file1 file2 ... +# +# TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... +# +# TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. @@ -1127,6 +1370,15 @@ PERL_PATH = /usr/bin/perl CLASS_DIAGRAMS = YES +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. @@ -1140,6 +1392,29 @@ HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES +# By default doxygen will write a font called FreeSans.ttf to the output +# directory and reference it in all dot files that doxygen generates. This +# font does not include all possible unicode characters however, so when you need +# these (or just want a differently looking font) you can specify the font name +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, +# which can be done by putting it in a standard location or by setting the +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory +# containing the font. + +DOT_FONTNAME = FreeSans + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 9 + +# By default doxygen will tell dot to use the output directory to look for the +# FreeSans.ttf font (which doxygen will put there itself). If you specify a +# different font using DOT_FONTNAME you can set the path where dot +# can find it using this tag. + +DOT_FONTPATH = + # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the @@ -1184,19 +1459,19 @@ INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES -# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a call dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. -CALL_GRAPH = YES +CALL_GRAPH = NO -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will -# generate a caller dependency graph for every global function or class method. -# Note that enabling this option will significantly increase the time of a run. -# So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO @@ -1207,13 +1482,13 @@ GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include +# in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, jpg, or gif +# generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png @@ -1229,11 +1504,31 @@ DOT_PATH = DOTFILE_DIRS = +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, which results in a white background. -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO @@ -1257,7 +1552,7 @@ GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Options related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be diff --git a/src/CacheManager.h b/src/CacheManager.h index 3e7effd59b..5e9ab0d4ec 100644 --- a/src/CacheManager.h +++ b/src/CacheManager.h @@ -40,7 +40,7 @@ /** \defgroup CacheManagerAPI Cache Manager API \ingroup Components - + * \defgroup CacheManagerInternal Cache Manager intenal API (not for public use) \ingroup CacheManagerAPI */ diff --git a/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc b/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc index f9bf698867..0e2f0aed97 100644 --- a/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc +++ b/src/DiskIO/DiskThreads/DiskThreadsDiskFile.cc @@ -364,8 +364,10 @@ DiskThreadsDiskFile::writeDone(int rvfd, int errflag, size_t len, RefCount cbdata_type IoResult::CBDATA_IoResult = CBDATA_UNKNOWN; +/** \endcond */ template void * diff --git a/src/HttpHeader.h b/src/HttpHeader.h index 2d6fe76aa2..dce629d9a8 100644 --- a/src/HttpHeader.h +++ b/src/HttpHeader.h @@ -254,7 +254,7 @@ public: Vector entries; /**< parsed fields in raw format */ HttpHeaderMask mask; /**< bit set <=> entry present */ http_hdr_owner_type owner; /**< request or reply */ - int len; /**< length when packed, not counting terminating '\0' */ + int len; /**< length when packed, not counting terminating null-byte */ protected: /** \deprecated Public access replaced by removeHopByHopEntries() */ diff --git a/src/HttpHeaderRange.h b/src/HttpHeaderRange.h index dc0de55640..a608b61af4 100644 --- a/src/HttpHeaderRange.h +++ b/src/HttpHeaderRange.h @@ -63,7 +63,7 @@ public: int64_t length; }; -MEMPROXY_CLASS_INLINE(HttpHdrRangeSpec) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(HttpHdrRangeSpec); /** * There may be more than one byte range specified in the request. @@ -113,7 +113,7 @@ private: int64_t clen; }; -MEMPROXY_CLASS_INLINE(HttpHdrRange) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(HttpHdrRange); /** * Data for iterating thru range specs diff --git a/src/HttpRequest.h b/src/HttpRequest.h index 402450ab89..9aa75ef3d2 100644 --- a/src/HttpRequest.h +++ b/src/HttpRequest.h @@ -204,6 +204,6 @@ protected: virtual bool inheritProperties(const HttpMsg *aMsg); }; -MEMPROXY_CLASS_INLINE(HttpRequest) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(HttpRequest); #endif /* SQUID_HTTPREQUEST_H */ diff --git a/src/ICP.h b/src/ICP.h index 6be12c2812..3864f70285 100644 --- a/src/ICP.h +++ b/src/ICP.h @@ -62,7 +62,7 @@ struct _icp_common_t { u_int32_t shostid; /// \todo I don't believe this header is included in non-c++ code anywhere -/// the struct should become a public POD class and kill these #ifdef. +/// the struct should become a public POD class and kill these ifdef. #ifdef __cplusplus _icp_common_t(); diff --git a/src/MemObject.h b/src/MemObject.h index 1080ee3980..5464ccb197 100644 --- a/src/MemObject.h +++ b/src/MemObject.h @@ -147,7 +147,7 @@ private: DeferredReadManager deferredReads; }; -MEMPROXY_CLASS_INLINE(MemObject) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(MemObject); /** global current memory removal policy */ extern RemovalPolicy *mem_policy; diff --git a/src/SquidString.h b/src/SquidString.h index f31bebc758..f3aa7d4a3b 100644 --- a/src/SquidString.h +++ b/src/SquidString.h @@ -154,20 +154,13 @@ public: String substr(size_type from, size_type to) const; - /** \deprecated Use assignment to [] position instead. - * ie str[newLength] = '\0'; - */ _SQUID_INLINE_ void cut(size_type newLength); - #if DEBUGSTRINGS - void stat (StoreEntry *) const; - #endif - private: void allocAndFill(const char *str, int len); void allocBuffer(size_type sz); diff --git a/src/StoreSwapLogData.h b/src/StoreSwapLogData.h index c0bd2660da..dbd576bc4d 100644 --- a/src/StoreSwapLogData.h +++ b/src/StoreSwapLogData.h @@ -161,7 +161,7 @@ public: unsigned char key[SQUID_MD5_DIGEST_LENGTH]; }; -MEMPROXY_CLASS_INLINE(StoreSwapLogData) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(StoreSwapLogData); /// \ingroup FileFormatSwapStateAPI class StoreSwapLogHeader diff --git a/src/acl/Arp.cc b/src/acl/Arp.cc index 37abbf8198..011351c42a 100644 --- a/src/acl/Arp.cc +++ b/src/acl/Arp.cc @@ -148,12 +148,12 @@ ACLARP::empty () const */ /** - * Decode an ascii representation (asc) of an ethernet adress. + * Decode an ascii representation (asc) of an ethernet address. * - \param asc[in] ASCII representation of an ethernet (MAC) address - \param eth[out] Binary representation of the ethernet address - \retval 0 Conversion to binary failed. Invalid address - \retval 1 Conversion completed successfully + * \param asc ASCII representation of an ethernet (MAC) address + * \param eth Binary representation of the ethernet address + * \retval 0 Conversion to binary failed. Invalid address + * \retval 1 Conversion completed successfully */ static int decode_eth(const char *asc, char *eth) diff --git a/src/acl/Arp.h b/src/acl/Arp.h index 68cce6c486..962c5a3603 100644 --- a/src/acl/Arp.h +++ b/src/acl/Arp.h @@ -70,6 +70,6 @@ protected: char const *class_; }; -MEMPROXY_CLASS_INLINE(ACLARP) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLARP); #endif /* SQUID_ACLARP_H */ diff --git a/src/acl/Asn.h b/src/acl/Asn.h index ca44df2682..557249a25a 100644 --- a/src/acl/Asn.h +++ b/src/acl/Asn.h @@ -70,6 +70,6 @@ private: CbDataList *data; }; -MEMPROXY_CLASS_INLINE(ACLASN) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLASN); #endif /* SQUID_ACLASN_H */ diff --git a/src/acl/CertificateData.h b/src/acl/CertificateData.h index 8000b4181f..08056aeb00 100644 --- a/src/acl/CertificateData.h +++ b/src/acl/CertificateData.h @@ -65,6 +65,6 @@ private: SSLGETATTRIBUTE *sslAttributeCall; }; -MEMPROXY_CLASS_INLINE(ACLCertificateData) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLCertificateData); #endif /* SQUID_ACLCERTIFICATEDATA_H */ diff --git a/src/acl/Checklist.h b/src/acl/Checklist.h index 9cf5d52001..05d53f2683 100644 --- a/src/acl/Checklist.h +++ b/src/acl/Checklist.h @@ -131,8 +131,8 @@ public: * and the result is maybe delayed to wait for async lookups. * * When all tests are done callback is presented with one of: - * \item ACCESS_ALLOWED Access explicitly Allowed - * \item ACCESS_DENIED Access explicitly Denied + * - ACCESS_ALLOWED Access explicitly Allowed + * - ACCESS_DENIED Access explicitly Denied */ void check(); diff --git a/src/acl/DestinationIp.h b/src/acl/DestinationIp.h index 537b146429..b25e532e27 100644 --- a/src/acl/DestinationIp.h +++ b/src/acl/DestinationIp.h @@ -67,6 +67,6 @@ private: static ACLDestinationIP RegistryEntry_; }; -MEMPROXY_CLASS_INLINE(ACLDestinationIP) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLDestinationIP); #endif /* SQUID_ACLDESTINATIONIP_H */ diff --git a/src/acl/DomainData.h b/src/acl/DomainData.h index fbd0838f98..c6c0d57514 100644 --- a/src/acl/DomainData.h +++ b/src/acl/DomainData.h @@ -56,6 +56,6 @@ public: SplayNode *domains; }; -MEMPROXY_CLASS_INLINE(ACLDomainData) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLDomainData); #endif /* SQUID_ACLDOMAINDATA_H */ diff --git a/src/acl/ExtUser.h b/src/acl/ExtUser.h index aed77dbfdd..28569094ca 100644 --- a/src/acl/ExtUser.h +++ b/src/acl/ExtUser.h @@ -68,6 +68,6 @@ private: char const *type_; }; -MEMPROXY_CLASS_INLINE(ACLExtUser) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLExtUser); #endif /* SQUID_EXTUSER_H */ diff --git a/src/acl/HttpStatus.h b/src/acl/HttpStatus.h index 85033d7e24..6417a2f9f8 100644 --- a/src/acl/HttpStatus.h +++ b/src/acl/HttpStatus.h @@ -76,6 +76,6 @@ protected: char const *class_; }; -MEMPROXY_CLASS_INLINE(ACLHTTPStatus) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLHTTPStatus); #endif /* SQUID_ACLHTTPSTATUS_H */ diff --git a/src/acl/IntRange.cc b/src/acl/IntRange.cc index 7d0f3758c9..a8fdf0d729 100644 --- a/src/acl/IntRange.cc +++ b/src/acl/IntRange.cc @@ -40,7 +40,9 @@ #include "Parsing.h" /* explicit instantiation required for some systems */ +/** \cond AUTODOCS-IGNORE */ template cbdata_type CbDataList< Range >::CBDATA_CbDataList; +/** \endcond */ void ACLIntRange::parse() diff --git a/src/acl/MaxConnection.h b/src/acl/MaxConnection.h index b01f3d46ab..6c24f38f3c 100644 --- a/src/acl/MaxConnection.h +++ b/src/acl/MaxConnection.h @@ -66,6 +66,6 @@ protected: int limit; }; -MEMPROXY_CLASS_INLINE(ACLMaxConnection) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLMaxConnection); #endif /* SQUID_ACLMAXCONNECTION_H */ diff --git a/src/acl/MyIp.h b/src/acl/MyIp.h index 114d837a89..b704eebb97 100644 --- a/src/acl/MyIp.h +++ b/src/acl/MyIp.h @@ -54,6 +54,6 @@ private: static ACLMyIP RegistryEntry_; }; -MEMPROXY_CLASS_INLINE(ACLMyIP) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLMyIP); #endif /* SQUID_ACLMYIP_H */ diff --git a/src/acl/SourceIp.h b/src/acl/SourceIp.h index 4225f47c37..20e9f70a86 100644 --- a/src/acl/SourceIp.h +++ b/src/acl/SourceIp.h @@ -51,6 +51,6 @@ private: static ACLSourceIP RegistryEntry_; }; -MEMPROXY_CLASS_INLINE(ACLSourceIP) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLSourceIP); #endif /* SQUID_ACLSOURCEIP_H */ diff --git a/src/acl/SslErrorData.cc b/src/acl/SslErrorData.cc index 62ddef42ed..eaf001276a 100644 --- a/src/acl/SslErrorData.cc +++ b/src/acl/SslErrorData.cc @@ -28,8 +28,9 @@ ACLSslErrorData::match(ssl_error_t toFind) } /* explicit instantiation required for some systems */ - +/** \cond AUTODOCS-IGNORE */ template cbdata_type CbDataList::CBDATA_CbDataList; +/** \endcond */ wordlist * ACLSslErrorData::dump() diff --git a/src/acl/TimeData.h b/src/acl/TimeData.h index a52eed66e0..af4ab7eff3 100644 --- a/src/acl/TimeData.h +++ b/src/acl/TimeData.h @@ -62,6 +62,6 @@ private: ACLTimeData *next; }; -MEMPROXY_CLASS_INLINE(ACLTimeData) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLTimeData); #endif /* SQUID_ACLTIMEDATA_H */ diff --git a/src/acl/UserData.h b/src/acl/UserData.h index 5631bfb618..07b3164fdb 100644 --- a/src/acl/UserData.h +++ b/src/acl/UserData.h @@ -60,6 +60,6 @@ public: } flags; }; -MEMPROXY_CLASS_INLINE(ACLUserData) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLUserData); #endif /* SQUID_ACLUSERDATA_H */ diff --git a/src/adaptation/AccessCheck.cc b/src/adaptation/AccessCheck.cc index d58d9867ca..96bc2d9f47 100644 --- a/src/adaptation/AccessCheck.cc +++ b/src/adaptation/AccessCheck.cc @@ -12,7 +12,9 @@ #include "adaptation/AccessCheck.h" +/** \cond AUTODOCS-IGNORE */ cbdata_type Adaptation::AccessCheck::CBDATA_AccessCheck = CBDATA_UNKNOWN; +/** \endcond */ bool Adaptation::AccessCheck::Start(Method method, VectPoint vp, diff --git a/src/auth/AclMaxUserIp.h b/src/auth/AclMaxUserIp.h index dd9d088416..9b9bcf0239 100644 --- a/src/auth/AclMaxUserIp.h +++ b/src/auth/AclMaxUserIp.h @@ -80,6 +80,6 @@ private: } flags; }; -MEMPROXY_CLASS_INLINE(ACLMaxUserIP) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLMaxUserIP); #endif /* SQUID_ACLMAXUSERIP_H */ diff --git a/src/auth/AclProxyAuth.h b/src/auth/AclProxyAuth.h index 70e00fdf59..8183d99ba8 100644 --- a/src/auth/AclProxyAuth.h +++ b/src/auth/AclProxyAuth.h @@ -96,6 +96,6 @@ private: char const *type_; }; -MEMPROXY_CLASS_INLINE(ACLProxyAuth) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ACLProxyAuth); #endif /* SQUID_ACLPROXYAUTH_H */ diff --git a/src/auth/basic/auth_basic.h b/src/auth/basic/auth_basic.h index 3e5161687c..26001b57a6 100644 --- a/src/auth/basic/auth_basic.h +++ b/src/auth/basic/auth_basic.h @@ -76,7 +76,7 @@ private: char const *httpAuthHeader; }; -MEMPROXY_CLASS_INLINE(BasicUser) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(BasicUser); typedef class BasicUser basic_data; @@ -105,7 +105,7 @@ private: BasicUser *_theUser; }; -MEMPROXY_CLASS_INLINE(AuthBasicUserRequest) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(AuthBasicUserRequest); /* configuration runtime data */ diff --git a/src/auth/digest/auth_digest.h b/src/auth/digest/auth_digest.h index 5b0b512089..02c69773c0 100644 --- a/src/auth/digest/auth_digest.h +++ b/src/auth/digest/auth_digest.h @@ -105,7 +105,7 @@ private: CredentialsState credentials_ok; }; -MEMPROXY_CLASS_INLINE(AuthDigestUserRequest) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(AuthDigestUserRequest); /* data to be encoded into the nonce's b64 representation */ diff --git a/src/auth/ntlm/auth_ntlm.h b/src/auth/ntlm/auth_ntlm.h index ebe95253ad..9086682350 100644 --- a/src/auth/ntlm/auth_ntlm.h +++ b/src/auth/ntlm/auth_ntlm.h @@ -43,7 +43,7 @@ public: dlink_list proxy_auth_list; }; -MEMPROXY_CLASS_INLINE(NTLMUser) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(NTLMUser); typedef class NTLMUser ntlm_user_t; @@ -92,7 +92,7 @@ private: NTLMUser * _theUser; }; -MEMPROXY_CLASS_INLINE(AuthNTLMUserRequest) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(AuthNTLMUserRequest); /* configuration runtime data */ diff --git a/src/cache_manager.cc b/src/cache_manager.cc index ceee60b65a..164bb41907 100644 --- a/src/cache_manager.cc +++ b/src/cache_manager.cc @@ -43,11 +43,6 @@ #include "wordlist.h" #include "Debug.h" -/** - \defgroup CacheManagerInternal Cache Manager Internals - \ingroup CacheManagerAPI - */ - /// \ingroup CacheManagerInternal #define MGR_PASSWD_SZ 128 diff --git a/src/client_side.cc b/src/client_side.cc index a6b32880c9..900dfcf09f 100644 --- a/src/client_side.cc +++ b/src/client_side.cc @@ -35,7 +35,7 @@ /** \defgroup ClientSide Client-Side Logics * - \subsection cserrors Errors and client side + \section cserrors Errors and client side * \par Problem the first: * the store entry is no longer authoritative on the @@ -60,7 +60,7 @@ * stream calls occur. Then we simply read as normal. * * - \subsection pconn_logic Persistent connection logic: + \section pconn_logic Persistent connection logic: * \par * requests (httpClientRequest structs) get added to the connection diff --git a/src/client_side_reply.cc b/src/client_side_reply.cc index 57a51e1a03..770af336d1 100644 --- a/src/client_side_reply.cc +++ b/src/client_side_reply.cc @@ -1452,7 +1452,7 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) StoreEntry *e = newEntry; HttpRequest *r = http->request; - /** \item If the entry received isNull() then we ignore it. */ + /** \li If the entry received isNull() then we ignore it. */ if (e->isNull()) { http->storeEntry(NULL); } else { @@ -1462,7 +1462,7 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) e = http->storeEntry(); /* Release IP-cache entries on reload */ - /** \item If the request has no-cache flag set or some no_cache HACK in operation we + /** \li If the request has no-cache flag set or some no_cache HACK in operation we * 'invalidate' the cached IP entries for this request ??? */ if (r->flags.nocache) { @@ -1503,7 +1503,7 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) #endif if (NULL == http->storeEntry()) { - /** \item If no StoreEntry object is current assume this object isn't in the cache set MISS*/ + /** \li If no StoreEntry object is current assume this object isn't in the cache set MISS*/ debugs(85, 3, "clientProcessRequest2: StoreEntry is NULL - MISS"); http->logType = LOG_TCP_MISS; doGetMoreData(); @@ -1511,7 +1511,7 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) } if (Config.onoff.offline) { - /** \item If we are running in offline mode set to HIT */ + /** \li If we are running in offline mode set to HIT */ debugs(85, 3, "clientProcessRequest2: offline HIT"); http->logType = LOG_TCP_HIT; doGetMoreData(); @@ -1519,7 +1519,7 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) } if (http->redirect.status) { - /** \item If redirection status is True force this to be a MISS */ + /** \li If redirection status is True force this to be a MISS */ debugs(85, 3, "clientProcessRequest2: redirectStatus forced StoreEntry to NULL - MISS"); http->storeEntry(NULL); http->logType = LOG_TCP_MISS; @@ -1536,7 +1536,7 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) } if (EBIT_TEST(e->flags, ENTRY_SPECIAL)) { - /* Special entries are always hits, no matter what the client says */ + /* \li Special entries are always hits, no matter what the client says */ debugs(85, 3, "clientProcessRequest2: ENTRY_SPECIAL HIT"); http->logType = LOG_TCP_HIT; doGetMoreData(); @@ -1556,13 +1556,14 @@ clientReplyContext::identifyFoundObject(StoreEntry *newEntry) doGetMoreData(); } -/* Request more data from the store for the client Stream +/** + * Request more data from the store for the client Stream * This is *the* entry point to this module. * * Preconditions: - * This is the head of the list. - * There is at least one more node. - * data context is not null + * - This is the head of the list. + * - There is at least one more node. + * - Data context is not null */ void clientGetMoreData(clientStreamNode * aNode, ClientHttpRequest * http) @@ -1662,16 +1663,16 @@ clientReplyContext::doGetMoreData() } } -/* the next node has removed itself from the stream. */ +/** The next node has removed itself from the stream. */ void clientReplyDetach(clientStreamNode * node, ClientHttpRequest * http) { - /* detach from the stream */ + /** detach from the stream */ clientStreamDetach(node, http); } -/* - * accepts chunk of a http message in buf, parses prefix, filters headers and +/** + * Accepts chunk of a http message in buf, parses prefix, filters headers and * such, writes processed message to the message recipient */ void @@ -1701,8 +1702,9 @@ clientReplyContext::errorInStream(StoreIOBuffer const &result, size_t const &siz void clientReplyContext::sendStreamError(StoreIOBuffer const &result) { - /* call clientWriteComplete so the client socket gets closed */ - /* We call into the stream, because we don't know that there is a + /** call clientWriteComplete so the client socket gets closed + * + * We call into the stream, because we don't know that there is a * client socket! */ debugs(88, 5, "clientReplyContext::sendStreamError: A stream error has occured, marking as complete and sending no data."); diff --git a/src/esi/Assign.h b/src/esi/Assign.h index fd9fa12947..744ef37ca8 100644 --- a/src/esi/Assign.h +++ b/src/esi/Assign.h @@ -87,6 +87,6 @@ private: String unevaluatedVariable; }; -MEMPROXY_CLASS_INLINE(ESIAssign) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ESIAssign); #endif /* SQUID_ESIASSIGN_H */ diff --git a/src/esi/Esi.cc b/src/esi/Esi.cc index d41513ea9e..af01c61197 100644 --- a/src/esi/Esi.cc +++ b/src/esi/Esi.cc @@ -114,7 +114,7 @@ struct esiComment : public ESIElement { void finish(); }; -MEMPROXY_CLASS_INLINE(esiComment) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(esiComment); #include "esi/Literal.h" @@ -179,7 +179,7 @@ private: esiProcessResult_t bestAttemptRV() const; }; -MEMPROXY_CLASS_INLINE(esiTry) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(esiTry); #include "esi/Var.h" @@ -215,7 +215,7 @@ private: void selectElement(); }; -MEMPROXY_CLASS_INLINE(esiChoose) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(esiChoose); /* esiWhen */ @@ -238,7 +238,7 @@ private: void evaluate(); }; -MEMPROXY_CLASS_INLINE(esiWhen) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(esiWhen); /* esiOtherwise */ diff --git a/src/esi/Include.h b/src/esi/Include.h index 944a6cfaf4..d8b836cf74 100644 --- a/src/esi/Include.h +++ b/src/esi/Include.h @@ -104,6 +104,6 @@ private: void prepareRequestHeaders(HttpHeader &tempheaders, ESIVarState *vars); }; -MEMPROXY_CLASS_INLINE(ESIInclude) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(ESIInclude); #endif /* SQUID_ESIINCLUDE_H */ diff --git a/src/esi/Literal.h b/src/esi/Literal.h index 19f53b5846..ab946aa32b 100644 --- a/src/esi/Literal.h +++ b/src/esi/Literal.h @@ -67,6 +67,6 @@ private: esiLiteral(esiLiteral const &); }; -MEMPROXY_CLASS_INLINE(esiLiteral) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(esiLiteral); #endif /* SQUID_ESILITERAL_H */ diff --git a/src/esi/Sequence.h b/src/esi/Sequence.h index 9c5193cafb..0fd848cef0 100644 --- a/src/esi/Sequence.h +++ b/src/esi/Sequence.h @@ -90,6 +90,6 @@ private: void processStep(int dovars); }; -MEMPROXY_CLASS_INLINE(esiSequence) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(esiSequence); #endif /* SQUID_ESISEQUENCE_H */ diff --git a/src/forward.cc b/src/forward.cc index 95f21431b6..2c187de932 100644 --- a/src/forward.cc +++ b/src/forward.cc @@ -1179,10 +1179,10 @@ FwdState::reforwardableStatus(http_status s) /** * Decide where details need to be gathered to correctly describe a persistent connection. * What is needed: - * \item host name of server at other end of this link (either peer or requested host) - * \item port to which we connected the other end of this link (for peer or request) - * \item domain for which the connection is supposed to be used - * \item address of the client for which we made the connection + * - host name of server at other end of this link (either peer or requested host) + * - port to which we connected the other end of this link (for peer or request) + * - domain for which the connection is supposed to be used + * - address of the client for which we made the connection */ void FwdState::pconnPush(int fd, const peer *_peer, const HttpRequest *req, const char *domain, IpAddress &client_addr) diff --git a/src/forward.h b/src/forward.h index 065ad08bcc..c35dddef05 100644 --- a/src/forward.h +++ b/src/forward.h @@ -103,4 +103,4 @@ private: IpAddress src; /* Client address for this connection. Needed for transparent operations. */ }; -#endif +#endif /* SQUID_FORWARD_H */ diff --git a/src/fs/coss/store_coss.h b/src/fs/coss/store_coss.h index b6c538d4f8..bc478e0768 100644 --- a/src/fs/coss/store_coss.h +++ b/src/fs/coss/store_coss.h @@ -86,7 +86,7 @@ public: CossSwapDir *SD; }; -MEMPROXY_CLASS_INLINE(CossState) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(CossState); /// \ingroup COSS typedef struct _cossindex CossIndexNode; diff --git a/src/ftp.cc b/src/ftp.cc index 6bf4027392..c6ff911ecd 100644 --- a/src/ftp.cc +++ b/src/ftp.cc @@ -2504,10 +2504,10 @@ ftpSendPassive(FtpStateData * ftpState) /** \par * Send EPSV (ALL,2,1) or PASV on the control channel. * - \item EPSV ALL is used if enabled. - \item EPSV 2 is used if ALL is disabled and IPv6 is available. - \item EPSV 1 is used if EPSV 2 (IPv6) fails or is not available. - \item PASV is used if EPSV 1 fails. + * - EPSV ALL is used if enabled. + * - EPSV 2 is used if ALL is disabled and IPv6 is available. + * - EPSV 1 is used if EPSV 2 (IPv6) fails or is not available. + * - PASV is used if EPSV 1 fails. */ switch (ftpState->state) { case SENT_EPSV_1: /* EPSV options exhausted. Try PASV now. */ diff --git a/src/helper.h b/src/helper.h index 6369927494..00c15b366e 100644 --- a/src/helper.h +++ b/src/helper.h @@ -187,7 +187,7 @@ public: struct timeval dispatch_time; }; -MEMPROXY_CLASS_INLINE(helper_request) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(helper_request); class helper_stateful_request { @@ -200,7 +200,7 @@ public: void *data; }; -MEMPROXY_CLASS_INLINE(helper_stateful_request) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(helper_stateful_request); /* helper.c */ SQUIDCEXTERN void helperOpenServers(helper * hlp); diff --git a/src/htcp.cc b/src/htcp.cc index d0125207df..75173a40d8 100644 --- a/src/htcp.cc +++ b/src/htcp.cc @@ -167,7 +167,7 @@ private: htcpDataHeader *dhdr; }; -MEMPROXY_CLASS_INLINE(htcpSpecifier) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(htcpSpecifier); struct _htcpDetail { char *resp_hdrs; diff --git a/src/http.cc b/src/http.cc index 9f445f4f69..2c3a05d1b0 100644 --- a/src/http.cc +++ b/src/http.cc @@ -1662,7 +1662,7 @@ copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, co switch (e->id) { -/** \title RFC 2616 sect 13.5.1 - Hop-by-Hop headers which Squid should not pass on. */ +/** \par RFC 2616 sect 13.5.1 - Hop-by-Hop headers which Squid should not pass on. */ case HDR_PROXY_AUTHORIZATION: /** \par Proxy-Authorization: @@ -1678,7 +1678,7 @@ copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, co break; -/** \title RFC 2616 sect 13.5.1 - Hop-by-Hop headers which Squid does not pass on. */ +/** \par RFC 2616 sect 13.5.1 - Hop-by-Hop headers which Squid does not pass on. */ case HDR_CONNECTION: /** \par Connection: */ case HDR_TE: /** \par TE: */ @@ -1690,7 +1690,7 @@ copyOneHeaderFromClientsideRequestToUpstreamRequest(const HttpHeaderEntry *e, co break; -/** \title OTHER headers I haven't bothered to track down yet. */ +/** \par OTHER headers I haven't bothered to track down yet. */ case HDR_AUTHORIZATION: /** \par WWW-Authorization: diff --git a/src/ip/IpAddress.h b/src/ip/IpAddress.h index 74aa0af285..94507c5581 100644 --- a/src/ip/IpAddress.h +++ b/src/ip/IpAddress.h @@ -222,11 +222,11 @@ public: void SetAnyAddr(); /// Set object to contain the specific IP case NO_ADDR (format-neutral). - /// see \link IsNoAddr() for more detail. + /// see IsNoAddr() for more detail. void SetNoAddr(); /// Set object to contain the specific IP case LOCALHOST (format-neutral). - /// see \link IsLocalhost() for more detail. + /// see IsLocalhost() for more detail. void SetLocalhost(); /// Fast reset of the stored content to what would be after default constructor. @@ -296,10 +296,11 @@ public: * The buffer sent MUST be allocated large enough to hold the resulting string. * Name truncation will occur if buf does not have enough space. * The constant MAX_IPSTRLEN is defined to provide for sizing arrays correctly. - \param show_format may be one of: AF_INET, AF_INET6 for the format of rDNS string wanted. - \param buf buffer to receive the text string output. + \param show_type may be one of: AF_INET, AF_INET6 for the format of rDNS string wanted. + * AF_UNSPEC the default displays the IP in its most advanced native form. + \param buf buffer to receive the text string output. */ - bool GetReverseString(char buf[], int show_format = AF_UNSPEC) const; + bool GetReverseString(char buf[MAX_IPSTRLEN], int show_type = AF_UNSPEC) const; /** Test how two IP relate to each other. \retval 0 IP are equal @@ -384,13 +385,13 @@ public: private: /* Conversion for dual-type internals */ - bool GetReverseString4(char buf[], const struct in_addr &) const; + bool GetReverseString4(char buf[MAX_IPSTRLEN], const struct in_addr &dat) const; void check4Mapped(); #if USE_IPV6 - bool GetReverseString6(char buf[], const struct in6_addr &) const; + bool GetReverseString6(char buf[MAX_IPSTRLEN], const struct in6_addr &dat) const; void Map4to6(const struct in_addr &src, struct in6_addr &dest) const; diff --git a/src/ip/IpIntercept.h b/src/ip/IpIntercept.h index 7dba8b739c..3dfff4b7b6 100644 --- a/src/ip/IpIntercept.h +++ b/src/ip/IpIntercept.h @@ -83,7 +83,12 @@ private: /** * perform Lookups on Netfilter interception targets (REDIRECT, DNAT). * - \param silent[in] 0 if errors are to be displayed. 1 if errors are to be hidden. + \param silent 0 if errors are to be displayed. 1 if errors are to be hidden. + \param fd FD for the current TCP connection being tested. + \param me IP address Squid received the connection on + \param client IP address from which Squid received the connection. + * May be updated by the NAT table information. + * Default is the same value as the me IP address. \retval 0 Successfuly located the new address. \retval -1 An error occured during NAT lookups. */ @@ -92,7 +97,12 @@ private: /** * perform Lookups on Netfilter fully-transparent interception targets (TPROXY). * - \param silent[in] 0 if errors are to be displayed. 1 if errors are to be hidden. + \param silent 0 if errors are to be displayed. 1 if errors are to be hidden. + \param fd FD for the current TCP connection being tested. + \param me IP address Squid received the connection on + \param dst IP address to which the request was made. + * expected to be updated from the NAT table information. + * Default is the same value as the peer IP address sent to NatLookup(). \retval 0 Successfuly located the new address. \retval -1 An error occured during NAT lookups. */ @@ -101,7 +111,12 @@ private: /** * perform Lookups on IPFW interception. * - \param silent[in] 0 if errors are to be displayed. 1 if errors are to be hidden. + \param silent 0 if errors are to be displayed. 1 if errors are to be hidden. + \param fd FD for the current TCP connection being tested. + \param me IP address Squid received the connection on + \param client IP address from which Squid received the connection. + * May be updated by the NAT table information. + * Default is the same value as the me IP address. \retval 0 Successfuly located the new address. \retval -1 An error occured during NAT lookups. */ @@ -110,7 +125,15 @@ private: /** * perform Lookups on IPF interception. * - \param silent[in] 0 if errors are to be displayed. 1 if errors are to be hidden. + \param silent 0 if errors are to be displayed. 1 if errors are to be hidden. + \param fd FD for the current TCP connection being tested. + \param me IP address Squid received the connection on + \param client IP address from which Squid received the connection. + * May be updated by the NAT table information. + * Default is the same value as the me IP address. + \param dst IP address to which the request was made. + * expected to be updated from the NAT table information. + * Default is the same value as the peer IP address sent to NatLookup(). \retval 0 Successfuly located the new address. \retval -1 An error occured during NAT lookups. */ @@ -119,7 +142,15 @@ private: /** * perform Lookups on PF interception. * - \param silent[in] 0 if errors are to be displayed. 1 if errors are to be hidden. + \param silent 0 if errors are to be displayed. 1 if errors are to be hidden. + \param fd FD for the current TCP connection being tested. + \param me IP address Squid received the connection on + \param client IP address from which Squid received the connection. + * May be updated by the NAT table information. + * Default is the same value as the me IP address. + \param dst IP address to which the request was made. + * expected to be updated from the NAT table information. + * Default is the same value as the peer IP address sent to NatLookup(). \retval 0 Successfuly located the new address. \retval -1 An error occured during NAT lookups. */ diff --git a/src/ipcache.cc b/src/ipcache.cc index a82cbda3c0..e41484e04d 100644 --- a/src/ipcache.cc +++ b/src/ipcache.cc @@ -884,7 +884,7 @@ ipcacheStatPrint(ipcache_entry * i, StoreEntry * sentry) } /** \par - * Cached entries have IPs listed with a BNF of: '-' ('OK'|'BAD') */ + * Cached entries have IPs listed with a BNF of: ip-address '-' ('OK'|'BAD') */ for (k = 0; k < count; k++) { /* Display tidy-up: IPv6 are so big make the list vertical */ if (k == 0) diff --git a/src/main.cc b/src/main.cc index 09e17929d5..db9def2148 100644 --- a/src/main.cc +++ b/src/main.cc @@ -260,8 +260,8 @@ usage(void) /** * Parse the parameters received via command line interface. * - \param argc[in] Number of options received on command line - \param argv[in] List of parameters received on command line + \param argc Number of options received on command line + \param argv List of parameters received on command line */ static void mainParseOptions(int argc, char *argv[]) diff --git a/src/mem_node.h b/src/mem_node.h index 0d9c0aed88..c122ef2396 100644 --- a/src/mem_node.h +++ b/src/mem_node.h @@ -61,7 +61,7 @@ public: unsigned int write_pending:1; }; -MEMPROXY_CLASS_INLINE(mem_node) /**DOCS_NOSEMI*/ +MEMPROXY_CLASS_INLINE(mem_node); inline std::ostream & operator << (std::ostream &os, mem_node &aNode) diff --git a/src/neighbors.cc b/src/neighbors.cc index bfec5cc6e3..b40c53f840 100644 --- a/src/neighbors.cc +++ b/src/neighbors.cc @@ -407,8 +407,8 @@ peerClearRRStart(void) /** * Called whenever the round-robin counters need to be reset to a sane state. * So far those times are: - \item On startup and reconfigure - to set the counters to sane initial settings. - \item When a peer has revived from dead, to prevent the revived peer being + * - On startup and reconfigure - to set the counters to sane initial settings. + * - When a peer has revived from dead, to prevent the revived peer being * flooded with requests which it has 'missed' during the down period. */ void