|
|
1.1 ! root 1: #ifndef lint ! 2: static char *rcsid = "$Header: unixcreds.c,v 1.2 87/04/01 10:12:52 ed Exp $"; ! 3: #endif lint ! 4: ! 5: /* ! 6: * Copyright (c) 1986, 1987 Xerox Corporation. ! 7: */ ! 8: ! 9: /* $Log: unixcreds.c,v $ ! 10: * Revision 1.2 87/04/01 10:12:52 ed ! 11: * added Filing version 5. ! 12: * ! 13: * Revision 1.1 87/01/14 11:28:25 ed ! 14: * Initial revision ! 15: * ! 16: */ ! 17: ! 18: #include <stdio.h> ! 19: #include <sys/types.h> ! 20: #include <netns/ns.h> ! 21: #include <netns/sp.h> ! 22: #ifdef FILING4 ! 23: #include "filingV4.h" ! 24: #include "clearinghouseV2.h" ! 25: #include "authenticationV2.h" ! 26: #endif FILING4 ! 27: #ifdef FILING5 ! 28: #include "filingV5.h" ! 29: #include "clearinghouseV2.h" ! 30: #include "authenticationV2.h" ! 31: #endif FILING5 ! 32: #ifdef FILING6 ! 33: #include "filingV6.h" ! 34: #include "clearinghouseV3.h" ! 35: #include "authenticationV3.h" ! 36: #endif FILING6 ! 37: #ifdef FILINGSUBSET1 ! 38: #include "filingsubsetV1.h" ! 39: #include "clearinghouseV3.h" ! 40: #include "authenticationV3.h" ! 41: #endif FILINGSUBSET1 ! 42: #include <xnscourier/filing_server.h> ! 43: #include <xnscourier/CH.h> ! 44: ! 45: extern char *AttrToString(); ! 46: ! 47: #ifdef DEBUG ! 48: FILE *msgs; ! 49: #endif DEBUG ! 50: ! 51: get_name_and_pwd(creds, name, pwd) ! 52: FILING_SecondaryCredentials *creds; ! 53: char *name; ! 54: char *pwd; ! 55: ! 56: { ! 57: int i; ! 58: FILING_SecondaryItem *item; ! 59: Boolean gotname= FALSE, gotpwd= FALSE; ! 60: char *user, *pass; ! 61: ! 62: if ( creds->designator != FILING_simple ) { ! 63: ReturnAuthenticationError(FILING_secondaryCredentialsRequired); ! 64: /* NOT REACHED */ ! 65: } ! 66: ! 67: #ifdef DEBUG ! 68: fprintf(msgs, "%n secondary types\n", creds->FILING_simple_case.length); ! 69: #endif DEBUG ! 70: ! 71: if ( creds->FILING_simple_case.length <= 0 ) { ! 72: ReturnAuthenticationError(FILING_secondaryCredentialsRequired); ! 73: /* NOT REACHED */ ! 74: } ! 75: ! 76: for ( i= 0 ; i < creds->FILING_simple_case.length ; i++ ) { ! 77: item= &creds->FILING_simple_case.sequence[i]; ! 78: ! 79: if ( item->type == FILING_userName ) { ! 80: gotname= TRUE; ! 81: user= AttrToString(item); ! 82: strcpy(name, user); ! 83: clear_String(&user); ! 84: } else if ( item->type == FILING_userPassword ) { ! 85: gotpwd= TRUE; ! 86: pass= AttrToString(item); ! 87: strcpy(pwd, pass); ! 88: clear_String(&pass); ! 89: } else { ! 90: ReturnAuthenticationError(FILING_secondaryCredentialsTypeInvalid); ! 91: /* NOT REACHED */ ! 92: } ! 93: ! 94: } ! 95: ! 96: if ( !gotname && !gotpwd ) { ! 97: ReturnAuthenticationError(FILING_secondaryCredentialsRequired); ! 98: /* NOT REACHED */ ! 99: } ! 100: ! 101: return(-1); ! 102: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.