|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T p
Length: 2544 (0x9f0) Types: TextFile Names: »psap.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« └─⟦de7628f85⟧ └─⟦this⟧ »isode-6.0/dsap/common/psap.c«
/* psap.c - General PSAP utility routines */ #ifndef lint static char *rcsid = "$Header: /f/osi/dsap/common/RCS/psap.c,v 7.0 89/11/23 21:44:24 mrose Rel $"; #endif /* * $Header: /f/osi/dsap/common/RCS/psap.c,v 7.0 89/11/23 21:44:24 mrose Rel $ * * * $Log: psap.c,v $ * Revision 7.0 89/11/23 21:44:24 mrose * Release 6.0 * */ /* * NOTICE * * Acquisition, use, and distribution of this module and related * materials are subject to the restrictions of a license agreement. * Consult the Preface in the User's Manual for the full terms of * this agreement. * */ /* LINTLIBRARY */ #include "quipu/util.h" #include "quipu/attr.h" #include "psap.h" #include "isoaddrs.h" extern LLog * log_dsap; psap_free (psap) struct PSAPaddr * psap; { free ((char *)psap) ; } struct PSAPaddr * psap_cpy (a) struct PSAPaddr * a; { struct PSAPaddr * r; r = (struct PSAPaddr *) smalloc (sizeof (struct PSAPaddr)); bzero ((char *) r,sizeof (struct PSAPaddr)); *r = *a; /* struct copy */ return (r); } psap_dup (r,a) struct PSAPaddr * r, * a; { *r = *a; /* struct copy */ } static psap_cmp (r,a) struct PSAPaddr *r, *a; { return (bcmp ((char *) r, (char *) a, sizeof *a) ? (-1) : 0); } static PE psap_enc (p) struct PSAPaddr *p; { PE ret_pe; if (encode_DO_ISODEPresentationAddress (&ret_pe,0,0,NULLCP,p) == NOTOK ) { ret_pe = NULLPE; LLOG (log_dsap,LLOG_EXCEPTIONS, ("Failed to encode PSAP")); } return (ret_pe); } static struct PSAPaddr * psap_dec (pe) PE pe; { struct PSAPaddr * psap; psap = (struct PSAPaddr *) calloc (1,sizeof (struct PSAPaddr)); if (decode_DO_ISODEPresentationAddress (pe,1,NULLIP,NULLVP,psap) == NOTOK) { free ((char *)psap); return (NULLPA); } return (psap); } static struct PSAPaddr * psap_parse (s) char * s; { struct PSAPaddr *pa; struct PSAPaddr *psap; psap = (struct PSAPaddr *) calloc (1,sizeof (struct PSAPaddr)); if (pa=str2paddr(s)) { *psap = *pa; /* struct copy */ return (psap); } else { parse_error ("invalid presentation address %s",s); free ((char *)psap); return (NULLPA); } } static psap_print (ps,p,format) PS ps; struct PSAPaddr *p; int format; { if (format != READOUT) ps_printf (ps, "%s", _paddr2str(p,NULLNA,-1)); else ps_printf (ps, "%s", paddr2str(p,NULLNA)); } psap_syntax () { (void) add_attribute_syntax ("presentationAddress", (IFP) psap_enc, (IFP) psap_dec, (IFP) psap_parse, psap_print, (IFP) psap_cpy, psap_cmp, psap_free, NULLCP, NULLIFP, TRUE ); }