|
|
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.