248 lines
5.2 KiB
C++
248 lines
5.2 KiB
C++
/*++
|
||
|
||
Copyright (c) 1998, Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
debug.c
|
||
|
||
Abstract:
|
||
|
||
This module contains declarations for debugging-support.
|
||
|
||
Author:
|
||
|
||
Abolade Gbadegesin (aboladeg) 2-Mar-1998
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#include "precomp.h"
|
||
#pragma hdrstop
|
||
|
||
HANDLE NhEventLogHandle = NULL;
|
||
ULONG NhpTraceId = INVALID_TRACEID;
|
||
|
||
//
|
||
// FORWARD DECLARATIONS
|
||
//
|
||
|
||
BOOLEAN
|
||
NhpIsAllowedLog(
|
||
ULONG MessageId,
|
||
ULONG Level
|
||
);
|
||
|
||
//
|
||
// TRACING ROUTINES (alphabetically)
|
||
//
|
||
|
||
VOID
|
||
NhDump(
|
||
ULONG Flags,
|
||
PUCHAR Buffer,
|
||
ULONG BufferLength,
|
||
ULONG Width
|
||
)
|
||
{
|
||
TraceDumpEx(
|
||
NhpTraceId,
|
||
Flags,
|
||
Buffer,
|
||
BufferLength,
|
||
Width,
|
||
FALSE,
|
||
NULL
|
||
);
|
||
}
|
||
|
||
VOID
|
||
NhInitializeTraceManagement(
|
||
VOID
|
||
)
|
||
{
|
||
NhpTraceId = TraceRegisterA("IPNATHLP");
|
||
}
|
||
|
||
VOID
|
||
NhShutdownTraceManagement(
|
||
VOID
|
||
)
|
||
{
|
||
TraceDeregister(NhpTraceId);
|
||
NhpTraceId = INVALID_TRACEID;
|
||
}
|
||
|
||
VOID
|
||
NhTrace(
|
||
ULONG Flags,
|
||
PCHAR Format,
|
||
...
|
||
)
|
||
{
|
||
va_list VaList;
|
||
|
||
va_start(VaList, Format);
|
||
TraceVprintfExA(NhpTraceId, Flags, Format, VaList);
|
||
va_end(VaList);
|
||
}
|
||
|
||
|
||
//
|
||
// EVENTLOGGING ROUTINES (alphabetically)
|
||
//
|
||
|
||
VOID
|
||
NhErrorLog(
|
||
ULONG MessageId,
|
||
ULONG ErrorCode,
|
||
PCHAR Format,
|
||
...
|
||
)
|
||
{
|
||
va_list arglist;
|
||
if (!NhpIsAllowedLog(MessageId, IPNATHLP_LOGGING_ERROR)) { return; }
|
||
va_start(arglist, Format);
|
||
RouterLogEventValistExA(
|
||
NhEventLogHandle,
|
||
EVENTLOG_ERROR_TYPE,
|
||
ErrorCode,
|
||
MessageId,
|
||
Format,
|
||
arglist
|
||
);
|
||
va_end(arglist);
|
||
}
|
||
|
||
VOID
|
||
NhInformationLog(
|
||
ULONG MessageId,
|
||
ULONG ErrorCode,
|
||
PCHAR Format,
|
||
...
|
||
)
|
||
{
|
||
va_list arglist;
|
||
if (!NhpIsAllowedLog(MessageId, IPNATHLP_LOGGING_INFO)) { return; }
|
||
va_start(arglist, Format);
|
||
RouterLogEventValistExA(
|
||
NhEventLogHandle,
|
||
EVENTLOG_INFORMATION_TYPE,
|
||
ErrorCode,
|
||
MessageId,
|
||
Format,
|
||
arglist
|
||
);
|
||
va_end(arglist);
|
||
}
|
||
|
||
VOID
|
||
NhInitializeEventLogManagement(
|
||
VOID
|
||
)
|
||
{
|
||
NhEventLogHandle = RouterLogRegisterA(TARGETNAME);
|
||
}
|
||
|
||
BOOLEAN
|
||
NhpIsAllowedLog(
|
||
ULONG MessageId,
|
||
ULONG Level
|
||
)
|
||
{
|
||
if (MessageId > IP_AUTO_DHCP_LOG_BASE && MessageId < IP_AUTO_DHCP_LOG_END) {
|
||
EnterCriticalSection(&DhcpGlobalInfoLock);
|
||
if (!DhcpGlobalInfo) {
|
||
LeaveCriticalSection(&DhcpGlobalInfoLock);
|
||
return (Level == IPNATHLP_LOGGING_ERROR) ? TRUE : FALSE;
|
||
} else if (DhcpGlobalInfo->LoggingLevel < Level) {
|
||
LeaveCriticalSection(&DhcpGlobalInfoLock);
|
||
return FALSE;
|
||
}
|
||
LeaveCriticalSection(&DhcpGlobalInfoLock);
|
||
return TRUE;
|
||
} else if (MessageId > IP_DNS_PROXY_LOG_BASE &&
|
||
MessageId < IP_DNS_PROXY_LOG_END) {
|
||
EnterCriticalSection(&DnsGlobalInfoLock);
|
||
if (!DnsGlobalInfo) {
|
||
LeaveCriticalSection(&DnsGlobalInfoLock);
|
||
return (Level == IPNATHLP_LOGGING_ERROR) ? TRUE : FALSE;
|
||
} else if (DnsGlobalInfo->LoggingLevel < Level) {
|
||
LeaveCriticalSection(&DnsGlobalInfoLock);
|
||
return FALSE;
|
||
}
|
||
LeaveCriticalSection(&DnsGlobalInfoLock);
|
||
return TRUE;
|
||
}
|
||
|
||
#ifndef NO_FTP_PROXY
|
||
else if (MessageId > IP_FTP_LOG_BASE && MessageId < IP_FTP_LOG_END) {
|
||
EnterCriticalSection(&FtpGlobalInfoLock);
|
||
if (!FtpGlobalInfo) {
|
||
LeaveCriticalSection(&FtpGlobalInfoLock);
|
||
return (Level == IPNATHLP_LOGGING_ERROR) ? TRUE : FALSE;
|
||
} else if (FtpGlobalInfo->LoggingLevel < Level) {
|
||
LeaveCriticalSection(&FtpGlobalInfoLock);
|
||
return FALSE;
|
||
}
|
||
LeaveCriticalSection(&FtpGlobalInfoLock);
|
||
return TRUE;
|
||
}
|
||
#endif
|
||
else if (MessageId > IP_H323_LOG_BASE && MessageId < IP_H323_LOG_END) {
|
||
EnterCriticalSection(&H323GlobalInfoLock);
|
||
if (!H323GlobalInfo) {
|
||
LeaveCriticalSection(&H323GlobalInfoLock);
|
||
return (Level == IPNATHLP_LOGGING_ERROR) ? TRUE : FALSE;
|
||
} else if (H323GlobalInfo->LoggingLevel < Level) {
|
||
LeaveCriticalSection(&H323GlobalInfoLock);
|
||
return FALSE;
|
||
}
|
||
LeaveCriticalSection(&H323GlobalInfoLock);
|
||
return TRUE;
|
||
} else if (MessageId > IP_NAT_LOG_BASE && MessageId < IP_NAT_LOG_END) {
|
||
EnterCriticalSection(&NatGlobalInfoLock);
|
||
if (!NatGlobalInfo) {
|
||
LeaveCriticalSection(&NatGlobalInfoLock);
|
||
return (Level == IPNATHLP_LOGGING_ERROR) ? TRUE : FALSE;
|
||
} else if (NatGlobalInfo->LoggingLevel < Level) {
|
||
LeaveCriticalSection(&NatGlobalInfoLock);
|
||
return FALSE;
|
||
}
|
||
LeaveCriticalSection(&NatGlobalInfoLock);
|
||
return TRUE;
|
||
}
|
||
return TRUE;
|
||
}
|
||
|
||
VOID
|
||
NhWarningLog(
|
||
ULONG MessageId,
|
||
ULONG ErrorCode,
|
||
PCHAR Format,
|
||
...
|
||
)
|
||
{
|
||
va_list arglist;
|
||
if (!NhpIsAllowedLog(MessageId, IPNATHLP_LOGGING_WARN)) { return; }
|
||
va_start(arglist, Format);
|
||
RouterLogEventValistExA(
|
||
NhEventLogHandle,
|
||
EVENTLOG_WARNING_TYPE,
|
||
ErrorCode,
|
||
MessageId,
|
||
Format,
|
||
arglist
|
||
);
|
||
va_end(arglist);
|
||
}
|
||
|
||
VOID
|
||
NhShutdownEventLogManagement(
|
||
VOID
|
||
)
|
||
{
|
||
RouterLogDeregister(NhEventLogHandle);
|
||
}
|