psap.c

来自「ftam等标准协议服务器和客户端的源代码。」· C语言 代码 · 共 134 行

C
134
字号
/* psap.c - General PSAP utility routines */#ifndef lintstatic char *rcsid = "$Header: /xtel/isode/isode/dsap/common/RCS/psap.c,v 9.0 1992/06/16 12:12:39 isode Rel $";#endif/* * $Header: /xtel/isode/isode/dsap/common/RCS/psap.c,v 9.0 1992/06/16 12:12:39 isode Rel $ * * * $Log: psap.c,v $ * Revision 9.0  1992/06/16  12:12:39  isode * Release 8.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"#include "../x500as/DO-types.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 (build_DSE_PSAPaddr (&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 *) smalloc (sizeof *psap);		if (parse_DSE_PSAPaddr (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 );}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?