|
|
1.1 ! root 1: /* acsapdse.c - application entity info -- directory service interface */ ! 2: ! 3: #ifndef lint ! 4: static char *rcsid = "$Header: /f/osi/acsap/RCS/acsapdse.c,v 7.2 90/07/09 14:30:29 mrose Exp $"; ! 5: #endif ! 6: ! 7: /* ! 8: * $Header: /f/osi/acsap/RCS/acsapdse.c,v 7.2 90/07/09 14:30:29 mrose Exp $ ! 9: * ! 10: * ! 11: * $Log: acsapdse.c,v $ ! 12: * Revision 7.2 90/07/09 14:30:29 mrose ! 13: * sync ! 14: * ! 15: * Revision 7.1 90/07/01 21:01:53 mrose ! 16: * pepsy ! 17: * ! 18: * Revision 7.0 89/11/23 21:21:47 mrose ! 19: * Release 6.0 ! 20: * ! 21: */ ! 22: ! 23: /* ! 24: * NOTICE ! 25: * ! 26: * Acquisition, use, and distribution of this module and related ! 27: * materials are subject to the restrictions of a license agreement. ! 28: * Consult the Preface in the User's Manual for the full terms of ! 29: * this agreement. ! 30: * ! 31: */ ! 32: ! 33: ! 34: /* LINTLIBRARY */ ! 35: ! 36: #include <stdio.h> ! 37: #include "DSE-types.h" ! 38: #include "psap.h" ! 39: #include "isoaddrs.h" ! 40: #include "tailor.h" ! 41: ! 42: /* DATA */ ! 43: ! 44: static AEInfo aeis; ! 45: static struct PSAPaddr pas; ! 46: ! 47: extern PE name2value_dase (); ! 48: ! 49: PE (*acsap_lookup) () = name2value_dase; ! 50: ! 51: /* */ ! 52: ! 53: AEI str2aei_dse (designator, qualifier, context, ontty) ! 54: char *designator, ! 55: *qualifier, ! 56: *context; ! 57: int ontty; ! 58: { ! 59: char *alias, ! 60: name[BUFSIZ]; ! 61: PE pe; ! 62: register AEI aei = &aeis; ! 63: register struct PSAPaddr *pa = &pas; ! 64: static int first_time = 1; ! 65: ! 66: if (first_time) ! 67: first_time = 0; ! 68: else { ! 69: AEIFREE (aei); ! 70: } ! 71: bzero ((char *) aei, sizeof *aei); ! 72: ! 73: if ((alias = alias2name (designator)) == NULL) ! 74: alias = designator; ! 75: (void) strcpy (name, alias); ! 76: ! 77: if (acsap_lookup == NULL) { ! 78: PY_advise (NULLCP, "str2aei_dse: acsap_lookup function not set"); ! 79: SLOG (addr_log, LLOG_EXCEPTIONS, NULLCP, ("%s", PY_pepy)); ! 80: return NULLAEI; ! 81: } ! 82: ! 83: bzero ((char *) pa, sizeof *pa); ! 84: if (pe = (*acsap_lookup) (name, qualifier, context, ontty, ! 85: &aei -> aei_ap_title)) { ! 86: if (parse_DSE_PSAPaddr (pe, 1, NULLIP, NULLVP, (char *) pa) == NOTOK) { ! 87: SLOG (addr_log, LLOG_EXCEPTIONS, NULLCP, ! 88: ("parse of presentationAddress failed: %s", PY_pepy)); ! 89: } ! 90: else ! 91: PLOG (addr_log, print_DSE_PSAPaddr, pe, "address", 1); ! 92: ! 93: pe_free (pe); ! 94: } ! 95: else ! 96: SLOG (addr_log, LLOG_EXCEPTIONS, NULLCP, ! 97: ("directory returns no value")); ! 98: ! 99: return (aei -> aei_ap_title ? aei : NULLAEI); ! 100: } ! 101: ! 102: /* */ ! 103: ! 104: struct PSAPaddr *aei2addr_dse (aei) ! 105: AEI aei; ! 106: { ! 107: register struct PSAPaddr *pa; ! 108: ! 109: if (aei != &aeis) { ! 110: SLOG (addr_log, LLOG_EXCEPTIONS, NULLCP, ! 111: ("aei2addr_dse cache miss on %s", sprintaei (aei))); ! 112: ! 113: return NULLPA; ! 114: } ! 115: ! 116: return ((pa = &pas) -> pa_addr.sa_addr.ta_naddr > 0 ? pa : NULLPA); ! 117: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.