2015-06-14 Arthur de Jong * [4236dd6] Makefile.am: Correctly insert emtpy lines in ChangeLog 2015-06-13 Arthur de Jong * [e916a2b] man/nslcd.conf.5.xml: Manual page improvements 2015-06-13 Arthur de Jong * [9a7921f] nslcd/common.c, nslcd/common.h: Also fix signed integer bug in binsid2id() This should have been part of d217632. 2015-06-11 Geoffrey McRae * [d217632] nslcd/common.c: Fixed signed 32bit overflow bug on 32bit systems 2015-05-23 Jed Liu * [3add5f0] nslcd/cfg.c: Allow configuration values longer than 63 characters 2015-03-06 Arthur de Jong * [d58fba9] nss/netgroup.c: Provide innetgr function on Solaris This implements a function in the Solaris version of the NSS module to check if a specifc netgroup triplet is part of a netgroup. This also avoids a compiler warning and includes improvements and testing by Mark R Bannister. 2015-05-01 Andrew Elble * [c0366d8] man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h, nslcd/nslcd.c, pynslcd/cfg.py, pynslcd/group.py, pynslcd/passwd.py, pynslcd/shadow.py: Implement disable_enumeration If this option is present, functions which cause all user/group entries to be loaded (getpwent(), getgrent()) from the directory will not succeed in doing so. This can dramatically reduce ldap server load in situations where there are a great number of users and/or groups. Applications that depend on being able to sequentially read all users and/or groups may fail to operate correctly. This option is not recommended for most configurations. 2015-04-17 Arthur de Jong * [96045d2] man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h, nslcd/group.c, pynslcd/cfg.py, pynslcd/group.py: Implement nss_getgrent_skipmembers This option allows skipping group member list retrieval to improve performance with very large groups. This option results in inconsistent group membership information being presented that may confuse some applications. 2015-04-15 Arthur de Jong * [530cc24] nslcd/daemonize.c, nslcd/nslcd.c: Avoid signal race condition on start-up This only restores the signal mask after signal handlers are in place and the daemon has completely daemonised to avoid a race condition in the start-up phase of nslcd where a signal could be sent to nslcd causing it to quit or fail to write information to the parent process. 2015-03-29 Arthur de Jong * [16fd8c6] AUTHORS, ChangeLog, NEWS, README, configure.ac, man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml: Get files ready for 0.9.5 release 2015-03-11 Tim Rice * [ae08830] common/Makefile.am, compat/Makefile.am, configure.ac, nss/Makefile.am, pam/Makefile.am: Use correct PIC arg for non-GCC compilers 2015-03-22 Arthur de Jong * [fdbca17] config.sub: Update files from latest automake 2015-03-22 Arthur de Jong * [9f9a5c5] nss/networks.c: Fix for networks lookup under Solaris This fixes a byte order issue when nscd is running. 2015-03-22 Arthur de Jong * [52ea3f5] configure.ac: Add checks to configure This adds tests for a function and type used in the code. 2015-03-22 Arthur de Jong * [4ec1c08] nslcd/daemonize.c: ENODATA is missing on FreeBSD FreeBSD doesn't have ENODATA so we use ENOATTR instead. 2015-03-22 Arthur de Jong * [b2563b0] compat/nss_compat.h, configure.ac: Remove use of irs-nss.h This was a compatibility leftover from the nss_ldap days. 2015-03-21 Arthur de Jong * [4c5a3c9] tests/test_clock.c: Prevent numer overflow in test_clock 2015-03-21 Arthur de Jong * [0420232] nslcd/nslcd.c, nslcd/nsswitch.c, nss/Makefile.am, tests/testenv.sh: Various small fixes when using --with-module-name This updates the test framework to support --with-module-name, ensures that exports.map is rebuilt when configure is re-ran, fixes parsing of nsswitch.conf (to determine what to return for passwd lookups) and fixes the check for _nss_ldap_version. 2015-03-21 Arthur de Jong * [788475f] nss/common.h: Also support platforms without TLS This disables the use of thread-local storage in the NSS module when it is not available in libc. This results in the get*ent() functions not being thread-safe. However, on most platforms they are not expected to be thread-safe anyway. 2015-03-20 Dalibor Pospíšil * [95d621e] man/nslcd.conf.5.xml: Document that multiple URIs can be specified Update nslcd.conf man page that multiple URIs can be set by using more uri lines or more URIs defined on one uri line. https://bugzilla.redhat.com/show_bug.cgi?id=1204195 2015-03-11 Patrick McLean * [fa6affc] common/tio.c, nslcd/attmap.c, nslcd/cfg.c, nslcd/myldap.c: Fix formatting of size_t values In several places the code used a %d format to print a size_t variable. On amd64 at least size_t is an unsigned long, so use %lu instead. An alternative would be to use %ud for size_t and %zd fo ssize_t but not all platforms seem to support that formatter. 2015-03-11 Patrick McLean * [246aba5] nslcd/myldap.c, pam/pam.c: Avoid comparison of static array to null pointer There are several places where a static length array in a struct is compared to a null pointer. These comparisons will always be false, since an array in a struct is not actually a pointer, so they can be removed. 2015-03-10 Patrick McLean * [d0f896a] AUTHORS, nslcd/nslcd.c: Don't let the oom killer kill nslcd Adjust the Linux OOM (Out-Of-Memory) killer score by -1000 for nslcd so that it should not be killed. 2015-01-19 Arthur de Jong * [ee82d2f] .gitignore, configure.ac, nslcd/nslcd.c, nss/Makefile.am, nss/aliases.c, nss/bsdnss.c, nss/common.c, nss/common.h, nss/ethers.c, nss/group.c, nss/hosts.c, nss/netgroup.c, nss/networks.c, nss/passwd.c, nss/protocols.c, nss/prototypes.h, nss/rpc.c, nss/services.c, nss/shadow.c, pam/pam.c, pynslcd/constants.py.in, pynslcd/pynslcd.py: Allow configuration of NSS and PAM names This introduces the --with-module-name configure option to allow building of NSS and PAM modules with different namespaces than ldap. 2015-01-12 Mark R Bannister * [ed8b312] nss/hosts.c: Fix uninitialised variable This fixes a bug in the NSS library when encountering IPv6 addresses in the hosts map. 2014-12-12 Arthur de Jong * [8b33057] nslcd/myldap.c: Avoid accessing searches outside array Thanks David Binderma for pointing this out. Note that in practical situations this should not result in any errors due to the position of searches within the ldap_session struct. 2014-11-02 Arthur de Jong * [9ee854e] man/nslcd.conf.5.xml: Document that rootpwmoddn needs to exist See http://lists.arthurdejong.org/nss-pam-ldapd-users/2014/msg00166.html 2014-10-10 Arthur de Jong * [4262122] nslcd/nslcd.c: Fix format string Thanks Jianhai Luan. 2014-10-04 Arthur de Jong * [1d3b19b] nslcd/nslcd.c: Block signals sooner to avoid race conditions 2014-08-27 Jason Luan * [78627c9] nslcd/cfg.c, nslcd/group.c, nslcd/nslcd.c, nslcd/passwd.c: uid_t/gid_t should be formatted as unsigned long mmkfilter_passwd_byuid()/mkfilter_group_bygid() get wrong filter string because "%d" will return negative when uid/gid larger than 2^31, and result to "Authentiction failure". This also changes the other places where uid_t or gid_t values are formatted. 2014-09-21 Arthur de Jong * [a726d29] nslcd/daemonize.c: Fix issues with daemonising This fixes a problem with a buffer that could end up padded with garbage. This also clarifies the code a bit and adds extra logging for errors that could occur during daemonising. 2014-06-30 Tim Harder * [82e4423] nslcd/myldap.c: Minor comment spelling fix 2014-06-30 Tim Harder * [2950797] AUTHORS, nslcd/myldap.c: Check a socket's connectivity before trying to use it This alleviates some cases where multi-second lag occurs before a query returns due to some or all connections having been closed by the peer, e.g. a load balancer timing out old connections, but they are all tried before opening new connections. Tested and working on Linux. 2014-06-20 Arthur de Jong * [1765e34] nslcd/common.h: Fix copy-pasto 2014-06-12 Arthur de Jong * [9516479] tests/test.ldif, tests/test_nsscmds.sh: Use other IP range for tests This uses IP addresses from the RFC 5737 TEST-NET-1 range that is meant for use in documentation. This avoids issues with running the tests environments that also use the 10.0.0.0/8 range. 2014-06-06 Arthur de Jong * [b3cf0aa] AUTHORS, ChangeLog, NEWS, configure.ac, man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml, man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml: Get files ready for 0.9.4 release 2014-06-06 Arthur de Jong * [abb2452] nss/services.c: Return correct port number on Solaris This is a small fix for when using nscd (which still does not seem to work completely). The port is stored in network byte order but should be printed in host byte order. 2014-06-06 Arthur de Jong * [b977d3f] tests/lookup_groupbyuser.c: Add missing include for FreeBSD 2014-06-06 Arthur de Jong * [258d671] nslcd/pam.c: Fix password modification by root This fixes 15fc13c. 2014-06-06 Arthur de Jong * [8eeb1cc] common/tio.c: Clear proper buffer length This fixes 3d29861. 2014-06-06 Arthur de Jong * [3d65b84] nslcd/common.h: Fix code indentation This fixes 2274b41. 2014-06-06 Arthur de Jong * [e867727] config.guess, config.sub: Update files from latest automake 2014-06-05 Arthur de Jong * [f5ee208] pynslcd/cache.py: Fix comment 2014-06-05 Arthur de Jong * [13483f9] .gitignore, configure.ac, tests/Makefile.am, tests/lookup_groupbyuser.c: Introduce lookup_groupbyuser test command This command can be used to perform a lookup using getgrouplist() to present a list of returned numeric group ids. This can be used to avoid the additional lookups that are done with the id and groups commands. 2014-05-14 Arthur de Jong * [3d29861] common/tio.c, nslcd/myldap.c, nslcd/pam.c: Clear buffers before free-ing This clears most buffers that may hold credentials at one point before free()ing the memory. 2014-05-08 Arthur de Jong * [aa1d810] HACKING: Clarify code contribution 2014-05-04 Arthur de Jong * [94eacb5] nslcd/pam.c: Improve error logging of user login failures 2014-05-04 Arthur de Jong * [ca36a50] nslcd/myldap.c: Also extract policy controls on BIND failure This ensures that controls returned by an LDAP server as part of a failed BIND operation are also returned. This makes it possible to distinguish between a wrong password and an expired password. This also only logs the BIND operation result on DEBUG level (the error is logged later on). 2014-05-04 Arthur de Jong * [d6163e2] configure.ac: Use FreeBSD lib directory and SONAME on Dragonfly 2014-05-04 Arthur de Jong * [f6f3730] README, man/nslcd.conf.5.xml: Small documentation improvements This includes a number of minor changes to the documentation. This also documents the children search scope (related to 2caeef4). 2014-05-04 Arthur de Jong * [ed79110] nslcd/daemonize.c, nslcd/nslcd.c: Log daemonising failures This also clears errno in the main function to ensure that no incorrect errno value is logged on errors. 2014-05-04 Arthur de Jong * [18d05b0] .gitignore, tests/Makefile.am, tests/test_attmap.c: Add a test for setting member attribute mapping 2014-05-04 Arthur de Jong * [fbea2a5] nslcd/attmap.c: Fix mapping group member attribute to empty string This fixes be94912. 2014-05-04 Arthur de Jong * [2274b41] nslcd/alias.c, nslcd/attmap.c, nslcd/cfg.c, nslcd/common.h, nslcd/ether.c, nslcd/group.c, nslcd/host.c, nslcd/invalidator.c, nslcd/myldap.c, nslcd/netgroup.c, nslcd/network.c, nslcd/pam.c, nslcd/passwd.c, nslcd/protocol.c, nslcd/rpc.c, nslcd/service.c, nslcd/shadow.c: Make buffer size error logging consistent This adds logging of most cases where a defined buffer is not large enough to hold provided data on error log level. 2014-05-04 Arthur de Jong * [15fc13c] nslcd/myldap.c, nslcd/myldap.h, nslcd/pam.c, nslcd/usermod.c: Warn when binddn buffer is too small 2014-05-04 Arthur de Jong * [f987891] nslcd/common.h: Grow DN buffer size The buffer size seems to be a problem in environments with long names or environments with non-ASCII characters. 2014-05-02 ushi * [119cebf] nslcd/common.h: Use larger nslcd password buffer I had some edge cases where 64 bytes were not enough. People are using password managers with long generated passwords. I increased the buffer size to 128. 2014-03-12 Arthur de Jong * [8f12c15] AUTHORS, ChangeLog, NEWS, configure.ac, man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml, man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml, pynslcd/pynslcd.py: Get files ready for 0.9.3 release 2014-03-12 Arthur de Jong * [1ec7739] INSTALL, missing, test-driver: Update files from recent automake 2014-03-10 Arthur de Jong * [44764f0] tests/Makefile.am, tests/test_myldap.sh, tests/test_nsscmds.sh: Run the correct executables for the tests This fixes issues with running the tests when using a separate build directory (fixes ef0eddaa). 2014-03-10 Arthur de Jong * [77444ac] tests/test_myldap.sh: Fix nslcd-test.conf permissions for test This ensures that configuration file is not world readable when the tests are run. This avoids test failure for the use of the rootpwmodpw option. 2014-03-10 Arthur de Jong * [96e4171] common/nslcd-prot.h: Interpret transferred integers as signed again This fixes an issue with unsigned values ending up in signed fields and missing sign extension. See: https://bugs.debian.org/739330 2014-01-27 Nalin Dahyabhai * [2d35feb] nss/hosts.c, nss/networks.c: Use right h_errnop for retrying with larger buffer The libc nsswitch code expects h_errno to be set to NETDB_INTERNAL when it needs to try again with a larger buffer. Signed-off-by: Lukas Slebodnik 2014-01-27 Lukas Slebodnik * [8532f40] nss/hosts.c, nss/networks.c: Fix crash when retrieving large networks entries If NSS_STATUS_TRYAGAIN is returned from read_one_hostent or read_one_netent then fp will be closed and function tio_skipall will be called with NULL pointer. It could happend in functions: _nss_ldap_getnetbyname_r _nss_ldap_getnetbyaddr_r _nss_ldap_gethostbyname2_r _nss_ldap_gethostbyaddr_r Fixes r548 (aka afd5d9b). 2014-01-30 Davy Defaud * [4211961] nslcd/group.c: Support builtin Windows groups This maps the gid (gidNumber) to an AD SID for builtin groups when searching a group by gid (RID) between 544 and 552. In that case the SID prefix is not the domain's prefix (S-1-5-21-dddddd-dddddd-dddddd) but the BUILTIN SID prefix (1-5-32). For example, if you add a user to the Administrators builtin group (S-1-5-32-544), now you should be able to get this group through nslcd, instead of receiving an error message. 2014-01-25 Arthur de Jong * [f6a0675] configure.ac: Add test for krb5 thread safety This adds a test that checks the return value of krb5_is_thread_safe() to see if krb5 is thread safe (during build) and issues a warning if it is not. nslcd does not directly link to krb5 but the library may be loaded (by GSSAPI) if Kerberos is used to authenticate nslcd to the LDAP server. 2014-01-25 Francois Tigeot * [043838c] configure.ac: Also detect DragonFly as BSD This fixes the detection of DragonFly as requiring the freebsd NSS interface flavour. 2014-01-24 joshuashire * [2181cca] nslcd/shadow.c: Update shadow.c to resolve pwdLastSet issue We read the date into the buffer to the specified length to get it to the Unix time (i.e. seconds) from its AD value of nanoseconds, then convert it to days for shadow. If we use date rather than buffer we end up trying to convert the original nanosecond value. 2014-01-05 Arthur de Jong * [c6c317e] : Implement deref control handling This uses the LDAP_CONTROL_X_DEREF control as described in draft-masarati-ldap-deref-00 to request the LDAP server to dereference group member attribute values to uid attribute values. This should reduce the number of searches that are required for expanding group members that use the member attribute. This mechanism could also be used to extract information on nested groups but the gains are less clear there. Not all LDAP servers support this control. In OpenLDAP, load the (currently undocumented) deref overlay and enable it for the database to take advantage of this improvement. There is a functional difference when using this control. Any returned deferred uid value returned by the LDAP server is accepted as a member. No checks are performed to see if the user matches the search base and search filters set for passwd entries. 2014-01-05 Arthur de Jong * [309b4bb] README: Update documentation This documents the way the deref controls are used. 2014-01-05 Arthur de Jong * [cecc024] nslcd/group.c: Use myldap_get_deref_values() to get member uids This uses information from the deref control (if available) to get the username for each of the members of the group. Any missing deref member attribute values will be seen as nested groups and will be traversed if nested group support is enabled. 2014-01-05 Arthur de Jong * [c973834] configure.ac, nslcd/myldap.c, nslcd/myldap.h: Provide a myldap_get_deref_values() function This function looks for deref response controls (LDAP_CONTROL_X_DEREF) in the entry and returns the information from the dereferenced attribute in two lists: dereferenced values and attribute values that could not be dereferenced. 2014-01-05 Arthur de Jong * [3992e15] nslcd/group.c: Skip member attributes in bymember search This changes the group by member searches to not request the member attributes. This will speed up result parsing by a fraction because less data is transferred but will also cause the deref control not to be added to these searches. 2013-12-28 Arthur de Jong * [15ee2fc] compat/Makefile.am, compat/derefctrl.c, compat/ldap_compat.h, configure.ac: Provide replacement ldap_create_deref_control() This adds a test for a bug in OpenLDAP that allocated a LDAP_CONTROL_PAGEDRESULTS control instead of a LDAP_CONTROL_X_DEREF control. 2014-01-05 Arthur de Jong * [547e479] configure.ac, nslcd/myldap.c: Request attribute deref via search control This uses the LDAP_CONTROL_X_DEREF control as descibed in draft-masarati-ldap-deref-00 to request the LDAP server to dereference member attribute values to uid attribute values in order to avoid doing extra searches. This control is currently only added for group search by looking for the member attribute in the search. 2014-01-04 Arthur de Jong * [c22eb08] nslcd/myldap.c: Rename entry property to indicate storage type This changes entrye->rangedattributevalues to entry->buffers because the propery is not only used for ranged attribute values but for anything that can be freed with free(). 2014-01-03 Arthur de Jong * [f009c96] nslcd/myldap.c: Ignore missing page controls Since we could get arbitrray controls and are only interested in page controls we ignore failures to find page controls. 2014-01-03 Arthur de Jong * [4f6dfdd] nslcd/myldap.c: Use do_try_search() also for paged searches This also changes do_try_search() to support building continued paged controls and lays the groundwork for adding more search controls. 2014-01-05 Arthur de Jong * [be94912] nslcd/attmap.c, nslcd/group.c, pynslcd/group.py: Support blanking the member attribute This allows remapping the member attribute to an empty string which removes support for that attribute. This can reduce the number of search operations if the attribute is not used. 2014-01-05 Arthur de Jong * [0d3fa5d] nslcd/group.c: Fix typo 2014-01-05 Arthur de Jong * [8e74848] nslcd/group.c, nss/netgroup.c, tests/test_set.c: Fix memory leaks related to set_pop() Some pieces of code did not properly free() the value returned by set_pop(). The leak in group code was related to the introduction of nested group functionality in 41ba574 (merged in 3daa68d) so should only be present in releases 0.9.0 forward. The leak in the netgroup code only ended up in the Solaris version of the NSS module and was introduced in 4ea9ad1 (merged in 5c8779d). This leak is present in all releases from 0.8.0 forward. 2014-01-04 Arthur de Jong * [3288942] tests/test_myldap.c: Fix compiler warnings in the myldap test 2014-01-02 Arthur de Jong * [2b8fbc2] : Only exit nslcd when daemon is ready This removes a race condition between the exit of the initial nslcd process (as started by the init script) and nslcd services being ready. 2014-01-02 Arthur de Jong * [3afedc4] compat/Makefile.am, compat/daemon.c, compat/daemon.h, configure.ac: Remove daemon() replacement function 2014-01-02 Arthur de Jong * [907d49d] configure.ac, nslcd/daemonize.c: Close daemon pipe file descriptor on fork or exec This tries to avoid child processes ending up with a copy of the pipe file descriptor that is used to signal readiness of the daemon. 2014-01-02 Arthur de Jong * [42a1a3d] nslcd/Makefile.am, nslcd/daemonize.c, nslcd/daemonize.h, nslcd/nslcd.c: Properly daemonise nslcd and only exit when ready This introduces a new daemonize module that provides functions for closing all file descriptors, redirecting stdin/stdout/stderr to /dev/null and a function for backgrounding an application while only exiting the original process after the daemon process has indicated readiness. This is used to exit the original process only after the listening socket has been set up and the worker threads have been started. 2013-12-28 Arthur de Jong * [e3f0453] configure.ac: Re-organise ldap function tests 2013-12-21 Arthur de Jong * [3ce5ef9] : Make dn2uid cache tuneable This introduces a new cache configuration option that allows setting positive and negative cache lifetimes for the dn2uid cache. 2013-12-21 Arthur de Jong * [19f3cc3] tests/test_cfg.c: Add a test for new configuration option 2013-12-21 Arthur de Jong * [09969cf] man/nslcd.conf.5.xml: Document cache option in manual page 2013-12-21 Arthur de Jong * [a0c90d2] nslcd/passwd.c: Use dn2uid cache options The configuration values are used in the cache to determine positive and negative hit TTLs. This also allows completely disabling the cache. 2013-12-21 Arthur de Jong * [99ad1b4] nslcd/cfg.c, nslcd/cfg.h: Implement a cache configuration option This adds the cache nslcd.conf configuration option to configure the dn2uid cache in nslcd with a positive and negative cache lifetime. 2013-12-19 Arthur de Jong * [82bac61] nslcd/passwd.c: Have positive and negative cache timeouts The positive value determines the time a found entry is valid, the negative timeout determines the lifetime of not found entries. 2013-12-19 Arthur de Jong * [b9ec6df] nslcd/cfg.c: Support printing children search scope This fixes 2caeef4. 2013-12-18 Arthur de Jong * [9f02853] nslcd/alias.c, nslcd/common.c, nslcd/common.h, nslcd/ether.c, nslcd/group.c, nslcd/host.c, nslcd/myldap.c, nslcd/netgroup.c, nslcd/network.c, nslcd/pam.c, nslcd/passwd.c, nslcd/protocol.c, nslcd/rpc.c, nslcd/service.c, nslcd/shadow.c, nslcd/usermod.c: Centralise buffer sizes Common buffer sizes are now stored centrally so it can be easily and consistently updated if required. Some buffers remain with locally defined sizes that do not match a global buffer size. 2013-11-25 Arthur de Jong * [23a41ce] compat/pam_get_authtok.c, compat/pam_prompt.c, configure.ac, pam/pam.c: Add a test for pam_get_item() argument type This checks whether pam_get_item() takes a const void ** or void ** item value argument and defines a PAM_ITEM_CONST macro that is const when it should. This avoids some compiler warnings. 2013-10-30 Arthur de Jong * [81bfb8b] ChangeLog, NEWS, configure.ac, man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml, man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml: Get files ready for 0.9.2 release 2013-10-29 Arthur de Jong * [ef0edda] tests/test_myldap.sh, tests/test_nsscmds.sh, tests/test_pamcmds.expect: Portability fixes to environment tests This mostly tries to reduce the influences of the test environment (local users and groups) on the tests. This uses another username (vsefcovic) in the PAM tests instead of the user arthur to avoid clashes with existing users. The PAM tests are skipped if passwd claims that it cannot modify LDAP passwords (for FreeBSD). 2013-10-29 Arthur de Jong * [f8af48f] compat/ldap_parse_passwordpolicy_control.c, nslcd/common.c, nslcd/config.c, nslcd/group.c, nslcd/nslcd.c, nslcd/pam.c, nslcd/protocol.c, nslcd/rpc.c, nslcd/service.c, nss/bsdnss.c, nss/ethers.c, nss/group.c, nss/netgroup.c, nss/networks.c, nss/passwd.c, nss/protocols.c, nss/rpc.c, nss/services.c, pam/pam.c: Fix a number of compiler warnings This includes a number of small fixes for issues that were formerly masked by the incorrect AC_LANG_PROGRAM check. 2013-10-29 Arthur de Jong * [88801f9] configure.ac: Add -Werror=implicit if compiler supports it 2013-10-29 Arthur de Jong * [933bf8e] configure.ac: Fix usage of AC_LANG_PROGRAM Apparently the macro got changed a long time ago to provide a main() definition. This bug caused the extra warning flags to not be added. 2013-10-29 Arthur de Jong * [6028226] compat/Makefile.am, compat/shell.h, configure.ac, nslcd/usermod.c: Compatibility definitions for {set,get,end}usershell() This provides compatibility definitions for systems that don't have these functions (some Solaris flavours). 2013-10-28 Arthur de Jong * [ed4cf47] nslcd/nslcd.c: Start invalidator after locking pidfile This causes the pidfile to be written as the first thing after daemonising nslcd to minimise the race between service script completion and pidfile being locked. 2013-10-27 Arthur de Jong * [503644b] HACKING, README: Update documentation 2013-10-27 Arthur de Jong * [6be316e] autogen.sh, configure.ac: Specify m4 directory in configure script 2013-10-25 Arthur de Jong * [1d8db24] nslcd/myldap.c, pynslcd/search.py: Also run invalidators on initial connect This also invalidates the caches configured with reconnect_invalidate on the first successful search. This should handle the case more gracefully where caches were filled with negative hits before nslcd was running. 2013-10-25 Arthur de Jong * [ee8737f] tests/Makefile.am: Distribute setup_slapd.sh and associated files 2013-10-22 Arthur de Jong * [e28e937] tests/test_myldap.sh, tests/testenv.sh: Improve portability of ldap test This supports old ldapsearch commands that don't support the -x and -H options and ldapsearch commands that don't exit with a failure code if nothing is found. This also switches the test_myldap test to use the testenv check for the LDAP server. 2013-10-20 Arthur de Jong * [8cc354a] tests/test_pamcmds.expect: Handle other responses in test_pamcmds This extends test_pamcmds to handle other pam/su/passwd errors and responses (as seen on CentOS 5). Also switch to stronger password when changing the test user's password to avoid problems with password strength checks. 2013-10-20 Arthur de Jong * [0a95557] tests/Makefile.am, tests/in_testenv.sh, tests/test_nsscmds.sh, tests/test_pamcmds.expect, tests/test_pamcmds.sh, tests/testenv.sh: Make script to check test environment This changes the in_testenv.sh script into testenv.sh which has more checks and a few functions to configure the test environment. 2013-10-20 Arthur de Jong * [1899e9a] tests/test.ldif: Remove unnecessary attributes from test.ldif 2013-10-20 Arthur de Jong * [cebc2a1] tests/README: Update tests README This refreshes the documentation of the tests, especially the test environment. 2013-10-20 Arthur de Jong * [7cbb439] tests/config.ldif, tests/setup_slapd.sh: Provide a script for setting up slapd The setup_slapd.sh script can be used to set up and start a slapd instance in a single (temporary) directory. The slapd instance is configured and loaded with test data for use in the test environment. 2013-10-19 Arthur de Jong * [aeccbfe] tests/test_nsscmds.sh: Fix sortgroup function This fixes an issue with the sortgroup function which failed to handle a group line with only two colons correctly. Such group entries have been seen in the wild on FreeBSD. Also, comment lines in group files are now ignored (also seen on FreeBSD). 2013-10-14 Arthur de Jong * [0697347] common/dict.c: Use djb2 hash in dict module This slightly modifies the string hashing function to use the djb2 hash. This hash is supposed to be reasonably fast and have reasonably few collisions. 2013-10-07 Arthur de Jong * [61e96bf] nslcd/cfg.h: Increase NSS_LDAP_CONFIG_MAX_BASES to 31 This allows more search bases which may be useful in some environments. 2013-09-15 Arthur de Jong * [2f088ec] common/tio.c: Also support poll() returning EAGAIN 2013-09-13 Arthur de Jong * [173d768] configure.ac: Add more python module checks to configure 2013-09-13 Arthur de Jong * [b7ca95a] configure.ac: Make missing Python modules a waring This avoids having to have all modules installed in the build environment. A Python version is still required during build. 2013-09-13 Arthur de Jong * [f36bb81] pynslcd/cache.py, pynslcd/group.py: Remove unneeded imports 2013-09-13 Arthur de Jong * [8ae8b9a] Makefile.am, configure.ac, tests/Makefile.am: Cleanups and fixes related to automake upgrade This removes a few legacy workarounds and fixes for older versions of automake. This also removes adding specific DEBUG flags for tests since subdir objects are handled differently now. 2013-09-13 Arthur de Jong * [2bd2bc4] pam/pam.c: Initialise msg to avoid potential NULL pointer dereference The NULL pointer dereference in the PAM module should not occur due to the relationship with the rc value that is handled alongside it. This change mostly silences the compiler and protects from future changes. 2013-09-13 Arthur de Jong * [dccc9cf] configure.ac: Add configure test for {set,get,end}usershell() availability 2013-09-08 Arthur de Jong * [4fc4197] autogen.sh: Upgrade to automake 1.14 2013-09-08 Arthur de Jong * [bc6a18e] nslcd/nslcd.c: Use larger nslcd send buffers By using bigger write buffers in nslcd we reduce the number of writes in nslcd and consequently the number of reads in the NSS and PAM modules for bigger responses. This reduces the number of system calls that are made during a request and brings a small performance improvement that is mainly measurable in the NSS module. A measurement showed 30-80% reduction in the number of system calls in the NSS module and around 10% reduction in CPU usage (CPU time, only small reduction in wallclock time). Thanks John Sullivan for pointing this out. 2013-09-08 Arthur de Jong * [58d50bf] configure.ac, man/Makefile.am: Add configure check to see whether to install manual pages This also reworks the manual page generation check in the configure script and avoids build errors if no tool for generating manual pages is present when working on a Git checkout. 2013-09-04 Arthur de Jong * [ce95b41] ldapns.ldif: Reformat LDIF file to follow OpenLDAP format This fixes a wrapping problem. Thanks to Paul Boven for pointing this out. 2013-09-02 Arthur de Jong * [8b169f1] tests/test_common.c: Fix permissions of test configuration This sets the permissions on the nslcd-test.conf file while running the tests to ensure that the permission checks for the bindpwn and rootpwmodpw options do not fail the test. 2013-09-02 Arthur de Jong * [560e5de] .gitignore, tests/Makefile.am, tests/test_tio_timeout.c: Add a test for tio timeout calculations This test checks whether the proposed remaining time to sleep is reasonable. 2013-09-02 Arthur de Jong * [db5382e] .gitignore, tests/Makefile.am, tests/test_clock.c: Add a test for clock_gettime() supported clocks This probes the system for available clocks to see if they can be reliably used to get a monotonic-like timer (the test doesn't verify the monotonic part, just usability). 2013-09-01 Arthur de Jong * [7895739] AUTHORS, common/tio.c, configure.ac: Use clock_gettime() instead of gettimeofday() This avoids problems with system clock changes (though there are some safeguards in place to avoid waiting too long on clock changes). Thanks to John Sullivan for pointing this out. We can't easily use CLOCK_MONOTONIC_RAW or CLOCK_MONOTONIC_COARSE even on platforms that define the clock because we can get runtime errors. CLOCK_MONOTONIC seems to work on all tested platforms that provide it. 2013-09-02 Arthur de Jong * [a683aa8] tests/test_manpages.sh: Small protability fix 2013-09-01 Arthur de Jong * [c8800eb] tests/test_manpages.sh: Improve robustness of test_manpages 2013-08-31 Arthur de Jong * [644df52] common/tio.c, common/tio.h: Use normal timeout handling in tio_skipall() Use the same mechanism in tio_skipall() as in tio_read(), except use a different timeout value. 2013-08-31 Arthur de Jong * [0787d45] common/tio.c: Refactor tio_wait() This changes the function to accept a file descriptor, an event and timeout parameter directly instead of a confusing flag. 2013-08-31 Arthur de Jong * [07a8170] common/tio.c: Fix buffer overflow on interupted read The tio_read() function will read past its buffer and return garbadge to the calling function if the call to read() was interrupted by a signal. The likelyhood of read() being interupted is low because previously a call to poll() has determined that data is available to be read. Thanks to John Sullivan for pointing this out. See: https://bugzilla.redhat.com/show_bug.cgi?id=1003011 2013-08-30 Arthur de Jong * [4897033] nslcd/common.h: In nslcd, log EPIPE only on debug level See: https://bugzilla.redhat.com/show_bug.cgi?id=1003011 2013-08-30 Arthur de Jong * [c9e2f97] common/tio.c, common/tio.h, nss/common.h: Use a timeout when skipping remaining result data When the NSS modules closes the connection and skips any remaining result data, wait for up to 500 msec to read any available data. See: https://bugzilla.redhat.com/show_bug.cgi?id=1003011 2013-08-27 Bersl * [7140d21] AUTHORS, nslcd/group.c, nslcd/passwd.c, nslcd/shadow.c: Increase password buffer size With the smaller buffers some password hashes would be truncated. 2013-08-28 Arthur de Jong * [8571bc1] NEWS, README, common/dict.c, compat/attrs.h, compat/nss_compat.h, man/nslcd.conf.5.xml, nslcd/myldap.c: Fix for common spelling mistake 2013-08-25 Arthur de Jong * [890d227] AUTHORS, ChangeLog, NEWS, configure.ac, man/chsh.ldap.1.xml, man/getent.ldap.1.xml, man/nslcd.8.xml, man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml: Get files ready for 0.9.1 release 2013-08-25 Arthur de Jong * [f9b4b43] Makefile.am: Have a nicer way of generating the ChangeLog This adds the commit id, improves the line wrapping and also gets rid of the external dependency. 2013-08-25 Arthur de Jong * [321d8a3] pynslcd/pynslcd.py: Handle failure of getpeercred more gracefully 2013-08-25 Arthur de Jong * [f18729e] tests/Makefile.am: Only run pynslcd tests if it is enabled 2013-08-25 Arthur de Jong * [f54f2ad] configure.ac, m4/ax_python_module.m4: Add configure test for Python modules This uses the AX_PYTHON_MODULE test to check for availability of used Python modules. All third-party modules and modules that are not a builtin for Python 2.5 are tested. This also splits the tests for the utils and pynslcd. 2013-08-25 Arthur de Jong * [6f61482] pynslcd/attmap.py, pynslcd/group.py, pynslcd/pynslcd.py, pynslcd/tio.py, utils/getent.py, utils/nslcd.py: Rearrange Python imports 2013-08-23 Arthur de Jong * [f6c20ee] nslcd/nslcd.c: Ignore SIGUSR2 for future compatibility 2013-08-23 Arthur de Jong * [27abbbb] man/Makefile.am, tests/Makefile.am, tests/test_manpages.sh: Add a test for the manual pages This replaces e0491d2 to run xmlto from the man directory. This handles the case more gracefully if xmlto is not available. 2013-08-18 Arthur de Jong * [494833d] config.guess, config.sub: Update files from latest automake 2013-08-21 Arthur de Jong * [7b474d0] pynslcd/group.py, pynslcd/passwd.py, pynslcd/shadow.py: Have pynslcd handle mapped userPassword This fixes an error that could occur when the userPassword was retrieved from LDAP and insufficient privileges were available for reading the attribute. 2013-08-21 Arthur de Jong * [b0358f7] : Retry LDAP servers quickly after receiving SIGUSR1 When nslcd receives the SIGUSR1 signal it will retry connecting to unavailable LDAP servers sooner. This signal can for example be sent when (re)stablishing a network connection. 2013-08-20 Arthur de Jong * [ebbe8a6] man/nslcd.8.xml, nslcd/nslcd.c: Handle SIGUSR1 by resetting the retry timer This implements and documents handling of the SIGUSR1 signal in nslcd to reset the reconnect_sleeptime and reconnect_retrytime timers to re-check availability of the LDAP server. 2013-08-20 Arthur de Jong * [8bdb289] nslcd/myldap.c, nslcd/myldap.h: Implement function for resetting reconnect times This implemens a myldap_immediate_reconnect() function that resets the reconnect timer to retry failing connections to the LDAP server upon the next search. This can be used to cut the reconnect_sleeptime and reconnect_retrytime sleeping periodss short if we have some indication that the LDAP server is available again. 2013-08-20 Arthur de Jong * [d58f163] nslcd/common.h, nslcd/nslcd.c, nslcd/shadow.c: Return partial shadow information to non-root users This also returns everything except the password hash from the shadow database to non-root users (nothing was returned before). This allows non-root users to do PAM authentication in some configurations. On some systems there is a setgid executable that is allowed to read /etc/shadow for authentication by e.g. screensavers. Returning no shadow information will cause pam_unix to deny authorisation in common configurations. See: http://bugs.debian.org/706913 2013-08-20 Arthur de Jong * [34365b4] nslcd/cfg.c: Add cast to int when logging configuration summary 2013-08-18 Arthur de Jong * [44a38eb] pam/pam.c: Small fix in NEW_AUTHTOK_REQD handling There is a potential memory leak if the old password is saved multiple times. Furthermore, PAM_NEW_AUTHTOK_REQD is only allowed as a result of the authorisation phase, not the authentication phase so there is no use in checking. 2013-08-18 Arthur de Jong * [d8637bb] pynslcd/pam.py: Fix rootpwmodpw handling in pynslcd 2013-08-18 Arthur de Jong * [13d31b7] pynslcd/common.py: Fix not logging passwords in pynslcd (7108b1f) 2013-08-18 Arthur de Jong * [7e90541] tests/nslcd-test.conf, tests/test.ldif: Update files from test environment 2013-07-29 Arthur de Jong * [724a75f] utils/getent.py: Improve error and help output of getent command 2013-08-18 Arthur de Jong * [882f7be] tests/Makefile.am, tests/pylint.rc, tests/test_pylint.sh: Run pylint as a test This runs a somewhat limited pylint run against the source files. It should at least catch some issues. 2013-08-18 Arthur de Jong * [79209ee] pynslcd/common.py, pynslcd/group.py, pynslcd/pam.py, pynslcd/passwd.py: Rename isvalidname() to is_valid_name() in pynslcd 2013-08-10 Arthur de Jong * [e0491d2] man/Makefile.am: Run xmlto on manual pages as part of the tests 2013-08-18 Arthur de Jong * [7108b1f] pynslcd/common.py: Do not log passwords in pynslcd 2013-08-18 Arthur de Jong * [cda6dcd] : Implement an option to run in the foreground This introduces a -n, --nofork option that skips the deamonising step on start-up. This may be required for running nslcd from upstart. See: https://bugs.launchpad.net/bugs/806761 2013-08-18 Arthur de Jong * [1825be6] man/nslcd.8.xml, man/pynslcd.8.xml: Document -n, --nofork option 2013-08-18 Arthur de Jong * [82bcfd7] pynslcd/pynslcd.py: -n switch for pynslcd 2013-08-17 Caleb Callaway * [14b93b9] nslcd/nslcd.c: -n switch for nslcd (prevents process from forking) 2013-08-17 Arthur de Jong * [8a3f0f5] : Improvements to pynslcd caching functionality This fixes most of the existing caching functionality. Cache expiry, negative hits and entries going away remain to be implemented. 2013-08-16 Arthur de Jong * [a066bcb] configure.ac, tests/Makefile.am, tests/test_pynslcd_cache.py: Implement tests for caching functionality 2013-08-12 Arthur de Jong * [d66162a] pynslcd/alias.py, pynslcd/cache.py, pynslcd/group.py, pynslcd/host.py, pynslcd/netgroup.py, pynslcd/network.py, pynslcd/protocol.py, pynslcd/rpc.py, pynslcd/service.py: Use retrieve_by, group_by and group_columns in the cache This removes custom retrieve() functions and Query classes from the database modules and uses retrieve_sql retrieve_by, group_by and group_columns to make a custom retrieval query. In the cache module this completely replaces how the query grouping is done. The Query class is now only used inside the cache and the CnAliasedQuery, RowGrouper and related classed have been removed. 2013-04-23 Arthur de Jong * [bfe22cc] pynslcd/cache.py: Make Cache a context manager 2013-08-12 Arthur de Jong * [1b89df5] pynslcd/alias.py, pynslcd/cache.py, pynslcd/group.py, pynslcd/host.py, pynslcd/netgroup.py, pynslcd/network.py, pynslcd/protocol.py, pynslcd/rpc.py, pynslcd/service.py: Give cache tables friendlier names This also defined the tables for netgroup storage. 2013-08-11 Arthur de Jong * [7671276] pynslcd/alias.py, pynslcd/cache.py, pynslcd/group.py, pynslcd/host.py, pynslcd/network.py, pynslcd/protocol.py, pynslcd/rpc.py, pynslcd/service.py: Explicitly define tables used for cache This introduces the tables property in the Cache object that is used to define the used tables. This also fixes the storing of mulit-valued attributes in the cache. 2013-04-16 Arthur de Jong * [b0b5723] pynslcd/alias.py, pynslcd/cache.py, pynslcd/ether.py, pynslcd/group.py, pynslcd/host.py, pynslcd/netgroup.py, pynslcd/network.py, pynslcd/passwd.py, pynslcd/protocol.py, pynslcd/rpc.py, pynslcd/service.py, pynslcd/shadow.py: Move cache table creation to modules This also moves the creation of a SQLite database connection to a _get_connection() function to ensure the cache is only created when the caches are instantiated. 2013-07-30 Arthur de Jong * [84d22e6] pynslcd/passwd.py: Fix missing part of d659e83 2013-07-29 Arthur de Jong * [ec53918] pynslcd/group.py, pynslcd/passwd.py: Use cleaner import and get rid of uid2dn function in pynslcd 2013-07-29 Arthur de Jong * [d659e83] pynslcd/cfg.py, pynslcd/passwd.py: Handle the nss_min_uid option in pynslcd 2013-07-29 Arthur de Jong * [7092d40] pynslcd/cfg.py, pynslcd/group.py: Handle the nss_initgroups_ignoreusers option in pynslcd 2013-07-27 Arthur de Jong * [a0e12e6] pynslcd/cfg.py, pynslcd/pam.py: Fix handling of pam_password_prohibit_message in pynslcd 2013-07-29 Arthur de Jong * [fa97bcc] pynslcd/Makefile.am, pynslcd/config.py, pynslcd/pynslcd.py: Implement config request handling in pynslcd This allows the PAM module to request the pam_password_prohibit_message option for denying password change. 2013-07-27 Arthur de Jong * [a3acbec] pynslcd/pam.py: Implement PAM session handling in pynslcd Just like in nslcd this doesn't actually do anything with the session ids except generating them. 2013-07-26 Arthur de Jong * [4031750] pynslcd/search.py: Properly handle start_tls in pynslcd 2013-07-27 Arthur de Jong * [5d3f681] configure.ac: Have configure show --disable-utils by default Since the utils are automatically built if Python is available --disable is more appropriate a default then --enable. 2013-07-27 Arthur de Jong * [5adc2ca] tests/test_pycompile.sh: Have test_pycompile not write any pyc files We need to avoid writing pyc files because during make distcheck, the source directory is read-only. This also ensures that the test is skipped if the Python interpreter is not found. 2013-07-27 Arthur de Jong * [e17730f] README: Dcoumentation updates This fixes a typo, clarifies the section on the LDAP schema values that are supported and updates the differences between nss-pam-ldapd and nss_ldap and pam_ldap. 2013-07-26 Arthur de Jong * [30ffdb2] tests/Makefile.am, tests/test_pycompile.sh: Test Python syntax on make check 2013-07-26 Arthur de Jong * [10eec70] : Merge fixes for reconnect_invalidate option The branch accidentally got merged before it was fully tested. 2013-07-26 Arthur de Jong * [dce98a5] nslcd/cfg.c, nslcd/invalidator.c, pynslcd/invalidator.py, pynslcd/pynslcd.py: Fix errors in invalidator changes This fixes a few typos and an omission in the configuration file parsing code. 2013-07-26 Arthur de Jong * [7c85202] : Make cache invalidation more generic This changes the nscd_invalidate option into a more generic reconnect_invalidate and also allows clearing the nfsidmap cache. 2013-07-26 Arthur de Jong * [e1b0399] man/nslcd.conf.5.xml, nslcd/Makefile.am, nslcd/cfg.c, nslcd/cfg.h, nslcd/common.h, nslcd/invalidator.c, nslcd/myldap.c, nslcd/nscd.c, nslcd/nslcd.c, pynslcd/Makefile.am, pynslcd/cfg.py, pynslcd/invalidator.py, pynslcd/nscd.py, pynslcd/pynslcd.py, pynslcd/search.py, tests/Makefile.am: Rename nscd_invalidate option to reconnect_invalidate This also renames the internal nscd module to invalidator for both nslcd and pynslcd. The new invalidator module is now no longer nscd-specific. 2013-07-26 Arthur de Jong * [6054499] man/nslcd.conf.5.xml, nslcd/attmap.c, nslcd/cfg.c, nslcd/cfg.h, nslcd/nscd.c, pynslcd/cfg.py, pynslcd/nscd.py: Allow invalidating the nfsidmap cache This introduces an nfsidmap value for nscd_invalidate which will cause the nfsidmap -c command to be run. 2013-07-17 Arthur de Jong * [d2e2e40] pynslcd/nscd.py: Fix nscd cache flushing bug in pynslcd The pynslcd implementation would always clear the passwd nscd cache regardless of the provided map. 2013-07-11 Arthur de Jong * [5b78508] .gitignore, INSTALL, ar-lib, autogen.sh, compile, config.guess, config.sub, configure.ac, depcomp, install-sh, missing, mkinstalldirs, py-compile, test-driver: Upgrade to automake 1.13 2013-05-20 Arthur de Jong * [ee7b2e9] tests/lookup_shadow.c: Add an explicit cast to int in lookup_shadow 2013-04-14 Arthur de Jong * [b6f5047] nslcd/nscd.c: Make tests for system call failures a little more robustly 2013-05-10 Arthur de Jong * [97d35f3] pynslcd/pynslcd.py: Ignore errors in opening NSS module 2013-04-12 Arthur de Jong * [b15dc66] pynslcd/cache.py, pynslcd/cfg.py, pynslcd/group.py, pynslcd/nscd.py, pynslcd/pynslcd.py, pynslcd/search.py, pynslcd/shadow.py, pynslcd/tio.py, pynslcd/usermod.py, utils/chsh.py, utils/getent.py, utils/nslcd.py, utils/users.py: Python style changes This tries to conform more closely to PEP8. Imports have been checked and, if used only once, moved closer to the use to avoid potential import loops. This also includes a few other minor changes, like using __main__ for utility scripts and variable renames to avoid name clashes. 2013-04-12 Arthur de Jong * [d3c6a66] pynslcd/pam.py: Raise an error with a missing old password on password modification 2013-04-12 Arthur de Jong * [f45b24d] utils/nslcd.py: Set FD_CLOEXEC on the client socket in utilities 2013-04-12 Arthur de Jong * [bc35197] pynslcd/pam.py: Fix getting caller's uid on password change (pynslcd) 2013-04-06 Arthur de Jong * [84402e5] utils/Makefile.am: Install utilities in share/nslcd-utils 2013-04-06 Arthur de Jong * [b5b4239] man/Makefile.am: Fix the way manual pages are installed The :u flag apparently isn't portable across versions of make and automake rules complain if a manual page is added twice to a target. 2013-04-05 Arthur de Jong * [187c626] ChangeLog, NEWS, TODO, configure.ac, man/getent.ldap.1.xml, man/nslcd.8.xml, man/nslcd.conf.5.xml, man/pam_ldap.8.xml, man/pynslcd.8.xml: Get files ready for 0.9.0 release 2013-04-05 Arthur de Jong * [2616f43] pynslcd/Makefile.am: Include the usermod.py file in the distribution 2013-04-05 Arthur de Jong * [c519729] man/chsh.ldap.1.xml: Fix docbook validation 2013-04-03 Arthur de Jong * [1c31305] configure.ac: Ignore missing Python in initial test 2013-04-03 Arthur de Jong * [4b01125] nslcd/nslcd.c: Fix comment 2013-03-30 Arthur de Jong * [d7990de] pynslcd/pam.py: Update the shadowLastChange on password change in pynslcd 2013-03-30 Arthur de Jong * [ea6bff3] pynslcd/pam.py: Implement password modification in pynslcd 2013-03-30 Arthur de Jong * [62a409c] : Implement used modification functionality This adds user information modification functionality to nslcd and pynslcd and implements a chsh.ldap utility that can be used to change the login shell of a user (similar to the normal chsh command). The user modification functionality should allow for generic modifications of user information. More utility commands to perform modifications remain to be implemented. 2013-03-30 Arthur de Jong * [012b185] .gitignore, man/Makefile.am, man/chsh.ldap.1.xml, utils/Makefile.am, utils/chsh.py, utils/cmdline.py, utils/nslcd.py, utils/shells.py, utils/users.py: Initial version of a chsh.ldap utility 2013-03-30 Arthur de Jong * [d0482fb] pynslcd/pynslcd.py, pynslcd/usermod.py: Handle user modification requests in pynslcd Similar to the nslcd implementation, this currently only covers modifying the homeDirectory and loginShell attributes. 2013-03-30 Arthur de Jong * [f1895f9] nslcd/Makefile.am, nslcd/common.h, nslcd/nslcd.c, nslcd/usermod.c: Handle user modification requests in nslcd This is currently limited to supporting modification of the homeDirectory and loginShell attributes. Modifications as root currently use the rootpwmoddn and rootpwmodpw options. 2013-03-30 Arthur de Jong * [8fb5eb1] nslcd.h: Define a NSLCD_ACTION_USERMOD request The modification can either be requested by root or by the user itself. Modifications by the user should be done by connecting to the LDAP server with the user-supplied credentials. It is expected that access controls in the LDAP server prevent unwanted modifications. The nslcd process is expected to check whether supplied values are sensible. 2013-03-30 Arthur de Jong * [aae36cf] pynslcd/pam.py: Rename authentication function and return connection 2013-03-30 Arthur de Jong * [355c2af] configure.ac: Fix test for absence of Python 2013-03-30 Arthur de Jong * [f478830] pynslcd/cfg.py: Mark unsupported pynslcd configuration options 2013-03-30 Arthur de Jong * [2b097f7] configure.ac: Preset default configure values consistently 2013-03-30 Arthur de Jong * [6ceb1df] configure.ac: Give an error when the Python interpreter is missing 2013-03-29 Arthur de Jong * [a47b20f] configure.ac: Build command-line utilities by default if Python is available 2013-03-29 Arthur de Jong * [adde1d4] : Implement clearing of nscd cache in pynslcd 2013-03-29 Arthur de Jong * [a75cfb9] pynslcd/nscd.py, pynslcd/search.py: Detect and handle connection failure and recovery Logs a connection recovery message and run a nscd cache invalidation if configured. 2013-03-29 Arthur de Jong * [585d388] pynslcd/pynslcd.py: Start the nscd invalidator process if needed 2013-03-09 Arthur de Jong * [d4c5c96] pynslcd/cfg.py: Parse the nscd_invalidate option 2013-03-29 Arthur de Jong * [11b1739] pynslcd/Makefile.am, pynslcd/nscd.py: Functionality for clearing the nscd cache in pynslcd 2013-03-29 Arthur de Jong * [65a65ad] pynslcd/pynslcd.py: Switch to using os.environ instead of os.putenv() The os.putenv() call doesn't update os.environ and Python documentation recommends using os.environ. 2013-03-29 Arthur de Jong * [46cf240] pynslcd/pam.py: Rename validate_request to validate 2013-03-29 Arthur de Jong * [7d1e492] pynslcd/pam.py: Also perform authentication search using LDAPSearch class 2013-03-28 Arthur de Jong * [302c2fa] tests/test_nsscmds.sh: Make the NSS tests dependant on the configuration of nsswitch.conf 2013-03-28 Arthur de Jong * [8790b40] tests/test_myldap.c: Do not rely on printf() being able to print NULL strings 2013-03-24 Arthur de Jong * [932c641] man/nslcd.conf.5.xml: Fix manual page generation 2013-03-24 Arthur de Jong * [07ca836] nslcd/cfg.h: Fix comment for nss_nested_groups config option 2013-03-24 Arthur de Jong * [3daa68d] : Implement support for nested groups 2013-03-24 Arthur de Jong * [642064c] tests/test.ldif, tests/test_nsscmds.sh: Add tests for nested group functionality This also includes some changes to the test directory contents that were for other tests and functionality. 2013-03-24 Arthur de Jong * [b1b7648] README, man/nslcd.conf.5.xml, nslcd/cfg.c, nslcd/cfg.h, nslcd/group.c, pynslcd/cfg.py, pynslcd/group.py: Implement a nss_nested_groups configuration option This option can be used in both nslcd and pynslcd to enable recursive group member lookups. By default the functionality is disabled. This also updates the documentation. 2013-03-24 Arthur de Jong * [d6a6e8b] pynslcd/common.py, pynslcd/group.py: Implement support for nested groups in pynslcd 2013-03-24 Arthur de Jong * [41ba574] nslcd/group.c: Implement support for nested groups in nslcd This differs from the code provided by Steve Hill in that it avoids (recursively) performing parallel LDAP searches by queueing groups and check for extra members per queued group (in the forward lookup) or check for extra parents (for the user to groups lookup). For the reverse lookup handling the NSLCD_HANDLE macro could no longer be used because extra care should be taken to free the sets before returning and two search phases are needed. 2013-03-20 Steve Hill * [08f5301] AUTHORS, nslcd/group.c: Implement a mkfilter_group_bymemberdn() function This was part of a bigger change to implement nested groups, however most of the other parts were re-implemented differently. For the original changes, see: http://lists.arthurdejong.org/nss-pam-ldapd-users/2013/msg00034.html 2013-03-24 Arthur de Jong * [edd119c] tests/test.ldif, tests/test.ldif.gz: Unpack the LDIF file to make diffs clearer 2013-03-24 Arthur de Jong * [b0785de] nslcd/cfg.h, nslcd/myldap.c: spelling fixes 2013-03-22 Arthur de Jong * [402d3f3] nslcd/service.c: fix service request logging 2013-03-19 Jakub Hrozek * [f21efd6] nss/common.h: NSS: Return TRYAGAIN on zero-length buffer One of our customers was running into a situation where glibc provided a zero buffer, which is a condition that is retriable and the nss module should return NSS_STATUS_TRYAGAIN not NSS_STATUS_UNAVAIL. 2013-03-11 Arthur de Jong * [7926326] nss/shadow.c: fix the text representation of shadow information for nscd on Solaris 2013-03-11 Arthur de Jong * [83c5788] .gitignore, tests/Makefile.am, tests/lookup_shadow.c: implement a lookup_shadow test command for use on systems that don't allow querying shadow via getent 2013-03-10 Arthur de Jong * [fa27d94] nslcd/cfg.c, nslcd/nscd.c: fix a few compiler warnings 2013-03-10 Arthur de Jong * [0b5b4d1] configure.ac: guess the value for --with-pam-seclib-dir if it is not specified 2013-03-10 Arthur de Jong * [24c565c] tests/test_pamcmds.sh: small portability fix in test_pamcmds.sh 2013-03-10 Arthur de Jong * [6a92621] nslcd/service.c: only log protocol name if it is present 2013-03-10 Arthur de Jong * [f7c6771] compat/ldap_parse_passwordpolicy_control.c, configure.ac: also support systems without bet_get_enum() 2013-03-09 Arthur de Jong * [ba5f39f] pynslcd/pynslcd.py: log hex value of action id to make debugging easier 2013-03-09 Arthur de Jong * [11ca816] pynslcd/pam.py: ensure consistent naming of DN variables 2013-03-09 Arthur de Jong * [116d215] pynslcd/attmap.py, pynslcd/group.py, pynslcd/netgroup.py, pynslcd/pam.py, pynslcd/search.py, pynslcd/service.py, pynslcd/shadow.py: clean up imports and use ldap.filter.escape_filter_chars() directly 2013-03-09 Arthur de Jong * [ac30060] pynslcd/pam.py, pynslcd/pynslcd.py, pynslcd/search.py: move get_connection function to search module as Connection class as subclass of ReconnectLDAPObject to automatically reconnect to the LDAP server 2013-03-09 Arthur de Jong * [4e60340] pynslcd/Makefile.am, pynslcd/alias.py, pynslcd/common.py, pynslcd/ether.py, pynslcd/group.py, pynslcd/host.py, pynslcd/netgroup.py, pynslcd/network.py, pynslcd/pam.py, pynslcd/passwd.py, pynslcd/protocol.py, pynslcd/rpc.py, pynslcd/search.py, pynslcd/service.py, pynslcd/shadow.py: move Search class to search module 2013-03-09 Arthur de Jong * [975ee2c] pynslcd/cfg.py: fix default logging configuration setting in pynslcd 2013-03-09 Arthur de Jong * [8a67c9f] common/tio.c: fix the description of the tio_time_remaining() function 2013-03-08 Arthur de Jong * [d19f1df] man/nslcd.conf.5.xml: document the nscd_invalidate option 2013-03-09 Arthur de Jong * [bf64710] nslcd/myldap.c, nslcd/nscd.c, nslcd/nslcd.c: start the nscd invalidator and invalidate the nscd cache after reconnecting to the LDAP server after failure 2013-03-08 Arthur de Jong * [d413a64] nslcd/cfg.c, nslcd/cfg.h: implement parsing of the nscd_invalidate option 2013-03-09 Arthur de Jong * [008f8a9] configure.ac, nslcd/Makefile.am, nslcd/common.h, nslcd/nscd.c, tests/Makefile.am: implement functionality to send a cache invalidation signal to nscd 2013-03-09 Arthur de Jong * [9a6f5b2] nslcd/common.c, nslcd/common.h, nslcd/nslcd.c: move signame() function to common.c to make it available to all modules 2013-03-03 Arthur de Jong * [646dfa8] man/nslcd.conf.5.xml: document the trimming expressions in the nslcd.conf(5) manual page 2013-03-03 Arthur de Jong * [54a3dba] pynslcd/expr.py: support trimming expressions with full shell glob matching in pynslcd 2013-03-03 Arthur de Jong * [8655355] tests/test_expr.c: add tests for trimming expressions 2013-01-04 Arthur de Jong * [6c05b76] common/expr.c: update the trimming expressions code to follow the new coding style 2012-12-03 Thorsten Glaser * [3731964] AUTHORS, common/expr.c: allow trimming expressions with ${foo#bar} syntax in nslcd 2013-03-01 Arthur de Jong * [f56f926] nslcd/myldap.c, nslcd/myldap.h, nslcd/pam.c: return the password policy bind information via PAM 2013-01-04 Arthur de Jong * [5fce062] compat/Makefile.am, compat/ldap_compat.h, compat/ldap_passwordpolicy_err2txt.c, configure.ac: provide a basic replacement implementation of ldap_passwordpolicy_err2txt() for systems that don't have it 2013-01-04 Arthur de Jong * [37151df] compat/Makefile.am, compat/ldap_compat.h, compat/ldap_parse_passwordpolicy_control.c, configure.ac: provide a replacement implementation of ldap_parse_passwordpolicy_control() for systems that don't have it 2013-03-01 Arthur de Jong * [1c2ab50] compat/ldap_compat.h, configure.ac, nslcd/myldap.c: request and parse password policy controls when doing user authentication in nslcd 2013-01-18 Arthur de Jong * [f2c49e6] nslcd/myldap.c: pass the session along to the do_bind() function 2013-03-03 Arthur de Jong * [117327e] configure.ac: add some missing checks to the configure script 2013-03-01 Arthur de Jong * [b4afe7c] nslcd/pam.c: log a more meaningful error in nslcd when trying to authenticate as administrator when rootpwmoddn is not set 2013-03-01 Arthur de Jong * [31f9098] nslcd/common.h, nslcd/pam.c, nslcd/shadow.c: move update_lastchange() function from shadow to pam code 2013-03-01 Arthur de Jong * [1a1bb07] utils/getent.py: move parsing to command line arguments to main body 2013-02-28 Arthur de Jong * [38fb524] TODO: update TODO (setnetgrent() returns an error since r1874) 2013-02-27 Arthur de Jong * [798820e] man/nslcd.conf.5.xml: include information about when some of the options were added 2013-02-27 Arthur de Jong * [11283a5] nss/common.c: add missing include statement for NULL definition 2013-02-23 Arthur de Jong * [12076c7] nslcd/nslcd.c, pynslcd/pynslcd.py: log version information from the NSS module 2013-02-23 Arthur de Jong * [3155cdf] nss/common.c, nss/exports.freebsd, nss/exports.glibc, nss/exports.solaris: define and export an _nss_ldap_version symbol 2013-02-23 Arthur de Jong * [61a3fce] pynslcd/ether.py: also search for alternative macAddress representation in pynslcd 2013-02-12 Arthur de Jong * [a9aea20] nslcd/nslcd.c: extra sanity check to ensure not too many file descriptors are open 2013-02-23 Arthur de Jong * [bfdf7cd] nslcd.h: clarify NSLCD_ACTION_SERVICE_* request parameter description 2013-02-23 Arthur de Jong * [1c6d856] man/nslcd.conf.5.xml, nslcd/cfg.c, tests/test_common.c: allow names with one character in default validnames option and allow parentheses (taken from Fedora packages) 2013-02-23 Arthur de Jong * [d54243a] man/nslcd.conf.5.xml: document the log option 2013-02-23 Arthur de Jong * [c75599d] pynslcd/cfg.py, pynslcd/pynslcd.py: handle the log configuration option in pynslcd 2013-02-23 Arthur de Jong * [efca5ca] nslcd/cfg.c, nslcd/log.c, nslcd/log.h, nslcd/nslcd.c: handle the log configuration option in nslcd 2013-02-23 Arthur de Jong * [22be9b0] nslcd/log.c, nslcd/log.h: implement functions for configuring alternative logging 2013-02-12 Arthur de Jong * [c12768a] man/getent.ldap.1.xml: fix docbook tag for file name 2013-01-05 Arthur de Jong * [60f1d85] Makefile.am: generate ChangeLog with git2cl 2013-01-05 Arthur de Jong * [ba93d8f] ChangeLog, ChangeLog-2012: archive 2012 changelog messages into a year file including the change from Subversion 2013-01-28 Arthur de Jong * [91440f7] .gitignore, man/Makefile.am, man/getent.ldap.1.xml: add getent.ldap(1) manual page 2013-01-28 Arthur de Jong * [ded7bd2] utils/Makefile.am, utils/cmdline.py, utils/getent.py, utils/nslcd.py: implement a getent command to query nslcd while bypassing NSS stack 2013-01-26 Arthur de Jong * [3117668] .gitignore, Makefile.am, configure.ac, utils/Makefile.am: add an --enable-utils option to configure to build command-line utilities 2013-01-09 Arthur de Jong * [7c01898] pynslcd/cache.py, pynslcd/common.py: disable pynslcd cache for now 2013-01-27 Arthur de Jong * [b9395c8] nslcd.h, nslcd/common.h, nslcd/netgroup.c, nslcd/nslcd.c, pynslcd/netgroup.py: implement a netgroup_all request 2013-01-18 Arthur de Jong * [0ae8e56] nslcd/nslcd.c: make checking dlsym() result a little safer git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1925 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-18 Arthur de Jong * [fb5d587] compat/ldap_passwd_s.c: fix copyright year git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1924 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-18 Arthur de Jong * [16db596] common/tio.c: restructure timeout calculation in tio to reduce the number of times gettimeofday() is called git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1923 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-18 Arthur de Jong * [b01cd22] nslcd/log.c: use pthreads thread-local storage as fallback mechanism if compiler doesn't provide a keyword for TLS git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1922 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-18 Arthur de Jong * [d86497b] configure.ac, m4/ax_tls.m4, nslcd/log.c, nss/aliases.c, nss/ethers.c, nss/group.c, nss/hosts.c, nss/netgroup.c, nss/networks.c, nss/passwd.c, nss/protocols.c, nss/rpc.c, nss/services.c, nss/shadow.c: use the AX_TLS macro to find correct thread-local storage class compiler directive git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1921 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-18 Arthur de Jong * [fa62cd3] nslcd/cfg.c, nslcd/cfg.h: dump full nslcd configuration at debug level on start-up git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1920 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-16 Arthur de Jong * [2765100] man/Makefile.am: fix the way manual pages are generated and distributed git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1918 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-14 Arthur de Jong * [2caeef4] man/nslcd.conf.5.xml, nslcd/cfg.c, pynslcd/cfg.py, tests/test_cfg.c: support children search scope for systems that have it git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1917 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-14 Arthur de Jong * [4197ec3] pynslcd/cfg.py: fix parsing of scope option in pynslcd git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1916 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-14 Arthur de Jong * [5e0bb05] tests/test_tio.c: support systems without ETIME git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1915 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-14 Arthur de Jong * [b5b6c48] configure.ac, tests/lookup_netgroup.c: check whether setnetgrent() returns int or void (for FreeBSD) git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1914 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-12 Arthur de Jong * [0a5ac8b] nslcd/cfg.c, tests/test_cfg.c: reorganise configuration file parsing code git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1913 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-12 Arthur de Jong * [82b31fe] nslcd/myldap.c: have myldap_get_ranged_values() return a list of values instead of a set git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1912 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-12 Arthur de Jong * [388821a] nslcd/cfg.c, nslcd/group.c, nslcd/passwd.c, nslcd/shadow.c: check result of set_tolist() to ensure that memory allocation problems are logged git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1911 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-12 Arthur de Jong * [cdae946] nslcd/myldap.c: fix memory leak in myldap_get_values_len() when using ranged attributes (very unlikely to occur) git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1910 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-12 Arthur de Jong * [9b11d41] nslcd/myldap.c: fix a problem in memory handling in myldap_get_values_len() if malloc() would fail git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1909 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-12 Arthur de Jong * [2a73fa1] configure.ac: drop -Wcase-qual when using --enable-warnings because it was causing too much noise git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1908 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-10 Arthur de Jong * [4689d5f] nslcd/myldap.c: fix typo in comment git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1906 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-06 Arthur de Jong * [eb86f87] pynslcd/pam.py: request and parse password policy controls when doing user authentication in pynslcd git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1905 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-06 Arthur de Jong * [28aeaa4] pam/pam.c: do not recheck the user password in first password phase if it was stored in the authentication phase git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1904 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-06 Arthur de Jong * [ba18be7] nslcd/pam.c: perform search for pam_authz_search on all search bases git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1903 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [65e184d] pynslcd/pam.py: some simplifications in the current pynslcd PAM request handling git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1902 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [8d054c8] nslcd/myldap.c, tests/test_cfg.c: update FIXMEs git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1901 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [086a1a5] nslcd/ether.c: change ethernet address formatting from FIXME to note git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1900 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [c89c41b] pam/pam.c: save the old password if either the authentication or the authorisation response is NEW_AUTHTOK_REQD git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1899 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [33518d5] nslcd/myldap.c: inline most is_valid_...() functions git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1898 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [5242233] compat/ldap_initialize.c: remove not needed define git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1897 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-05 Arthur de Jong * [7a2b63f] common/nslcd-prot.h: log hex values when debugging the protocol git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1896 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-01 Arthur de Jong * [82010e2] nslcd/myldap.c, nslcd/myldap.h, nslcd/pam.c: log and return a diagnostic message instead of just the LDAP error on password change failure git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1895 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-01 Arthur de Jong * [2f6f6a2] nslcd/pam.c: retry updating the lastChange attribute with the normal nslcd LDAP connection if the update with the user's connection failed git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1894 ef36b2f9-881f-0410-afb5-c4e39611909c 2013-01-01 Arthur de Jong * [864c522] pynslcd/pam.py: update pynslcd PAM protocol handling to be in line with r1865 git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1893 ef36b2f9-881f-0410-afb5-c4e39611909c