Skip to content

Commit 2207a92

Browse files
committed
Updated included headers to support compilation on Windows (using Visual C++)
- most of posix related functions and constants in unistd.h can be found in io.h in Visual C++ - introduced src/compat/msvc.h to adjust for compiler differences (and avoid updating code with #ifdef blocks for Windows support) - removed some included headers that are not needed (both on Unix and Windows builds)
1 parent 07e5a70 commit 2207a92

33 files changed

+130
-12
lines changed

examples/multiprocess_c/multi.c

+4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@
1919
#include <stdio.h>
2020
#include <stdlib.h>
2121
#include <string.h>
22+
#ifndef WIN32
2223
#include <unistd.h>
24+
#else
25+
#include <io.h>
26+
#endif
2327
#include <sys/types.h>
2428
#include <sys/wait.h>
2529
#include <sys/time.h>

examples/using_bodies_in_chunks/simple_request.cc

+4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313
*
1414
*/
1515

16+
#ifndef WIN32
1617
#include <unistd.h>
18+
#else
19+
#include <io.h>
20+
#endif
1721
#include <stdio.h>
1822
#include <string.h>
1923

src/actions/transformations/html_entity_decode.cc

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
#include "modsecurity/transaction.h"
2828
#include "src/actions/transformations/transformation.h"
2929

30+
#ifdef WIN32
31+
#include "src/compat/msvc.h"
32+
#endif
33+
3034

3135
namespace modsecurity {
3236
namespace actions {

src/actions/transformations/lower_case.cc

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include <algorithm>
1919
#include <string>
20+
#include <locale>
2021

2122
#include "modsecurity/transaction.h"
2223
#include "src/actions/transformations/transformation.h"

src/actions/transformations/upper_case.cc

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
#include <algorithm>
1919
#include <string>
20+
#include <locale>
2021

2122
#include "modsecurity/transaction.h"
2223
#include "src/actions/transformations/transformation.h"

src/audit_log/writer/parallel.cc

+5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@
2121
#include <sys/types.h>
2222
#include <sys/stat.h>
2323
#include <fcntl.h>
24+
#ifndef WIN32
2425
#include <unistd.h>
26+
#else
27+
#include <io.h>
28+
#include "src/compat/msvc.h"
29+
#endif
2530
#include <stdlib.h>
2631

2732
#include <fstream>

src/audit_log/writer/writer.h

+2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818

1919

2020
#include <stdio.h>
21+
#ifndef WIN32
2122
#include <sys/ipc.h>
2223
#include <sys/shm.h>
24+
#endif
2325
#include <sys/types.h>
2426

2527
#include <iostream>

src/collection/backend/in_memory-per_process.h

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
* directly using the email address [email protected].
1313
*
1414
*/
15+
#include <pthread.h>
1516

1617

1718
#ifdef __cplusplus

src/collection/backend/lmdb.cc

+4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
#include "src/collection/backend/collection_data.h"
1919

2020
#include <sys/types.h>
21+
#ifndef WIN32
2122
#include <unistd.h>
23+
#else
24+
#include <io.h>
25+
#endif
2226

2327
#include <string>
2428
#include <memory>

src/compat/msvc.h

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#ifndef __COMPAT_MSVC
2+
#define __COMPAT_MSVC
3+
4+
#include <time.h>
5+
6+
#if !defined(S_ISREG) && defined(S_IFMT) && defined(S_IFREG)
7+
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
8+
#endif
9+
10+
#define strcasecmp _stricmp
11+
#define strncasecmp _strnicmp
12+
#define strtok_r strtok_s
13+
#define popen _popen
14+
#define pclose _pclose
15+
16+
inline tm* localtime_r(const time_t* tin, tm* tout) {
17+
if (!localtime_s(tout, tin)) return tout;
18+
19+
return nullptr;
20+
}
21+
22+
#endif

src/debug_log/debug_log.cc

-4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515

1616
#include "modsecurity/debug_log.h"
1717

18-
#include <stddef.h>
19-
20-
#include <fstream>
21-
2218
#include "src/debug_log/debug_log_writer.h"
2319
#include "src/debug_log_writer_agent.h"
2420

src/operators/inspect_file.cc

+4
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
#include "src/operators/operator.h"
2424
#include "src/utils/system.h"
2525

26+
#ifdef WIN32
27+
#include "src/compat/msvc.h"
28+
#endif
29+
2630
namespace modsecurity {
2731
namespace operators {
2832

src/operators/rbl.cc

+5
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@
1616
#include "src/operators/rbl.h"
1717

1818
#include <sys/types.h>
19+
#ifndef WIN32
1920
#include <sys/socket.h>
2021
#include <netdb.h>
2122
#include <netinet/in.h>
2223
#include <arpa/inet.h>
24+
#else
25+
#include <winsock2.h>
26+
#include <ws2tcpip.h>
27+
#endif
2328

2429
#include <string>
2530

src/operators/rbl.h

+4
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,14 @@
1717
#define SRC_OPERATORS_RBL_H_
1818

1919
#include <sys/types.h>
20+
#ifndef WIN32
2021
#include <sys/socket.h>
2122
#include <netdb.h>
2223
#include <netinet/in.h>
2324
#include <arpa/inet.h>
25+
#else
26+
#include <winsock2.h>
27+
#endif
2428

2529
#include <string>
2630
#include <memory>

src/parser/seclang-scanner.cc

+4
Original file line numberDiff line numberDiff line change
@@ -4952,7 +4952,11 @@ static std::stack<int> YY_PREVIOUS_STATE;
49524952
* The user has a chance to override it with an option.
49534953
*/
49544954
/* %if-c-only */
4955+
#ifndef WIN32
49554956
#include <unistd.h>
4957+
#else
4958+
#include <io.h>
4959+
#endif
49564960
/* %endif */
49574961
/* %if-c++-only */
49584962
/* %endif */

src/rules_set_properties.cc

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
#include "src/utils/string.h"
2020
#include "src/variables/variable.h"
2121

22+
#ifdef WIN32
23+
#include "src/compat/msvc.h"
24+
#endif
25+
2226
namespace modsecurity {
2327

2428

src/transaction.cc

+3
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@
5353
#include "src/actions/disruptive/allow.h"
5454
#include "src/variables/remote_user.h"
5555

56+
#ifdef WIN32
57+
#include "src/compat/msvc.h"
58+
#endif
5659

5760

5861
using modsecurity::actions::Action;

src/utils/geo_lookup.cc

+4-1
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313
*
1414
*/
1515

16+
#ifndef WIN32
1617
#include <sys/socket.h>
17-
#include <sys/types.h>
1818
#include <netinet/in.h>
1919
#include <arpa/inet.h>
20+
#else
21+
#include <winsock2.h>
22+
#endif
2023
#include <string>
2124

2225
#include <fstream>

src/utils/ip_tree.cc

+4
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@
1515

1616
#include "src/utils/ip_tree.h"
1717

18+
#ifndef WIN32
1819
#include <sys/socket.h>
1920
#include <sys/types.h>
2021
#include <netinet/in.h>
2122
#include <arpa/inet.h>
23+
#else
24+
#include <winsock2.h>
25+
#endif
2226
#include <string>
2327

2428
#include <fstream>

src/utils/msc_tree.cc

+6
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,15 @@
1515
#include <stdio.h>
1616
#include <stdlib.h>
1717
#include <string.h>
18+
#ifndef WIN32
1819
#include <sys/socket.h>
1920
#include <netinet/in.h>
2021
#include <arpa/inet.h>
22+
#else
23+
#include "src/compat/msvc.h"
24+
#include <winsock2.h>
25+
#include <ws2tcpip.h>
26+
#endif
2127

2228
#include "src/utils/msc_tree.h"
2329

src/utils/string.cc

-5
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@
1717
#include <stdlib.h>
1818
#include <stddef.h>
1919
#include <string.h>
20-
#ifdef __OpenBSD__
21-
#include <glob.h>
22-
#else
23-
#include <wordexp.h>
24-
#endif
2520
#include <stdint.h>
2621
#include <inttypes.h>
2722

src/utils/system.h

-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
*
1414
*/
1515

16-
#include <ctime>
17-
#include <iostream>
1816
#include <string>
1917
#include <list>
2018

src/variables/time.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_day.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_hour.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_min.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_mon.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_sec.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_wday.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

src/variables/time_year.cc

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@
3030

3131
#include "modsecurity/transaction.h"
3232

33+
#ifdef WIN32
34+
#include "src/compat/msvc.h"
35+
#endif
36+
3337
namespace modsecurity {
3438
namespace variables {
3539

test/fuzzer/afl_fuzzer.cc

+4
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,11 @@ using namespace modsecurity;
114114

115115
#include <stdio.h>
116116
#include <stdlib.h>
117+
#ifndef WIN32
117118
#include <unistd.h>
119+
#else
120+
#include <io.h>
121+
#endif
118122
#include <signal.h>
119123
#include <string.h>
120124

test/regression/regression.cc

+4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
#include <string.h>
1717

18+
#ifndef WIN32
1819
#include <unistd.h>
20+
#else
21+
#include <io.h>
22+
#endif
1923

2024
#include <ctime>
2125
#include <iostream>

tools/rules-check/rules-check.cc

+4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515

1616
#include <string.h>
1717
#include <sys/stat.h>
18+
#ifndef WIN32
1819
#include <unistd.h>
20+
#else
21+
#include <io.h>
22+
#endif
1923

2024
#include <ctime>
2125
#include <iostream>

0 commit comments

Comments
 (0)