From 0f896e79a14b84383870c42beecb4924fd8d404c Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Fri, 22 Dec 2017 15:15:36 +1100
Subject: winpcap: add test and fix posix build

Can't figure out how to get the line endings in original patch to
apply correctly with git-formatted patch.

fixes #2007
---
 src/winpcap-2-fixes.patch | 55 +++++++++++++++++++++++++++++++++++++++++++++++
 src/winpcap.mk            | 18 +++++++++++++++-
 2 files changed, 72 insertions(+), 1 deletion(-)
 create mode 100644 src/winpcap-2-fixes.patch

diff --git a/src/winpcap-2-fixes.patch b/src/winpcap-2-fixes.patch
new file mode 100644
index 0000000..c4d43e8
--- /dev/null
+++ b/src/winpcap-2-fixes.patch
@@ -0,0 +1,55 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Fri, 22 Dec 2017 14:32:47 +1100
+Subject: [PATCH 1/2] fix building test program
+
+
+diff --git a/wpcap/libpcap/pcap-win32.c b/wpcap/libpcap/pcap-win32.c
+index 1111111..2222222 100644
+--- a/wpcap/libpcap/pcap-win32.c
++++ b/wpcap/libpcap/pcap-win32.c
+@@ -86,7 +86,7 @@ struct bpf_hdr {
+ 
+ CRITICAL_SECTION g_PcapCompileCriticalSection;
+ 
+-BOOL WINAPI DllMain(
++BOOL WINAPI DllMain_disabled(
+   HANDLE hinstDLL,
+   DWORD dwReason,
+   LPVOID lpvReserved
+diff --git a/wpcap/libpcap/scanner.c b/wpcap/libpcap/scanner.c
+index 1111111..2222222 100644
+--- a/wpcap/libpcap/scanner.c
++++ b/wpcap/libpcap/scanner.c
+@@ -39,6 +39,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <stdlib.h>
++#include <ws2tcpip.h>
+ 
+ /* end standard C headers. */
+ 
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Fri, 22 Dec 2017 14:54:56 +1100
+Subject: [PATCH 2/2] fix posix build
+
+
+diff --git a/wpcap/libpcap/Win32/Include/net/netdb.h b/wpcap/libpcap/Win32/Include/net/netdb.h
+index 1111111..2222222 100644
+--- a/wpcap/libpcap/Win32/Include/net/netdb.h
++++ b/wpcap/libpcap/Win32/Include/net/netdb.h
+@@ -57,7 +57,7 @@
+ #ifndef _NETDB_H_
+ #define _NETDB_H_
+ 
+-#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(_REENTRANT)
++#if (defined(_POSIX_THREAD_SAFE_FUNCTIONS) || defined(_REENTRANT)) && !defined(_WIN32)
+ #include <stdio.h>
+ #include <netinet/in.h>
+ #endif
diff --git a/src/winpcap.mk b/src/winpcap.mk
index 4b88cc1..a4c6441 100644
--- a/src/winpcap.mk
+++ b/src/winpcap.mk
@@ -19,7 +19,7 @@ endef
 
 define $(PKG)_BUILD
     # build
-    cd '$(1)' && $(TARGET)-gcc -ICommon -IpacketNtx/Dll -O -c '$(1)/packetNtx/Dll/Packet32.c'
+    cd '$(1)' && $(TARGET)-gcc -ICommon -IpacketNtx/Dll -O -c '$(1)/packetNtx/Dll/Packet32.c' -D_WINNT4
     cd '$(1)' && $(TARGET)-gcc -ICommon -IpacketNtx/Dll -O -c '$(1)/packetNtx/Dll/AdInfo.c'
     cd '$(1)' && $(TARGET)-gcc -ICommon -IpacketNtx/Dll -O -c '$(1)/packetNtx/Dll/NpfImExt.c'
     $(TARGET)-ar rc '$(1)/libpacket.a' '$(1)/Packet32.o' '$(1)/AdInfo.o' '$(1)/NpfImExt.o'
@@ -60,6 +60,22 @@ define $(PKG)_BUILD
         '$(PREFIX)/$(TARGET)/include/pcap/'
 
     $(INSTALL) -m644 '$(1)/wpcap/PRJ/libwpcap.a' '$(PREFIX)/$(TARGET)/lib/'
+
+    # create pkg-config file
+    $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+    (echo 'Name: $(PKG)'; \
+     echo 'Version: $($(PKG)_VERSION)'; \
+     echo 'Description: $($(PKG)_DESCR)'; \
+     echo 'Requires:'; \
+     echo 'Libs: -lwpcap -lpacket -lws2_32 -lversion'; \
+     echo 'Cflags: -I$(PREFIX)/$(TARGET)/include/pcap';) \
+     > '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
+
+    # compile test
+    '$(TARGET)-gcc' \
+        -W -Wall \
+        '$(SOURCE_DIR)/Examples-pcap/basic_dump_ex/basic_dump_ex.c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
+        `'$(TARGET)-pkg-config' $(PKG) --cflags --libs`
 endef
 
 $(PKG)_BUILD_SHARED =
-- 
cgit v0.12