nsswitch: Move source3 files to top level dir.
authorKai Blin <kai@samba.org>
Tue, 16 Dec 2008 08:30:16 +0000 (09:30 +0100)
committerKai Blin <kai@samba.org>
Tue, 16 Dec 2008 12:02:45 +0000 (13:02 +0100)
Don't move source4 files yet to not confuse git's rename tracking too much.

37 files changed:
.gitignore
nsswitch/libwbclient/Doxyfile [moved from source3/nsswitch/libwbclient/Doxyfile with 82% similarity]
nsswitch/libwbclient/libwbclient.h [moved from source3/nsswitch/libwbclient/libwbclient.h with 100% similarity]
nsswitch/libwbclient/wbc_err_internal.h [moved from source3/nsswitch/libwbclient/wbc_err_internal.h with 100% similarity]
nsswitch/libwbclient/wbc_guid.c [moved from source3/nsswitch/libwbclient/wbc_guid.c with 100% similarity]
nsswitch/libwbclient/wbc_idmap.c [moved from source3/nsswitch/libwbclient/wbc_idmap.c with 100% similarity]
nsswitch/libwbclient/wbc_pam.c [moved from source3/nsswitch/libwbclient/wbc_pam.c with 100% similarity]
nsswitch/libwbclient/wbc_pwd.c [moved from source3/nsswitch/libwbclient/wbc_pwd.c with 100% similarity]
nsswitch/libwbclient/wbc_sid.c [moved from source3/nsswitch/libwbclient/wbc_sid.c with 100% similarity]
nsswitch/libwbclient/wbc_util.c [moved from source3/nsswitch/libwbclient/wbc_util.c with 98% similarity]
nsswitch/libwbclient/wbclient.c [moved from source3/nsswitch/libwbclient/wbclient.c with 99% similarity]
nsswitch/libwbclient/wbclient.h [moved from source3/nsswitch/libwbclient/wbclient.h with 99% similarity]
nsswitch/libwbclient/wbclient_internal.h [moved from source3/nsswitch/libwbclient/wbclient_internal.h with 100% similarity]
nsswitch/pam_winbind.c [moved from source3/nsswitch/pam_winbind.c with 100% similarity]
nsswitch/pam_winbind.h [moved from source3/nsswitch/pam_winbind.h with 97% similarity]
nsswitch/wb_common.c [moved from source3/nsswitch/wb_common.c with 95% similarity]
nsswitch/wbinfo.c [moved from source3/nsswitch/wbinfo.c with 99% similarity]
nsswitch/winbind_client.h [moved from source3/nsswitch/winbind_client.h with 90% similarity]
nsswitch/winbind_krb5_locator.c [moved from source3/nsswitch/winbind_krb5_locator.c with 100% similarity]
nsswitch/winbind_nss.h [moved from source3/nsswitch/winbind_nss.h with 96% similarity]
nsswitch/winbind_nss_aix.c [moved from source3/nsswitch/winbind_nss_aix.c with 96% similarity]
nsswitch/winbind_nss_config.h [moved from source3/nsswitch/winbind_nss_config.h with 96% similarity]
nsswitch/winbind_nss_freebsd.c [moved from source3/nsswitch/winbind_nss_freebsd.c with 97% similarity]
nsswitch/winbind_nss_hpux.h [moved from source3/nsswitch/winbind_nss_hpux.h with 98% similarity]
nsswitch/winbind_nss_irix.c [moved from source3/nsswitch/winbind_nss_irix.c with 97% similarity]
nsswitch/winbind_nss_irix.h [moved from source3/nsswitch/winbind_nss_irix.h with 98% similarity]
nsswitch/winbind_nss_linux.c [moved from source3/nsswitch/winbind_nss_linux.c with 96% similarity]
nsswitch/winbind_nss_linux.h [moved from source3/nsswitch/winbind_nss_linux.h with 98% similarity]
nsswitch/winbind_nss_netbsd.c [moved from source3/nsswitch/winbind_nss_netbsd.c with 100% similarity]
nsswitch/winbind_nss_netbsd.h [moved from source3/nsswitch/winbind_nss_netbsd.h with 98% similarity]
nsswitch/winbind_nss_solaris.c [moved from source3/nsswitch/winbind_nss_solaris.c with 97% similarity]
nsswitch/winbind_nss_solaris.h [moved from source3/nsswitch/winbind_nss_solaris.h with 99% similarity]
nsswitch/winbind_struct_protocol.h [moved from source3/nsswitch/winbind_struct_protocol.h with 98% similarity]
nsswitch/wins.c [moved from source3/nsswitch/wins.c with 99% similarity]
source3/Makefile.in
source3/configure.in
source4/winbind/wb_samba3_protocol.c

