/********************************************************************** * 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 #include #include #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