svn commit: samba r25868 - in
branches/SAMBA_4_0/source/lib/nss_wrapper: .
metze at samba.org
metze at samba.org
Tue Nov 6 09:26:43 GMT 2007
Author: metze
Date: 2007-11-06 09:26:42 +0000 (Tue, 06 Nov 2007)
New Revision: 25868
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25868
Log:
nss_wrapper: add solaris versions of getpwent_r and getgrent_r
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 09:15:11 UTC (rev 25867)
+++ branches/SAMBA_4_0/source/lib/nss_wrapper/nss_wrapper.c 2007-11-06 09:26:42 UTC (rev 25868)
@@ -892,6 +892,36 @@
return pw;
}
+#ifdef SOLARIS_GETPWENT_R
+_PUBLIC_ struct passwd *nwrap_getpwent_r(struct passwd *pwdst,
+ char *buf,
+ int buflen)
+{
+ struct passwd *pw;
+ struct passwd *pwdstp = NULL;
+ int ret;
+
+ if (!nwrap_enabled()) {
+ return real_getpwent_r(pwdst, buf, buflen);
+ }
+
+ pw = nwrap_getpwent();
+ if (!pw) {
+ if (errno == 0) {
+ errno = ENOENT;
+ }
+ return NULL;
+ }
+
+ ret = nwrap_pw_copy_r(pw, pwdst, buf, buflen, &pwdstp);
+ if (ret != 0) {
+ errno = ret;
+ return NULL;
+ }
+
+ return pwdstp;
+}
+#else
_PUBLIC_ int nwrap_getpwent_r(struct passwd *pwdst, char *buf,
size_t buflen, struct passwd **pwdstp)
{
@@ -911,6 +941,7 @@
return nwrap_pw_copy_r(pw, pwdst, buf, buflen, pwdstp);
}
+#endif
_PUBLIC_ void nwrap_endpwent(void)
{
@@ -1064,6 +1095,36 @@
return gr;
}
+#ifdef SOLARIS_GETGRENT_R
+_PUBLIC_ struct group *nwrap_getgrent_r(struct group *grdst,
+ char *buf,
+ int buflen)
+{
+ struct group *gr;
+ struct group *grdstp = NULL;
+ int ret;
+
+ if (!nwrap_enabled()) {
+ return real_getgrent_r(grdst, buf, buflen);
+ }
+
+ gr = nwrap_getgrent();
+ if (!gr) {
+ if (errno == 0) {
+ errno = ENOENT;
+ }
+ return NULL;
+ }
+
+ ret = nwrap_gr_copy_r(gr, grdst, buf, buflen, &grdstp);
+ if (ret != 0) {
+ errno = ret;
+ return NULL;
+ }
+
+ return grdstp;
+}
+#else
_PUBLIC_ int nwrap_getgrent_r(struct group *grdst, char *buf,
size_t buflen, struct group **grdstp)
{
@@ -1083,6 +1144,7 @@
return nwrap_gr_copy_r(gr, grdst, buf, buflen, grdstp);
}
+#endif
_PUBLIC_ void nwrap_endgrent(void)
{
More information about the samba-cvs
mailing list