|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.