/********************************************************************** * File: gcclog.h * Abstract: Function heders for protocol logging functions added * into GCCNC.DLL to read the contents of GCC PDU sent to and * received from * Created: 12/21/95, Venkatesh Gopalakrishnan * Copyright (c) 1995 Microsoft Corpration ******************************************************************** */ /* Note: the contents of this file are only included IFF PDULOG * is a defined constant. PDULOG is defined in the DIAGNOSTIC * build configuration of GCCNC.DLL */ #ifdef PDULOG #ifndef _PROTLOG_H #define _PROTLOG_H #include #include #include #define MAXIMUM_PRINT_LENGTH 256 #define LOG_FILE_NAME "gcclog.txt" #define SENT 0 #define RECEIVED 1 #define FORWARDED 2 /* mcs transport type definitions for gcc pdus */ #define MCS_SEND_DATA_REQUEST_PDU 1 #define MCS_SEND_DATA_INDICATION_PDU 2 #define MCS_UNIFORM_SEND_DATA_REQUEST_PDU 3 #define MCS_UNIFORM_SEND_DATA_INDICATION_PDU 4 #define MCS_CONNECT_PROVIDER_REQUEST_PDU 5 #define MCS_CONNECT_PROVIDER_RESPONSE_PDU 6 #define MCS_CONNECT_PROVIDER_CONFIRM_PDU 7 #define MCS_CONNECT_PROVIDER_INDICATION_PDU 8 /* miscellaneous constants used in databeam code */ #define MAX_CONFERENCE_NAME_LENGTH 128 #define MAX_CONFERENCE_MODIFIER_LENGTH 128 #define MAX_CONFERENCE_DESCRIPTOR_LENGTH 128 #define MAX_NUMBER_OF_NETWORK_ADDRESSES 128 #define MAX_PASSWORD_LENGTH 128 #define MAX_ADDRESS_SIZE 128 #define MAX_CALLER_IDENTIFIER_LENGTH 128 #define MAX_TRANSPORT_ADDRESS_LENGTH 40 #define MAX_NUMBER_OF_TRANSPORTS_LISTED 20 #define MAX_OCTET_STRING_LENGTH 128 #define MAX_HEX_STRING_LENGTH 128 #define MAX_NUMBER_OF_USER_DATA_MEMBERS 65535 #define MAX_NUMBER_OF_TRANSPORT_HANDLES 128 #define MAX_NODE_NAME_LENGTH 128 #define MAX_NUMBER_OF_PARTICIPANTS 128 #define MAX_PARTICPANT_NAME_LENGTH 128 #define MAX_ERROR_STRING_LENGTH 40 #define MAX_REASON_STRING_LENGTH 40 #define MAX_RESULT_STRING_LENGTH 40 #define MAX_NUMBER_OF_CONF_IDS 15 #define MAX_NUMBER_OF_NODE_IDS 10 #define MAX_SUB_ADDRESS_STRING_LENGTH 128 #define MAX_NUMBER_OF_ACTIVE_CONFERENCES 100 #define MAX_NUMBER_OF_PENDING_CREATES 15 #define GCCAPP_SAP_NOT_REGISTERED 0 #define GCCAPP_NOT_ENROLLED 1 #define GCCAPP_WAITING_ON_ATTACH_CONFIRM 2 #define GCCAPP_ATTACHED 3 #define GCCAPP_JOINED_CHANNEL_ID 4 #define GCCAPP_ENROLLED_INACTIVELY 5 #define GCCAPP_LISTED_IN_ROSTER_INACTIVE 6 #define GCCAPP_WAITING_ON_JOIN_CONFIRM 7 #define GCCAPP_JOINED_INITIAL_CHANNEL 8 #define GCCAPP_JOINED_REQUIRED_CHANNELS 9 #define GCCAPP_ASSIGNED_REQUIRED_TOKENS 10 #define GCCAPP_ENROLLED_ACTIVELY 11 #define GCCAPP_LISTED_IN_ROSTER_ACTIVE 12 #define ENROLL_MODE_START_MULTICAST 0 #define ENROLL_MODE_JOIN_MULTICAST 1 #define JOIN_DO_NOT_MOVE 0 #define JOIN_INTERMIDIATE_MOVE 1 #define JOIN_TOP_MOVE 2 #define JOIN_INTERMIDIATE_AND_TOP_MOVE 3 /** ** Service functions for the PDU logging mechanism **/ int InitializeGCCLog(); /* Description: * Function that resets the gcc 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 GCC to MCS 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 GCC PDU that * is sent over the wire via MCS. */ void gccLog(PPacket packet, PGCCPDU gcc_pdu, unsigned int direction, int mcs_pdu = 0); /* Description: * This function takes care of the log headers and footers to * attempt at compatibility with a certain third party gcc log * reader. */ void gccConnectLog(PPacket packet, PConnectGCCPDU connect_pdu, unsigned int direction, int mcs_pdu = 0); void pduDirection(FILE *logfile,unsigned int direction); /* Description: * This function logs information whether the gcc pdu was sent * or received. */ void mcsPduType(FILE *logfile, int mcs_pdu); /* Description: * This function prints out the type of MCS pdu that is being used to * transport the GCC PDU. */ void pduLogGCCInformation(FILE *file, PGCCPDU gcc_pdu); /* Description: * This function takes the gcc pdu structure, and based on * Which type of GCC PDU that it is, logs internal information * in the PDU. */ void pduLogGCCConnectInfo(FILE *file, PConnectGCCPDU connect_pdu); /* same as above, but for GCC Connect PDUs */ /** ** Functions for logging the specific contents of individual GCC ** PDUs. TODO: Only GCC PDUs that are used by MS Conferencing ** right now -- eventually we'll include all GCC PDUs. **/ void pduLogUserIDIndication(FILE *file, PGCCPDU gcc_pdu); /* Description: * This function takes the gcc_pdu and writes the component parts * of the gcc userID indication. */ void pduLogConnectJoinRequest(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogConnectJoinResponse(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogConferenceCreateRequest(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogConferenceCreateResponse(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogConferenceInviteRequest(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogConferenceInviteResponse(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogQueryResponse(FILE *logfile, PConnectGCCPDU connect_pdu); void pduLogRosterUpdateIndication(FILE *file, PGCCPDU gcc_pdu); void pduLogTextMessageIndication(FILE *file, PGCCPDU gcc_pdu); void pduLogConferenceTerminateIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogConferenceEjectUserIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogConferenceTransferIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogApplicationInvokeIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogRegistryMonitorEntryIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogConferenceTimeRemainingIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogConferenceTimeInquireIndication(FILE *logfile, PGCCPDU gcc_pdu); void pduLogConferenceTimeExtendIndication(FILE *logfile, PGCCPDU gcc_pdu); /****************************** PDU Printing Functions *****************************/ Void PrintNonStandardParameter(FILE * logfile, GCCNonStandardParameter FAR * non_standard_parameter); Void PrintDomainParameters(FILE * logfile, Char * print_text, DomainParameters FAR * domain_parameters); Void PrintPassword(FILE * logfile, GCCPassword FAR * password); //TODO: Change the parameter order here. Void PrintPrivilegeList(GCCConferencePrivileges FAR * privilege_list, Char FAR * print_text, FILE * logfile ); Void PrintConferenceName(FILE * logfile, ConferenceNameSelector conference_name); Void PrintPasswordSelector(FILE *logfile, PasswordSelector password_selector); Void PrintConferenceAddResult(FILE *logfile, ConferenceAddResult result); Void PrintPasswordChallengeRequestResponse(FILE *logfile, PasswordChallengeRequestResponse chrqrs_password); Void PrintNetworkAddressList(FILE * logfile, Char * print_text, unsigned int number_of_network_addresses, GCCNetworkAddress ** network_address_list ); Void PrintT120Boolean(FILE * logfile, Char * print_text, T120Boolean T120Boolean); Void PrintOssBoolean(FILE * logfile, Char * print_text, ossBoolean OssBoolean); Void PrintConferenceRoster(FILE * logfile, NodeInformation node_information); Void PrintApplicationRoster(FILE *logfile, SetOfApplicationInformation *application_information); Void PrintAppProtocolEntityList(FILE * logfile, UShort number_of_app_protocol_entities, GCCAppProtocolEntity FAR * FAR * app_protocol_entity_list ); Void PrintOctetString(FILE * logfile, Char * print_text, GCCOctetString FAR * octet_string ); Void PrintHexString( FILE * logfile, Char * print_text, GCCHexString hex_string ); Void PrintSessionKey(FILE * logfile, Char * print_text, GCCSessionKey session_key ); Void PrintNodeList( FILE * logfile, Char * print_text, UShort number_of_nodes, UserID FAR * node_list ); Void PrintCapabilityList(FILE * logfile, Char * print_text, UShort number_of_capabilities, GCCApplicationCapability FAR * FAR * capabilities_list ); Void PrintPasswordChallenge(FILE * logfile, GCCChallengeRequestResponse FAR * password_challenge ); Void PrintTransferModes(FILE * logfile, Char * print_text, GCCTransferModes transfer_modes ); Void PrintHigherLayerCompatibility(FILE * logfile, Char * print_text, GCCHighLayerCompatibility FAR * higher_layer_compatiblity ); Void PrintApplicationRecordList( FILE * logfile, Char * print_text, UShort number_of_records, GCCApplicationRecord FAR * FAR * application_record_list ); T120Boolean CopyTextToChar ( Char * print_string, TextString text_string); T120Boolean CopySimpleTextToChar (Char * print_string, SimpleTextString text_string); T120Boolean CompareTextToNULL( LPWSTR unicode_string ); T120Boolean CompareNumericToNULL( GCCNumericString numeric_string ); #endif // <<<<<<<<<<<< _PROTLOG_H #endif // <<<<<<<<<<<< PDULOG