1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

Added stub calls for WinPcap.

This commit is contained in:
Daniel Collins 2014-04-01 22:55:16 +01:00
parent fdc1204426
commit 3974a2337c
3 changed files with 23 additions and 7 deletions

View File

@ -36,7 +36,7 @@ VERSION := git
IPXWRAPPER_DEPS := src/ipxwrapper.o src/winsock.o src/ipxwrapper_stubs.o src/log.o src/common.o \
src/interface.o src/router.o src/ipxwrapper.def src/addrcache.o src/config.o src/addr.o \
src/addrtable.o src/firewall.o
src/addrtable.o src/firewall.o src/wpcap_stubs.o
BIN_FILES := $(shell cat manifest.bin.txt)
SRC_FILES := $(shell cat manifest.src.txt)
@ -98,8 +98,8 @@ ipxwrapper.dll: $(IPXWRAPPER_DEPS)
echo 'const char *version_string = "$(VERSION)", *compile_time = "'`date`'";' | $(CC) -c -x c -o version.o -
$(CC) $(CFLAGS) -Wl,--enable-stdcall-fixup -shared -o ipxwrapper.dll $(IPXWRAPPER_DEPS) version.o -liphlpapi -lversion -lole32 -loleaut32
ipxconfig.exe: src/ipxconfig.cpp icons/ipxconfig.o src/addr.o src/interface.o src/common.o src/config.o
$(CXX) $(CXXFLAGS) -static-libgcc -static-libstdc++ -D_WIN32_IE=0x0400 -mwindows -o ipxconfig.exe $^ -liphlpapi -lcomctl32 -lws2_32
ipxconfig.exe: src/ipxconfig.cpp icons/ipxconfig.o src/addr.o src/interface.o src/common.o src/config.o src/wpcap_stubs.o
$(CXX) $(CXXFLAGS) -Wl,--enable-stdcall-fixup -static-libgcc -static-libstdc++ -D_WIN32_IE=0x0400 -mwindows -o ipxconfig.exe $^ -liphlpapi -lcomctl32 -lws2_32
dpwsockx.dll: src/directplay.o src/log.o src/dpwsockx_stubs.o src/common.o src/config.o src/addr.o src/dpwsockx.def
$(CC) $(CFLAGS) -Wl,--enable-stdcall-fixup -shared -o $@ $^ -lwsock32
@ -116,6 +116,9 @@ src/mswsock_stubs.s: src/mswsock_stubs.txt
src/dpwsockx_stubs.s: src/dpwsockx_stubs.txt
perl mkstubs.pl src/dpwsockx_stubs.txt src/dpwsockx_stubs.s 3
src/wpcap_stubs.s: src/wpcap_stubs.txt
perl mkstubs.pl src/wpcap_stubs.txt src/wpcap_stubs.s 5
icons/%.o: icons/%.rc icons/%.ico
windres $< -O coff -o $@

View File

@ -29,10 +29,11 @@ static const char *dll_names[] = {
"mswsock.dll",
"dpwsockx.dll",
"ws2_32.dll",
"wpcap.dll",
NULL
};
static HANDLE dll_handles[] = {NULL, NULL, NULL, NULL, NULL};
static HANDLE dll_handles[] = {NULL, NULL, NULL, NULL, NULL, NULL};
/* Convert a windows error number to an error message */
const char *w32_error(DWORD errnum) {
@ -225,8 +226,9 @@ bool reg_set_addr48(HKEY key, const char *name, addr48_t value)
void load_dll(unsigned int dllnum) {
char path[512];
const char *dll;
if(dllnum) {
if(dllnum && dllnum != 5) {
GetSystemDirectory(path, sizeof(path));
if(strlen(path) + strlen(dll_names[dllnum]) + 2 > sizeof(path)) {
@ -236,9 +238,12 @@ void load_dll(unsigned int dllnum) {
strcat(path, "\\");
strcat(path, dll_names[dllnum]);
dll = path;
}
else{
dll = dll_names[dllnum];
}
const char *dll = dllnum ? path : dll_names[dllnum];
dll_handles[dllnum] = LoadLibrary(dll);
if(!dll_handles[dllnum]) {

8
src/wpcap_stubs.txt Normal file
View File

@ -0,0 +1,8 @@
pcap_open
pcap_close
pcap_findalldevs_ex
pcap_freealldevs
pcap_getevent
pcap_dispatch
pcap_geterr
pcap_sendpacket