-#ifdef KERBEROS_V4
-static int kerberos_auth(socket, canonical, principal)
-/* authenticate to the server host using Kerberos V4 */
-int socket; /* socket to server host */
-char *canonical; /* server name */
-char *principal;
-{
- KTEXT ticket;
- MSG_DAT msg_data;
- CREDENTIALS cred;
- Key_schedule schedule;
- int rem;
- char * prin_copy = (char *) NULL;
- char * prin = (char *) NULL;
- char * inst = (char *) NULL;
- char * realm = (char *) NULL;
-
- if (principal != (char *)NULL && *principal)
- {
- char *cp;
- prin = prin_copy = xstrdup(principal);
- for (cp = prin_copy; *cp && *cp != '.'; ++cp)
- ;
- if (*cp)
- {
- *cp++ = '\0';
- inst = cp;
- while (*cp && *cp != '@')
- ++cp;
- if (*cp)
- {
- *cp++ = '\0';
- realm = cp;
- }
- }
- }
-
- ticket = xmalloc(sizeof (KTEXT_ST));
- rem = (krb_sendauth (0L, socket, ticket,
- prin ? prin : "pop",
- inst ? inst : canonical,
- realm ? realm : ((char *) (krb_realmofhost (canonical))),
- ((unsigned long) 0),
- (&msg_data),
- (&cred),
- (schedule),
- ((struct sockaddr_in *) 0),
- ((struct sockaddr_in *) 0),
- "KPOPV0.1"));
- free(ticket);
- if (prin_copy)
- {
- free(prin_copy);
- }
- if (rem != KSUCCESS)
- {
- report(stderr, GT_("kerberos error %s\n"), (krb_get_err_text (rem)));
- return (PS_AUTHFAIL);
- }
- return (0);
-}
-#endif /* KERBEROS_V4 */
-