121 lines
4.3 KiB
Plaintext
Executable File
121 lines
4.3 KiB
Plaintext
Executable File
/* $Id$ */
|
|
/*
|
|
** Copyright (C) 2014-2016 Cisco and/or its affiliates. All rights reserved.
|
|
** Copyright (C) 2002-2013 Sourcefire, Inc.
|
|
** Copyright (C) 1998-2002 Martin Roesch <roesch@sourcefire.com>
|
|
**
|
|
** This program is free software; you can redistribute it and/or modify
|
|
** it under the terms of the GNU General Public License Version 2 as
|
|
** published by the Free Software Foundation. You may not use, modify or
|
|
** distribute this program under any other version of the GNU General
|
|
** Public License.
|
|
**
|
|
** This program is distributed in the hope that it will be useful,
|
|
** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
** GNU General Public License for more details.
|
|
**
|
|
** You should have received a copy of the GNU General Public License
|
|
** along with this program; if not, write to the Free Software
|
|
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
|
|
#ifndef DEBUG_H
|
|
#define DEBUG_H
|
|
|
|
#include <ctype.h>
|
|
#ifdef SF_WCHAR
|
|
/* ISOC99 is defined to get required prototypes */
|
|
#ifndef __USE_ISOC99
|
|
#define __USE_ISOC99
|
|
#endif
|
|
#include <wchar.h>
|
|
#endif
|
|
|
|
/* this env var uses the lower 32 bits of the flags: */
|
|
#define DEBUG_VARIABLE "SNORT_DEBUG"
|
|
|
|
#define DEBUG_INIT 0x0000000000000001LL
|
|
#define DEBUG_PARSER 0x0000000000000002LL
|
|
#define DEBUG_MSTRING 0x0000000000000004LL
|
|
#define DEBUG_PORTLISTS 0x0000000000000008LL
|
|
#define DEBUG_ATTRIBUTE 0x0000000000000010LL
|
|
#define DEBUG_PLUGIN 0x0000000000000020LL
|
|
#define DEBUG_PLUGBASE 0x0000000000000040LL
|
|
#define DEBUG_DECODE 0x0000000000000080LL
|
|
#define DEBUG_DATALINK 0x0000000000000100LL
|
|
#define DEBUG_CONFIGRULES 0x0000000000000200LL
|
|
#define DEBUG_RULES 0x0000000000000400LL
|
|
#define DEBUG_DETECT 0x0000000000000800LL
|
|
#define DEBUG_PATTERN_MATCH 0x0000000000001000LL
|
|
#define DEBUG_FLOW 0x0000000000002000LL
|
|
#define DEBUG_LOG 0x0000000000004000LL
|
|
#define DEBUG_FLOWBITS 0x0000000000008000LL
|
|
#define DEBUG_FILE 0x0000000000010000LL
|
|
#define DEBUG_CONTROL 0x0000000000020000LL
|
|
#define DEBUG_EXP 0x0000000080000000LL
|
|
|
|
/* this env var uses the upper 32 bits of the flags: */
|
|
#define DEBUG_PP_VAR "SNORT_PP_DEBUG"
|
|
|
|
#define DEBUG_FRAG 0x0000000100000000LL
|
|
#define DEBUG_STREAM 0x0000000200000000LL
|
|
#define DEBUG_STREAM_STATE 0x0000000400000000LL
|
|
#define DEBUG_STREAM_PAF 0x0000000800000000LL
|
|
#define DEBUG_HTTP_DECODE 0x0000001000000000LL
|
|
#define DEBUG_HTTPINSPECT 0x0000002000000000LL
|
|
#define DEBUG_ASN1 0x0000004000000000LL
|
|
#define DEBUG_DNS 0x0000008000000000LL
|
|
#define DEBUG_FTPTELNET 0x0000010000000000LL
|
|
#define DEBUG_GTP 0x0000020000000000LL
|
|
#define DEBUG_IMAP 0x0000040000000000LL
|
|
#define DEBUG_POP 0x0000080000000000LL
|
|
#define DEBUG_RPC 0x0000100000000000LL
|
|
#define DEBUG_SIP 0x0000200000000000LL
|
|
#define DEBUG_SKYPE 0x0000400000000000LL
|
|
#define DEBUG_SSL 0x0000800000000000LL
|
|
#define DEBUG_SMTP 0x0001000000000000LL
|
|
#define DEBUG_APPID 0x0002000000000000LL
|
|
#define DEBUG_PP_EXP 0x8000000000000000LL
|
|
|
|
void DebugMessageFunc(uint64_t dbg, const char *fmt, ...);
|
|
#ifdef SF_WCHAR
|
|
void DebugWideMessageFunc(uint64_t dbg, const wchar_t *fmt, ...);
|
|
#endif
|
|
|
|
#ifdef DEBUG_MSGS
|
|
|
|
extern char *DebugMessageFile;
|
|
extern int DebugMessageLine;
|
|
|
|
#define DebugMessage DebugMessageFile = __FILE__; DebugMessageLine = __LINE__; DebugMessageFunc
|
|
#define DebugWideMessage DebugMessageFile = __FILE__; DebugMessageLine = __LINE__; DebugWideMessageFunc
|
|
|
|
uint64_t GetDebugLevel (void);
|
|
int DebugThis(uint64_t level);
|
|
#else /* DEBUG_MSGS */
|
|
|
|
#ifdef WIN32
|
|
/* Visual C++ uses the keyword "__inline" rather than "__inline__" */
|
|
#define __inline__ __inline
|
|
#endif
|
|
|
|
#endif /* DEBUG_MSGS */
|
|
|
|
|
|
#ifdef DEBUG_MSGS
|
|
#define DEBUG_WRAP(code) code
|
|
void DebugMessageFunc(uint64_t dbg, const char *fmt, ...);
|
|
#ifdef SF_WCHAR
|
|
void DebugWideMessageFunc(uint64_t dbg, const wchar_t *fmt, ...);
|
|
#endif
|
|
#else /* DEBUG_MSGS */
|
|
#define DEBUG_WRAP(code)
|
|
/* I would use DebugMessage(dbt,fmt...) but that only works with GCC */
|
|
|
|
#endif /* DEBUG_MSGS */
|
|
|
|
#endif /* DEBUG_H */
|
|
|