Author: metze Date: 2007-11-06 12:34:50 +0000 (Tue, 06 Nov 2007) New Revision: 25873
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25873 Log: nss_wrapper: hopefully a better fix for the solaris get*ent_r functions metze Modified: branches/SAMBA_4_0/source/lib/nss_wrapper/nss_wrapper.c Changeset: Modified: branches/SAMBA_4_0/source/lib/nss_wrapper/nss_wrapper.c =================================================================== --- branches/SAMBA_4_0/source/lib/nss_wrapper/nss_wrapper.c 2007-11-06 12:15:19 UTC (rev 25872) +++ branches/SAMBA_4_0/source/lib/nss_wrapper/nss_wrapper.c 2007-11-06 12:34:50 UTC (rev 25873) @@ -906,7 +906,21 @@ struct passwd *pw; if (!nwrap_enabled()) { +#ifdef SOLARIS_GETPWENT_R + pw = real_getpwent_r(pwdst, buf, buflen); + if (!pw) { + if (errno == 0) { + return ENOENT; + } + return errno; + } + if (pwdstp) { + *pwdstp = pw; + } + return 0; +#else return real_getpwent_r(pwdst, buf, buflen, pwdstp); +#endif } pw = nwrap_getpwent(); @@ -1078,7 +1092,21 @@ struct group *gr; if (!nwrap_enabled()) { +#ifdef SOLARIS_GETGRENT_R + gr = real_getgrent_r(grdst, buf, buflen); + if (!gr) { + if (errno == 0) { + return ENOENT; + } + return errno; + } + if (grdstp) { + *grdstp = gr; + } + return 0; +#else return real_getgrent_r(grdst, buf, buflen, grdstp); +#endif } gr = nwrap_getgrent();
