⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtsap.h

📁 ftam等标准协议服务器和客户端的源代码。
💻 H
字号:
/* rtsap.h - include file for reliable transfer users (RtS-USER) *//*  * $Header: /f/iso/h/RCS/rtsap.h,v 5.0 88/07/21 14:39:30 mrose Rel $ * * * $Log$ *//* *				  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. * */#ifndef	_RtSAP_#define	_RtSAP_#ifndef	_MANIFEST_#include "manifest.h"#endif#ifndef	_GENERAL_#include "general.h"#endif#include "acsap.h"		/* definitions for AcS-USERs *//*  */struct RtSAPaddr {		/* RtSAP address (old-style) */    struct SSAPaddr rta_addr;    u_short	rta_port;};#define	NULLRtA			((struct RtSAPaddr *) 0)/*  */struct RtSAPstart {		/* RT-OPEN.INDICATION */    int	    rts_sd;		/* RTS descriptor */    struct RtSAPaddr rts_initiator;/* address */    int	    rts_mode;		/* dialogue mode */#define	RTS_MONOLOGUE	0	/*   monologue */#define	RTS_TWA		1	/*   two-way alternate */    int	    rts_turn;		/* initial turn */#define	RTS_INITIATOR	0	/*   the initiator */#define	RTS_RESPONDER	1	/*   the responder */    u_short rts_port;		/* application number */    PE	    rts_data;		/* initial DATA from peer */    struct AcSAPstart rts_start;/* info from A-ASSOCIATE.INDICATION */};#define	RTSFREE(rts) \{ \    if ((rts) -> rts_data) \	pe_free ((rts) -> rts_data), (rts) -> rts_data = NULLPE; \    ACSFREE (&((rts) -> rts_start)); \}struct RtSAPconnect {		/* RT-OPEN.CONFIRMATION */    int	    rtc_sd;		/* RTS descriptor */    int	    rtc_result;		/* disposition */#define	RTS_ACCEPT	(-1)				/* RT-OPEN.REQUEST */#define	RTS_BUSY	0	/* Busy */#define	RTS_RECOVER	1	/* Cannot recover */#define	RTS_VALIDATE	2	/* Validation failure */#define	RTS_MODE	3	/* Unacceptable dialogue mode */#define	RTS_REJECT	4	/* Rejected by responder */    PE	    rtc_data;		/* initial DATA from peer */    struct AcSAPconnect rtc_connect;/* info from A-ASSOCIATE.CONFIRMATION */};#define	RTCFREE(rtc) \{ \    if ((rtc) -> rtc_data) \	pe_free ((rtc) -> rtc_data), (rtc) -> rtc_data = NULLPE; \    ACCFREE (&((rtc) -> rtc_connect)); \}struct RtSAPturn {		/* RT-TURN-{GIVE,PLEASE}.INDICATION */    int	    rtu_please;		/* T   = RT-TURN-PLEASE.INDICATION				   NIL = RT-TURN-GIVE.INDICATION */    int	    rtu_priority;	/* priority, iff rtu_please == T */};struct RtSAPtransfer {		/* RT-TRANSFER.INDICATION */    PE	    rtt_data;};#define	RTTFREE(rtt) \{ \    if ((rtt) -> rtt_data) \	pe_free ((rtt) -> rtt_data), (rtt) -> rtt_data = NULLPE; \}struct RtSAPabort {		/* RT-{U,P}-ABORT.INDICATION */    int     rta_peer;		/* T   = RT-U-ABORT.INDICATION				   NIL = RT-P-ABORT.INDICATION */    int	    rta_reason;		/* reason */				/* begin UNOFFICIAL */#define	RTS_ADDRESS	5	/* Address unknown */#define	RTS_REFUSED	6	/* Connect request refused on this network				   connection */#define	RTS_SESSION	7	/* Session disconnect */#define	RTS_PROTOCOL	8	/* Protocol error */#define	RTS_CONGEST	9	/* Congestion at RtSAP */#define	RTS_REMOTE	10	/* Remote system problem */#define	RTS_PRESENTATION 11	/* Presentation disconnect */#define	RTS_ACS		12	/* ACS disconnect */#define	RTS_ABORTED	13	/* Peer aborted association */#define	RTS_PARAMETER	14	/* Invalid parameter */#define	RTS_OPERATION	15	/* Invalid operation */#define	RTS_TIMER	16	/* Timer expired */#define	RTS_WAITING	17	/* Indications waiting */#define	RTS_TRANSFER	18	/* Transfer failure (not really unofficial) */				/* end UNOFFICIAL */#define	RTS_FATAL(r)	((r) < RTS_PARAMETER)#define	RTS_OFFICIAL(r)	((r) < RTS_ADDRESS)    PE	    rta_udata;		/* failure data from user */				/* additional failure data from provider */#define	RTA_SIZE	512    int	    rta_cc;		/*   length */    char    rta_data[RTA_SIZE];	/*   data */};#define	RTAFREE(rta) \{ \    if ((rta) -> rta_udata) \	pe_free ((rta) -> rta_udata), (rta) -> rta_udata = NULLPE; \}struct RtSAPclose {		/* RT-CLOSE.INDICATION */    int	    rtc_dummy;};struct RtSAPindication {    int	    rti_type;		/* the union element present */#define	RTI_TURN	0x00#define	RTI_TRANSFER	0x01#define	RTI_ABORT	0x02#define	RTI_CLOSE	0x03#define	RTI_FINISH	0x04    union {	struct RtSAPturn rti_un_turn;	struct RtSAPtransfer rti_un_transfer;	struct RtSAPabort rti_un_abort;	struct RtSAPclose rti_un_close;	struct AcSAPfinish rti_un_finish;    }	rti_un;#define	rti_turn	rti_un.rti_un_turn#define	rti_transfer	rti_un.rti_un_transfer#define	rti_abort	rti_un.rti_un_abort#define	rti_close	rti_un.rti_un_close#define	rti_finish	rti_un.rti_un_finish};    /*  */extern char *rtsapversion;				/* RTSE primitives */int	RtInit ();		/* RT-OPEN.INDICATION */int	RtOpenResponse ();	/* RT-OPEN.RESPONSE */int	RtOpenRequest ();	/* RT-OPEN.REQUEST */int	RtCloseRequest ();	/* RT-CLOSE.REQUEST */int	RtCloseResponse ();	/* RT-CLOSE.RESPONSE */int	RtUAbortRequest ();	/* RT-U-ABORT.REQUEST */				/* X.410 primitives */int	RtExec ();		/* SERVER only */int	RtBInit ();		/* RT-BEGIN.INDICATION (X.410 OPEN.INDICATION) */int	RtBeginResponse ();	/* RT-BEGIN.RESPONSE (X.410 OPEN.RESPONSE) */int	RtBeginRequest ();	/* RT-BEGIN.REQUEST (X.410 OPEN.REQUEST) */int	RtEndRequest ();	/* RT-END.REQUEST (X.410 CLOSE.REQUEST) */int	RtEndResponse ();	/* RT-END.RESPONSE (X.410 CLOSE.RESPONSE) */int	RtPTurnRequest ();	/* RT-TURN-PLEASE.REQUEST */int	RtGTurnRequest ();	/* RT-TURN-GIVE.REQUEST */int	RtTransferRequest ();	/* RT-TRANSFER.REQUEST */int	RtWaitRequest ();	/* RT-WAIT.REQUEST (pseudo) */int	RtSetIndications ();	/* define vectors for INDICATION events */int	RtSelectMask ();	/* map reliable transfer descriptors for				   select() */char   *RtErrString ();		/* return RtSAP error code in string form */#endif

⌨️ 快捷键说明

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