windows-nt/Source/XPSP1/NT/termsrv/remdsk/rds/t120/mst120/mcslog.h
2020-09-26 16:20:57 +08:00

235 lines
9 KiB
C

/**********************************************************************
* File: mcslog.h
* Abstract: Function headers for protocol logging functions added
* into MCSNC.DLL to read the contents of MCS PDU contents
* sent and received from the T.123 layer.
* Created: 2/18/96, Venkatesh Gopalakrishnan
* Copyright (c) 1996 Microsoft Corpration
******************************************************************** */
/* NOTE: The contents of this file are only included IFF PDULOG is a
* defined constant. This constant will be defined in the Win32 Diagnostic
* build configuration of MCSNC.DLL
*/
#ifdef PDULOG
#ifndef _PROTLOG_H
#define _PROTLOG_H
#include <windows.h>
#include <time.h>
#include <stdio.h>
#include "mpdutype.h"
#include "mcspdu.h"
#define MAXIMUM_PRINT_LENGTH 256
#define LOG_FILE_NAME "mcslog.txt"
#define SENT 0
#define RECEIVED 1
/* Enumerated Data types and corresponding strings used in
* MCS PDUs.
*/
#define NOT_IN_USE 0
#define SELF_GRABBED 1
#define OTHER_GRABBED 2
#define SELF_INHIBITED 3
#define OTHER_INHIBITED 4
#define SELF_RECIPIENT 5
#define SELF_GIVING 6
#define OTHER_GIVING 7
#define NOT_IN_USE_STR "NOT_IN_USE"
#define SELF_GRABBED_STR "SELF_GRABBED"
#define OTHER_GRABBED_STR "OTHER_GRABBED"
#define SELF_INHIBITED_STR "SELF_INHIBITED"
#define OTHER_INHIBITED_STR "OTHER_INHIBITED"
#define SELF_RECPIENT_STR "SELF_RECIPIENT"
#define SELF_GIVING_STR "SELF_GIVING"
#define OTHER_GIVING_STR "OTHER_GIVING"
#define TOP_PRI 0
#define HIGH_PRI 1
#define MEDIUM_PRI 2
#define LOW_PRI 3
#define TOP_STR "TOP_PRIORITY\n"
#define HIGH_STR "HIGH_PRIORITY\n"
#define MEDIUM_STR "MEDIUM_PRIORITY\n"
#define LOW_STR "LOW_PRIORITY\n"
#define RT_SUCCESSFUL 0
#define RT_DOMAIN_MERGING 1
#define RT_DOMAIN_NOT_HIERARCHICAL 2
#define RT_NO_SUCH_CHANNEL 3
#define RT_NO_SUCH_DOMAIN 4
#define RT_NO_SUCH_USER 5
#define RT_NOT_ADMITTED 6
#define RT_OTHER_USER 7
#define RT_PARAMETERS_UNACCEPTABLE 8
#define RT_TOKEN_NOT_AVAILABLE 9
#define RT_TOKEN_NOT_POSESSED 10
#define RT_TOO_MANY_CHANNELS 11
#define RT_TOO_MANY_TOKENS 12
#define RT_TOO_MANY_USERS 13
#define RT_UNSPECIFIED_FAILURE 14
#define RT_USER_REJECTED 15
/***
**** The following function headers are for service functions
**** for logging the value(s) of typical data types found in
**** several MCS PDU structures.
****/
void PrintPDUResult(FILE *logfile, unsigned int result);
void PrintPDUPriority(FILE *logfile, unsigned int priority);
void PrintTokenStatus(FILE *logfile, unsigned int token_status);
void PrintPDUReason(FILE *logfile, unsigned int reason);
void PrintDiagnostic(FILE *logfile, unsigned int diagnostic);
void PrintPDUSegmentation(FILE *logfile, unsigned char segmentation);
void PrintSetOfChannelIDs(FILE *logfile, PSetOfChannelIDs channel_ids);
void PrintSetOfUserIDs(FILE *logfile, PSetOfUserIDs user_ids);
void PrintSetOfTokenIDs(FILE *logfile, PSetOfTokenIDs token_ids);
void PrintSetOfTokenAttributes(FILE *logfile,
PSetOfPDUTokenAttributes token_attribute_obj);
void PrintPDUDomainParameters(FILE *logfile, PDUDomainParameters domain_params);
void PrintT120Boolean(FILE *logfile, char * string, BOOL boolean);
void PrintCharData(FILE *logfile, unsigned char *string, unsigned int length);
void PrintChannelAttributes(FILE *logfile, PDUChannelAttributes channel_attributes);
void PrintTokenAttributes(FILE *logfile, PDUTokenAttributes token_attributes);
int InitializeMCSLog();
/* Description:
* Resets the mcs protocol log file and reads any
* ini file parameters
*/
char *pszTimeStamp();
/* Desicription:
* This function is an easy interfact to getting the time the
* PDU was encoded or decoded from MCS to T.123 or vice versa.
*/
void pduLog(FILE *file, char * format_string,...);
/* Description:
* This function is used to place PDU information in a protocol
* log file. There is currently no return value. This may change.
*/
void pduFragmentation(FILE *logfile, unsigned int i);
/* Description:
* This function logs weather or not the PDU is complete
* or fragmented.
*/
void pduRawOutput(FILE *logfile, unsigned char * data, unsigned long length);
/* Description:
* This function logs a hex dump of the raw encoded MCS PDU that
* is sent over the wire via MCS.
*/
void mcsLog(PPacket packet, PDomainMCSPDU domain_pdu, unsigned int direction);
/* Description:
* This function takes care of the log headers and footers to
* attempt at compatibility with a certain third party mcs log
* reader.
*/
void mcsConnectLog(PPacket packet, PConnectMCSPDU connect_pdu, unsigned int direction);
/* same as above, but for Connect PDUs */
void pduLogMCSDomainInfo(FILE *file, PDomainMCSPDU domain_pdu);
/* Description:
* This function takes the mcs pdu structure, and based on
* Which type of MCSPDU that it is, logs internal information
* in the PDU.
*/
void pduLogMCSConnectInfo(FILE *file, PConnectMCSPDU connect_pdu);
/* same as above but for Connect PDUs */
void pduDirection(FILE *logfile,unsigned int direction);
/* Description:
* This function logs information whether the mcs pdu was sent
* or received.
*/
/*****
***** The following headers are for functions that log the output of
***** each different type of MCS PDU. Every MCS PDU is covered here.
*****/
void pduLogConnectInitial(FILE *file, PConnectMCSPDU connect_pdu);
/* Description:
* This function takes the connect_pdu and writes the component parts
* of the mcs ConnectInitial PDU.
*/
void pduLogConnectResponse(FILE *file, PConnectMCSPDU connect_pdu);
void pduLogConnectAdditional(FILE *file, PConnectMCSPDU connect_pdu);
void pduLogConnectResult(FILE *file, PConnectMCSPDU connect_pdu);
void pduLogPlumbDomainIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogErectDomainRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogMergeChannelsRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogMergeChannelsConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogPurgeChannelIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogMergeTokensRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogMergeTokensConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogPurgeTokenIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogDisconnectProviderUltimatum(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogRejectUltimatum(FILE *logfile, PDomainMCSPDU domain_pdu);
void pduLogAttachUserRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogAttachUserConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogDetachUserRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogDetachUserIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelJoinRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelJoinConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelLeaveRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelConveneRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelConveneConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelDisbandRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelDisbandIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelAdmitRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelAdmitIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelExpelRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogChannelExpelIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogSendDataRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogSendDataIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogUniformSendDataRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogUniformSendDataIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenGrabRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenGrabConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenInhibitRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenInhibitConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenGiveRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenGiveIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenGiveResponse(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenGiveConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenPleaseRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenPleaseIndication(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenReleaseRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenReleaseConfirm(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenTestRequest(FILE *file, PDomainMCSPDU domain_pdu);
void pduLogTokenTestConfirm(FILE *file, PDomainMCSPDU domain_pdu);
BOOL CopyTextToChar(char * print_string,
unsigned short *text_string_value,
unsigned int text_string_length);
#endif // <<<<<<<<<<<< _PROTLOG_H
#endif // <<<<<<<<<<<< PDULOG