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:
parent
fdc1204426
commit
3974a2337c
9
Makefile
9
Makefile
@ -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 $@
|
||||
|
||||
|
13
src/common.c
13
src/common.c
@ -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
8
src/wpcap_stubs.txt
Normal file
@ -0,0 +1,8 @@
|
||||
pcap_open
|
||||
pcap_close
|
||||
pcap_findalldevs_ex
|
||||
pcap_freealldevs
|
||||
pcap_getevent
|
||||
pcap_dispatch
|
||||
pcap_geterr
|
||||
pcap_sendpacket
|
Loading…
x
Reference in New Issue
Block a user