forked from robertdavidgraham/masscan
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger.c
75 lines (62 loc) · 2.09 KB
/
logger.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
log messages to console, depending on verbose level
Use -d to get more verbose output. The more -v you add, the
more verbose the output becomes.
Details about the running of the program go to <stderr>.
Details about scan results go to <stdout>, so that they can easily
be redirected to a file.
*/
#include "logger.h"
#include "string_s.h"
#include <stdarg.h>
#include <stdio.h>
static int global_debug_level = 0; /* yea! a global variable!! */
void LOG_add_level(int x)
{
global_debug_level += x;
}
/***************************************************************************
***************************************************************************/
static void
vLOG(int level, const char *fmt, va_list marker)
{
if (level <= global_debug_level) {
vfprintf(stderr, fmt, marker);
fflush(stderr);
}
}
/***************************************************************************
* Prints the message if the global "verbosity" flag exceeds this level.
***************************************************************************/
void
LOG(int level, const char *fmt, ...)
{
va_list marker;
va_start(marker, fmt);
vLOG(level, fmt, marker);
va_end(marker);
}
/***************************************************************************
***************************************************************************/
static void
vLOGip(int level, unsigned ip, unsigned port, const char *fmt, va_list marker)
{
if (level <= global_debug_level) {
char sz_ip[16];
sprintf_s(sz_ip, sizeof(sz_ip), "%u.%u.%u.%u",
(ip>>24)&0xFF, (ip>>16)&0xFF, (ip>>8)&0xFF, (ip>>0)&0xFF);
fprintf(stderr, "%-15s:%5u: ", sz_ip, port);
vfprintf(stderr, fmt, marker);
fflush(stderr);
}
}
/***************************************************************************
***************************************************************************/
void
LOGip(int level, unsigned ip, unsigned port, const char *fmt, ...)
{
va_list marker;
va_start(marker, fmt);
vLOGip(level, ip, port, fmt, marker);
va_end(marker);
}