# $Id$ 0.3 - 0.4 * No special configure/make arguments are necessary for Solaris. You may, however, need to manually link the library. If you encounter an error with an undefined symbol, read the FAQ. * Fixed a couple of bus error conditions under Solaris/sparc. * Fixed memory leak under Solaris. * Fixed core dump with Solaris csh and ~username expansion. This fix probably fixed other core dumps as well. * Fixed compile error under Solaris 2.6 (no socklen_t) * Upgraded to autoconf 2.53 * Rewrote connection handlers. CONFIG FILE CHANGES ARE REQUIRED. See the file UPGRADING. * Read [libnss_mysql] group in my.cnf * Do some config validation before doing anything. Helps prevent mysterious core dumping. 2002-08-28 Ben Goodwin * *: CVS tag 0.3; Public release * nss_main.c, lookup.c, mysql.c, nss_config.c, nss_mysql.h, nss_support.c: turned 'conf' into a global variable instead of passing it around everywhere * configure.in: Removed "-z nodelete" hack - didn't work 2002-08-27 Ben Goodwin * configure.in: Added "-z nodelete" LD_OPTIONS hack to get around strange dlopen-related solaris memory leak bug * Automake.am: added -module arg to libtool 2002-08-23 Ben Goodwin * lookup.c, lookup.h, memory.c, nss_config.c, nss_main.c, nss_mysql.h, nss_support.h: Renamed memory functions to avoid clashes. * lookup.c: Fixed memory leak * lookup.h: Added CLOSE_RESULT in GET on the HAVE_NSS_COMMON_H side of the house (to match the HAVE_NSS_H side) * nss_main.c: (HAVE_NSS_COMMON_H) default destructor now closes MySQL link - required due to the fact that the module is unloaded and thus static vars are lost * nss_config.c: Close config file handle when done with it 2002-08-22 Ben Goodwin * mysql-grp.c, mysql-pwd.c, mysql-spwd.c: Added euid restrict - don't allow non-root access to certain functions * mysql.c: Added CLOSE_NOGRACE for when MySQL socket is stomped on Header cleanup * nss_main.c, lookup.c, nss_config.c, nss_support.c: Header cleanup * nss_mysql.h: Added CLOSE_NOGRACE flag. See mysql.h Header cleanup * README: Solaris changes. Info about sample MySQL database. Prefix changed. * Makefile.am, Makefile.in, configure.in, configure: Solaris support. *** NOTICE *** Default prefix has changed to / - configuration files go in /etc by default; Linux libraries go in /lib and the Solaris library goes in /usr/lib. * lookup.h: (HAVE_NSS_H) setDBent/endDBent and NOT setDBent_r/endDBent_r 2002-08-21 Ben Goodwin * nss_mysql.h: Added missing #ifdef HAVE_NSS_COMMON_H around a prototype 2002-08-20 Ben Goodwin * sample/nss_mysql.cfg: Back to %d (well, %u) for numerical formats. * nss_main.c: Removed all NSS API code and spread out to files below. * lookup.c, lookup.h, mysql-grp.c, mysql-pwd.c, mysql-spwd.c: NEW FILES. Moved most of the NSS API code out of nss_main.c to these files. Also introduced working Solaris pieces. * nss_mysql.h: moved pthread stuff here. Added include for nss_dbdefs.h for Solaris (nss_common.h). Added NSS_ARGS macro (ripped from padl's nss-ldap project). New source file (lookup.c) -> function proto's. * Makefile.am, Makefile.in: Several files added to project * mysql.c: _nss_mysql_run_query(): Don't check for valid query anymore * nss_mysql.h, nss_main.c: (const char *) for debug routine's FUNCTION arg 2002-08-19 Ben Goodwin * mysql.c: _nss_mysql_run_query(): Check for valid query ONCE before while loop 2002-08-17 Ben Goodwin * acconfig.h: Added HAVE_LOG_FTP - configure.in sets this value now * nss_config.c: Only use LOG_FTP on systems that have it. * nss_mysql.h: HAVE_NSSWITCH_H should have been HAVE_NSS_COMMON_H. Needed to define NSS_STATUS when HAVE_NSS_COMMON_H is defined. 2002-08-16 Ben Goodwin * mysql.c: Call mysql_escape_string if MYSQL_VERSION_ID < 32300. * configure, configure.in: New method for checking MySQL install location. * config.h.in, nss_mysql.h: No longer need mysql/mysql.h header check. * acinclude.m4: New file. Added mysql-finder function. * aclocal.m4: Re-generated due to new acinclude.m4. * TODO: The usual ... 2002-08-15 Ben Goodwin * nss_mysql.h: Added proto for _nss_mysql_escape_string(). * nss_support.c: Fixed segfault WRT loading an empty PTCHAR in _nss_mysql_liswb() and _nss_mysql_count_tokens(). * samples/sample_database.sql: New file * nss_main.c: Protect getspent from being used by euid != 0. Split #define's up for readability/flexibility. Run arg passed (username/uid/etc.) through MySQL's string cleanser; AS A RESULT ALL STRING FORMATS IN YOUR CONFIG MUST BE %s !!! * mysql.c: Check for euid change. Added _nss_mysql_escape_string(). * configure, configure.in: Version -> 0.3dev. * TODO: Couple new items, prioritization; Got most-needed items done! * README: Typo fix (s/DEBUG_NSS/debug_flags/). Better information RE: ld.so/ldconfig. 2002-08-14 Ben Goodwin * *: CVS tag 0.2; Public release 2002-05-31 Ben Goodwin * sample/nss_mysql.cfg: Added new debug_flags to [global] section * nss_support.c: Moved MySQL state information here. This means that ALL functions share the same state information (unlike before). So it's possible for poor code to step on it's own *ent routines; I found the glibc library uses the same state information for all functions, so I felt comfortable with this move. I may be proven wrong though ... Added a few functions so above state information can be accessed/set outside this source file. set ERANGE outside of find_eol Assume that buffer and structure are not NULL (nss_mysql.c now ensures this) CLOSE_ALL -> CLOSE_LINK; CLOSE_LINK now also CLOSE_RESULT's Removed unnecessary \n's on debug lines Check/set return types using enumerated constants instead of 0's and 1's _nss_mysql_log_error changed to _nss_mysql_log with prio arg removed debug - it's now in nss_mysql.c * nss_mysql.h: Moved syslog.h here Removed unused FSIZ macro Removed unused D_ERROR; renumbered D_* defines Removed unnecessary CLOSE_ALL. CLOSE_LINK must CLOSE_RESULT anyway Removed unnecessary \n's on debug lines Added #defines for some configuration defaults Lots of new comments Added boolean and return types so we check/set returns via enumurated constants instead of 0's and 1's ... Added debug_flags to conf.global Rearranged some stuff for better readability * nss_mysql.c: The ONLY static variable is conf now. All MySQL static information moved to nss_support.c Removed unnecessary \n's on debug lines Added _nss_mysql_log (replaces _nss_mysql_log_error) Set config defaults based on #defines in nss_mysql.h Debug logs to syslog instead of a file now * nss_config.c: Added "debug_flags" to config Removed unnecessary \n's on debug lines _nss_mysql_log_error changed to _nss_mysql_log with priority argument Use enumerated constants for checking/setting return types Set config defaults based on #defines in nss_mysql.h * config.h.in: Added missing HAVE_LOG_AUTHPRIV * acconfig.h, configure, configure.in: Debugging goes to syslog now. No need for DEBUG_FILE * TODO: I actually did a couple things on my list * README: Debugging method changed. Updated dox to reflect that. 2002-05-30 Ben Goodwin * nss_support.c: Syslogging moved to configurable component. Moved _nss_mysql_log_error to nss_mysql.c * nss_mysql.h: Syslogging moved to configurable component * nss_mysql.c: Added function enter/exit debugging. Moved _nss_mysql_log_error from nss_support.c to here * nss_config.c: Added support for syslog facility/priority from config file * acconfig.h, configure, configure.in: Added HAVE_LOG_AUTHPRIV 2002-05-29 Ben Goodwin * sample/nss_mysql.cfg: Added new facility & priority options * nss_config.c: Formatting * configure, configure.in: Added license and revision info. Version updated to 0.2d (in-development) * config.h.in, acconfig.h: Better name for what is now HAVE___FUNC__ * Makefile.am, Makefile.in: License and revision info * TODO: Let everyone know how I plan to take over the world * AUTHORS, ChangeLog, NEWS, README: First-pass * sample/nss_mysql_root.cfg: Added missing [server] entry * Makefile.am, Makefile.in: Additional file to dist * FAQ: New file. * sample/nss_mysql_root.cfg: changed default password 2002-05-28 Ben Goodwin * *: Tag/Release 0.1 * Makefile.am, Makefile.in: Specify files in the sample directory to keep 'make dist' from adding CVS files to the distfile * configure.in, configure: Added CVS revision tag * Makefile.in: This should have been 1.1.1.1; Makefile.am was edited but automake was never run. Oops .. * nss_mysql.h, nss_support.c, nss_structures.c: Added license and rcsid string * nss_mysql.c: Added license and rcsid string. Fixed some formatting issues * nss_config.c: Added license and rcsid string * *: Initial import of nss-mysql