From: megacz Date: Sat, 29 Mar 2008 17:46:50 +0000 (-0700) Subject: release v1.01, include support for old Linux 2.4-style PAGs X-Git-Tag: 1.01 X-Git-Url: https://git.hcoop.net/hcoop/debian/libnss-afs.git/commitdiff_plain/582fb19ea81f1bdfea59e26fcc8bc24d2fd4550c release v1.01, include support for old Linux 2.4-style PAGs --- diff --git a/debian/changelog b/debian/changelog index 7731c3e..1847aa5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,35 +1,41 @@ +libnss-afs (1.01) unstable; urgency=low + + * add support for non-AFS_LINUX26_ONEGROUP_ENV PAGs + + -- Adam Megacz Sat, 29 Mar 2008 09:48:23 -0700 + libnss-afs (1.0) unstable; urgency=low * official release - -- megacz Wed, 26 Mar 2008 12:20:55 -0400 + -- megacz Wed, 26 Mar 2008 12:20:55 -0400 libnss-afs (0.94) unstable; urgency=low * fix bug that caused crashes after calls to _nss_afs_getgrgid_r() - -- Adam Megacz Tue, 25 Mar 2008 10:56:14 -0700 + -- Adam Megacz Tue, 25 Mar 2008 10:56:14 -0700 libnss-afs (0.93) unstable; urgency=low * fix a bug in the gr_mem returned by the getgrent() function - -- Adam Megacz Sun, 23 Mar 2008 21:58:49 -0700 + -- Adam Megacz Sun, 23 Mar 2008 21:58:49 -0700 libnss-afs (0.92) unstable; urgency=low * fixed PAG ranges to work on Linux - -- Adam Megacz Sun, 23 Mar 2008 21:45:25 -0700 + -- Adam Megacz Sun, 23 Mar 2008 21:45:25 -0700 libnss-afs (0.91) unstable; urgency=low * merged libnss_pag into libnss_afs - -- Adam Megacz Sun, 23 Mar 2008 21:32:51 -0700 + -- Adam Megacz Sun, 23 Mar 2008 21:32:51 -0700 libnss-afs (0.90) unstable; urgency=low * change to libnss-afs - -- Adam Megacz Sun, 23 Mar 2008 16:26:45 -0700 + -- Adam Megacz Sun, 23 Mar 2008 16:26:45 -0700 diff --git a/nss_afs.c b/nss_afs.c index 6004e74..e315421 100644 --- a/nss_afs.c +++ b/nss_afs.c @@ -54,6 +54,8 @@ #define AFS_MAGIC_ANONYMOUS_USERID 32766 #define MIN_PAG_GID 0x41000000L #define MAX_PAG_GID 0x41FFFFFFL +#define MIN_OLDPAG_GID 0x3f00 +#define MAX_OLDPAG_GID 0xff00 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; @@ -293,7 +295,12 @@ int get_shell(char *name, char **buffer, size_t *buflen) { enum nss_status _nss_afs_getgrgid_r (gid_t gid, struct group *result, char *buffer, size_t buflen, int *errnop) { int length; - if ( gid < MIN_PAG_GID || gid > MAX_PAG_GID) { + int showgid = 0; + if (gid >= MIN_PAG_GID && gid <= MAX_PAG_GID) { + showgid = gid-MIN_PAG_GID; + } else if (gid >= MIN_OLDPAG_GID && gid <= MAX_OLDPAG_GID) { + showgid = gid-MIN_OLDPAG_GID; + } else { *errnop=ENOENT; return NSS_STATUS_NOTFOUND; } @@ -301,7 +308,7 @@ enum nss_status _nss_afs_getgrgid_r (gid_t gid, struct group *result, result->gr_gid=gid; result->gr_name=buffer; - length=snprintf(buffer,buflen,"AfsPag-%x",gid-MIN_PAG_GID); + length=snprintf(buffer,buflen,"AfsPag-%x",showgid); if (length < 0) break; length += 1;