From 6821d898d7ecf10c6a9359560c5cf1c50a812b62 Mon Sep 17 00:00:00 2001 From: Kai Blin Date: Tue, 16 Dec 2008 09:30:16 +0100 Subject: [PATCH] nsswitch: Move source3 files to top level dir. Don't move source4 files yet to not confuse git's rename tracking too much. --- .gitignore | 2 + .../libwbclient/Doxyfile | 1060 ++++++++--------- .../libwbclient/libwbclient.h | 0 .../libwbclient/wbc_err_internal.h | 0 .../libwbclient/wbc_guid.c | 0 .../libwbclient/wbc_idmap.c | 0 .../libwbclient/wbc_pam.c | 0 .../libwbclient/wbc_pwd.c | 0 .../libwbclient/wbc_sid.c | 0 .../libwbclient/wbc_util.c | 34 +- .../libwbclient/wbclient.c | 2 - .../libwbclient/wbclient.h | 2 +- .../libwbclient/wbclient_internal.h | 0 {source3/nsswitch => nsswitch}/pam_winbind.c | 0 {source3/nsswitch => nsswitch}/pam_winbind.h | 7 +- {source3/nsswitch => nsswitch}/wb_common.c | 132 +- {source3/nsswitch => nsswitch}/wbinfo.c | 36 +- .../nsswitch => nsswitch}/winbind_client.h | 4 +- .../winbind_krb5_locator.c | 0 {source3/nsswitch => nsswitch}/winbind_nss.h | 14 +- .../nsswitch => nsswitch}/winbind_nss_aix.c | 93 +- .../winbind_nss_config.h | 9 +- .../winbind_nss_freebsd.c | 10 +- .../nsswitch => nsswitch}/winbind_nss_hpux.h | 38 +- .../nsswitch => nsswitch}/winbind_nss_irix.c | 62 +- .../nsswitch => nsswitch}/winbind_nss_irix.h | 8 +- .../nsswitch => nsswitch}/winbind_nss_linux.c | 104 +- .../nsswitch => nsswitch}/winbind_nss_linux.h | 8 +- .../winbind_nss_netbsd.c | 0 .../winbind_nss_netbsd.h | 10 +- .../winbind_nss_solaris.c | 44 +- .../winbind_nss_solaris.h | 8 +- .../winbind_struct_protocol.h | 24 +- {source3/nsswitch => nsswitch}/wins.c | 22 +- source3/Makefile.in | 28 +- source3/configure.in | 38 +- source4/winbind/wb_samba3_protocol.c | 6 - 37 files changed, 898 insertions(+), 907 deletions(-) rename {source3/nsswitch => nsswitch}/libwbclient/Doxyfile (82%) rename {source3/nsswitch => nsswitch}/libwbclient/libwbclient.h (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_err_internal.h (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_guid.c (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_idmap.c (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_pam.c (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_pwd.c (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_sid.c (100%) rename {source3/nsswitch => nsswitch}/libwbclient/wbc_util.c (98%) rename {source3/nsswitch => nsswitch}/libwbclient/wbclient.c (99%) rename {source3/nsswitch => nsswitch}/libwbclient/wbclient.h (99%) rename {source3/nsswitch => nsswitch}/libwbclient/wbclient_internal.h (100%) rename {source3/nsswitch => nsswitch}/pam_winbind.c (100%) rename {source3/nsswitch => nsswitch}/pam_winbind.h (97%) rename {source3/nsswitch => nsswitch}/wb_common.c (95%) rename {source3/nsswitch => nsswitch}/wbinfo.c (99%) rename {source3/nsswitch => nsswitch}/winbind_client.h (90%) rename {source3/nsswitch => nsswitch}/winbind_krb5_locator.c (100%) rename {source3/nsswitch => nsswitch}/winbind_nss.h (96%) rename {source3/nsswitch => nsswitch}/winbind_nss_aix.c (96%) rename {source3/nsswitch => nsswitch}/winbind_nss_config.h (96%) rename {source3/nsswitch => nsswitch}/winbind_nss_freebsd.c (97%) rename {source3/nsswitch => nsswitch}/winbind_nss_hpux.h (98%) rename {source3/nsswitch => nsswitch}/winbind_nss_irix.c (97%) rename {source3/nsswitch => nsswitch}/winbind_nss_irix.h (98%) rename {source3/nsswitch => nsswitch}/winbind_nss_linux.c (96%) rename {source3/nsswitch => nsswitch}/winbind_nss_linux.h (98%) rename {source3/nsswitch => nsswitch}/winbind_nss_netbsd.c (100%) rename {source3/nsswitch => nsswitch}/winbind_nss_netbsd.h (98%) rename {source3/nsswitch => nsswitch}/winbind_nss_solaris.c (97%) rename {source3/nsswitch => nsswitch}/winbind_nss_solaris.h (99%) rename {source3/nsswitch => nsswitch}/winbind_struct_protocol.h (98%) rename {source3/nsswitch => nsswitch}/wins.c (99%) diff --git a/.gitignore b/.gitignore index e617400cc5c..07058be52bf 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,8 @@ examples/VFS/skel_transparent.so *.po *.pyc semantic.cache +nsswitch/libnss_winbind.so +nsswitch/libnss_wins.so source3/bin/* source3/config.cache source3/config.log diff --git a/source3/nsswitch/libwbclient/Doxyfile b/nsswitch/libwbclient/Doxyfile similarity index 82% rename from source3/nsswitch/libwbclient/Doxyfile rename to nsswitch/libwbclient/Doxyfile index e12c2b06f03..529a16fd6a0 100644 --- a/source3/nsswitch/libwbclient/Doxyfile +++ b/nsswitch/libwbclient/Doxyfile @@ -14,198 +14,198 @@ # 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 +# 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 +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = Samba -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = HEAD -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = dox -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# 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, +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# 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. OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = $(PWD)/ -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. 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 regular Qt-style comments +# 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 regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = YES -# 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 +# 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. -# The new default is to treat a multi-line C++ comment block as a detailed +# 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. +# The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO -# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# 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 +# 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 +# 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. INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO -# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# 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 = -# 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. -# For instance, some of the names that are used will be different. The list +# 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. +# For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES -# 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 +# 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. 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 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 +# 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 # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO @@ -215,17 +215,17 @@ BUILTIN_STL_SUPPORT = NO CPP_CLI_SUPPORT = NO -# 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 +# 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 # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES @@ -234,350 +234,350 @@ SUBGROUPING = YES # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES -# If the EXTRACT_STATIC tag is set to YES all static members of a file +# If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO -# 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 +# 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 = NO -# 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 -# various overviews, but no documentation section is generated. +# 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 +# various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = YES -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = YES -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = 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. +# 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 applies only to the class list, not to the +# Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES -# The ENABLED_SECTIONS tag can be used to enable conditional +# The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. -ENABLED_SECTIONS = +ENABLED_SECTIONS = -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO -# 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 -# 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 +# 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 +# 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 # is used as the file version. See the manual for examples. -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- -# The QUIET tag can be used to turn on/off the messages that are generated +# The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = YES -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = NO -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = NO -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES -# This WARN_NO_PARAMDOC option can be abled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text " -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written # to stderr. -WARN_LOGFILE = +WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories # with spaces. 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. +# 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 +# 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 FILE_PATTERNS = *.c \ *.h \ *.idl -# 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. +# 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. # If left blank NO is used. RECURSIVE = YES -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = include/includes.h \ include/proto.h -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix filesystem feature) are excluded +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = -# 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, +# 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 = +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 +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see # the \include command). -EXAMPLE_PATH = +EXAMPLE_PATH = -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_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 all files are included. -EXAMPLE_PATTERNS = +EXAMPLE_PATTERNS = -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see # the \image command). -IMAGE_PATH = +IMAGE_PATH = -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# 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 +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# 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 # ignored. -INPUT_FILTER = +INPUT_FILTER = -# 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: -# 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 +# 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: +# 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. -FILTER_PATTERNS = +FILTER_PATTERNS = -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO @@ -586,34 +586,34 @@ FILTER_SOURCE_FILES = NO # configuration options related to source browsing #--------------------------------------------------------------------------- -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH -# then you must also enable this option. If you don't then doxygen will produce +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH +# then you must also enable this option. If you don't then doxygen will produce # a warning and turn it on anyway SOURCE_BROWSER = YES -# Setting the INLINE_SOURCES tag to YES will include the body +# Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = YES -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = NO -# If the REFERENCED_BY_RELATION tag is set to YES (the default) -# then for each documented function all documented +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# 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) -# then for each documented function all documented entities +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES @@ -625,16 +625,16 @@ REFERENCES_RELATION = YES REFERENCES_LINK_SOURCE = YES -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES @@ -643,141 +643,141 @@ VERBATIM_HEADERS = YES # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 1 -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = . -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a # standard header. -HTML_HEADER = +HTML_HEADER = -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a # standard footer. -HTML_FOOTER = +HTML_FOOTER = -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! -HTML_STYLESHEET = +HTML_STYLESHEET = -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES -# 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) +# 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) # of the generated HTML documentation. GENERATE_HTMLHELP = NO -# 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 +# 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_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be # written to the html output directory. -CHM_FILE = +CHM_FILE = -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. -HHC_LOCATION = +HHC_LOCATION = -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO -# 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 +# 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. BINARY_TOC = NO -# The TOC_EXPAND flag can be set to YES to add extra items for group members +# The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO -# 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 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. DISABLE_INDEX = NO -# This tag can be used to set the number of enum values (range [1..20]) +# This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 3 # 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 -# 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 +# 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. GENERATE_TREEVIEW = NO -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 @@ -786,74 +786,74 @@ TREEVIEW_WIDTH = 250 # configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, a4wide, letter, legal and +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. -EXTRA_PACKAGES = +EXTRA_PACKAGES = -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! -LATEX_HEADER = +LATEX_HEADER = -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = YES -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO @@ -862,68 +862,68 @@ LATEX_HIDE_INDICES = NO # configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. -RTF_STYLESHEET_FILE = +RTF_STYLESHEET_FILE = -# Set optional variables used in the generation of an rtf document. +# Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. -RTF_EXTENSIONS_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man -# The MAN_EXTENSION tag determines the extension that is added to +# The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO @@ -932,33 +932,33 @@ MAN_LINKS = NO # configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the # syntax of the XML files. -XML_SCHEMA = +XML_SCHEMA = -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the # syntax of the XML files. -XML_DTD = +XML_DTD = -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES @@ -967,10 +967,10 @@ XML_PROGRAMLISTING = YES # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO @@ -979,319 +979,319 @@ GENERATE_AUTOGEN_DEF = NO # configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. 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 -# tag is set to NO the size of the Perl module output will be much smaller +# 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 +# tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- -# Configuration options related to the preprocessor +# Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = NO -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by # the preprocessor. -INCLUDE_PATH = +INCLUDE_PATH = -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. -INCLUDE_FILE_PATTERNS = +INCLUDE_FILE_PATTERNS = -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator # instead of the = operator. -PREDEFINED = +PREDEFINED = -# 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. +# 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. -EXPAND_AS_DEFINED = +EXPAND_AS_DEFINED = -# 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 -# on a line, have an all uppercase name, and do not end with a semicolon. Such -# function macros are typically used for boiler-plate code, and will confuse +# 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 +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- -# Configuration::additions related to external references +# Configuration::additions related to external references #--------------------------------------------------------------------------- -# The TAGFILES option can be used to specify one or more tagfiles. -# 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 ... -# Adding location for the tag files is done as follows: -# 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 +# The TAGFILES option can be used to specify one or more tagfiles. +# 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 ... +# Adding location for the tag files is done as follows: +# 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) -# If a tag file is not located in the directory in which doxygen +# 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. -TAGFILES = +TAGFILES = -# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. -GENERATE_TAGFILE = +GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES -# The PERL_PATH should be the absolute path and name of the perl script +# The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- -# Configuration options related to the dot tool +# Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option is superseded by the HAVE_DOT option below. This is only a -# fallback. It is recommended to install and use dot, since it yields more +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more # powerful graphs. 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 +# 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 = +MSCGEN_PATH = -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented +# 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. HIDE_UNDOC_RELATIONS = YES -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO -# 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 +# 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 # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO -# If set to YES, the inheritance and collaboration graphs will show the +# If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = YES -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES -# If the CALL_GRAPH, SOURCE_BROWSER 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 +# If the CALL_GRAPH, SOURCE_BROWSER 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. CALL_GRAPH = NO -# If the CALLER_GRAPH, SOURCE_BROWSER 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 +# If the CALLER_GRAPH, SOURCE_BROWSER 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 -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. 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 +# 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 # 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 +# 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 # If left blank png will be used. DOT_IMAGE_FORMAT = png -# The tag DOT_PATH can be used to specify the path where the dot tool can be +# The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. -DOT_PATH = +DOT_PATH = -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the # \dotfile command). -DOTFILE_DIRS = +DOTFILE_DIRS = -# The MAX_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 -# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note +# The MAX_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 +# MAX_DOT_GRAPH_NOTES 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 +# 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 +# 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). DOT_TRANSPARENT = NO -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- -# Configuration::additions related to the search engine +# Configuration::additions related to the search engine #--------------------------------------------------------------------------- -# The SEARCHENGINE tag specifies whether or not a search engine should be +# The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO diff --git a/source3/nsswitch/libwbclient/libwbclient.h b/nsswitch/libwbclient/libwbclient.h similarity index 100% rename from source3/nsswitch/libwbclient/libwbclient.h rename to nsswitch/libwbclient/libwbclient.h diff --git a/source3/nsswitch/libwbclient/wbc_err_internal.h b/nsswitch/libwbclient/wbc_err_internal.h similarity index 100% rename from source3/nsswitch/libwbclient/wbc_err_internal.h rename to nsswitch/libwbclient/wbc_err_internal.h diff --git a/source3/nsswitch/libwbclient/wbc_guid.c b/nsswitch/libwbclient/wbc_guid.c similarity index 100% rename from source3/nsswitch/libwbclient/wbc_guid.c rename to nsswitch/libwbclient/wbc_guid.c diff --git a/source3/nsswitch/libwbclient/wbc_idmap.c b/nsswitch/libwbclient/wbc_idmap.c similarity index 100% rename from source3/nsswitch/libwbclient/wbc_idmap.c rename to nsswitch/libwbclient/wbc_idmap.c diff --git a/source3/nsswitch/libwbclient/wbc_pam.c b/nsswitch/libwbclient/wbc_pam.c similarity index 100% rename from source3/nsswitch/libwbclient/wbc_pam.c rename to nsswitch/libwbclient/wbc_pam.c diff --git a/source3/nsswitch/libwbclient/wbc_pwd.c b/nsswitch/libwbclient/wbc_pwd.c similarity index 100% rename from source3/nsswitch/libwbclient/wbc_pwd.c rename to nsswitch/libwbclient/wbc_pwd.c diff --git a/source3/nsswitch/libwbclient/wbc_sid.c b/nsswitch/libwbclient/wbc_sid.c similarity index 100% rename from source3/nsswitch/libwbclient/wbc_sid.c rename to nsswitch/libwbclient/wbc_sid.c diff --git a/source3/nsswitch/libwbclient/wbc_util.c b/nsswitch/libwbclient/wbc_util.c similarity index 98% rename from source3/nsswitch/libwbclient/wbc_util.c rename to nsswitch/libwbclient/wbc_util.c index 7cfb64b87e9..5c5034ee13f 100644 --- a/source3/nsswitch/libwbclient/wbc_util.c +++ b/nsswitch/libwbclient/wbc_util.c @@ -299,7 +299,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx, wbc_status = wbcStringToSid(r, &info->sid); BAIL_ON_WBC_ERROR(wbc_status); - + /* Trust type */ r = s; if ((s = strchr(r, '\\')) == NULL) { @@ -332,9 +332,9 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx, s++; if (strcmp(r, "Yes") == 0) { - info->trust_flags |= WBC_DOMINFO_TRUST_TRANSITIVE; + info->trust_flags |= WBC_DOMINFO_TRUST_TRANSITIVE; } - + /* Incoming */ r = s; if ((s = strchr(r, '\\')) == NULL) { @@ -345,7 +345,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx, s++; if (strcmp(r, "Yes") == 0) { - info->trust_flags |= WBC_DOMINFO_TRUST_INCOMING; + info->trust_flags |= WBC_DOMINFO_TRUST_INCOMING; } /* Outgoing */ @@ -358,7 +358,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx, s++; if (strcmp(r, "Yes") == 0) { - info->trust_flags |= WBC_DOMINFO_TRUST_OUTGOING; + info->trust_flags |= WBC_DOMINFO_TRUST_OUTGOING; } /* Online/Offline status */ @@ -385,14 +385,14 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains) wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE; char *p = NULL; char *q = NULL; - char *extra_data = NULL; - int count = 0; + char *extra_data = NULL; + int count = 0; struct wbcDomainInfo *d_list = NULL; int i = 0; - + *domains = NULL; *num_domains = 0; - + ZERO_STRUCT(response); /* Send request */ @@ -409,20 +409,20 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains) if (strlen(p) == 0) { /* We should always at least get back our own SAM domain */ - + wbc_status = WBC_ERR_DOMAIN_NOT_FOUND; BAIL_ON_WBC_ERROR(wbc_status); } /* Count number of domains */ - count = 0; + count = 0; while (p) { count++; if ((q = strchr(p, '\n')) != NULL) q++; - p = q; + p = q; } d_list = talloc_array(NULL, struct wbcDomainInfo, count); @@ -431,13 +431,13 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains) extra_data = strdup((char*)response.extra_data.data); BAIL_ON_PTR_ERROR(extra_data, wbc_status); - p = extra_data; + p = extra_data; /* Outer loop processes the list of domain information */ for (i=0; i +#include #elif defined(HAVE_PAM_PAM_APPL_H) #include #endif @@ -83,7 +83,7 @@ do { \ #define _pam_drop(X) SAFE_FREE(X) -#define x_strdup(s) ( (s) ? strdup(s):NULL ) +#define x_strdup(s) ( (s) ? strdup(s):NULL ) #endif /* HAVE_SECURITY__PAM_MACROS_H */ #ifdef HAVE_SECURITY_PAM_EXT_H @@ -167,4 +167,3 @@ struct pwb_context { #define TALLOC_FREE(ctx) do { if ((ctx) != NULL) {talloc_free(ctx); ctx=NULL;} } while(0) #define TALLOC_ZERO_P(ctx, type) (type *)_talloc_zero(ctx, sizeof(type), #type) #define TALLOC_P(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type) - diff --git a/source3/nsswitch/wb_common.c b/nsswitch/wb_common.c similarity index 95% rename from source3/nsswitch/wb_common.c rename to nsswitch/wb_common.c index a1646215bdf..d0dfcb8bbfb 100644 --- a/source3/nsswitch/wb_common.c +++ b/nsswitch/wb_common.c @@ -1,4 +1,4 @@ -/* +/* Unix SMB/CIFS implementation. winbind client common code @@ -6,18 +6,18 @@ Copyright (C) Tim Potter 2000 Copyright (C) Andrew Tridgell 2000 Copyright (C) Andrew Bartlett 2002 - - + + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ @@ -74,11 +74,11 @@ void winbind_close_sock(void) /* Make sure socket handle isn't stdin, stdout or stderr */ #define RECURSION_LIMIT 3 -static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */) +static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */) { int new_fd; if (fd >= 0 && fd <= 2) { -#ifdef F_DUPFD +#ifdef F_DUPFD if ((new_fd = fcntl(fd, F_DUPFD, 3)) == -1) { return -1; } @@ -92,9 +92,9 @@ static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */) #else if (limit <= 0) return -1; - + new_fd = dup(fd); - if (new_fd == -1) + if (new_fd == -1) return -1; /* use the program stack to hold our list of FDs to close */ @@ -114,7 +114,7 @@ static int make_nonstd_fd_internals(int fd, int limit /* Recursion limiter */) Set close on exec also. ****************************************************************************/ -static int make_safe_fd(int fd) +static int make_safe_fd(int fd) { int result, flags; int new_fd = make_nonstd_fd_internals(fd, RECURSION_LIMIT); @@ -366,65 +366,65 @@ static int winbind_open_pipe_sock(int recursing, int need_priv) int winbind_write_sock(void *buffer, int count, int recursing, int need_priv) { int result, nwritten; - + /* Open connection to winbind daemon */ - + restart: - + if (winbind_open_pipe_sock(recursing, need_priv) == -1) { errno = ENOENT; return -1; } - + /* Write data to socket */ - + nwritten = 0; - + while(nwritten < count) { struct timeval tv; fd_set r_fds; - + /* Catch pipe close on other end by checking if a read() call would not block by calling select(). */ FD_ZERO(&r_fds); FD_SET(winbindd_fd, &r_fds); ZERO_STRUCT(tv); - + if (select(winbindd_fd + 1, &r_fds, NULL, NULL, &tv) == -1) { winbind_close_sock(); return -1; /* Select error */ } - + /* Write should be OK if fd not available for reading */ - + if (!FD_ISSET(winbindd_fd, &r_fds)) { - + /* Do the write */ - + result = write(winbindd_fd, - (char *)buffer + nwritten, + (char *)buffer + nwritten, count - nwritten); - + if ((result == -1) || (result == 0)) { - + /* Write failed */ - + winbind_close_sock(); return -1; } - + nwritten += result; - + } else { - + /* Pipe has closed on remote end */ - + winbind_close_sock(); goto restart; } } - + return nwritten; } @@ -443,7 +443,7 @@ int winbind_read_sock(void *buffer, int count) while(nread < count) { struct timeval tv; fd_set r_fds; - + /* Catch pipe close on other end by checking if a read() call would not block by calling select(). */ @@ -457,7 +457,7 @@ int winbind_read_sock(void *buffer, int count) winbind_close_sock(); return -1; /* Select error */ } - + if (selret == 0) { /* Not ready for read yet... */ if (total_time >= 30) { @@ -470,27 +470,27 @@ int winbind_read_sock(void *buffer, int count) } if (FD_ISSET(winbindd_fd, &r_fds)) { - + /* Do the Read */ - - int result = read(winbindd_fd, (char *)buffer + nread, + + int result = read(winbindd_fd, (char *)buffer + nread, count - nread); - + if ((result == -1) || (result == 0)) { - + /* Read failed. I think the only useful thing we can do here is just return -1 and fail since the transaction has failed half way through. */ - + winbind_close_sock(); return -1; } - + nread += result; - + } } - + return nread; } @@ -503,15 +503,15 @@ int winbindd_read_reply(struct winbindd_response *response) if (!response) { return -1; } - + /* Read fixed length response */ - + result1 = winbind_read_sock(response, sizeof(struct winbindd_response)); if (result1 == -1) { return -1; } - + /* We actually send the pointer value of the extra_data field from the server. This has no meaning in the client's address space so we clear it out. */ @@ -519,17 +519,17 @@ int winbindd_read_reply(struct winbindd_response *response) response->extra_data.data = NULL; /* Read variable length response */ - + if (response->length > sizeof(struct winbindd_response)) { - int extra_data_len = response->length - + int extra_data_len = response->length - sizeof(struct winbindd_response); - + /* Mallocate memory for extra data */ - + if (!(response->extra_data.data = malloc(extra_data_len))) { return -1; } - + result2 = winbind_read_sock(response->extra_data.data, extra_data_len); if (result2 == -1) { @@ -537,14 +537,14 @@ int winbindd_read_reply(struct winbindd_response *response) return -1; } } - + /* Return total amount of data read */ - + return result1 + result2; } -/* - * send simple types of requests +/* + * send simple types of requests */ NSS_STATUS winbindd_send_request(int req_type, int need_priv, @@ -562,33 +562,33 @@ NSS_STATUS winbindd_send_request(int req_type, int need_priv, ZERO_STRUCT(lrequest); request = &lrequest; } - + /* Fill in request and send down pipe */ winbindd_init_request(request, req_type); - + if (winbind_write_sock(request, sizeof(*request), request->wb_flags & WBFLAG_RECURSE, - need_priv) == -1) + need_priv) == -1) { /* Set ENOENT for consistency. Required by some apps */ errno = ENOENT; - + return NSS_STATUS_UNAVAIL; } if ((request->extra_len != 0) && (winbind_write_sock(request->extra_data.data, - request->extra_len, + request->extra_len, request->wb_flags & WBFLAG_RECURSE, - need_priv) == -1)) + need_priv) == -1)) { /* Set ENOENT for consistency. Required by some apps */ errno = ENOENT; return NSS_STATUS_UNAVAIL; } - + return NSS_STATUS_SUCCESS; } @@ -624,13 +624,13 @@ NSS_STATUS winbindd_get_response(struct winbindd_response *response) if (response->result != WINBINDD_OK) { return NSS_STATUS_NOTFOUND; } - + return NSS_STATUS_SUCCESS; } /* Handle simple types of requests */ -NSS_STATUS winbindd_request_response(int req_type, +NSS_STATUS winbindd_request_response(int req_type, struct winbindd_request *request, struct winbindd_response *response) { @@ -639,7 +639,7 @@ NSS_STATUS winbindd_request_response(int req_type, while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) { status = winbindd_send_request(req_type, 0, request); - if (status != NSS_STATUS_SUCCESS) + if (status != NSS_STATUS_SUCCESS) return(status); status = winbindd_get_response(response); count += 1; @@ -648,7 +648,7 @@ NSS_STATUS winbindd_request_response(int req_type, return status; } -NSS_STATUS winbindd_priv_request_response(int req_type, +NSS_STATUS winbindd_priv_request_response(int req_type, struct winbindd_request *request, struct winbindd_response *response) { @@ -657,7 +657,7 @@ NSS_STATUS winbindd_priv_request_response(int req_type, while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) { status = winbindd_send_request(req_type, 1, request); - if (status != NSS_STATUS_SUCCESS) + if (status != NSS_STATUS_SUCCESS) return(status); status = winbindd_get_response(response); count += 1; diff --git a/source3/nsswitch/wbinfo.c b/nsswitch/wbinfo.c similarity index 99% rename from source3/nsswitch/wbinfo.c rename to nsswitch/wbinfo.c index c85e210cc04..36c2818ccf2 100644 --- a/source3/nsswitch/wbinfo.c +++ b/nsswitch/wbinfo.c @@ -1,21 +1,21 @@ -/* +/* Unix SMB/CIFS implementation. Winbind status program. Copyright (C) Tim Potter 2000-2003 Copyright (C) Andrew Bartlett 2002 - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -378,8 +378,8 @@ static bool wbinfo_list_domains(bool list_all_domains, bool verbose) } if (print_all) { - d_printf("%-16s%-24s%-12s%-12s%-5s%-5s\n", - "Domain Name", "DNS Domain", "Trust Type", + d_printf("%-16s%-24s%-12s%-12s%-5s%-5s\n", + "Domain Name", "DNS Domain", "Trust Type", "Transitive", "In", "Out"); } @@ -398,10 +398,10 @@ static bool wbinfo_list_domains(bool list_all_domains, bool verbose) case WBC_DOMINFO_TRUSTTYPE_NONE: d_printf("None "); break; - case WBC_DOMINFO_TRUSTTYPE_FOREST: + case WBC_DOMINFO_TRUSTTYPE_FOREST: d_printf("Forest "); break; - case WBC_DOMINFO_TRUSTTYPE_EXTERNAL: + case WBC_DOMINFO_TRUSTTYPE_EXTERNAL: d_printf("External "); break; case WBC_DOMINFO_TRUSTTYPE_IN_FOREST: @@ -472,8 +472,8 @@ static bool wbinfo_show_onlinestatus(const char *domain) } is_offline = (domain_list[i].domain_flags & WBC_DOMINFO_DOMAIN_OFFLINE); - - d_printf("%s : %s\n", + + d_printf("%s : %s\n", domain_list[i].short_name, is_offline ? "offline" : "online" ); } @@ -1104,12 +1104,12 @@ static bool wbinfo_auth_krb5(char *username, const char *cctype, uint32 flags) /* Display response */ - d_printf("plaintext kerberos password authentication for [%s] %s (requesting cctype: %s)\n", + d_printf("plaintext kerberos password authentication for [%s] %s (requesting cctype: %s)\n", username, (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed", cctype); if (response.data.auth.nt_status) - d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", - response.data.auth.nt_status_string, + d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", + response.data.auth.nt_status_string, response.data.auth.nt_status, response.data.auth.error_string); @@ -1162,7 +1162,7 @@ static bool wbinfo_auth(char *username) #if 0 if (response.data.auth.nt_status) - d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", + d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", response.data.auth.nt_status_string, response.data.auth.nt_status, response.data.auth.error_string); @@ -1260,7 +1260,7 @@ static bool wbinfo_auth_crap(char *username) WBC_ERROR_IS_OK(wbc_status) ? "succeeded" : "failed"); if (wbc_status == WBC_ERR_AUTH_ERROR) { - d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", + d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", err->nt_string, err->nt_status, err->display_string); @@ -1312,7 +1312,7 @@ static bool wbinfo_klog(char *username) (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed"); if (response.data.auth.nt_status) - d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", + d_fprintf(stderr, "error code was %s (0x%x)\nerror messsage was: %s\n", response.data.auth.nt_status_string, response.data.auth.nt_status, response.data.auth.error_string); @@ -1853,14 +1853,14 @@ int main(int argc, char **argv, char **envp) break; case 'r': if (!wbinfo_get_usergroups(string_arg)) { - d_fprintf(stderr, "Could not get groups for user %s\n", + d_fprintf(stderr, "Could not get groups for user %s\n", string_arg); goto done; } break; case OPT_USERSIDS: if (!wbinfo_get_usersids(string_arg)) { - d_fprintf(stderr, "Could not get group SIDs for user SID %s\n", + d_fprintf(stderr, "Could not get group SIDs for user SID %s\n", string_arg); goto done; } diff --git a/source3/nsswitch/winbind_client.h b/nsswitch/winbind_client.h similarity index 90% rename from source3/nsswitch/winbind_client.h rename to nsswitch/winbind_client.h index 757f5869e90..b004d9c2c02 100644 --- a/source3/nsswitch/winbind_client.h +++ b/nsswitch/winbind_client.h @@ -6,10 +6,10 @@ void winbindd_free_response(struct winbindd_response *response); NSS_STATUS winbindd_send_request(int req_type, int need_priv, struct winbindd_request *request); NSS_STATUS winbindd_get_response(struct winbindd_response *response); -NSS_STATUS winbindd_request_response(int req_type, +NSS_STATUS winbindd_request_response(int req_type, struct winbindd_request *request, struct winbindd_response *response); -NSS_STATUS winbindd_priv_request_response(int req_type, +NSS_STATUS winbindd_priv_request_response(int req_type, struct winbindd_request *request, struct winbindd_response *response); int winbindd_read_reply(struct winbindd_response *response); diff --git a/source3/nsswitch/winbind_krb5_locator.c b/nsswitch/winbind_krb5_locator.c similarity index 100% rename from source3/nsswitch/winbind_krb5_locator.c rename to nsswitch/winbind_krb5_locator.c diff --git a/source3/nsswitch/winbind_nss.h b/nsswitch/winbind_nss.h similarity index 96% rename from source3/nsswitch/winbind_nss.h rename to nsswitch/winbind_nss.h index 0a3bc7cefac..05e07ad5d31 100644 --- a/source3/nsswitch/winbind_nss.h +++ b/nsswitch/winbind_nss.h @@ -1,21 +1,21 @@ -/* +/* Unix SMB/CIFS implementation. A common place to work out how to define NSS_STATUS on various platforms. Copyright (C) Tim Potter 2000 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ @@ -25,8 +25,8 @@ #ifdef HAVE_NSS_COMMON_H -/* - * Sun Solaris +/* + * Sun Solaris */ #include "nsswitch/winbind_nss_solaris.h" @@ -42,7 +42,7 @@ #elif HAVE_NS_API_H /* - * SGI IRIX + * SGI IRIX */ #include "nsswitch/winbind_nss_irix.h" diff --git a/source3/nsswitch/winbind_nss_aix.c b/nsswitch/winbind_nss_aix.c similarity index 96% rename from source3/nsswitch/winbind_nss_aix.c rename to nsswitch/winbind_nss_aix.c index 9c84e5f8aa5..17578cf3501 100644 --- a/source3/nsswitch/winbind_nss_aix.c +++ b/nsswitch/winbind_nss_aix.c @@ -1,4 +1,4 @@ -/* +/* Unix SMB/CIFS implementation. AIX loadable authentication module, providing identification and @@ -7,17 +7,17 @@ Copyright (C) Tim Potter 2003 Copyright (C) Steve Roylance 2003 Copyright (C) Andrew Tridgell 2003-2004 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ @@ -31,7 +31,7 @@ changing routines, so you do not need to install the winbind PAM module. - see + see http://publib16.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/kernextc/sec_load_mod.htm for some information in the interface that this module implements @@ -113,12 +113,12 @@ static void free_grp(struct group *grp) free(grp->gr_name); free(grp->gr_passwd); - + if (!grp->gr_mem) { free(grp); return; } - + for (i=0; grp->gr_mem[i]; i++) { free(grp->gr_mem[i]); } @@ -200,7 +200,7 @@ static struct passwd *fill_pwent(struct winbindd_pw *pw) result->pw_gecos = strdup(pw->pw_gecos); result->pw_dir = strdup(pw->pw_dir); result->pw_shell = strdup(pw->pw_shell); - + return result; } @@ -229,12 +229,12 @@ static struct group *fill_grent(struct winbindd_gr *gr, char *gr_mem) if ((gr->num_gr_mem < 0) || !gr_mem) { gr->num_gr_mem = 0; } - + if (gr->num_gr_mem == 0) { - /* Group is empty */ + /* Group is empty */ return result; } - + result->gr_mem = (char **)malloc(sizeof(char *) * (gr->num_gr_mem+1)); if (!result->gr_mem) { errno = ENOMEM; @@ -243,8 +243,8 @@ static struct group *fill_grent(struct winbindd_gr *gr, char *gr_mem) /* Start looking at extra data */ i=0; - for (name = strtok_r(gr_mem, ",", &p); - name; + for (name = strtok_r(gr_mem, ",", &p); + name; name = strtok_r(NULL, ",", &p)) { if (i == gr->num_gr_mem) { break; @@ -261,7 +261,7 @@ static struct group *fill_grent(struct winbindd_gr *gr, char *gr_mem) -/* take a group id and return a filled struct group */ +/* take a group id and return a filled struct group */ static struct group *wb_aix_getgrgid(gid_t gid) { struct winbindd_response response; @@ -273,7 +273,7 @@ static struct group *wb_aix_getgrgid(gid_t gid) ZERO_STRUCT(response); ZERO_STRUCT(request); - + request.data.gid = gid; ret = winbindd_request_response(WINBINDD_GETGRGID, &request, &response); @@ -309,7 +309,7 @@ static struct group *wb_aix_getgrnam(const char *name) STRCPY_RETNULL(request.data.groupname, name); ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response); - + HANDLE_ERRORS(ret); grp = fill_grent(&response.data.gr, response.extra_data.data); @@ -373,7 +373,7 @@ static char *wb_aix_getgrset(char *user) num_gids = response.data.num_entries; gid_list = (gid_t *)response.extra_data.data; - + /* allocate a space large enough to contruct the string */ tmpbuf = malloc(num_gids*12); if (!tmpbuf) { @@ -381,9 +381,9 @@ static char *wb_aix_getgrset(char *user) } for (idx=i=0; i < num_gids-1; i++) { - idx += sprintf(tmpbuf+idx, "%u,", gid_list[i]); + idx += sprintf(tmpbuf+idx, "%u,", gid_list[i]); } - idx += sprintf(tmpbuf+idx, "%u", gid_list[i]); + idx += sprintf(tmpbuf+idx, "%u", gid_list[i]); winbindd_free_response(&response); @@ -391,7 +391,7 @@ static char *wb_aix_getgrset(char *user) } -/* take a uid and return a filled struct passwd */ +/* take a uid and return a filled struct passwd */ static struct passwd *wb_aix_getpwuid(uid_t uid) { struct winbindd_response response; @@ -403,9 +403,9 @@ static struct passwd *wb_aix_getpwuid(uid_t uid) ZERO_STRUCT(response); ZERO_STRUCT(request); - + request.data.uid = uid; - + ret = winbindd_request_response(WINBINDD_GETPWUID, &request, &response); HANDLE_ERRORS(ret); @@ -442,7 +442,7 @@ static struct passwd *wb_aix_getpwnam(const char *name) ret = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response); HANDLE_ERRORS(ret); - + pwd = fill_pwent(&response.data.pw); winbindd_free_response(&response); @@ -471,7 +471,7 @@ static int wb_aix_lsuser(char *attributes[], attrval_t results[], int size) ZERO_STRUCT(request); ZERO_STRUCT(response); - + ret = winbindd_request_response(WINBINDD_LIST_USERS, &request, &response); if (ret != 0) { errno = EINVAL; @@ -486,7 +486,7 @@ static int wb_aix_lsuser(char *attributes[], attrval_t results[], int size) errno = ENOMEM; return -1; } - + memcpy(s, response.extra_data.data, len+1); replace_commas(s); @@ -495,7 +495,7 @@ static int wb_aix_lsuser(char *attributes[], attrval_t results[], int size) results[0].attr_flag = 0; winbindd_free_response(&response); - + return 0; } @@ -519,7 +519,7 @@ static int wb_aix_lsgroup(char *attributes[], attrval_t results[], int size) ZERO_STRUCT(request); ZERO_STRUCT(response); - + ret = winbindd_request_response(WINBINDD_LIST_GROUPS, &request, &response); if (ret != 0) { errno = EINVAL; @@ -534,7 +534,7 @@ static int wb_aix_lsgroup(char *attributes[], attrval_t results[], int size) errno = ENOMEM; return -1; } - + memcpy(s, response.extra_data.data, len+1); replace_commas(s); @@ -543,7 +543,7 @@ static int wb_aix_lsgroup(char *attributes[], attrval_t results[], int size) results[0].attr_flag = 0; winbindd_free_response(&response); - + return 0; } @@ -552,9 +552,9 @@ static attrval_t pwd_to_group(struct passwd *pwd) { attrval_t r; struct group *grp = wb_aix_getgrgid(pwd->pw_gid); - + if (!grp) { - r.attr_flag = EINVAL; + r.attr_flag = EINVAL; } else { r.attr_flag = 0; r.attr_un.au_char = strdup(grp->gr_name); @@ -692,18 +692,18 @@ static int wb_aix_group_attrib(const char *key, char *attributes[], /* called for user/group enumerations */ -static int wb_aix_getentry(char *key, char *table, char *attributes[], +static int wb_aix_getentry(char *key, char *table, char *attributes[], attrval_t results[], int size) { - logit("Got getentry with key='%s' table='%s' size=%d attributes[0]='%s'\n", + logit("Got getentry with key='%s' table='%s' size=%d attributes[0]='%s'\n", key, table, size, attributes[0]); - if (strcmp(key, "ALL") == 0 && + if (strcmp(key, "ALL") == 0 && strcmp(table, "user") == 0) { return wb_aix_lsuser(attributes, results, size); } - if (strcmp(key, "ALL") == 0 && + if (strcmp(key, "ALL") == 0 && strcmp(table, "group") == 0) { return wb_aix_lsgroup(attributes, results, size); } @@ -732,7 +732,7 @@ static void *wb_aix_open(const char *name, const char *domain, int mode, char *o if (strstr(options, "debug")) { debug_enabled = 1; } - logit("open name='%s' mode=%d domain='%s' options='%s'\n", name, domain, + logit("open name='%s' mode=%d domain='%s' options='%s'\n", name, domain, mode, options); return NULL; } @@ -744,14 +744,14 @@ static void wb_aix_close(void *token) } #ifdef HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST -/* - return a list of additional attributes supported by the backend +/* + return a list of additional attributes supported by the backend */ static attrlist_t **wb_aix_attrlist(void) { /* pretty confusing but we are allocating the array of pointers and the structures we'll be pointing to all at once. So - you need N+1 pointers and N structures. */ + you need N+1 pointers and N structures. */ attrlist_t **ret = NULL; attrlist_t *offset = NULL; @@ -821,7 +821,7 @@ static attrlist_t **wb_aix_attrlist(void) /* - turn a long username into a short one. Needed to cope with the 8 char + turn a long username into a short one. Needed to cope with the 8 char username limit in AIX 5.2 and below */ static int wb_aix_normalize(char *longname, char *shortname) @@ -854,7 +854,7 @@ static int wb_aix_normalize(char *longname, char *shortname) /* authenticate a user */ -static int wb_aix_authenticate(char *user, char *pass, +static int wb_aix_authenticate(char *user, char *pass, int *reenter, char **message) { struct winbindd_request request; @@ -950,7 +950,7 @@ static int wb_aix_chpass(char *user, char *oldpass, char *newpass, char **messag /* don't do any password strength testing for now */ -static int wb_aix_passwdrestrictions(char *user, char *newpass, char *oldpass, +static int wb_aix_passwdrestrictions(char *user, char *newpass, char *oldpass, char **message) { logit("passwdresrictions called for '%s'\n", user); @@ -977,13 +977,13 @@ static char *wb_aix_getpasswd(char *user) } /* - this is called to update things like the last login time. We don't + this is called to update things like the last login time. We don't currently pass this onto the DC */ -static int wb_aix_putentry(char *key, char *table, char *attributes[], +static int wb_aix_putentry(char *key, char *table, char *attributes[], attrval_t values[], int size) { - logit("putentry key='%s' table='%s' attrib='%s'\n", + logit("putentry key='%s' table='%s' attrib='%s'\n", key, table, size>=1?attributes[0]:""); errno = ENOSYS; return -1; @@ -1047,7 +1047,7 @@ int wb_aix_init(struct secmethod_table *methods) methods->method_passwdexpired = wb_aix_passwdexpired; methods->method_putentry = wb_aix_putentry; methods->method_getpasswd = wb_aix_getpasswd; - methods->method_authenticate = wb_aix_authenticate; + methods->method_authenticate = wb_aix_authenticate; methods->method_commit = wb_aix_commit; methods->method_chpass = wb_aix_chpass; methods->method_passwdrestrictions = wb_aix_passwdrestrictions; @@ -1074,4 +1074,3 @@ int wb_aix_init(struct secmethod_table *methods) return AUTH_SUCCESS; } - diff --git a/source3/nsswitch/winbind_nss_config.h b/nsswitch/winbind_nss_config.h similarity index 96% rename from source3/nsswitch/winbind_nss_config.h rename to nsswitch/winbind_nss_config.h index bed507fdeb5..3e2ce68252a 100644 --- a/source3/nsswitch/winbind_nss_config.h +++ b/nsswitch/winbind_nss_config.h @@ -1,20 +1,20 @@ -/* +/* Unix SMB/CIFS implementation. Winbind daemon for ntdom nss module Copyright (C) Tim Potter 2000 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ @@ -54,6 +54,7 @@ #ifndef FSTRING_LEN #define FSTRING_LEN 256 typedef char fstring[FSTRING_LEN]; +#define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1) #endif /* Some systems (SCO) treat UNIX domain sockets as FIFOs */ diff --git a/source3/nsswitch/winbind_nss_freebsd.c b/nsswitch/winbind_nss_freebsd.c similarity index 97% rename from source3/nsswitch/winbind_nss_freebsd.c rename to nsswitch/winbind_nss_freebsd.c index 02e29f31310..ac230c8a9a4 100644 --- a/source3/nsswitch/winbind_nss_freebsd.c +++ b/nsswitch/winbind_nss_freebsd.c @@ -1,21 +1,21 @@ -/* +/* Unix SMB/CIFS implementation. - AIX loadable authentication module, providing identification + AIX loadable authentication module, providing identification routines against Samba winbind/Windows NT Domain Copyright (C) Aaron Collins 2003 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ diff --git a/source3/nsswitch/winbind_nss_hpux.h b/nsswitch/winbind_nss_hpux.h similarity index 98% rename from source3/nsswitch/winbind_nss_hpux.h rename to nsswitch/winbind_nss_hpux.h index 62cf3c26c52..40a352d4d3b 100644 --- a/source3/nsswitch/winbind_nss_hpux.h +++ b/nsswitch/winbind_nss_hpux.h @@ -1,19 +1,19 @@ /* Unix SMB/CIFS implementation. - + Donated by HP to enable Winbindd to build on HPUX 11.x. Copyright (C) Jeremy Allison 2002. - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this library; if not, see . */ @@ -34,20 +34,20 @@ #ifdef HAVE_PTHREAD_H #include #endif - + typedef enum { NSS_SUCCESS, NSS_NOTFOUND, NSS_UNAVAIL, NSS_TRYAGAIN } nss_status_t; - + typedef nss_status_t NSS_STATUS; struct nss_backend; - + typedef nss_status_t (*nss_backend_op_t)(struct nss_backend *, void *args); - + struct nss_backend { nss_backend_op_t *ops; int n_ops; @@ -58,41 +58,41 @@ typedef int nss_dbop_t; #include #include #include - + #ifndef NSS_INCLUDE_UNSAFE #define NSS_INCLUDE_UNSAFE 1 /* Build old, MT-unsafe interfaces, */ #endif /* NSS_INCLUDE_UNSAFE */ - + enum nss_netgr_argn { NSS_NETGR_MACHINE, NSS_NETGR_USER, NSS_NETGR_DOMAIN, NSS_NETGR_N }; - + enum nss_netgr_status { NSS_NETGR_FOUND, NSS_NETGR_NO, NSS_NETGR_NOMEM }; - + typedef unsigned nss_innetgr_argc; typedef char **nss_innetgr_argv; - + struct nss_innetgr_1arg { nss_innetgr_argc argc; nss_innetgr_argv argv; }; - + typedef struct { void *result; /* "result" parameter to getXbyY_r() */ char *buffer; /* "buffer" " " */ int buflen; /* "buflen" " " */ } nss_XbyY_buf_t; - + extern nss_XbyY_buf_t *_nss_XbyY_buf_alloc(int struct_size, int buffer_size); extern void _nss_XbyY_buf_free(nss_XbyY_buf_t *); - + union nss_XbyY_key { uid_t uid; gid_t gid; @@ -116,7 +116,7 @@ union nss_XbyY_key { } serv; void *ether; }; - + typedef struct nss_XbyY_args { nss_XbyY_buf_t buf; int stayopen; @@ -127,11 +127,11 @@ typedef struct nss_XbyY_args { */ int (*str2ent)(const char *instr, int instr_len, void *ent, char *buffer, int buflen); union nss_XbyY_key key; - + void *returnval; int erange; int h_errno; nss_status_t status; } nss_XbyY_args_t; - + #endif /* _WINBIND_NSS_HPUX_H */ diff --git a/source3/nsswitch/winbind_nss_irix.c b/nsswitch/winbind_nss_irix.c similarity index 97% rename from source3/nsswitch/winbind_nss_irix.c rename to nsswitch/winbind_nss_irix.c index 5bc0fa54da9..66fa4b529d6 100644 --- a/source3/nsswitch/winbind_nss_irix.c +++ b/nsswitch/winbind_nss_irix.c @@ -1,21 +1,21 @@ -/* +/* Unix SMB/CIFS implementation. Windows NT Domain nsswitch module Copyright (C) Tim Potter 2000 Copyright (C) James Peach 2006 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ @@ -38,7 +38,7 @@ int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3); #endif /* Maximum number of users to pass back over the unix domain socket - per call. This is not a static limit on the total number of users + per call. This is not a static limit on the total number of users or groups returned in total. */ #define MAX_GETPWENT_USERS 250 @@ -170,7 +170,7 @@ do_request(nsd_file_t *rq, struct winbindd_request *request) } } -static int +static int winbind_callback(nsd_file_t **rqp, int fd) { struct winbindd_response response; @@ -195,7 +195,7 @@ winbind_callback(nsd_file_t **rqp, int fd) if (status != NSS_STATUS_SUCCESS) { /* free any extra data area in response structure */ winbindd_free_response(&response); - nsd_logprintf(NSD_LOG_MIN, + nsd_logprintf(NSD_LOG_MIN, "callback (winbind) returning not found, status = %d\n", status); @@ -225,9 +225,9 @@ winbind_callback(nsd_file_t **rqp, int fd) if (rlen == 0 || result == NULL) { return NSD_ERROR; } - + winbindd_free_response(&response); - + nsd_logprintf(NSD_LOG_MIN, " %s\n", result); nsd_set_result(rq, NS_SUCCESS, result, rlen, DYNAMIC); return NSD_OK; @@ -236,7 +236,7 @@ winbind_callback(nsd_file_t **rqp, int fd) case WINBINDD_GETPWNAM: { struct winbindd_pw *pw = &response.data.pw; - + nsd_logprintf(NSD_LOG_MIN, "callback (winbind) GETPWUID | GETPWUID\n"); @@ -250,9 +250,9 @@ winbind_callback(nsd_file_t **rqp, int fd) pw->pw_shell); if (rlen == 0 || result == NULL) return NSD_ERROR; - + winbindd_free_response(&response); - + nsd_logprintf(NSD_LOG_MIN, " %s\n", result); nsd_set_result(rq, NS_SUCCESS, result, rlen, DYNAMIC); return NSD_OK; @@ -263,7 +263,7 @@ winbind_callback(nsd_file_t **rqp, int fd) { const struct winbindd_gr *gr = &response.data.gr; const char * members; - + nsd_logprintf(NSD_LOG_MIN, "callback (winbind) GETGRNAM | GETGRGID\n"); @@ -272,14 +272,14 @@ winbind_callback(nsd_file_t **rqp, int fd) } else { members = ""; } - + rlen = asprintf(&result, "%s:%s:%d:%s\n", gr->gr_name, gr->gr_passwd, gr->gr_gid, members); if (rlen == 0 || result == NULL) return NSD_ERROR; - + winbindd_free_response(&response); - + nsd_logprintf(NSD_LOG_MIN, " %s\n", result); nsd_set_result(rq, NS_SUCCESS, result, rlen, DYNAMIC); return NSD_OK; @@ -296,46 +296,46 @@ winbind_callback(nsd_file_t **rqp, int fd) case WINBINDD_GETGRLST: { int entries; - + nsd_logprintf(NSD_LOG_MIN, "callback (winbind) GETGRENT | GETGRLIST %d responses\n", response.data.num_entries); - + if (response.data.num_entries) { const struct winbindd_gr *gr = &response.data.gr; const char * members; fstring grp_name; int i; - + gr = (struct winbindd_gr *)response.extra_data.data; if (! gr ) { nsd_logprintf(NSD_LOG_MIN, " no extra_data\n"); winbindd_free_response(&response); return NSD_ERROR; } - + members = (char *)response.extra_data.data + (response.data.num_entries * sizeof(struct winbindd_gr)); - + for (i = 0; i < response.data.num_entries; i++) { snprintf(grp_name, sizeof(grp_name) - 1, "%s:%s:%d:", gr->gr_name, gr->gr_passwd, gr->gr_gid); - + nsd_append_element(rq, NS_SUCCESS, result, rlen); nsd_append_result(rq, NS_SUCCESS, &members[gr->gr_mem_ofs], strlen(&members[gr->gr_mem_ofs])); - + /* Don't log the whole list, because it might be * _really_ long and we probably don't want to clobber * the log with it. */ nsd_logprintf(NSD_LOG_MIN, " %s (...)\n", grp_name); - + gr++; } } - + entries = response.data.num_entries; winbindd_free_response(&response); if (entries < MAX_GETPWENT_USERS) @@ -405,7 +405,7 @@ winbind_callback(nsd_file_t **rqp, int fd) } } -static int +static int winbind_timeout(nsd_file_t **rqp, nsd_times_t *to) { nsd_file_t *rq; @@ -455,7 +455,7 @@ send_next_request(nsd_file_t *rq, struct winbindd_request *request) SAFE_FREE(request); if (status != NSS_STATUS_SUCCESS) { - nsd_logprintf(NSD_LOG_MIN, + nsd_logprintf(NSD_LOG_MIN, "send_next_request (winbind) error status = %d\n", status); rq->f_status = status; @@ -512,15 +512,15 @@ int lookup(nsd_file_t *rq) request->data.uid = atoi(key); rq->f_cmd_data = (void *)WINBINDD_GETPWUID; } else if (strcasecmp(map,"passwd.byname") == 0) { - strncpy(request->data.username, key, + strncpy(request->data.username, key, sizeof(request->data.username) - 1); request->data.username[sizeof(request->data.username) - 1] = '\0'; - rq->f_cmd_data = (void *)WINBINDD_GETPWNAM; + rq->f_cmd_data = (void *)WINBINDD_GETPWNAM; } else if (strcasecmp(map,"group.byname") == 0) { - strncpy(request->data.groupname, key, + strncpy(request->data.groupname, key, sizeof(request->data.groupname) - 1); request->data.groupname[sizeof(request->data.groupname) - 1] = '\0'; - rq->f_cmd_data = (void *)WINBINDD_GETGRNAM; + rq->f_cmd_data = (void *)WINBINDD_GETGRNAM; } else if (strcasecmp(map,"group.bygid") == 0) { request->data.gid = atoi(key); rq->f_cmd_data = (void *)WINBINDD_GETGRGID; diff --git a/source3/nsswitch/winbind_nss_irix.h b/nsswitch/winbind_nss_irix.h similarity index 98% rename from source3/nsswitch/winbind_nss_irix.h rename to nsswitch/winbind_nss_irix.h index b40b14b0b03..b47d23e204b 100644 --- a/source3/nsswitch/winbind_nss_irix.h +++ b/nsswitch/winbind_nss_irix.h @@ -1,20 +1,20 @@ -/* +/* Unix SMB/CIFS implementation. Winbind daemon for ntdom nss module Copyright (C) Tim Potter 2000 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ diff --git a/source3/nsswitch/winbind_nss_linux.c b/nsswitch/winbind_nss_linux.c similarity index 96% rename from source3/nsswitch/winbind_nss_linux.c rename to nsswitch/winbind_nss_linux.c index c11c18759e6..2b51a8e15db 100644 --- a/source3/nsswitch/winbind_nss_linux.c +++ b/nsswitch/winbind_nss_linux.c @@ -1,20 +1,20 @@ -/* +/* Unix SMB/CIFS implementation. Windows NT Domain nsswitch module Copyright (C) Tim Potter 2000 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ @@ -30,7 +30,7 @@ static pthread_mutex_t winbind_nss_mutex = PTHREAD_MUTEX_INITIALIZER; #endif /* Maximum number of users to pass back over the unix domain socket - per call. This is not a static limit on the total number of users + per call. This is not a static limit on the total number of users or groups returned in total. */ #define MAX_GETPWENT_USERS 250 @@ -38,37 +38,37 @@ static pthread_mutex_t winbind_nss_mutex = PTHREAD_MUTEX_INITIALIZER; NSS_STATUS _nss_winbind_setpwent(void); NSS_STATUS _nss_winbind_endpwent(void); -NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer, +NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, +NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result, +NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result, char *buffer, size_t buflen, int *errnop); NSS_STATUS _nss_winbind_setgrent(void); NSS_STATUS _nss_winbind_endgrent(void); -NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer, +NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer, +NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result, +NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer, +NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, - long int *size, gid_t **groups, +NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, + long int *size, gid_t **groups, long int limit, int *errnop); -NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids, - int *num_groups, char *buffer, size_t buf_size, +NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids, + int *num_groups, char *buffer, size_t buf_size, int *errnop); NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, +NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, size_t buflen, int *errnop); NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop); NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop); -NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer, +NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer, size_t buflen, int *errnop); -NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer, +NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer, size_t buflen, int *errnop); /* Prototypes from wb_common.c */ @@ -180,7 +180,7 @@ static NSS_STATUS fill_pwent(struct passwd *result, { /* User name */ - if ((result->pw_name = + if ((result->pw_name = get_static(buffer, buflen, strlen(pw->pw_name) + 1)) == NULL) { /* Out of memory */ @@ -192,7 +192,7 @@ static NSS_STATUS fill_pwent(struct passwd *result, /* Password */ - if ((result->pw_passwd = + if ((result->pw_passwd = get_static(buffer, buflen, strlen(pw->pw_passwd) + 1)) == NULL) { /* Out of memory */ @@ -201,7 +201,7 @@ static NSS_STATUS fill_pwent(struct passwd *result, } strcpy(result->pw_passwd, pw->pw_passwd); - + /* [ug]id */ result->pw_uid = pw->pw_uid; @@ -209,7 +209,7 @@ static NSS_STATUS fill_pwent(struct passwd *result, /* GECOS */ - if ((result->pw_gecos = + if ((result->pw_gecos = get_static(buffer, buflen, strlen(pw->pw_gecos) + 1)) == NULL) { /* Out of memory */ @@ -218,10 +218,10 @@ static NSS_STATUS fill_pwent(struct passwd *result, } strcpy(result->pw_gecos, pw->pw_gecos); - + /* Home directory */ - - if ((result->pw_dir = + + if ((result->pw_dir = get_static(buffer, buflen, strlen(pw->pw_dir) + 1)) == NULL) { /* Out of memory */ @@ -232,10 +232,10 @@ static NSS_STATUS fill_pwent(struct passwd *result, strcpy(result->pw_dir, pw->pw_dir); /* Logon shell */ - - if ((result->pw_shell = + + if ((result->pw_shell = get_static(buffer, buflen, strlen(pw->pw_shell) + 1)) == NULL) { - + /* Out of memory */ return NSS_STATUS_TRYAGAIN; @@ -423,7 +423,7 @@ _nss_winbind_endpwent(void) /* Fetch the next password entry from ntdom password database */ NSS_STATUS -_nss_winbind_getpwent_r(struct passwd *result, char *buffer, +_nss_winbind_getpwent_r(struct passwd *result, char *buffer, size_t buflen, int *errnop) { NSS_STATUS ret; @@ -446,7 +446,7 @@ _nss_winbind_getpwent_r(struct passwd *result, char *buffer, } /* Else call winbindd to get a bunch of entries */ - + if (num_pw_cache > 0) { winbindd_free_response(&getpwent_response); } @@ -456,7 +456,7 @@ _nss_winbind_getpwent_r(struct passwd *result, char *buffer, request.data.num_entries = MAX_GETPWENT_USERS; - ret = winbindd_request_response(WINBINDD_GETPWENT, &request, + ret = winbindd_request_response(WINBINDD_GETPWENT, &request, &getpwent_response); if (ret == NSS_STATUS_SUCCESS) { @@ -483,7 +483,7 @@ _nss_winbind_getpwent_r(struct passwd *result, char *buffer, ret = fill_pwent(result, &pw_cache[ndx_pw_cache], &buffer, &buflen); - + /* Out of memory - try again */ if (ret == NSS_STATUS_TRYAGAIN) { @@ -547,7 +547,7 @@ _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, char *buffer, ret = winbindd_request_response(WINBINDD_GETPWUID, &request, &response); if (ret == NSS_STATUS_SUCCESS) { - ret = fill_pwent(result, &response.data.pw, + ret = fill_pwent(result, &response.data.pw, &buffer, &buflen); if (ret == NSS_STATUS_TRYAGAIN) { @@ -615,7 +615,7 @@ _nss_winbind_getpwnam_r(const char *name, struct passwd *result, char *buffer, ZERO_STRUCT(response); ZERO_STRUCT(request); - strncpy(request.data.username, name, + strncpy(request.data.username, name, sizeof(request.data.username) - 1); request.data.username [sizeof(request.data.username) - 1] = '\0'; @@ -746,7 +746,7 @@ winbind_getgrent(enum winbindd_cmd cmd, NSS_STATUS ret; static struct winbindd_request request; static int called_again; - + #ifdef DEBUG_NSS fprintf(stderr, "[%5d]: getgrent\n", getpid()); @@ -764,7 +764,7 @@ winbind_getgrent(enum winbindd_cmd cmd, } /* Else call winbindd to get a bunch of entries */ - + if (num_gr_cache > 0) { winbindd_free_response(&getgrent_response); } @@ -774,7 +774,7 @@ winbind_getgrent(enum winbindd_cmd cmd, request.data.num_entries = MAX_GETGRENT_USERS; - ret = winbindd_request_response(cmd, &request, + ret = winbindd_request_response(cmd, &request, &getgrent_response); if (ret == NSS_STATUS_SUCCESS) { @@ -810,7 +810,7 @@ winbind_getgrent(enum winbindd_cmd cmd, ret = fill_grent(result, &gr_cache[ndx_gr_cache], ((char *)getgrent_response.extra_data.data)+mem_ofs, &buffer, &buflen); - + /* Out of memory - try again */ if (ret == NSS_STATUS_TRYAGAIN) { @@ -869,7 +869,7 @@ _nss_winbind_getgrnam_r(const char *name, static struct winbindd_response response; struct winbindd_request request; static int keep_response; - + #ifdef DEBUG_NSS fprintf(stderr, "[%5d]: getgrnam %s\n", getpid(), name); #endif @@ -888,7 +888,7 @@ _nss_winbind_getgrnam_r(const char *name, ZERO_STRUCT(request); ZERO_STRUCT(response); - strncpy(request.data.groupname, name, + strncpy(request.data.groupname, name, sizeof(request.data.groupname)); request.data.groupname [sizeof(request.data.groupname) - 1] = '\0'; @@ -896,7 +896,7 @@ _nss_winbind_getgrnam_r(const char *name, ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response); if (ret == NSS_STATUS_SUCCESS) { - ret = fill_grent(result, &response.data.gr, + ret = fill_grent(result, &response.data.gr, (char *)response.extra_data.data, &buffer, &buflen); @@ -911,7 +911,7 @@ _nss_winbind_getgrnam_r(const char *name, /* We've been called again */ - ret = fill_grent(result, &response.data.gr, + ret = fill_grent(result, &response.data.gr, (char *)response.extra_data.data, &buffer, &buflen); @@ -975,8 +975,8 @@ _nss_winbind_getgrgid_r(gid_t gid, if (ret == NSS_STATUS_SUCCESS) { - ret = fill_grent(result, &response.data.gr, - (char *)response.extra_data.data, + ret = fill_grent(result, &response.data.gr, + (char *)response.extra_data.data, &buffer, &buflen); if (ret == NSS_STATUS_TRYAGAIN) { @@ -990,7 +990,7 @@ _nss_winbind_getgrgid_r(gid_t gid, /* We've been called again */ - ret = fill_grent(result, &response.data.gr, + ret = fill_grent(result, &response.data.gr, (char *)response.extra_data.data, &buffer, &buflen); @@ -1110,7 +1110,7 @@ _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, *start += 1; } } - + /* Back to your regularly scheduled programming */ done: @@ -1167,7 +1167,7 @@ _nss_winbind_getusersids(const char *user_sid, char **group_sids, *group_sids = buffer; memcpy(buffer, response.extra_data.data, response.length - sizeof(response)); errno = *errnop = 0; - + done: winbindd_free_response(&response); @@ -1199,7 +1199,7 @@ _nss_winbind_nametosid(const char *name, char **sid, char *buffer, ZERO_STRUCT(response); ZERO_STRUCT(request); - strncpy(request.data.name.name, name, + strncpy(request.data.name.name, name, sizeof(request.data.name.name) - 1); request.data.name.name[sizeof(request.data.name.name) - 1] = '\0'; @@ -1264,7 +1264,7 @@ _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, } - strncpy(request.data.sid, sid, + strncpy(request.data.sid, sid, sizeof(request.data.sid) - 1); request.data.sid[sizeof(request.data.sid) - 1] = '\0'; @@ -1274,7 +1274,7 @@ _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, goto failed; } - needed = + needed = strlen(response.data.name.dom_name) + strlen(response.data.name.name) + 2; @@ -1284,7 +1284,7 @@ _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, goto failed; } - snprintf(buffer, needed, "%s%c%s", + snprintf(buffer, needed, "%s%c%s", response.data.name.dom_name, sep_char, response.data.name.name); diff --git a/source3/nsswitch/winbind_nss_linux.h b/nsswitch/winbind_nss_linux.h similarity index 98% rename from source3/nsswitch/winbind_nss_linux.h rename to nsswitch/winbind_nss_linux.h index 74aaec5ce60..db5a378aad6 100644 --- a/source3/nsswitch/winbind_nss_linux.h +++ b/nsswitch/winbind_nss_linux.h @@ -1,20 +1,20 @@ -/* +/* Unix SMB/CIFS implementation. Winbind daemon for ntdom nss module Copyright (C) Tim Potter 2000 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ diff --git a/source3/nsswitch/winbind_nss_netbsd.c b/nsswitch/winbind_nss_netbsd.c similarity index 100% rename from source3/nsswitch/winbind_nss_netbsd.c rename to nsswitch/winbind_nss_netbsd.c diff --git a/source3/nsswitch/winbind_nss_netbsd.h b/nsswitch/winbind_nss_netbsd.h similarity index 98% rename from source3/nsswitch/winbind_nss_netbsd.h rename to nsswitch/winbind_nss_netbsd.h index dceb57c7844..5aeb2b9d7da 100644 --- a/source3/nsswitch/winbind_nss_netbsd.h +++ b/nsswitch/winbind_nss_netbsd.h @@ -1,21 +1,21 @@ -/* +/* Unix SMB/CIFS implementation. - NetBSD loadable authentication module, providing identification + NetBSD loadable authentication module, providing identification routines against Samba winbind/Windows NT Domain Copyright (C) Luke Mewburn 2004-2005 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ diff --git a/source3/nsswitch/winbind_nss_solaris.c b/nsswitch/winbind_nss_solaris.c similarity index 97% rename from source3/nsswitch/winbind_nss_solaris.c rename to nsswitch/winbind_nss_solaris.c index 865b6ebbb06..4c85bd3621b 100644 --- a/source3/nsswitch/winbind_nss_solaris.c +++ b/nsswitch/winbind_nss_solaris.c @@ -1,8 +1,8 @@ /* - Solaris NSS wrapper for winbind + Solaris NSS wrapper for winbind - Shirish Kalele 2000 - - Based on Luke Howard's ldap_nss module for Solaris + + Based on Luke Howard's ldap_nss module for Solaris */ /* @@ -38,7 +38,7 @@ #include #endif /*hpux*/ -#if defined(HAVE_NSS_COMMON_H) || defined(HPUX) +#if defined(HAVE_NSS_COMMON_H) || defined(HPUX) #undef NSS_DEBUG @@ -63,9 +63,9 @@ struct nss_groupsbymem { gid_t *gid_array; int maxgids; int force_slow_way; - int (*str2ent)(const char *instr, int instr_len, void *ent, + int (*str2ent)(const char *instr, int instr_len, void *ent, char *buffer, int buflen); - nss_status_t (*process_cstr)(const char *instr, int instr_len, + nss_status_t (*process_cstr)(const char *instr, int instr_len, struct nss_groupsbymem *); int numgids; }; @@ -106,7 +106,7 @@ _nss_winbind_getpwent_solwrap (nss_backend_t* be, void *args) int* errnop = &NSS_ARGS(args)->erange; char logmsg[80]; - ret = _nss_winbind_getpwent_r(result, buffer, + ret = _nss_winbind_getpwent_r(result, buffer, buflen, errnop); if(ret == NSS_STATUS_SUCCESS) @@ -119,7 +119,7 @@ _nss_winbind_getpwent_solwrap (nss_backend_t* be, void *args) snprintf(logmsg, 79, "_nss_winbind_getpwent_solwrap: Returning error: %d.\n",ret); NSS_DEBUG(logmsg); } - + return ret; } @@ -138,7 +138,7 @@ _nss_winbind_getpwnam_solwrap (nss_backend_t* be, void* args) &NSS_ARGS(args)->erange); if(ret == NSS_STATUS_SUCCESS) NSS_ARGS(args)->returnval = (void*) result; - + return ret; } @@ -147,7 +147,7 @@ _nss_winbind_getpwuid_solwrap(nss_backend_t* be, void* args) { NSS_STATUS ret; struct passwd* result = (struct passwd*) NSS_ARGS(args)->buf.result; - + NSS_DEBUG("_nss_winbind_getpwuid_solwrap"); ret = _nss_winbind_getpwuid_r (NSS_ARGS(args)->key.uid, result, @@ -156,7 +156,7 @@ _nss_winbind_getpwuid_solwrap(nss_backend_t* be, void* args) &NSS_ARGS(args)->erange); if(ret == NSS_STATUS_SUCCESS) NSS_ARGS(args)->returnval = (void*) result; - + return ret; } @@ -183,7 +183,7 @@ _nss_winbind_passwd_constr (const char* db_name, const char* cfg_args) { nss_backend_t *be; - + if(!(be = SMB_MALLOC_P(nss_backend_t)) ) return NULL; @@ -221,7 +221,7 @@ _nss_winbind_getgrent_solwrap(nss_backend_t* be, void* args) int* errnop = &NSS_ARGS(args)->erange; char logmsg[80]; - ret = _nss_winbind_getgrent_r(result, buffer, + ret = _nss_winbind_getgrent_r(result, buffer, buflen, errnop); if(ret == NSS_STATUS_SUCCESS) @@ -235,7 +235,7 @@ _nss_winbind_getgrent_solwrap(nss_backend_t* be, void* args) } return ret; - + } static NSS_STATUS @@ -253,10 +253,10 @@ _nss_winbind_getgrnam_solwrap(nss_backend_t* be, void* args) if(ret == NSS_STATUS_SUCCESS) NSS_ARGS(args)->returnval = (void*) result; - + return ret; } - + static NSS_STATUS _nss_winbind_getgrgid_solwrap(nss_backend_t* be, void* args) { @@ -310,7 +310,7 @@ _nss_winbind_group_destr (nss_backend_t* be, void* args) return NSS_STATUS_SUCCESS; } -static nss_backend_op_t group_ops[] = +static nss_backend_op_t group_ops[] = { _nss_winbind_group_destr, _nss_winbind_endgrent_solwrap, @@ -319,7 +319,7 @@ static nss_backend_op_t group_ops[] = _nss_winbind_getgrnam_solwrap, _nss_winbind_getgrgid_solwrap, _nss_winbind_getgroupsbymember_solwrap -}; +}; nss_backend_t* _nss_winbind_group_constr (const char* db_name, @@ -333,7 +333,7 @@ _nss_winbind_group_constr (const char* db_name, be->ops = group_ops; be->n_ops = sizeof(group_ops) / sizeof(nss_backend_op_t); - + NSS_DEBUG("Initialized nss_winbind group backend"); return be; } @@ -410,7 +410,7 @@ parse_response(int af, nss_XbyY_args_t* argp, struct winbindd_response *response argp->erange = 1; return NSS_STR_PARSE_ERANGE; } - + data = response->data.winsresp; for( i = 0; i < addrcount; i++) { p = strchr(data, '\t'); @@ -524,7 +524,7 @@ _nss_winbind_hosts_getbyname(nss_backend_t* be, void *args) ZERO_STRUCT(response); ZERO_STRUCT(request); - + strncpy(request.data.winsreq, argp->key.name, sizeof(request.data.winsreq) - 1); request.data.winsreq[sizeof(request.data.winsreq) - 1] = '\0'; @@ -560,7 +560,7 @@ _nss_winbind_hosts_getbyaddr(nss_backend_t* be, void *args) request.data.winsreq, sizeof request.data.winsreq); #else snprintf(request.data.winsreq, sizeof request.data.winsreq, - "%u.%u.%u.%u", + "%u.%u.%u.%u", ((unsigned char *)argp->key.hostaddr.addr)[0], ((unsigned char *)argp->key.hostaddr.addr)[1], ((unsigned char *)argp->key.hostaddr.addr)[2], diff --git a/source3/nsswitch/winbind_nss_solaris.h b/nsswitch/winbind_nss_solaris.h similarity index 99% rename from source3/nsswitch/winbind_nss_solaris.h rename to nsswitch/winbind_nss_solaris.h index 84062dbab4a..c6cadefc38a 100644 --- a/source3/nsswitch/winbind_nss_solaris.h +++ b/nsswitch/winbind_nss_solaris.h @@ -1,20 +1,20 @@ -/* +/* Unix SMB/CIFS implementation. Winbind daemon for ntdom nss module Copyright (C) Tim Potter 2000 - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. - + You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ diff --git a/source3/nsswitch/winbind_struct_protocol.h b/nsswitch/winbind_struct_protocol.h similarity index 98% rename from source3/nsswitch/winbind_struct_protocol.h rename to nsswitch/winbind_struct_protocol.h index 36873f2096f..fe3da817910 100644 --- a/source3/nsswitch/winbind_struct_protocol.h +++ b/nsswitch/winbind_struct_protocol.h @@ -1,14 +1,14 @@ -/* +/* Unix SMB/CIFS implementation. Winbind daemon for ntdom nss module Copyright (C) Tim Potter 2000 Copyright (C) Gerald Carter 2006 - + You are free to use this interface definition in any way you see fit, including without restriction, using this header in your own - products. You do not need to give any attribution. + products. You do not need to give any attribution. */ #ifndef SAFE_FREE @@ -41,8 +41,6 @@ /* Update this when you change the interface. */ -/* Version 20: added WINBINDD_REMOVE_MAPPING command */ - #define WINBIND_INTERFACE_VERSION 20 /* Have to deal with time_t being 4 or 8 bytes due to structure alignment. @@ -217,7 +215,7 @@ typedef struct winbindd_gr { /******************************************************************************* * This structure MUST be the same size in the 32bit and 64bit builds * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so - * + * * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST * A 64BIT WINBINDD --jerry ******************************************************************************/ @@ -327,7 +325,7 @@ struct winbindd_request { } dsgetdcname; /* padding -- needed to fix alignment between 32bit and 64bit libs. - The size is the sizeof the union without the padding aligned on + The size is the sizeof the union without the padding aligned on an 8 byte boundary. --jerry */ char padding[1800]; @@ -353,27 +351,27 @@ enum winbindd_result { /******************************************************************************* * This structure MUST be the same size in the 32bit and 64bit builds * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so - * + * * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST * A 64BIT WINBINDD --jerry ******************************************************************************/ struct winbindd_response { - + /* Header information */ uint32_t length; /* Length of response */ enum winbindd_result result; /* Result code */ /* Fixed length return data */ - + union { int interface_version; /* Try to ensure this is always in the same spot... */ - + fstring winsresp; /* WINS response */ /* getpwnam, getpwuid */ - + struct winbindd_pw pw; /* getgrnam, getgrgid */ @@ -387,7 +385,7 @@ struct winbindd_response { } sid; struct winbindd_name { fstring dom_name; /* lookupsid */ - fstring name; + fstring name; int type; } name; uid_t uid; /* sid_to_uid */ diff --git a/source3/nsswitch/wins.c b/nsswitch/wins.c similarity index 99% rename from source3/nsswitch/wins.c rename to nsswitch/wins.c index e028eb8cf2b..80f01191080 100644 --- a/source3/nsswitch/wins.c +++ b/nsswitch/wins.c @@ -1,21 +1,21 @@ -/* +/* Unix SMB/CIFS implementation. - a WINS nsswitch module + a WINS nsswitch module Copyright (C) Andrew Tridgell 1999 - + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . - + */ #include "includes.h" @@ -207,7 +207,7 @@ int lookup(nsd_file_t *rq) bool found = False; nsd_logprintf(NSD_LOG_MIN, "entering lookup (wins)\n"); - if (! rq) + if (! rq) return NSD_ERROR; map = nsd_attr_fetch_string(rq->f_attrs, "table", (char*)0); @@ -225,7 +225,7 @@ int lookup(nsd_file_t *rq) response[0] = '\0'; len = sizeof(response) - 2; - /* + /* * response needs to be a string of the following format * ip_address[ ip_address]*\tname[ alias]* */ @@ -276,7 +276,7 @@ int lookup(nsd_file_t *rq) if (size > len) { free(ip_list); return NSD_ERROR; - } + } strncat(response,key,size); strncat(response,"\n",1); found = True; @@ -306,7 +306,7 @@ static char *get_static(char **buffer, size_t *buflen, int len) /* Error check. We return false if things aren't set up right, or there isn't enough buffer space left. */ - + if ((buffer == NULL) || (buflen == NULL) || (*buflen < len)) { return NULL; } @@ -333,7 +333,7 @@ _nss_wins_gethostbyname_r(const char *hostname, struct hostent *he, int i, count; fstring name; size_t namelen; - + #if HAVE_PTHREAD pthread_mutex_lock(&wins_nss_mutex); #endif diff --git a/source3/Makefile.in b/source3/Makefile.in index f53406c39ee..e30da1b7a04 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -244,7 +244,7 @@ SMBLDAP_OBJ = @SMBLDAP@ @SMBLDAPUTIL@ VERSION_OBJ = lib/version.o -WBCOMMON_OBJ = nsswitch/wb_common.o +WBCOMMON_OBJ = ../nsswitch/wb_common.o AFS_OBJ = lib/afs.o @@ -809,7 +809,7 @@ RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \ $(LIBADS_OBJ) $(POPT_LIB_OBJ) \ $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(LDB_OBJ) -PAM_WINBIND_OBJ = nsswitch/pam_winbind.o localedir.o $(WBCOMMON_OBJ) \ +PAM_WINBIND_OBJ = ../nsswitch/pam_winbind.o localedir.o $(WBCOMMON_OBJ) \ $(LIBREPLACE_OBJ) @BUILD_INIPARSER@ LIBSMBCLIENT_OBJ0 = \ @@ -1009,7 +1009,7 @@ SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) \ $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \ $(LIBNDR_GEN_OBJ0) -WINBIND_WINS_NSS_OBJ = nsswitch/wins.o $(PARAM_OBJ) \ +WINBIND_WINS_NSS_OBJ = ../nsswitch/wins.o $(PARAM_OBJ) \ $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(NSSWINS_OBJ) $(KRBCLIENT_OBJ) \ $(LIBNDR_GEN_OBJ0) @@ -1073,7 +1073,7 @@ WINBINDD_OBJ = \ $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) \ $(LIBADS_SERVER_OBJ) $(SERVER_MUTEX_OBJ) $(LDB_OBJ) -WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \ +WBINFO_OBJ = ../nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \ $(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ) \ lib/winbind_util.o $(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@ @@ -1110,7 +1110,7 @@ LDBADD_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbadd.o LDBDEL_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbdel.o LDBMODIFY_OBJ = $(LDB_CMDLINE_OBJ) lib/ldb/tools/ldbmodify.o -WINBIND_KRB5_LOCATOR_OBJ1 = nsswitch/winbind_krb5_locator.o +WINBIND_KRB5_LOCATOR_OBJ1 = ../nsswitch/winbind_krb5_locator.o WINBIND_KRB5_LOCATOR_OBJ = $(WINBIND_KRB5_LOCATOR_OBJ1) $(LIBREPLACE_OBJ) POPT_OBJ=../lib/popt/findme.o ../lib/popt/popt.o ../lib/popt/poptconfig.o \ @@ -1767,13 +1767,13 @@ shlibs test_shlibs: @LIBTDB_SHARED@ # #------------------------------------------------------------------- -LIBWBCLIENT_OBJ0 = nsswitch/libwbclient/wbclient.o \ - nsswitch/libwbclient/wbc_util.o \ - nsswitch/libwbclient/wbc_pwd.o \ - nsswitch/libwbclient/wbc_idmap.o \ - nsswitch/libwbclient/wbc_sid.o \ - nsswitch/libwbclient/wbc_guid.o \ - nsswitch/libwbclient/wbc_pam.o +LIBWBCLIENT_OBJ0 = ../nsswitch/libwbclient/wbclient.o \ + ../nsswitch/libwbclient/wbc_util.o \ + ../nsswitch/libwbclient/wbc_pwd.o \ + ../nsswitch/libwbclient/wbc_idmap.o \ + ../nsswitch/libwbclient/wbc_sid.o \ + ../nsswitch/libwbclient/wbc_guid.o \ + ../nsswitch/libwbclient/wbc_pam.o LIBWBCLIENT_OBJ = $(LIBWBCLIENT_OBJ0) \ $(WBCOMMON_OBJ) \ @LIBTALLOC_STATIC@ $(LIBREPLACE_OBJ) @@ -1784,7 +1784,7 @@ LIBWBCLIENT_SHARED_TARGET_SONAME=$(LIBWBCLIENT_SHARED_TARGET).$(LIBWBCLIENT_SOVE LIBWBCLIENT_STATIC_TARGET=@LIBWBCLIENT_STATIC_TARGET@ LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@ LIBWBCLIENT_SYMS=$(srcdir)/exports/libwbclient.@SYMSEXT@ -LIBWBCLIENT_HEADERS=$(srcdir)/nsswitch/libwbclient/wbclient.h +LIBWBCLIENT_HEADERS=$(srcdir)/../nsswitch/libwbclient/wbclient.h $(LIBWBCLIENT_SYMS): $(LIBWBCLIENT_HEADERS) @$(MKSYMS_SH) $(AWK) $@ $(LIBWBCLIENT_HEADERS) @@ -2776,7 +2776,7 @@ etags:: etags --append `find $(srcdir)/../source4/ldap_server -name "*.[ch]"` etags --append `find $(srcdir)/../source4/smb_server -name "*.[ch]"` etags --append `find $(srcdir)/../source4/include -name "*.[ch]"` - etags --append `find $(srcdir)/../source4/nsswitch -name "*.[ch]"` + etags --append `find $(srcdir)/../nsswitch -name "*.[ch]"` etags --append `find $(srcdir)/../source4/cldap_server -name "*.[ch]"` etags --append `find $(srcdir)/../source4/utils -name "*.[ch]"` etags --append `find $(srcdir)/../source4/librpc -name "*.[ch]"` diff --git a/source3/configure.in b/source3/configure.in index b90b1b3f604..42bdddf5f98 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -5699,8 +5699,8 @@ HAVE_WINBIND=yes # Define the winbind shared library name and any specific linker flags # it needs to be built with. -WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT" -WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT" +WINBIND_NSS="../nsswitch/libnss_winbind.$SHLIBEXT" +WINBIND_WINS_NSS="../nsswitch/libnss_wins.$SHLIBEXT" WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS NSSSONAMEVERSIONSUFFIX="" WINBIND_NSS_PTHREAD="" @@ -5708,16 +5708,16 @@ WINBIND_NSS_PTHREAD="" case "$host_os" in *linux*) NSSSONAMEVERSIONSUFFIX=".2" - WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_linux.o" ;; *freebsd[[5-9]]*) # FreeBSD winbind client is implemented as a wrapper around # the Linux version. NSSSONAMEVERSIONSUFFIX=".1" - WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \ - nsswitch/winbind_nss_linux.o" - WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT" - WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_freebsd.o \ + ../nsswitch/winbind_nss_linux.o" + WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" + WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" ;; *netbsd*[[3-9]]*) @@ -5727,10 +5727,10 @@ case "$host_os" in # if test x"$ac_cv_func_getpwent_r" = x"yes"; then WINBIND_NSS_EXTRA_OBJS="\ - nsswitch/winbind_nss_netbsd.o \ - nsswitch/winbind_nss_linux.o" - WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT" - WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT" + ../nsswitch/winbind_nss_netbsd.o \ + ../nsswitch/winbind_nss_linux.o" + WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" + WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" else HAVE_WINBIND=no winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported" @@ -5738,28 +5738,28 @@ case "$host_os" in ;; *irix*) # IRIX has differently named shared libraries - WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o" - WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT" - WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_irix.o" + WINBIND_NSS="../nsswitch/libns_winbind.$SHLIBEXT" + WINBIND_WINS_NSS="../nsswitch/libns_wins.$SHLIBEXT" ;; *solaris*) # Solaris winbind client is implemented as a wrapper around # the Linux version. NSSSONAMEVERSIONSUFFIX=".1" - WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \ - nsswitch/winbind_nss_linux.o" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o \ + ../nsswitch/winbind_nss_linux.o" WINBIND_NSS_EXTRA_LIBS="${LIBREPLACE_NETWORK_LIBS}" PAM_WINBIND_EXTRA_LIBS="${LIBREPLACE_NETWORK_LIBS}" ;; *hpux11*) - WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_solaris.o" ;; *aix*) # AIX has even differently named shared libraries. No # WINS support has been implemented yet. - WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o" + WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_aix.o" WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init" - WINBIND_NSS="nsswitch/WINBIND" + WINBIND_NSS="../nsswitch/WINBIND" WINBIND_WINS_NSS="" ;; *) diff --git a/source4/winbind/wb_samba3_protocol.c b/source4/winbind/wb_samba3_protocol.c index 3b97dff2762..8f260eb580e 100644 --- a/source4/winbind/wb_samba3_protocol.c +++ b/source4/winbind/wb_samba3_protocol.c @@ -184,7 +184,6 @@ NTSTATUS wbsrv_samba3_handle_call(struct wbsrv_samba3_call *s3call) case WINBINDD_ALLOCATE_GID: case WINBINDD_SET_MAPPING: case WINBINDD_SET_HWM: - case WINBINDD_DUMP_MAPS: case WINBINDD_DOMAIN_INFO: case WINBINDD_SHOW_SEQUENCE: case WINBINDD_WINS_BYIP: @@ -194,11 +193,6 @@ NTSTATUS wbsrv_samba3_handle_call(struct wbsrv_samba3_call *s3call) case WINBINDD_DUAL_SIDS2XIDS: case WINBINDD_DUAL_SET_MAPPING: case WINBINDD_DUAL_SET_HWM: - case WINBINDD_DUAL_DUMP_MAPS: - case WINBINDD_DUAL_UID2NAME: - case WINBINDD_DUAL_NAME2UID: - case WINBINDD_DUAL_GID2NAME: - case WINBINDD_DUAL_NAME2GID: case WINBINDD_DUAL_USERINFO: case WINBINDD_DUAL_GETSIDALIASES: case WINBINDD_CCACHE_NTLMAUTH: -- 2.34.1