|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <isode/rtsap.h> ! 3: ! 4: #include "support.h" /* defines operation values */ ! 5: ! 6: /* e.g., "directory" */ ! 7: static char *myservice = "RTSTEST"; ! 8: ! 9: /* e.g., "directory services" */ ! 10: static char *mycontext = "isode chic read"; ! 11: static char *mypci = "isode chic read pci"; ! 12: ! 13: FILE *errfp = stderr; ! 14: ! 15: main (argc, argv, envp) ! 16: int argc; ! 17: char **argv, ! 18: **envp; ! 19: { ! 20: int sd; ! 21: struct SSAPref sfs; ! 22: register struct SSAPref *sf; ! 23: register struct PSAPaddr *pa; ! 24: struct RtSAPconnect rtcs; ! 25: register struct RtSAPconnect *rtc = &rtcs; ! 26: struct AcSAPrelease acrs; ! 27: register struct AcSAPrelease *acr = &acrs; ! 28: struct RtSAPindication rtis; ! 29: register struct RtSAPindication *rti = &rtis; ! 30: register struct RtSAPabort *rta = &rti -> rti_abort; ! 31: register AEI aei; ! 32: register OID ctx, pci; ! 33: struct PSAPctxlist pcs; ! 34: register struct PSAPctxlist *pc = &pcs; ! 35: int wantabort; ! 36: ! 37: if ((aei = str2aei (argv[1], myservice)) == NULLAEI) ! 38: fprintf(errfp, "%s-%s: unknown application-entity", argv[1], myservice); ! 39: if ((pa = aei2addr (aei)) == NULLPA) ! 40: fprintf(errfp, "address translation failed"); ! 41: if ((ctx = ode2oid (mycontext)) == NULLOID) ! 42: fprintf(errfp, "%s: unknown object descriptor", mycontext); ! 43: if ((ctx = oid_cpy (ctx)) == NULLOID) ! 44: fprintf(errfp, "oid_cpy"); ! 45: if ((pci = ode2oid (mypci)) == NULLOID) ! 46: fprintf(errfp, "%s: unknown object descriptor", mypci); ! 47: if ((pci = oid_cpy (pci)) == NULLOID) ! 48: fprintf(errfp, "oid_cpy"); ! 49: pc -> pc_nctx = 1; ! 50: pc -> pc_ctx[0].pc_id = 1; ! 51: pc -> pc_ctx[0].pc_asn = pci; ! 52: pc -> pc_ctx[0].pc_atn = NULLOID; ! 53: ! 54: ! 55: if ((sf = addr2ref (PLocalHostName ())) == NULL) { ! 56: sf = &sfs; ! 57: (void) bzero ((char *) sf, sizeof *sf); ! 58: } ! 59: ! 60: if (argc > 2) ! 61: wantabort = 1; /* Want to do an abort */ ! 62: else ! 63: wantabort = 0; ! 64: ! 65: /* read command line arguments here... */ ! 66: ! 67: fprintf(errfp, "RT-OPEN.REQUEST:\n"); ! 68: if (RtOpenRequest (RTS_TWA, RTS_INITIATOR, ctx, NULLAEI, NULLAEI, ! 69: NULLPA, pa, pc, NULLOID, 0, NULLQOS, rtc, rti) ! 70: == NOTOK) ! 71: fprintf(errfp, "RT-OPEN.REQUEST: %s", RtErrString (rta -> rta_reason)); ! 72: ! 73: if (rtc -> rtc_result != RTS_ACCEPT) ! 74: fprintf(errfp, "association rejected: %s", ! 75: RtErrString (rta->rta_reason)); ! 76: ! 77: sd = rtc -> rtc_sd; ! 78: RTCFREE (rtc); ! 79: ! 80: /* ! 81: * General run through of all the primatives ! 82: * Send using both types of transfer then switch over checking that ! 83: * Please and Give both work. Then receive both types of transfer from ! 84: * the receiving end and then switch over again test that transmitting ! 85: * still works ! 86: */ ! 87: ! 88: oper(sd, SIMP_SEND); ! 89: ! 90: oper(sd, CPLX_SEND); ! 91: ! 92: oper(sd, RCV_PLS); ! 93: ! 94: oper(sd, SEND_GIVE); ! 95: ! 96: oper(sd, SIMP_RCV); ! 97: ! 98: oper(sd, CPLX_RCV); ! 99: ! 100: oper(sd, SEND_PLS); ! 101: ! 102: oper(sd, RCV_GIVE); ! 103: ! 104: oper(sd, CPLX_SEND); ! 105: ! 106: if (wantabort) ! 107: oper(sd, SEND_ABRT); ! 108: else ! 109: oper(sd, SEND_CLOSE); ! 110: ! 111: exit (0); ! 112: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.