return rc;
}
+afs_uint32
+ktc_curpag(void)
+{
+ int code;
+ struct ViceIoctl iob;
+ afs_int32 pag;
+
+ /* now setup for the pioctl */
+ iob.in = NULL;
+ iob.in_size = 0;
+ iob.out = &pag;
+ iob.out_size = sizeof(afs_int32);
+
+ code = PIOCTL(0, VIOC_GETPAG, &iob, 0);
+ if (code < 0) {
+#if defined(AFS_AIX52_ENV)
+ code = getpagvalue("afs");
+ if (code < 0 && errno == EINVAL)
+ code = 0;
+ return code;
+#elif defined(AFS_AIX51_ENV)
+ return -1;
+#else
+ gid_t groups[NGROUPS_MAX];
+ afs_uint32 g0, g1;
+ afs_uint32 h, l, ret;
+
+ if (getgroups(sizeof groups / sizeof groups[0], groups) < 2)
+ return 0;
+
+ g0 = groups[0] & 0xffff;
+ g1 = groups[1] & 0xffff;
+ g0 -= 0x3f00;
+ g1 -= 0x3f00;
+ if (g0 < 0xc000 && g1 < 0xc000) {
+ l = ((g0 & 0x3fff) << 14) | (g1 & 0x3fff);
+ h = (g0 >> 14);
+ h = (g1 >> 14) + h + h + h;
+ ret = ((h << 28) | l);
+ /* Additional testing */
+ if (((ret >> 24) & 0xff) == 'A')
+ return ret;
+ else
+ return -1;
+ }
+ return -1;
+#endif
+ }
+ return pag;
+}
+
#ifdef AFS_KERBEROS_ENV
/*
return 0;
}
-afs_uint32
-ktc_curpag(void)
-{
- int code;
- struct ViceIoctl iob;
- afs_int32 pag;
-
- /* now setup for the pioctl */
- iob.in = NULL;
- iob.in_size = 0;
- iob.out = &pag;
- iob.out_size = sizeof(afs_int32);
-
- code = PIOCTL(0, VIOC_GETPAG, &iob, 0);
- if (code < 0) {
-#if defined(AFS_AIX52_ENV)
- code = getpagvalue("afs");
- if (code < 0 && errno == EINVAL)
- code = 0;
- return code;
-#elif defined(AFS_AIX51_ENV)
- return -1;
-#else
- gid_t groups[NGROUPS_MAX];
- afs_uint32 g0, g1;
- afs_uint32 h, l, ret;
-
- if (getgroups(sizeof groups / sizeof groups[0], groups) < 2)
- return 0;
-
- g0 = groups[0] & 0xffff;
- g1 = groups[1] & 0xffff;
- g0 -= 0x3f00;
- g1 -= 0x3f00;
- if (g0 < 0xc000 && g1 < 0xc000) {
- l = ((g0 & 0x3fff) << 14) | (g1 & 0x3fff);
- h = (g0 >> 14);
- h = (g1 >> 14) + h + h + h;
- ret = ((h << 28) | l);
- /* Additional testing */
- if (((ret >> 24) & 0xff) == 'A')
- return ret;
- else
- return -1;
- }
- return -1;
-#endif
- }
- return pag;
-}
-
int
ktc_newpag(void)
{