Annotation of 43BSD/contrib/xns/examples/authchtest/chtest.c, revision 1.1

1.1     ! root        1: #include <stdio.h>
        !             2: #include <sys/types.h>
        !             3: #include <netns/ns.h>
        !             4: #include "Clearinghouse2_defs.h"
        !             5: #include <xnscourier/except.h>
        !             6: 
        !             7: extern GetData();
        !             8: 
        !             9: main(argc, argv)
        !            10:        int argc;
        !            11:        char *argv[];
        !            12: {
        !            13:        ListAliasesOfResults result;
        !            14:        struct ns_addr *destaddr;
        !            15:        CourierConnection *conn;
        !            16:        extern struct ns_addr *getXNSaddr();
        !            17:        ObjectNamePattern name;
        !            18:        ObjectName myname;
        !            19:        extern char *getpass();
        !            20:        Authenticator agent;
        !            21: 
        !            22:        if (argc != 2) {
        !            23:                fprintf(stderr,"Usage: %s alias\n",argv[0]);
        !            24:                exit(1);
        !            25:        }
        !            26:                /* default to CornellS1 2-273, 2-852-151-014 */
        !            27:        destaddr = getXNSaddr("8E0#00.00.AA.00.7D.E7");
        !            28:        if ((conn = CourierOpen(destaddr)) == NULL) {
        !            29:                fprintf(stderr,"Can't open connection to %s\n",argv[1]);
        !            30:                exit(1);
        !            31:        }
        !            32:        name.organization = "Berkeley.EECS";
        !            33:        name.domain = "Evans";
        !            34:        name.object = argv[1];
        !            35:        /* use a null credentials&verifier */
        !            36:        myname.organization = myname.domain = myname.object = "";
        !            37:        MakeSimpleCredentialsAndVerifier(&myname, "",
        !            38:                &agent.credentials, &agent.verifier );
        !            39:        printf("Aliases:\n");
        !            40: 
        !            41:        DURING
        !            42:                result = ListAliasesOf(conn, GetData, name,
        !            43:                        BulkData_immediateSink, agent);
        !            44:        HANDLER {
        !            45:                switch (Exception.Code) {
        !            46:                case CallError:
        !            47:                        fprintf(stderr,"Call error, %d\n",
        !            48:                                CourierErrArgs(CallErrorArgs,problem));
        !            49:                        break;
        !            50:                case ArgumentError:
        !            51:                        switch (CourierErrArgs(ArgumentErrorArgs,problem)) {
        !            52:                        case illegalOrganizationName:
        !            53:                        case illegalDomainName:
        !            54:                        case illegalObjectName:
        !            55:                                fprintf(stderr,
        !            56:                                        "%s:%s:%s has bad format\n",
        !            57:                                        name.object, name.domain, 
        !            58:                                        name.organization);
        !            59:                                break;
        !            60:                        case noSuchOrganization:
        !            61:                                fprintf(stderr,
        !            62:                                        "%s does not exist\n",
        !            63:                                        name.organization);
        !            64:                                break;
        !            65:                        case noSuchDomain:
        !            66:                                fprintf(stderr,
        !            67:                                        "%s:%s does not exist\n",
        !            68:                                        name.domain,
        !            69:                                        name.organization);
        !            70:                                break;
        !            71:                        case noSuchObject:
        !            72:                                fprintf(stderr,"No such object as %s:%s:%s\n",
        !            73:                                        name.object, name.domain, 
        !            74:                                        name.organization);
        !            75:                                break;
        !            76:                        default:
        !            77:                                fprintf(stderr,"Argument error (%d,%d)\n",
        !            78:                                    CourierErrArgs(ArgumentErrorArgs,problem),
        !            79:                                    CourierErrArgs(ArgumentErrorArgs,which) );
        !            80:                                break;
        !            81:                        }
        !            82:                        break;
        !            83:                case AuthenticationError:
        !            84:                        fprintf(stderr,"Authentication error, %d\n",
        !            85:                                CourierErrArgs(AuthenticationErrorArgs,problem)
        !            86:                                );
        !            87:                        break;
        !            88:                case WrongServer:
        !            89:                        fprintf(stderr,"Wrong server.  Try %s:%s:%s\n",
        !            90:                            CourierErrArgs(WrongServerArgs,hint.object),
        !            91:                            CourierErrArgs(WrongServerArgs,hint.domain),
        !            92:                            CourierErrArgs(WrongServerArgs,hint.organization)
        !            93:                                );
        !            94:                        break;
        !            95:                case PropertyError:
        !            96:                        fprintf(stderr,"Property error %d in %s:%s:%s\n",
        !            97:                            CourierErrArgs(PropertyErrorArgs,problem),
        !            98:                            CourierErrArgs(PropertyErrorArgs,distinguishedObject.object),
        !            99:                            CourierErrArgs(PropertyErrorArgs,distinguishedObject.domain),
        !           100:                            CourierErrArgs(PropertyErrorArgs,distinguishedObject.organization)
        !           101:                                );
        !           102:                        break;
        !           103:                default:
        !           104:                        fprintf(stderr,"Some random error, code %d\n",
        !           105:                                Exception.Code);
        !           106:                        break;
        !           107:                }
        !           108:        exit(1);
        !           109:        } END_HANDLER;
        !           110: 
        !           111:        printf("Distinguished name:\n\t%s:%s:%s\n",
        !           112:                result.distinguishedObject.object,
        !           113:                result.distinguishedObject.domain,
        !           114:                result.distinguishedObject.organization );
        !           115: }

unix.superglobalmegacorp.com

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