Annotation of 43BSDReno/kerberosIV/krb/get_cred.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * $Source: /usr/src/kerberosIV/krb/RCS/get_cred.c,v $
        !             3:  * $Author: kfall $
        !             4:  *
        !             5:  * Copyright 1985, 1986, 1987, 1988 by the Massachusetts Institute
        !             6:  * of Technology.
        !             7:  *
        !             8:  * For copying and distribution information, please see the file
        !             9:  * <mit-copyright.h>.
        !            10:  */
        !            11: 
        !            12: #ifndef lint
        !            13: static char *rcsid_get_cred_c =
        !            14: "$Header: /usr/src/kerberosIV/krb/RCS/get_cred.c,v 4.11 90/06/25 20:55:51 kfall Exp $";
        !            15: #endif /* lint */
        !            16: 
        !            17: #include <mit-copyright.h>
        !            18: #include <stdio.h>
        !            19: #include <des.h>
        !            20: #include <krb.h>
        !            21: 
        !            22: /*
        !            23:  * krb_get_cred takes a service name, instance, and realm, and a
        !            24:  * structure of type CREDENTIALS to be filled in with ticket
        !            25:  * information.  It then searches the ticket file for the appropriate
        !            26:  * ticket and fills in the structure with the corresponding
        !            27:  * information from the file.  If successful, it returns KSUCCESS.
        !            28:  * On failure it returns a Kerberos error code.
        !            29:  */
        !            30: 
        !            31: krb_get_cred(service,instance,realm,c)
        !            32:     char *service;              /* Service name */
        !            33:     char *instance;             /* Instance */
        !            34:     char *realm;                /* Auth domain */
        !            35:     CREDENTIALS *c;             /* Credentials struct */
        !            36: {
        !            37:     int tf_status;              /* return value of tf function calls */
        !            38: 
        !            39:     /* Open ticket file and lock it for shared reading */
        !            40:     if ((tf_status = tf_init(TKT_FILE, R_TKT_FIL)) != KSUCCESS)
        !            41:        return(tf_status);
        !            42: 
        !            43:     /* Copy principal's name and instance into the CREDENTIALS struc c */
        !            44: 
        !            45:     if ( (tf_status = tf_get_pname(c->pname)) != KSUCCESS ||
        !            46:         (tf_status = tf_get_pinst(c->pinst)) != KSUCCESS )
        !            47:        return (tf_status);
        !            48: 
        !            49:     /* Search for requested service credentials and copy into c */
        !            50:        
        !            51:     while ((tf_status = tf_get_cred(c)) == KSUCCESS) {
        !            52:         /* Is this the right ticket? */
        !            53:        if ((strcmp(c->service,service) == 0) &&
        !            54:            (strcmp(c->instance,instance) == 0) &&
        !            55:            (strcmp(c->realm,realm) == 0))
        !            56:                   break;
        !            57:     }
        !            58:     (void) tf_close();
        !            59: 
        !            60:     if (tf_status == EOF)
        !            61:        return (GC_NOTKT);
        !            62:     return(tf_status);
        !            63: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.