|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 3210 (0xc8a)
Types: TextFile
Names: »tsaplose.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z«
└─⟦d846658bd⟧
└─⟦this⟧ »osimis/misode/tsap/tsaplose.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z«
└─⟦de7628f85⟧
└─⟦this⟧ »isode-6.0/tsap/tsaplose.c«
/* tsaplose.c - TPM: you lose */
#ifndef lint
static char *rcsid = "$Header: /f/osi/tsap/RCS/tsaplose.c,v 7.1 89/12/07 22:15:50 mrose Exp $";
#endif
/*
* $Header: /f/osi/tsap/RCS/tsaplose.c,v 7.1 89/12/07 22:15:50 mrose Exp $
*
*
* $Log: tsaplose.c,v $
* Revision 7.1 89/12/07 22:15:50 mrose
* touch-up
*
* Revision 7.0 89/11/23 22:30:51 mrose
* Release 6.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 <stdio.h>
#include <varargs.h>
#include "tpkt.h"
#include "mpkt.h"
#include "tailor.h"
#ifdef LPP
#undef MGMT
#endif
/* \f
*/
#ifndef lint
int tpktlose (va_alist)
va_dcl
{
int reason,
result;
register struct tsapblk *tb;
struct TSAPdisconnect tds;
register struct TSAPdisconnect *td;
va_list ap;
va_start (ap);
tb = va_arg (ap, struct tsapblk *);
td = va_arg (ap, struct TSAPdisconnect *);
if (td == NULL)
td = &tds;
reason = va_arg (ap, int);
result = _tsaplose (td, reason, ap);
va_end (ap);
if (td -> td_cc > 0) {
SLOG (tsap_log, LLOG_EXCEPTIONS, NULLCP,
("tpktlose [%s] %*.*s", TErrString (td -> td_reason), td -> td_cc,
td -> td_cc, td -> td_data));
}
else
SLOG (tsap_log, LLOG_EXCEPTIONS, NULLCP,
("tpktlose [%s]", TErrString (td -> td_reason)));
#ifdef MGMT
if (tb -> tb_manfnx)
switch (reason) {
case DR_REMOTE:
case DR_CONGEST:
(*tb -> tb_manfnx) (CONGEST, tb);
break;
case DR_PROTOCOL:
case DR_MISMATCH:
(*tb -> tb_manfnx) (PROTERR, tb);
break;
case DR_SESSION:
case DR_ADDRESS:
case DR_CONNECT:
case DR_DUPLICATE:
case DR_OVERFLOW:
case DR_REFUSED:
(*tb -> tb_manfnx) (CONFIGBAD, tb);
break;
default:
(*tb -> tb_manfnx) (OPREQINBAD, tb);
}
#endif
(*tb -> tb_losePfnx) (tb, reason, td);
return result;
}
#else
/* VARARGS5 */
int tpktlose (tb, td, reason, what, fmt)
struct tsapblk *tb;
struct TSAPdisconnect *td;
int reason;
char *what,
*fmt;
{
return tpktlose (tb, td, reason, what, fmt);
}
#endif
/* \f
*/
#ifndef lint
int tsaplose (va_alist)
va_dcl
{
int reason,
result;
struct TSAPdisconnect *td;
va_list ap;
va_start (ap);
td = va_arg (ap, struct TSAPdisconnect *);
reason = va_arg (ap, int);
result = _tsaplose (td, reason, ap);
va_end (ap);
return result;
}
#else
/* VARARGS4 */
int tsaplose (td, reason, what, fmt)
struct TSAPdisconnect *td;
int reason;
char *what,
*fmt;
{
return tsaplose (td, reason, what, fmt);
}
#endif
/* \f
*/
#ifndef lint
static int _tsaplose (td, reason, ap) /* what, fmt, args ... */
register struct TSAPdisconnect *td;
int reason;
va_list ap;
{
register char *bp;
char buffer[BUFSIZ];
if (td) {
bzero ((char *) td, sizeof *td);
asprintf (bp = buffer, ap);
bp += strlen (bp);
td -> td_reason = reason;
copyTSAPdata (buffer, bp - buffer, td);
}
return NOTOK;
}
#endif