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

📄 rosaplose.c

📁 ftam等标准协议服务器和客户端的源代码。
💻 C
字号:
/* rosaplose.c - ROPM: you lose */#ifndef	lintstatic char *rcsid = "$Header: /f/iso/rosap/RCS/rosaplose.c,v 5.0 88/07/21 14:56:12 mrose Rel $";#endif/*  * $Header: /f/iso/rosap/RCS/rosaplose.c,v 5.0 88/07/21 14:56:12 mrose Rel $ * * Based on an TCP-based implementation by George Michaelson of University * College London. * * * $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. * *//* LINTLIBRARY */#include <stdio.h>#include <varargs.h>#include "ropkt.h"/*  */#ifndef	lintint	ropktlose (va_alist)va_dcl{    int	    reason,    	    result,    	    value;    register struct assocblk *acb;    register struct RoSAPindication *roi;    va_list ap;    va_start (ap);    acb = va_arg (ap, struct assocblk *);    roi = va_arg (ap, struct RoSAPindication *);    reason = va_arg (ap, int);    result = _rosaplose (roi, reason, ap);    va_end (ap);#ifdef HULA    return result;#else    if (acb == NULLACB	    || acb -> acb_fd == NOTOK	    || acb -> acb_ropktlose == NULLIFP)	return result;    switch (reason) {	case ROS_PROTOCOL: 	    value = ABORT_PROTO;	    break;	case ROS_CONGEST: 	    value = ABORT_TMP;	    break;	default: 	    value = ABORT_LSP;	    break;    }    (*acb -> acb_ropktlose) (acb, value);    return result;#endif}#else/* VARARGS */int	ropktlose (acb, roi, reason, what, fmt)struct assocblk *acb;struct RoSAPindication *roi;int     reason;char   *what,       *fmt;{    return ropktlose (acb, roi, reason, what, fmt);}#endif/*  */#ifndef	lintint	rosapreject (va_alist)va_dcl{    int	    reason,    	    result;    register struct assocblk *acb;    struct RoSAPindication  rois;    register struct RoSAPindication *roi;    va_list ap;    va_start (ap);    acb = va_arg (ap, struct assocblk *);    roi = va_arg (ap, struct RoSAPindication *);    reason = va_arg (ap, int);        result = _rosaplose (roi, reason, ap);    va_end (ap);    if (RoURejectRequestAux (acb, NULLIP, reason - REJECT_GENERAL_BASE,		REJECT_GENERAL, 0, &rois) == NOTOK	    && ROS_FATAL (rois.roi_preject.rop_reason)) {	*roi = rois;		/* struct copy */	result = NOTOK;    }    return result;}#else/* VARARGS */int	rosapreject (acb, roi, reason, what, fmt)struct assocblk *acb;struct RoSAPindication *roi;int     reason;char   *what,       *fmt;{    return rosapreject (acb, roi, reason, what, fmt);}#endif/*  */#ifndef	lintint	rosaplose (va_alist)va_dcl{    int	    reason,	    result;    struct RoSAPindication *roi;    va_list (ap);    va_start (ap);    roi = va_arg (ap, struct RoSAPindication *);    reason = va_arg (ap, int);    result = _rosaplose (roi, reason, ap);    va_end (ap);    return result;}#else/* VARARGS */int	rosaplose (roi, reason, what, fmt)struct RoSAPindication *roi;int	reason;char   *what,       *fmt;{    return rosaplose (roi, reason, what, fmt);}#endif/*  */#ifndef	lintstatic int  _rosaplose (roi, reason, ap)  /* what, fmt, args ... */register struct RoSAPindication *roi;int     reason;va_list	ap;{    register char  *bp;    char    buffer[BUFSIZ];    register struct RoSAPpreject *rop;    if (roi) {	bzero ((char *) roi, sizeof *roi);	roi -> roi_type = ROI_PREJECT;	rop = &roi -> roi_preject;	asprintf (bp = buffer, ap);	bp += strlen (bp);	rop -> rop_reason = reason;	copyRoSAPdata (buffer, bp - buffer, rop);    }    return NOTOK;}#endif

⌨️ 快捷键说明

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