📄 rosaplose.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 + -