diff --git a/src/internet/CMakeLists.txt b/src/internet/CMakeLists.txt index 68fc7ec07..b4b294417 100644 --- a/src/internet/CMakeLists.txt +++ b/src/internet/CMakeLists.txt @@ -253,6 +253,13 @@ set(header_files model/windowed-filter.h ) +set(private_header_files) +if(WIN32) + set(private_header_files + model/win32-internet.h + ) +endif() + set(test_sources test/global-route-manager-impl-test-suite.cc test/icmp-test.cc @@ -333,6 +340,7 @@ build_lib( LIBNAME internet SOURCE_FILES ${source_files} HEADER_FILES ${header_files} + PRIVATE_HEADER_FILES ${private_header_files} LIBRARIES_TO_LINK ${libnetwork} ${libcore} diff --git a/src/internet/model/win32-internet.h b/src/internet/model/win32-internet.h new file mode 100644 index 000000000..ad890d798 --- /dev/null +++ b/src/internet/model/win32-internet.h @@ -0,0 +1,20 @@ +/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ + +#ifndef WIN32_INTERNET_H +#define WIN32_INTERNET_H + +/* Winsock2.h is a cursed header that + * causes multiple name collisions + * + * We use this private header to prevent them + */ + +#include +#undef GetObject +#undef SetPort +#undef SendMessage +#undef CreateFile +#undef Rectangle +#undef interface + +#endif // WIN32_INTERNET_H