index e617400cc5c088791628f9fd70e5928d4c8575f2..07058be52bf834f88be82db59a9745721f12e74f 100644 (file)
@@ -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
similarity index 82%
rename from source3/nsswitch/libwbclient/Doxyfile
rename to nsswitch/libwbclient/Doxyfile
index e12c2b06f03899dcbc5c8ca382a39aee2b7b1cc8..529a16fd6a035ac8a225533d09da1de1f9cbfe19 100644 (file)
 # 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 <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> 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 <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> 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 <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> 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 <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> 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
similarity index 98%
rename from source3/nsswitch/libwbclient/wbc_util.c
rename to nsswitch/libwbclient/wbc_util.c
index 7cfb64b87e9d9749a3b788ff3fd3db3459072612..5c5034ee13f4e5006353901c1a5e45d94d7d5916 100644 (file)
@@ -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<count && p; i++) {
                char *next = strchr(p, '\n');
-               
+
                if (next) {
                        *next = '\0';
                        next++;
@@ -449,9 +449,9 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
                p = next;
        }
 
-       *domains = d_list;      
-       *num_domains = i;       
-       
+       *domains = d_list;
+       *num_domains = i;
+
  done:
        if (!WBC_ERROR_IS_OK(wbc_status)) {
                if (d_list)
similarity index 99%
rename from source3/nsswitch/libwbclient/wbclient.c
rename to nsswitch/libwbclient/wbclient.c
index 3a9afad15d4c49ab0286c8e877bf2ed11bd73427..f5c72315f2e117ea87bb46c1d5de48a3dae03935 100644 (file)
@@ -155,5 +155,3 @@ done:
        talloc_free(info);
        return wbc_status;
 }
-
-
similarity index 99%
rename from source3/nsswitch/libwbclient/wbclient.h
rename to nsswitch/libwbclient/wbclient.h
index fcad3ff69bd8fb71204af93b6c30f53a61b9f601..990cc52df79d1f7444fca0c44fd7185472957426 100644 (file)
@@ -952,7 +952,7 @@ wbcErr wbcDomainInfo(const char *domain,
  *
  * @return #wbcErr
  **/
-wbcErr wbcListTrusts(struct wbcDomainInfo **domains, 
+wbcErr wbcListTrusts(struct wbcDomainInfo **domains,
                     size_t *num_domains);
 
 /* Flags for wbcLookupDomainController */
similarity index 97%
rename from source3/nsswitch/pam_winbind.h
rename to nsswitch/pam_winbind.h
index 0656f5972e0b880ef0822eb5b1c750f3623e59e0..c6b2c5e72695499c5365ee2f3e9eef09dfc4a6e2 100644 (file)
@@ -1,4 +1,4 @@
-/* pam_winbind header file 
+/* pam_winbind header file
    (Solaris needs some macros from Linux for common PAM code)
 
    Shirish Kalele 2000
@@ -32,7 +32,7 @@
 /* Solaris always uses dynamic pam modules */
 #define PAM_EXTERN extern
 #if defined(HAVE_SECURITY_PAM_APPL_H)
-#include <security/pam_appl.h> 
+#include <security/pam_appl.h>
 #elif defined(HAVE_PAM_PAM_APPL_H)
 #include <pam/pam_appl.h>
 #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)
-
similarity index 95%
rename from source3/nsswitch/wb_common.c
rename to nsswitch/wb_common.c
index a1646215bdff3d44e7fe977f7cb3bdb2cc8c67f6..d0dfcb8bbfb67326d82f2736b8110b3a9baf8688 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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;
similarity index 99%
rename from source3/nsswitch/wbinfo.c
rename to nsswitch/wbinfo.c
index c85e210cc04de2fd999fc2085e3d0a12fc66aaee..36c2818ccf26b91a4a34528cdebd5f50def59ff4 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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;
                        }
similarity index 90%
rename from source3/nsswitch/winbind_client.h
rename to nsswitch/winbind_client.h
index 757f5869e90168de797e9bcee81ad395877ca1bd..b004d9c2c02ed22b6213b238b5e7ee97775fbab8 100644 (file)
@@ -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);
similarity index 96%
rename from source3/nsswitch/winbind_nss.h
rename to nsswitch/winbind_nss.h
index 0a3bc7cefac88172d2bb7d70bed6eff18e23a781..05e07ad5d3137ffaecec9656298222a81451ce59 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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"
similarity index 96%
rename from source3/nsswitch/winbind_nss_aix.c
rename to nsswitch/winbind_nss_aix.c
index 9c84e5f8aa518d33bccaad057a560f4db3cd0f6a..17578cf3501ad2b79206e0003a52f41748338dc1 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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]:"<null>");
        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;
 }
