#include "AFS_component_version_number.c"
-int ktc_newpag(void);
-
int
main(int argc, char *argv[])
{
fprintf(stderr, "No shell\n");
exit(1);
}
-
-
-#ifdef AFS_KERBEROS_ENV
-/* stolen from auth/ktc.c */
-
-static afs_uint32
-curpag(void)
-{
-#if defined(AFS_AIX51_ENV)
- int code = getpagvalue("afs");
- if (code < 0 && errno == EINVAL)
- code = 0;
- return code;
-#else
- afs_uint32 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
-}
-
-int
-ktc_newpag(void)
-{
- extern char **environ;
-
- afs_uint32 pag;
- struct stat sbuf;
- char fname[256], *prefix = "/ticket/";
- char fname5[256], *prefix5 = "FILE:/ticket/krb5cc_";
- int numenv;
- char **newenv, **senv, **denv;
-
- if (stat("/ticket", &sbuf) == -1) {
- prefix = "/tmp/tkt";
- prefix5 = "FILE:/tmp/krb5cc_";
- }
-
- pag = curpag() & 0xffffffff;
- if (pag == -1) {
- sprintf(fname, "%s%d", prefix, getuid());
- sprintf(fname5, "%s%d", prefix5, getuid());
- } else {
- sprintf(fname, "%sp%lud", prefix, (long unsigned int) pag);
- sprintf(fname5, "%sp%lud", prefix5, (long unsigned int) pag);
- }
-/* ktc_set_tkt_string(fname); */
-
- for (senv = environ, numenv = 0; *senv; senv++)
- numenv++;
- newenv = (char **)malloc((numenv + 2) * sizeof(char *));
-
- for (senv = environ, denv = newenv; *senv; *senv++) {
- if (strncmp(*senv, "KRBTKFILE=", 10) != 0 &&
- strncmp(*senv, "KRB5CCNAME=", 11) != 0)
- *denv++ = *senv;
- }
-
- *denv = malloc(10+11 + strlen(fname) + strlen(fname5) + 2);
- strcpy(*denv, "KRBTKFILE=");
- strcat(*denv, fname);
- *(denv+1) = *denv + strlen(*denv) + 1;
- denv++;
- strcpy(*denv, "KRB5CCNAME=");
- strcat(*denv, fname5);
- *++denv = 0;
- environ = newenv;
- return 0;
-}
-
-#endif