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 \
|
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/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)
|
BIN_FILES := $(shell cat manifest.bin.txt)
|
||||||
SRC_FILES := $(shell cat manifest.src.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 -
|
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
|
$(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
|
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) -static-libgcc -static-libstdc++ -D_WIN32_IE=0x0400 -mwindows -o ipxconfig.exe $^ -liphlpapi -lcomctl32 -lws2_32
|
$(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
|
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
|
$(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
|
src/dpwsockx_stubs.s: src/dpwsockx_stubs.txt
|
||||||
perl mkstubs.pl src/dpwsockx_stubs.txt src/dpwsockx_stubs.s 3
|
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
|
icons/%.o: icons/%.rc icons/%.ico
|
||||||
windres $< -O coff -o $@
|
windres $< -O coff -o $@
|
||||||
|
|
||||||
|
13
src/common.c
13
src/common.c
@ -29,10 +29,11 @@ static const char *dll_names[] = {
|
|||||||
"mswsock.dll",
|
"mswsock.dll",
|
||||||
"dpwsockx.dll",
|
"dpwsockx.dll",
|
||||||
"ws2_32.dll",
|
"ws2_32.dll",
|
||||||
|
"wpcap.dll",
|
||||||
NULL
|
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 */
|
/* Convert a windows error number to an error message */
|
||||||
const char *w32_error(DWORD errnum) {
|
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) {
|
void load_dll(unsigned int dllnum) {
|
||||||
char path[512];
|
char path[512];
|
||||||
|
const char *dll;
|
||||||
|
|
||||||
if(dllnum) {
|
if(dllnum && dllnum != 5) {
|
||||||
GetSystemDirectory(path, sizeof(path));
|
GetSystemDirectory(path, sizeof(path));
|
||||||
|
|
||||||
if(strlen(path) + strlen(dll_names[dllnum]) + 2 > 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, "\\");
|
||||||
strcat(path, dll_names[dllnum]);
|
strcat(path, dll_names[dllnum]);
|
||||||
}
|
|
||||||
|
|
||||||
const char *dll = dllnum ? path : dll_names[dllnum];
|
dll = path;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
dll = dll_names[dllnum];
|
||||||
|
}
|
||||||
|
|
||||||
dll_handles[dllnum] = LoadLibrary(dll);
|
dll_handles[dllnum] = LoadLibrary(dll);
|
||||||
if(!dll_handles[dllnum]) {
|
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