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

📄 ssap.h

📁 ftam等标准协议服务器和客户端的源代码。
💻 H
📖 第 1 页 / 共 2 页
字号:
    int	    st_cc;		/*   length */    char   *st_data;		/*   data */};#define	STFREE(st) \{ \    if ((st) -> st_data) \	free ((st) -> st_data), (st) -> st_data = NULL; \}struct SSAPsync {		/* S-*-SYNC.{INDICATION,CONFIRMATION} */    int	    sn_type;		/* type of indication/confirmation */#define	SN_MAJORIND	0x00	/* S-MAJOR-SYNC.INDICATION */#define	SN_MAJORCNF	0x01	/* S-MAJOR-SYNC.CONFIRMATION */#define	SN_MINORIND	0x02	/* S-MINOR-SYNC.INDICATION */#define	SN_MINORCNF	0x03	/* S-MINOR-SYNC.CONFIRMATION */#define	SN_RESETIND	0x04	/* S-RESYNCHRONIZE.INDICATION */#define	SN_RESETCNF	0x05	/* S-RESYNCHRONIZE.CONFIRMATION */    int	    sn_options;		/* options (!!) */				/* for S-MINOR-SYNC.INDICATION */#define	SYNC_CONFIRM	1	/* wants confirmation */#define	SYNC_NOCONFIRM	0	/*   .. nope */				/* for S-RESYNCHRONIZE.INDICATION */#define	SYNC_RESTART	0	/* restart */#define	SYNC_ABANDON	1	/* abandon */#define	SYNC_SET	2	/* set */    long    sn_ssn;		/* serial number */#define	SERIAL_NONE	(-1L)	/* No SSN */#define	SERIAL_MIN	000000L	/* the min SSN */#define	SERIAL_MAX	999998L	/* the max SSN */    int	    sn_settings;	/* new token settings (RESYNC only) */				/* sync data from peer */#define	SN_SIZE		512    int	    sn_cc;		/*   length */    char   *sn_data;		/*   data */};#define	SNFREE(sn) \{ \    if ((sn) -> sn_data) \	free ((sn) -> sn_data), (sn) -> sn_data = NULL; \}struct SSAPactivity {		/* S-ACTIVITY-*.{INDICATION,CONFIRMATION} */    int	    sv_type;		/* type of indication/confirmation */#define	SV_START	0x00	/* S-ACTIVITY-START.INDICATION */#define	SV_RESUME	0x01	/* S-ACTIVITY-RESUME.INDICATION */#define	SV_INTRIND	0x02	/* S-ACTIVITY-INTERRUPT.INDICATION */#define	SV_INTRCNF	0x03	/* S-ACTIVITY-INTERRUPT.CONFIRMATION */#define	SV_DISCIND	0x04	/* S-ACTIVITY-DISCARD.INDICATION */#define	SV_DISCCNF	0x05	/* S-ACTIVITY-DISCARD.CONFIRMATION */#define	SV_ENDIND	0x06	/* S-ACTIVITY-END.INDICATION */#define	SV_ENDCNF	0x07	/* S-ACTIVITY-END.CONFIRMATION */    struct SSAPactid sv_id;	/* START/RESUME activity identifier */    struct SSAPactid sv_oid;	/* RESUME old activity identifier */    struct SSAPref   sv_connect;/* 	  old connection identifier */    long    sv_ssn;		/* RESUME/END Serial number */    int	    sv_reason;		/* INTERRUPT/DISCARD */				/* same values as sp_reason */        				/* activity DATA from peer */#define	SV_SIZE		512    int	    sv_cc;		/*   length */    char   *sv_data;		/*   data */};#define	SVFREE(sv) \{ \    if ((sv) -> sv_data) \	free ((sv) -> sv_data), (sv) -> sv_data = NULL; \}struct SSAPreport {		/* S-{U,P}-EXCEPTION-REPORT.INDICATION */    int	    sp_peer;		/* T   = S-U-EXCEPTION-REPORT.INDICATION:					sp_reason/sp_data both meaningful				   NIL = S-P-EXCEPTION-REPORT.INDICATION:					sp_reason == SP_NOREASON, or					sp_reason == SP_PROTOCOL */    int	    sp_reason;#define	SP_NOREASON	0	/* No specific reason stated */#define	SP_JEOPARDY	1	/* User receiving ability jeopardized */#define	SP_RSVD1	2	/* reserved */#define	SP_SEQUENCE	3	/* User sequence error */#define	SP_RSVD2	4	/* reserved */#define	SP_LOCAL	5	/* Local SS-user error */#define	SP_PROCEDURAL	6	/* Unrecoverable procedural error */#define	SP_DEMAND	128	/* Demand data token */#define	SP_PROTOCOL	(-1)	/* SS-provider protocol error */				/* report DATA from peer */#define	SP_SIZE		512    int	    sp_cc;		/*   length */    char   *sp_data;		/*   data */};#define	SPFREE(sp) \{ \    if ((sp) -> sp_data) \	free ((sp) -> sp_data), (sp) -> sp_data = NULL; \}struct SSAPfinish {		/* S-RELEASE.INDICATION */				/* release DATA from peer */#define	SF_SIZE		512    int	    sf_cc;		/*   length */    char   *sf_data;		/*   data */};#define	SFFREE(sf) \{ \    if ((sf) -> sf_data) \	free ((sf) -> sf_data), (sf) -> sf_data = NULL; \}struct SSAPrelease {		/* S-RELEASE.CONFIRMATION */    int	    sr_affirmative;	/* T   = connection released				   NIL = request refused */				/* release DATA from peer */#define	SR_SIZE		512    int	    sr_cc;		/*   length */    char   *sr_data;		/*   data */};#define	SRFREE(sr) \{ \    if ((sr) -> sr_data) \	free ((sr) -> sr_data), (sr) -> sr_data = NULL; \}struct SSAPabort {		/* S-{U,P}-ABORT.INDICATION */    int	    sa_peer;		/* T   = S-U-ABORT.INDICATION:					     sa_info/sa_cc is meaningful				   NIL = S-P-ABORT.INDICATION:					     sa_reason is meaningful,					     sa_data/sa_cc contains diagnostics */    int	    sa_reason;		/* same codes as sc_result */				/* abort DATA from peer */#define	SA_SIZE		512	/* N.B.: the ISO DIS says 9, but we use				   512 instead so ASE-level aborts will work				   reasonably */    int	    sa_cc;		/*   length */    char   *sa_info;		/*   data (from the peer) */    char   *sa_realinfo;	/*   real head of data */    char    sa_data[512];	/*   data (for messages from provider) */};#define	SAFREE(sa) \{ \    if ((sa) -> sa_realinfo) \	free ((sa) -> sa_realinfo), (sa) -> sa_realinfo = NULL; \}struct SSAPindication {    int	    si_type;		/* the union element present */#define	SI_DATA		0x00#define	SI_TOKEN	0x01#define	SI_SYNC		0x02#define	SI_ACTIVITY	0x03#define	SI_REPORT	0x04#define	SI_FINISH	0x05#define	SI_ABORT	0x06#ifdef HULA#define SI_UNITDATA	0xFF	/* unit data indication */#define SI_UDERROR      0xF0 	/* unit data error indication */#endif    union {	struct SSAPdata si_un_data;	struct SSAPtoken si_un_token;	struct SSAPsync si_un_sync;	struct SSAPactivity si_un_activity;	struct SSAPreport si_un_report;	struct SSAPfinish si_un_finish;	struct SSAPabort si_un_abort;    }	si_un;#define	si_data		si_un.si_un_data#define	si_token	si_un.si_un_token#define	si_sync		si_un.si_un_sync#define	si_activity	si_un.si_un_activity#define	si_report	si_un.si_un_report#define	si_finish	si_un.si_un_finish#define	si_abort	si_un.si_un_abort};/*  */extern char *ssapversion;int	SExec ();		/* SERVER only */int	SInit ();		/* S-CONNECT.INDICATION */int	SConnResponse ();	/* S-CONNECT.RESPONSE */int	SConnRequest ();	/* S-CONNECT.REQUEST (backwards-compatible) */#define	SConnRequest(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \	SAsynConnRequest (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,0)int	SAsynConnRequest ();	/* S-(ASYN-)CONNECT.REQUEST */int	SAsynRetryRequest ();	/* S-ASYN-RETRY.REQUEST (pseudo) */int	SDataRequest ();	/* S-DATA.REQUEST */int	SWriteRequest ();	/* S-WRITE.REQUEST (pseudo) */int	SExpdRequest ();	/* S-EXPEDITED-DATA.REQUEST */int	STypedRequest ();	/* S-TYPED-DATA.REQUEST */int	SCapdRequest ();	/* S-CAPABILITY-DATA.REQUEST */int	SCapdResponse ();	/* S-CAPABILITY-DATA.RESPONSE */int	SReadRequest ();	/* S-READ.REQUEST (pseudo) */int	SGTokenRequest ();	/* S-TOKEN-GIVE.REQUEST */int	SPTokenRequest ();	/* S-TOKEN-PLEASE.REQUEST */int	SGControlRequest ();	/* S-CONTROL-GIVE.REQUEST */int	SMajSyncRequest ();	/* S-MAJOR-SYNC.REQUEST */int	SMajSyncResponse ();	/* S-MAJOR-SYNC.RESPONSE */int	SMinSyncRequest ();	/* S-MINOR-SYNC.REQUEST */int	SMinSyncResponse ();	/* S-MINOR-SYNC.RESPONSE */int	SReSyncRequest ();	/* S-RESYNCHRONIZE.REQUEST */int	SReSyncResponse ();	/* S-RESYNCHRONIZE.RESPONSE */int	SActStartRequest ();	/* S-ACTIVITY-START.REQUEST */int	SActResumeRequest ();	/* S-ACTIVITY-RESUME.REQUEST */int	SActIntrRequest ();	/* S-ACTIVITY-INTERRUPT.REQUEST */int	SActIntrResponse ();	/* S-ACTIVITY-INTERRUPT.RESPONSE */int	SActDiscRequest ();	/* S-ACTIVITY-DISCARD.REQUEST */int	SActDiscResponse ();	/* S-ACTIVITY-DISCARD.RESPONSE */int	SActEndRequest ();	/* S-ACTIVITY-END.REQUEST */int	SActEndResponse ();	/* S-ACTIVITY-END.RESPONSE */int	SUAbortRequest ();	/* S-U-ABORT.REQUEST */int	SUReportRequest ();	/* S-U-EXCEPTION-REPORT.REQUEST */int	SRelRequest ();		/* S-RELEASE.REQUEST */int	SRelResponse ();	/* S-RELEASE.RESPONSE */#ifdef HULAint	SUnitDataBind();	/* bind local to a remote address */int	SUnitDataUnbind();	/* unbind local from a remote address */int	SUnitDataSetupRead();	/* set up read data for server */int	SUnitDataWrite();	/* UNITDATA.request (with handle) */int	SUnitDataRead();	/* UNITDATA.indication (with handle) */int	SUnitDataRequest();	/* UNITDATA.request (without handle) */int	SUnitDataSelectMask();	/* set the select mask for async */#endifint	SSetIndications ();	/* define vectors for INDICATION events */int	SSelectMask ();		/* map session descriptors for select() */char   *SErrString ();		/* return SSAP error code in string form */#define	SLocalHostName	getlocalhostchar   *SLocalHostName ();	/* return name of local host (sigh) */#endif

⌨️ 快捷键说明

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