Make ktc_curpag generally available
[openafs.git] / src / auth / ktc.c
index 6d26750..3c4a2ff 100644 (file)
@@ -920,6 +920,57 @@ ktc_OldPioctl(void)
     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
  /*
@@ -1613,57 +1664,6 @@ afs_tf_dest_tkt(void)
     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)
 {