193 lines
4.6 KiB
C++
193 lines
4.6 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
pastdbg.c
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This module contains code for the PAST transparent proxy's DEBUG
|
||
|
outputing code.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Savas Guven (savasg) 25-Jul-2000
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
#include "stdafx.h"
|
||
|
|
||
|
|
||
|
|
||
|
extern ULONG NhpTraceId;
|
||
|
|
||
|
|
||
|
|
||
|
//****************************************************************************
|
||
|
// Global Parameters
|
||
|
//****************************************************************************
|
||
|
TCHAR g_tszDebugKey[] = _T("SOFTWARE\\Microsoft\\Tracing\\ICQPRX\\Debug");
|
||
|
|
||
|
|
||
|
DEBUG_MODULE_INFO gDebugInfo[] = {
|
||
|
{TM_DEFAULT, TL_DUMP, _T("<default>"), _T("DebugLevel")}, // 0
|
||
|
{TM_BUF, TL_INFO, _T("BUF"), _T("BufDebugLevel")}, // 1
|
||
|
{TM_API, TL_INFO, _T("API"), _T("ApiDebugLevel")}, // 2
|
||
|
{TM_IO, TL_INFO, _T("IO"), _T("IoDebugLevel")}, // 3
|
||
|
{TM_MSG, TL_INFO, _T("MSG"), _T("MsgDebugLevel")},// 4
|
||
|
{TM_REF, TL_INFO, _T("REF"), _T("RefDebugLevel")},// 5
|
||
|
{TM_TEST, TL_INFO, _T("TEST"), _T("TestDebugLevel")},// 6
|
||
|
{TM_CON, TL_INFO, _T("CON"), _T("ConDebugLevel")}, // 7
|
||
|
{TM_IF, TL_INFO, _T("IF"), _T("IfDebugLevel")}, //8
|
||
|
{TM_PRX, TL_INFO, _T("PRX"), _T("PrxDebugLevel")}, //9
|
||
|
{TM_SYNC, TL_INFO, _T("SYNC"), _T("SyncDebugLevel")}, // 10
|
||
|
{TM_DISP, TL_INFO, _T("DISP"), _T("DispDebugLevel")},
|
||
|
{TM_SOCK, TL_INFO, _T("SOCK"), _T("SockDebugLevel")},
|
||
|
{TM_LIST, TL_INFO, _T("LIST"), _T("ListDebugLevel")}, // 13
|
||
|
{TM_PROF, TL_INFO, _T("PROFILE"), _T("ProfileDebugLevel")}, // 14
|
||
|
{TM_TIMER, TL_INFO, _T("TIMER"), _T("TimerDebugLevel")} // 15
|
||
|
};
|
||
|
|
||
|
char g_szModule[] = SZ_MODULE;
|
||
|
|
||
|
HANDLE g_EventLogHandle = NULL;
|
||
|
ULONG g_TraceId = INVALID_TRACEID;
|
||
|
|
||
|
|
||
|
|
||
|
void DestroyDebuger(VOID) {
|
||
|
TraceDeregister(g_TraceId);
|
||
|
g_TraceId = INVALID_TRACEID;
|
||
|
|
||
|
}
|
||
|
|
||
|
//****************************************************************************
|
||
|
// VOID GetDebugLevel()
|
||
|
//
|
||
|
// This function gets the current debug level from the registry
|
||
|
//
|
||
|
//****************************************************************************
|
||
|
|
||
|
void InitDebuger()
|
||
|
/*++
|
||
|
|
||
|
Routine Description:
|
||
|
|
||
|
R
|
||
|
|
||
|
Arguments:
|
||
|
|
||
|
A
|
||
|
|
||
|
Return Value:
|
||
|
|
||
|
R
|
||
|
|
||
|
Notes:
|
||
|
|
||
|
N
|
||
|
|
||
|
--*/
|
||
|
|
||
|
{
|
||
|
HKEY hkey;
|
||
|
DWORD dwType, cb;
|
||
|
DWORD dwLevel;
|
||
|
int iModule;
|
||
|
int nModules;
|
||
|
|
||
|
|
||
|
// Init the Trace Manager
|
||
|
g_TraceId = TraceRegisterA("ICQPRX");
|
||
|
|
||
|
//
|
||
|
// Open the registry key that contains the debug configuration info
|
||
|
//
|
||
|
if (RegOpenKeyEx((HKEY) HKEY_LOCAL_MACHINE,
|
||
|
g_tszDebugKey,
|
||
|
0,
|
||
|
KEY_READ,
|
||
|
&hkey) == ERROR_SUCCESS)
|
||
|
{
|
||
|
|
||
|
cb = sizeof(dwLevel);
|
||
|
|
||
|
//
|
||
|
// Initialize all the modules to the base value or their custom value
|
||
|
//
|
||
|
nModules = (sizeof(gDebugInfo)/sizeof(DEBUG_MODULE_INFO));
|
||
|
|
||
|
for (iModule = 0; iModule < nModules; iModule++)
|
||
|
{
|
||
|
|
||
|
//
|
||
|
// Open each custom debug level if present
|
||
|
//
|
||
|
if ((RegQueryValueEx(hkey,
|
||
|
gDebugInfo[iModule].szDebugKey,
|
||
|
NULL,
|
||
|
&dwType,
|
||
|
(PUCHAR)
|
||
|
&dwLevel,
|
||
|
&cb) == ERROR_SUCCESS) && (dwType == REG_DWORD))
|
||
|
{
|
||
|
gDebugInfo[iModule].dwLevel = dwLevel;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
//gDebugInfo[iModule].dwLevel = gDebugInfo[TM_DEFAULT].dwLevel;
|
||
|
}
|
||
|
#ifndef _UNICODE
|
||
|
DBG_TRACE(TM_IF, TL_INFO, ("ModuleKey: %s, DebugLevel: %d",
|
||
|
gDebugInfo[iModule].szModuleName,
|
||
|
gDebugInfo[iModule].dwLevel));
|
||
|
#endif
|
||
|
|
||
|
}
|
||
|
|
||
|
RegCloseKey(hkey);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// NhTrace(TRACE_FLAG_PAST, "Couldn't open Reg\n");
|
||
|
printf("DEBUG key doesn't exist\n");
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
void DbgPrintX(LPCSTR pszMsg, ...)
|
||
|
{
|
||
|
va_list VaList;
|
||
|
/*
|
||
|
char temp[100];
|
||
|
char msg[1024];
|
||
|
int len = 0;
|
||
|
|
||
|
len = sprintf(temp, "%s ", g_szModule);
|
||
|
|
||
|
lstrcpy(msg, temp);
|
||
|
wvsprintf(&msg[len], pszMsg, (va_list)(&pszMsg + 1));
|
||
|
lstrcat(msg,"\r\n");
|
||
|
OutputDebugString(msg);
|
||
|
*/
|
||
|
if(g_TraceId is INVALID_TRACEID)
|
||
|
InitDebuger();
|
||
|
va_start(VaList, pszMsg);
|
||
|
TraceVprintfExA(g_TraceId,
|
||
|
TRACE_FLAG_ICQ,
|
||
|
pszMsg,
|
||
|
VaList);
|
||
|
va_end(VaList);
|
||
|
|
||
|
}
|
||
|
|
||
|
// DBG_TRACE(TM_MSG, TL_INFO, ("nvnat_control_one > xtcp_port\n"));
|
||
|
|
||
|
|