diff -uNr nss-mysql.orig/ent.c nss-mysql/ent.c --- nss-mysql.orig/ent.c Mon Mar 18 06:14:23 2002 +++ nss-mysql/ent.c Sun Mar 24 23:28:13 2002 @@ -24,7 +24,6 @@ #include -#include #include #include #include @@ -35,6 +34,8 @@ #include "config.h" #endif +#include "nss-mysql.h" + #ifdef INCLUDE_MY_SYS #include #endif @@ -71,7 +72,7 @@ /* mutexes to make functions reentrant !! */ -static pthread_mutex_t mutex[3] = {PTHREAD_MUTEX_INITIALIZER,PTHREAD_MUTEX_INITIALIZER,PTHREAD_MUTEX_INITIALIZER}; +static pthread_mutex_t mutex[3] = {{{PTHREAD_MUTEX_INITIALIZER}},{{PTHREAD_MUTEX_INITIALIZER}},{{PTHREAD_MUTEX_INITIALIZER}}}; /* frees parsing results */ @@ -161,7 +162,7 @@ * Initializes data for gr**ent functions * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_setent (int type) { +NSS_STATUS _nss_mysql_setent (int type) { char * sql = NULL; MYSQL_RES *result = NULL; MYSQL_ROW sql_row; @@ -396,7 +397,7 @@ } for (i = 0 ; i < max ; ++i) { - enum nss_status status; + NSS_STATUS status; int error; if((status = _nss_mysql_group_result_to_struct(&((*s)->gr_list[i]), &error, (*s)->mysql_auth, result, ent_count[i])) != NSS_STATUS_SUCCESS) { setent_quit(*s,type); @@ -429,7 +430,7 @@ * Kills all data for [gs]et..ent functions * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_endent (int type) { +NSS_STATUS _nss_mysql_endent (int type) { ENT_S ** s; pthread_mutex_t * m; @@ -501,9 +502,9 @@ * errnop: ptr to the application errno */ -enum nss_status _nss_mysql_getent_r (int type, void * to_fill, +NSS_STATUS _nss_mysql_getent_r (int type, void * to_fill, char * buffer, size_t buflen,int * errnop) { - enum nss_status status = NSS_STATUS_NOTFOUND; /* to silence a warning */ + NSS_STATUS status = NSS_STATUS_NOTFOUND; /* to silence a warning */ ENT_S ** s; pthread_mutex_t * m; diff -uNr nss-mysql.orig/ent.h nss-mysql/ent.h --- nss-mysql.orig/ent.h Wed Oct 17 12:06:33 2001 +++ nss-mysql/ent.h Sun Mar 24 23:04:57 2002 @@ -3,9 +3,9 @@ #ifndef _HAVE_NSS_MYSQL_ENT_H #define _HAVE_NSS_MYSQL_ENT_H -enum nss_status _nss_mysql_setent (int type); -enum nss_status _nss_mysql_endent (int type); -enum nss_status _nss_mysql_getent_r (int type, void * to_fill, +NSS_STATUS _nss_mysql_setent (int type); +NSS_STATUS _nss_mysql_endent (int type); +NSS_STATUS _nss_mysql_getent_r (int type, void * to_fill, char * buffer, size_t buflen,int * errnop); #endif diff -uNr nss-mysql.orig/group.c nss-mysql/group.c --- nss-mysql.orig/group.c Mon Mar 18 06:14:23 2002 +++ nss-mysql/group.c Sun Mar 24 23:28:07 2002 @@ -25,7 +25,6 @@ #include -#include #include #include #include @@ -37,6 +36,8 @@ #include "config.h" #endif +#include "nss-mysql.h" + #ifdef INCLUDE_MY_SYS #include #endif @@ -54,15 +55,15 @@ /* This structure is used to share information between * all ***grent functions. This is a cache of all GIDs */ -enum nss_status _nss_mysql_initgroups (const char *user, gid_t group, long int *start, +NSS_STATUS _nss_mysql_initgroups (const char *user, gid_t group, long int *start, long int *size, gid_t * groups, long int limit,int *errnop); -enum nss_status _nss_mysql_setgrent (void); -enum nss_status _nss_mysql_endgrent (void); -enum nss_status _nss_mysql_getgrent_r (struct group *gr, +NSS_STATUS _nss_mysql_setgrent (void); +NSS_STATUS _nss_mysql_endgrent (void); +NSS_STATUS _nss_mysql_getgrent_r (struct group *gr, char * buffer, size_t buflen,int * errnop); -enum nss_status _nss_mysql_getgrnam_r (const char * name, struct group *gr, +NSS_STATUS _nss_mysql_getgrnam_r (const char * name, struct group *gr, char * buffer, size_t buflen,int *errnop); -enum nss_status _nss_mysql_getgrgid_r (const gid_t gid, struct group *gr, +NSS_STATUS _nss_mysql_getgrgid_r (const gid_t gid, struct group *gr, char * buffer, size_t buflen,int *errnop); static int check_connection(MYSQL ** mysql_auth,struct passwdoptions * options,pthread_mutex_t * mutex); @@ -114,10 +115,10 @@ #define unlockm() \ if (m) pthread_mutex_unlock(m); -enum nss_status _nss_mysql_group_fill_struct(const char * uname,char * name,const gid_t gid, +NSS_STATUS _nss_mysql_group_fill_struct(const char * uname,char * name,const gid_t gid, struct group * gr, int * errnop, MYSQL * mysql_auth,struct passwdoptions * options, struct groupoptions * goptions,pthread_mutex_t * m) { - enum nss_status status = NSS_STATUS_SUCCESS; + NSS_STATUS status = NSS_STATUS_SUCCESS; char * sql = NULL; MYSQL_RES *result = NULL; unsigned long int num_rows; @@ -241,7 +242,7 @@ * It is used as a backend function for _nss_mysql_group_fill_struct. */ -enum nss_status _nss_mysql_group_result_to_struct(struct group * gr, int * errnop, MYSQL * mysql_auth, MYSQL_RES *result, unsigned long int num_rows) { +NSS_STATUS _nss_mysql_group_result_to_struct(struct group * gr, int * errnop, MYSQL * mysql_auth, MYSQL_RES *result, unsigned long int num_rows) { MYSQL_ROW sql_row; unsigned long i = 0; int error; @@ -344,10 +345,10 @@ #define unlockm() \ pthread_mutex_unlock(&initgroups_mutex); -static pthread_mutex_t initgroups_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t initgroups_mutex = {{PTHREAD_MUTEX_INITIALIZER}}; static MYSQL * initgroups_auth = NULL; -enum nss_status _nss_mysql_initgroups (const char *user, gid_t group, long int *start, +NSS_STATUS _nss_mysql_initgroups (const char *user, gid_t group, long int *start, long int *size, gid_t * groups, long int limit,int *errnop) { char * sql = NULL; MYSQL_RES * result = NULL; @@ -531,7 +532,7 @@ * Initializes data for ...grent functions * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_setgrent (void) { +NSS_STATUS _nss_mysql_setgrent (void) { return _nss_mysql_setent(ENT_TYPE); } @@ -539,7 +540,7 @@ * Kills all data for ...grent functions * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_endgrent (void) { +NSS_STATUS _nss_mysql_endgrent (void) { return _nss_mysql_endent(ENT_TYPE); } @@ -552,7 +553,7 @@ * errnop: ptr to the application errno */ -enum nss_status _nss_mysql_getgrent_r (struct group *gr, +NSS_STATUS _nss_mysql_getgrent_r (struct group *gr, char * buffer, size_t buflen,int * errnop) { return _nss_mysql_getent_r(ENT_TYPE,gr,buffer,buflen,errnop); } @@ -601,13 +602,13 @@ _nss_mysql_free_users(&options); \ _nss_mysql_free_groups(&goptions); -static pthread_mutex_t nam_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t nam_mutex = {{PTHREAD_MUTEX_INITIALIZER}}; static MYSQL * nam_auth = NULL; -enum nss_status _nss_mysql_getgrnam_r (const char * name, struct group *gr, +NSS_STATUS _nss_mysql_getgrnam_r (const char * name, struct group *gr, char * buffer, size_t buflen,int *errnop) { char * buff; - enum nss_status toreturn; + NSS_STATUS toreturn; struct passwdoptions options; struct groupoptions goptions; @@ -665,12 +666,12 @@ */ -static pthread_mutex_t gid_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t gid_mutex = {{PTHREAD_MUTEX_INITIALIZER}}; static MYSQL * gid_auth = NULL; -enum nss_status _nss_mysql_getgrgid_r (const gid_t gid, struct group *gr, +NSS_STATUS _nss_mysql_getgrgid_r (const gid_t gid, struct group *gr, char * buffer, size_t buflen,int *errnop) { - enum nss_status status; + NSS_STATUS status; struct passwdoptions options; struct groupoptions goptions; @@ -709,7 +710,7 @@ int main(void) { struct group gr; - enum nss_status s; + NSS_STATUS s; _nss_mysql_setgrent(); while ((s=_nss_mysql_getgrent_r(&gr,NULL,0,&errno))!=NSS_STATUS_NOTFOUND); _nss_mysql_endgrent(); diff -uNr nss-mysql.orig/group.h nss-mysql/group.h --- nss-mysql.orig/group.h Mon Mar 18 06:08:04 2002 +++ nss-mysql/group.h Sun Mar 24 23:04:57 2002 @@ -25,6 +25,6 @@ }; -enum nss_status _nss_mysql_group_fill_struct(const char *,char *,const gid_t,struct group *, int * errnop, MYSQL *,struct passwdoptions *, struct groupoptions *,pthread_mutex_t *); -enum nss_status _nss_mysql_group_result_to_struct(struct group * gr, int * errnop, MYSQL * mysql_auth, MYSQL_RES *result, unsigned long int num_rows); +NSS_STATUS _nss_mysql_group_fill_struct(const char *,char *,const gid_t,struct group *, int * errnop, MYSQL *,struct passwdoptions *, struct groupoptions *,pthread_mutex_t *); +NSS_STATUS _nss_mysql_group_result_to_struct(struct group * gr, int * errnop, MYSQL * mysql_auth, MYSQL_RES *result, unsigned long int num_rows); #endif diff -uNr nss-mysql.orig/lib.c nss-mysql/lib.c --- nss-mysql.orig/lib.c Mon Mar 18 06:14:23 2002 +++ nss-mysql/lib.c Sun Mar 24 23:02:33 2002 @@ -51,7 +51,7 @@ int _nss_mysql_isempty(char * str) { if (!str) return 1; while(*str != '\0') - if (!isspace(*(str++))) return 0; + if (!isspace((unsigned char)*(str++))) return 0; return 1; } diff -uNr nss-mysql.orig/nss-mysql.h nss-mysql/nss-mysql.h --- nss-mysql.orig/nss-mysql.h Wed Dec 31 19:00:00 1969 +++ nss-mysql/nss-mysql.h Sun Mar 24 23:27:04 2002 @@ -0,0 +1,21 @@ +#ifndef _HAVE_NSS_MYSQL_H +#define _HAVE_NSS_MYSQL_H + +#ifdef HAVE_NSSWITCH_H +#include + +typedef nss_status_t NSS_STATUS; + +#define NSS_STATUS_SUCCESS NSS_SUCCESS +#define NSS_STATUS_NOTFOUND NSS_NOTFOUND +#define NSS_STATUS_UNAVAIL NSS_UNAVAIL +#define NSS_STATUS_TRYAGAIN NSS_TRYAGAIN + +#else +#include + +typedef enum nss_status NSS_STATUS; + +#endif + +#endif diff -uNr nss-mysql.orig/nss-shadow.h nss-mysql/nss-shadow.h --- nss-mysql.orig/nss-shadow.h Mon Mar 18 06:08:04 2002 +++ nss-mysql/nss-shadow.h Sun Mar 24 23:04:58 2002 @@ -31,5 +31,5 @@ }; -enum nss_status _nss_mysql_shadow_fill_struct (const char * name, char * secure_name, int,struct spwd *spw, int * errnop,MYSQL *,struct shadowoptions *,pthread_mutex_t *); +NSS_STATUS _nss_mysql_shadow_fill_struct (const char * name, char * secure_name, int,struct spwd *spw, int * errnop,MYSQL *,struct shadowoptions *,pthread_mutex_t *); #endif diff -uNr nss-mysql.orig/parser.c nss-mysql/parser.c --- nss-mysql.orig/parser.c Mon Mar 18 06:25:16 2002 +++ nss-mysql/parser.c Sun Mar 24 23:13:30 2002 @@ -35,6 +35,7 @@ #include "config.h" #endif +#include "nss-mysql.h" #include "parser.h" #include "nss-shadow.h" #include "passwd.h" diff -uNr nss-mysql.orig/passwd.c nss-mysql/passwd.c --- nss-mysql.orig/passwd.c Mon Mar 18 06:14:23 2002 +++ nss-mysql/passwd.c Sun Mar 24 23:27:18 2002 @@ -25,7 +25,6 @@ #include -#include #include #include #include @@ -37,6 +36,8 @@ #include "config.h" #endif +#include "nss-mysql.h" + #ifdef INCLUDE_MY_SYS #include #endif @@ -52,11 +53,11 @@ #define ENT_TYPE 0 -enum nss_status _nss_mysql_getpwuid_r(uid_t,struct passwd *,char *, size_t,int *); -enum nss_status _nss_mysql_setpwent (void); -enum nss_status _nss_mysql_getpwent_r (struct passwd *pw, char * buffer, size_t buflen,int * errnop); -enum nss_status _nss_mysql_endpwent (void); -enum nss_status _nss_mysql_getpwnam_r(const char *,struct passwd *,char *,size_t,int *); +NSS_STATUS _nss_mysql_getpwuid_r(uid_t,struct passwd *,char *, size_t,int *); +NSS_STATUS _nss_mysql_setpwent (void); +NSS_STATUS _nss_mysql_getpwent_r (struct passwd *pw, char * buffer, size_t buflen,int * errnop); +NSS_STATUS _nss_mysql_endpwent (void); +NSS_STATUS _nss_mysql_getpwnam_r(const char *,struct passwd *,char *,size_t,int *); static int check_connection(MYSQL ** mysql_auth,struct passwdoptions * options,pthread_mutex_t * mutex); @@ -94,7 +95,7 @@ #define unlockm() \ if (m) pthread_mutex_unlock(m); -enum nss_status _nss_mysql_passwd_fill_struct(const char *uname, char * name, int uid, struct passwd *pw, int *errnop, MYSQL * mysql_auth,struct passwdoptions * options,pthread_mutex_t * m) { +NSS_STATUS _nss_mysql_passwd_fill_struct(const char *uname, char * name, int uid, struct passwd *pw, int *errnop, MYSQL * mysql_auth,struct passwdoptions * options,pthread_mutex_t * m) { char * sql = NULL; MYSQL_RES *result = NULL; MYSQL_ROW sql_row; @@ -292,7 +293,7 @@ * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_setpwent (void) { +NSS_STATUS _nss_mysql_setpwent (void) { return _nss_mysql_setent(ENT_TYPE); } @@ -301,7 +302,7 @@ * Kills all data for ...pwent functions * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_endpwent (void) { +NSS_STATUS _nss_mysql_endpwent (void) { return _nss_mysql_endent(ENT_TYPE); } @@ -314,7 +315,7 @@ * errnop: ptr to the application errno */ -enum nss_status _nss_mysql_getpwent_r (struct passwd *pw, +NSS_STATUS _nss_mysql_getpwent_r (struct passwd *pw, char * buffer, size_t buflen,int * errnop) { return _nss_mysql_getent_r(ENT_TYPE,(void *) pw,buffer,buflen,errnop); } @@ -364,11 +365,11 @@ static MYSQL * pwnam_auth = NULL; -static pthread_mutex_t pwnam_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t pwnam_mutex = {{PTHREAD_MUTEX_INITIALIZER}}; -enum nss_status _nss_mysql_getpwnam_r (const char *name, struct passwd *result, +NSS_STATUS _nss_mysql_getpwnam_r (const char *name, struct passwd *result, char *buf, size_t buflen, int *errnop) { - enum nss_status toreturn = NSS_STATUS_UNAVAIL; + NSS_STATUS toreturn = NSS_STATUS_UNAVAIL; char * buffer; struct passwdoptions options; @@ -418,12 +419,12 @@ */ -static pthread_mutex_t pwuid_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t pwuid_mutex = {{PTHREAD_MUTEX_INITIALIZER}}; static MYSQL * pwuid_auth = NULL; -enum nss_status _nss_mysql_getpwuid_r (uid_t uid, struct passwd *result, +NSS_STATUS _nss_mysql_getpwuid_r (uid_t uid, struct passwd *result, char *buf, size_t buflen, int *errnop) { - enum nss_status status = NSS_STATUS_UNAVAIL; + NSS_STATUS status = NSS_STATUS_UNAVAIL; struct passwdoptions options; memset(&options,0,sizeof(struct passwdoptions)); diff -uNr nss-mysql.orig/passwd.h nss-mysql/passwd.h --- nss-mysql.orig/passwd.h Mon Mar 18 06:08:04 2002 +++ nss-mysql/passwd.h Sun Mar 24 23:04:58 2002 @@ -32,5 +32,5 @@ char * shellcolumn; }; -enum nss_status _nss_mysql_passwd_fill_struct(const char *, char * , int, struct passwd *,int * errnop,MYSQL *,struct passwdoptions *,pthread_mutex_t *); +NSS_STATUS _nss_mysql_passwd_fill_struct(const char *, char * , int, struct passwd *,int * errnop,MYSQL *,struct passwdoptions *,pthread_mutex_t *); #endif diff -uNr nss-mysql.orig/shadow.c nss-mysql/shadow.c --- nss-mysql.orig/shadow.c Mon Mar 18 06:14:23 2002 +++ nss-mysql/shadow.c Sun Mar 24 23:27:59 2002 @@ -25,7 +25,6 @@ #include -#include #include #include #include @@ -39,6 +38,8 @@ #include "config.h" #endif +#include "nss-mysql.h" + #ifdef INCLUDE_MY_SYS #include #endif @@ -52,10 +53,10 @@ #define ENT_TYPE 2 -enum nss_status _nss_mysql_getspnam_r (const char *, struct spwd *,char *, size_t,int *); -enum nss_status _nss_mysql_setspent (void); -enum nss_status _nss_mysql_endspent (void); -enum nss_status _nss_mysql_getspent_r (struct spwd *result,char *buffer, size_t buflen, int *errnop); +NSS_STATUS _nss_mysql_getspnam_r (const char *, struct spwd *,char *, size_t,int *); +NSS_STATUS _nss_mysql_setspent (void); +NSS_STATUS _nss_mysql_endspent (void); +NSS_STATUS _nss_mysql_getspent_r (struct spwd *result,char *buffer, size_t buflen, int *errnop); static int check_connection(MYSQL ** mysql_auth,struct shadowoptions * options,pthread_mutex_t * mutex); @@ -89,7 +90,7 @@ #define unlockm() \ if (m) pthread_mutex_unlock(m); -enum nss_status _nss_mysql_shadow_fill_struct(const char * name, char * secure_name, int user_id, struct spwd *spw, +NSS_STATUS _nss_mysql_shadow_fill_struct(const char * name, char * secure_name, int user_id, struct spwd *spw, int * errnop,MYSQL * mysql_auth,struct shadowoptions * soptions,pthread_mutex_t *m) { char * sql = NULL; MYSQL_RES *result = NULL; @@ -282,11 +283,11 @@ _nss_mysql_free_shadow(&soptions); static MYSQL * nam_auth = NULL; -static pthread_mutex_t nam_mutex = PTHREAD_MUTEX_INITIALIZER; +static pthread_mutex_t nam_mutex = {{PTHREAD_MUTEX_INITIALIZER}}; -enum nss_status _nss_mysql_getspnam_r (const char * name, struct spwd *spw, +NSS_STATUS _nss_mysql_getspnam_r (const char * name, struct spwd *spw, char *buf, size_t buflen,int * errnop) { - enum nss_status toreturn = NSS_STATUS_UNAVAIL; + NSS_STATUS toreturn = NSS_STATUS_UNAVAIL; char * buffer; struct shadowoptions soptions; @@ -332,7 +333,7 @@ * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_setspent (void) { +NSS_STATUS _nss_mysql_setspent (void) { return _nss_mysql_setent(ENT_TYPE); } @@ -340,7 +341,7 @@ * Kills all data for ...pwent functions * NOTE this function does _NOT_ use errno */ -enum nss_status _nss_mysql_endspent (void) { +NSS_STATUS _nss_mysql_endspent (void) { return _nss_mysql_endent(ENT_TYPE); } @@ -353,7 +354,7 @@ * errnop: ptr to the application errno */ -enum nss_status _nss_mysql_getspent_r (struct spwd *spw, +NSS_STATUS _nss_mysql_getspent_r (struct spwd *spw, char * buffer, size_t buflen,int * errnop) { return _nss_mysql_getent_r(ENT_TYPE,spw,buffer,buflen,errnop); }