Annotation of 43BSDTahoe/new/xns/examples/authchtest/chtest.c, revision 1.1.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.