|
|
1.1 ! root 1: /* acsaptest.c - test out -lacsap */ ! 2: ! 3: #ifndef lint ! 4: static char *rcsid = "$Header: /f/osi/acsap/RCS/acsaptest.c,v 7.3 90/07/27 08:41:44 mrose Exp $"; ! 5: #endif ! 6: ! 7: /* ! 8: * $Header: /f/osi/acsap/RCS/acsaptest.c,v 7.3 90/07/27 08:41:44 mrose Exp $ ! 9: * ! 10: * ! 11: * $Log: acsaptest.c,v $ ! 12: * Revision 7.3 90/07/27 08:41:44 mrose ! 13: * update ! 14: * ! 15: * Revision 7.2 90/07/09 14:30:43 mrose ! 16: * sync ! 17: * ! 18: * Revision 7.1 90/07/01 21:02:11 mrose ! 19: * pepsy ! 20: * ! 21: * Revision 7.0 89/11/23 21:22:01 mrose ! 22: * Release 6.0 ! 23: * ! 24: */ ! 25: ! 26: /* ! 27: * NOTICE ! 28: * ! 29: * Acquisition, use, and distribution of this module and related ! 30: * materials are subject to the restrictions of a license agreement. ! 31: * Consult the Preface in the User's Manual for the full terms of ! 32: * this agreement. ! 33: * ! 34: */ ! 35: ! 36: ! 37: #include <stdio.h> ! 38: #define ACSE ! 39: #include "acpkt.h" ! 40: #include "isoservent.h" ! 41: #include "tailor.h" ! 42: #include "psap.h" ! 43: #include "DSE-types.h" ! 44: #include "UNIV-types.h" ! 45: ! 46: ! 47: #define NULLIE ((struct isoentity *) 0) ! 48: ! 49: ! 50: char *macro2str (); ! 51: struct TSAPaddr *ta2norm (); ! 52: ! 53: /* */ ! 54: ! 55: /* ARGSUSED */ ! 56: ! 57: main (argc, argv, envp) ! 58: int argc; ! 59: char **argv, ! 60: **envp; ! 61: { ! 62: AEI aei; ! 63: register struct PSAPaddr *pa; ! 64: register struct isoentity *ie; ! 65: register struct isobject *io; ! 66: register struct isoservent *is; ! 67: ! 68: isodetailor (argv[0], 1); ! 69: ! 70: argc--, argv++; ! 71: switch (argc) { ! 72: case 1: ! 73: if (strcmp (*argv, "-version") == 0) { ! 74: printf ("%s\n", acsapversion); ! 75: break; ! 76: } ! 77: if (!(pa = str2paddr (*argv))) ! 78: goto you_lose; ! 79: printent (NULLIE, NULLAEI, pa); ! 80: break; ! 81: ! 82: case 2: ! 83: case 3: ! 84: if (strcmp (argv[0], "-macro") == 0) { ! 85: char *cp; ! 86: ! 87: if ((cp = macro2str (argv[1])) == NULL) ! 88: goto you_lose; ! 89: printf ("%s\n", cp); ! 90: break; ! 91: } ! 92: ! 93: if (!(aei = _str2aei (argv[0], *argv[1] ? argv[1] : NULLCP, ! 94: argv[2], isatty (fileno (stdin))))) { ! 95: fprintf (stderr, "name translation failed: %s\n", PY_pepy); ! 96: goto you_lose; ! 97: } ! 98: printent (NULLIE, aei, NULLPA); ! 99: ! 100: if (!(pa = aei2addr (aei))) { ! 101: fprintf (stderr, "address translation failed\n"); ! 102: goto you_lose; ! 103: } ! 104: printent (NULLIE, NULLAEI, pa); ! 105: break; ! 106: ! 107: default: ! 108: printf ("ISO Entities Database\n"); ! 109: while (ie = getisoentity ()) ! 110: printent (ie, oid2aei (&ie -> ie_identifier), &ie -> ie_addr); ! 111: ! 112: printf ("\nISO Objects Database\n"); ! 113: while (io = getisobject ()) ! 114: printobj (io); ! 115: ! 116: printf ("\nISO Services Database\n"); ! 117: while (is = getisoservent ()) ! 118: printsrv (is); ! 119: break; ! 120: } ! 121: ! 122: exit (0); /* NOTREACHED */ ! 123: ! 124: you_lose: ; ! 125: fprintf (stderr, "no such luck\n"); ! 126: exit (1); /* NOTREACHED */ ! 127: } ! 128: ! 129: /* */ ! 130: ! 131: static printent (ie, aei, pa) ! 132: register struct isoentity *ie; ! 133: AEI aei; ! 134: register struct PSAPaddr *pa; ! 135: { ! 136: if (ie) ! 137: printf ("Entity: %s (%s)\n", ie -> ie_descriptor, ! 138: oid2ode (&ie -> ie_identifier)); ! 139: ! 140: if (aei) ! 141: printf ("AE info: %s\n", sprintaei (aei)); ! 142: ! 143: if (pa) { ! 144: struct PSAPaddr pas; ! 145: register struct TSAPaddr *ta = &pa -> pa_addr.sa_addr; ! 146: PE pe; ! 147: ! 148: printf ("Address: %s\n", paddr2str (pa, NULLNA)); ! 149: ! 150: pe = NULLPE; ! 151: if (build_DSE_PSAPaddr (&pe, 1, NULL, NULLCP, (char *) pa) == NOTOK) { ! 152: printf ("build of PSAPaddr failed: %s\n", PY_pepy); ! 153: goto dont_touch; ! 154: } ! 155: ! 156: bzero ((char *) &pas, sizeof pas); ! 157: if (parse_DSE_PSAPaddr (pe, 1, NULLIP, NULLVP, (char *) &pas) ==NOTOK){ ! 158: printf ("parse of PSAPaddr failed: %s\n", PY_pepy); ! 159: goto dont_touch; ! 160: } ! 161: ! 162: (void) print_DSE_PSAPaddr (pe, 1, NULLIP, NULLVP, NULLCP); ! 163: ! 164: if (bcmp ((char *) pa, (char *) &pas, sizeof pas)) { ! 165: printf ("*** NOT EQUAL ***\n"); ! 166: printf ("\told %s\n", paddr2str (pa, NULLNA)); ! 167: printf ("\tnew %s\n", paddr2str (&pas, NULLNA)); ! 168: } ! 169: ! 170: dont_touch: ; ! 171: if (pe) ! 172: pe_free (pe); ! 173: ! 174: { ! 175: struct TSAPaddr *tz = ta2norm (ta); ! 176: ! 177: if (tz) { ! 178: if (bcmp ((char *) ta, (char *) tz, sizeof *tz)) ! 179: printf ("NORM: %s\n", taddr2str (tz)); ! 180: } ! 181: else ! 182: printf ("*** ta2norm FAILED ***\n"); ! 183: } ! 184: ! 185: } ! 186: ! 187: if (ie || aei || pa) ! 188: printf ("\n"); ! 189: } ! 190: ! 191: /* */ ! 192: ! 193: static printobj (io) ! 194: register struct isobject *io; ! 195: { ! 196: printf ("ODE: \"%s\"\nOID: %s\n\n", io -> io_descriptor, ! 197: sprintoid (&io -> io_identity)); ! 198: } ! 199: ! 200: /* */ ! 201: ! 202: static printsrv (is) ! 203: register struct isoservent *is; ! 204: { ! 205: register int n = is -> is_tail - is -> is_vec - 1; ! 206: register char **ap = is -> is_vec; ! 207: ! 208: printf ("ENT: \"%s\" PRV: \"%s\" SEL: %s\n", ! 209: is -> is_entity, is -> is_provider, ! 210: sel2str (is -> is_selector, is -> is_selectlen, 1)); ! 211: ! 212: for (; n >= 0; ap++, n--) ! 213: printf ("\t%d: \"%s\"\n", ap - is -> is_vec, *ap); ! 214: printf ("\n"); ! 215: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.