Annotation of 43BSDTahoe/new/xns/examples/filing_common/MakeSecondaryCreds.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char *rcsid = "$Header: MakeSecondaryCreds.c,v 1.5 87/04/16 15:47:29 ed Exp $";
                      3: #endif lint
                      4: 
                      5: /*
                      6:  * Copyright (c) 1986, 1987 Xerox Corp.
                      7:  */
                      8: 
                      9: /*
                     10:  *  $Log:      MakeSecondaryCreds.c,v $
                     11:  * Revision 1.5  87/04/16  15:47:29  ed
                     12:  * length becomes a Cardinal.
                     13:  * 
                     14:  * Revision 1.4  87/03/31  14:20:31  ed
                     15:  * Prompt with host name.
                     16:  * 
                     17:  * Revision 1.3  87/03/27  15:21:10  ed
                     18:  * Corrected missing argument on index().
                     19:  * 
                     20:  * Revision 1.2  87/03/18  08:42:08  ed
                     21:  * Minor changes.
                     22:  * 
                     23:  * Revision 1.1  86/12/31  11:26:19  ed
                     24:  * Initial revision
                     25:  * 
                     26:  * 
                     27:  */
                     28: 
                     29: #include <stdio.h>
                     30: #include <sys/time.h>
                     31: #include <sys/param.h>
                     32: #include <sys/stat.h>
                     33: #include <netns/ns.h>
                     34: #include <netns/sp.h>
                     35: #include <xnscourier/FilingSubset1.h>
                     36: #include <xnscourier/CH.h>
                     37: 
                     38: MakeSecondaryCreds(host, user, pwd, creds)
                     39: char *host;
                     40: char *user;
                     41: char *pwd;
                     42: FilingSubset1_SecondaryCredentials *creds;
                     43: {
                     44:        Cardinal length;
                     45:        Unspecified buf[2048], *bp;
                     46:        static FilingSubset1_SecondaryItem items[2];
                     47:        FILE *tty;
                     48:        char *cp, buffer[128], *index(), *getXNSpass();
                     49:        char *userpwd, *username;
                     50: 
                     51:        if ( user == 0 ) {
                     52:                if ( (tty= fopen("/dev/tty", "r+")) == NULL )
                     53:                        tty= stdin;
                     54:                else
                     55:                        setbuf(tty, (char *)NULL);
                     56:                fprintf(tty, "Enter %s username: ", host);
                     57:                fgets(buffer, sizeof(buffer), tty);
                     58:                if ( (cp= index(buffer, '\n')) ) *cp= '\0';
                     59:                username= buffer;
                     60:                fclose(tty);
                     61:        } else {
                     62:                username= user;
                     63:        }
                     64: 
                     65:        if ( pwd == 0 ) {
                     66:                char prompt[100];
                     67:                sprintf(prompt,"Enter %s password: ", host);
                     68:                userpwd= getXNSpass(prompt);
                     69:        } else {
                     70:                userpwd= pwd;
                     71:        }
                     72: 
                     73:        if ( creds != 0 ) {
                     74:                creds->designator= FilingSubset1_simple;
                     75:                items[0].type= FilingSubset1_userName;
                     76:                items[0].value.sequence= Allocate(sizeof_String(&username));
                     77:                bp= buf + sizeof_Cardinal(length);
                     78:                length= externalize_String(&username, bp);
                     79:                externalize_Cardinal(&length, buf);
                     80:                internalize_Clearinghouse3_Item(&(items[0].value), buf);
                     81: 
                     82:                items[1].type= FilingSubset1_userPassword;
                     83:                items[1].value.sequence= Allocate(sizeof_String(&userpwd));
                     84:                bp= buf + sizeof_Cardinal(length);
                     85:                length= externalize_String(&userpwd, bp);
                     86:                externalize_Cardinal(&length, buf);
                     87:                internalize_Clearinghouse3_Item(&(items[1].value), buf);
                     88: 
                     89:                creds->designator= FilingSubset1_simple;
                     90:                creds->FilingSubset1_simple_case.length= 2;
                     91:                creds->FilingSubset1_simple_case.sequence= items;
                     92:        }               
                     93: 
                     94:        return;
                     95: }

unix.superglobalmegacorp.com

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