-
similarity index 96%
rename from source3/nsswitch/winbind_nss_config.h
rename to nsswitch/winbind_nss_config.h
index bed507fdeb50e0e4c9771f539aad60e7980f35f1..3e2ce68252ab98362b895061b2a7f66c85463a4d 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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 */
similarity index 97%
rename from source3/nsswitch/winbind_nss_freebsd.c
rename to nsswitch/winbind_nss_freebsd.c
index 02e29f3131022d2f8557feae7aa918b3296209b0..ac230c8a9a4c39eda4c648a2db6ffdedfb3b8ceb 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
similarity index 98%
rename from source3/nsswitch/winbind_nss_hpux.h
rename to nsswitch/winbind_nss_hpux.h
index 62cf3c26c5209aadffd7115519cdc746d3d60246..40a352d4d3b796fb8cd22a5368058cfc694ee819 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
 #ifdef HAVE_PTHREAD_H
 #include <pthread.h>
 #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 <errno.h>
 #include <netdb.h>
 #include <limits.h>
+
 #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 */
similarity index 97%
rename from source3/nsswitch/winbind_nss_irix.c
rename to nsswitch/winbind_nss_irix.c
index 5bc0fa54da9a00d0fd68e64f877ff42fa3487758..66fa4b529d6e6adba5342e85b7d4f201db2ca8f2 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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;
similarity index 98%
rename from source3/nsswitch/winbind_nss_irix.h
rename to nsswitch/winbind_nss_irix.h
index b40b14b0b034c894e6362ab28deac024936182b8..b47d23e204b7943ac83f46b3304cddef1c2caeef 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
similarity index 96%
rename from source3/nsswitch/winbind_nss_linux.c
rename to nsswitch/winbind_nss_linux.c
index c11c18759e65cb4526c6dd32c2ac24322637312a..2b51a8e15dbf6de4c7d848b745c53ab189e173f3 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
@@ -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);
similarity index 98%
rename from source3/nsswitch/winbind_nss_linux.h
rename to nsswitch/winbind_nss_linux.h
index 74aaec5ce6059af2f23c4ee9944abf94a25cadf8..db5a378aad642867bf2878cf7d994df4deae7034 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
similarity index 98%
rename from source3/nsswitch/winbind_nss_netbsd.h
rename to nsswitch/winbind_nss_netbsd.h
index dceb57c78444b88824259b065dd351c1f6c9bcf7..5aeb2b9d7da705dffa4e4c2b94322dba24c01315 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
similarity index 97%
rename from source3/nsswitch/winbind_nss_solaris.c
rename to nsswitch/winbind_nss_solaris.c
index 865b6ebbb068d6d3597a442a99dc7f6441ceaf55..4c85bd3621b57275300e7551090348ffac520024 100644 (file)
@@ -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 <sys/syslog.h>
 #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],
similarity index 99%
rename from source3/nsswitch/winbind_nss_solaris.h
rename to nsswitch/winbind_nss_solaris.h
index 84062dbab4a3d0dae99f1d2c5a17ed0a0bfec0f8..c6cadefc38a81c9c3d01ed01d502386aa5191888 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
 */
similarity index 98%
rename from source3/nsswitch/winbind_struct_protocol.h
rename to nsswitch/winbind_struct_protocol.h
index 36873f2096f2552dc12e3f6f9c604ba97f735c24..fe3da817910eb107c6dd8b5d686c4d3801b6e3bc 100644 (file)
@@ -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 */
similarity index 99%
rename from source3/nsswitch/wins.c
rename to nsswitch/wins.c
index e028eb8cf2ba69fcdc4437fb43b84b742cd65ea8..80f01191080c46ea136867773060f30603aaade8 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
-   
+
 */
 
 #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
index f53406c39eec6168b93f464cc023b8ed44ed06e9..e30da1b7a042b19835abf2b6b159d903c4a9bca9 100644 (file)
@@ -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]"`
index b90b1b3f6043ac8a4ebc5b9d05c672ef678e39e7..42bdddf5f986d0c8393562d7037983a91f073677 100644 (file)
@@ -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=""
                ;;
        *)
index 3b97dff27626ad35bcd5bbea5497b77c214b44ae..8f260eb580e599c13f90d861033c406fb59225be 100644 (file)
@@ -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: