]> Nishi Git Mirror - tewi.git/commitdiff
winsock1 support
authorNishi <nishi@nishi.boats>
Thu, 3 Oct 2024 05:54:55 +0000 (05:54 +0000)
committerNishi <nishi@nishi.boats>
Thu, 3 Oct 2024 05:54:55 +0000 (05:54 +0000)
git-svn-id: file:///raid/svn-personal/tewi/trunk@240 8739d7e6-ffea-ec47-b151-bdff447c6205

15 files changed:
Makefile
Platform/bcc.mk
Platform/vc6.mk
Platform/watcom.mk
Platform/win32-service.mk
Platform/win32.mk
Platform/win64-service.mk
Platform/win64.mk
Server/config.c
Server/http.c
Server/server.c
Server/tw_config.h
Tool/option.c
bcc.sh
config.h.tmpl

index 77f48c1c3e8e932dcc08d0a1580dfc656d643d19..7344a0a6eb3f2a478c3d234b77ca2cd07377438a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,7 @@
 
 PWD = `pwd`
 PLATFORM = generic
+PLATFORM_IDENT = NOT_WINDOWS
 PREFIX = /usr/local
 MODULE = ./Module
 
@@ -23,7 +24,7 @@ all: ./Server $(MODULE)
        cc -o $@ ./Tool/itworks.c
 
 ./Server:: ./Common ./Tool/option ./Tool/genconf ./Tool/itworks
-       $(MAKE) -C $@ $(FLAGS) EXTOBJS="`./Tool/option objs ../`" EXTLIBS="`./Tool/option libs ../`" EXTCFLAGS="`./Tool/option cflags ../`" EXTLDFLAGS="`./Tool/option ldflags ../`"
+       $(MAKE) -C $@ $(FLAGS) EXTOBJS="`./Tool/option objs ../`" EXTLIBS="`./Tool/option libs ../ $(PLATFORM_IDENT)`" EXTCFLAGS="`./Tool/option cflags ../`" EXTLDFLAGS="`./Tool/option ldflags ../`"
 
 ./Module:: ./Common
        $(MAKE) -C $@ $(FLAGS)
index 7fc5c671abc58d784ce1fafd9e24a32b6f13d1e4..42e6f64a2b5279426693134b1ec4e9ac40bec0d4 100644 (file)
@@ -2,13 +2,14 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS
 CC = ../bcc.sh
 AR = tlib
 AR_FLAGS =
 AR_PROC = grep -Eo "[^ ]+" | xargs -I {} echo + {}
 CFLAGS = -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I ../Common -fPIC
 LDFLAGS =
-LIBS = -lws2_32
+LIBS =
 EXEC =
 STATIC = lib
 LIBSUF = .dll
index f0105bee2aa48b7dfad75f657699f725e03e95aa..bcf8baa18be36d6192eb117aa3b754f728d3f8d7 100644 (file)
@@ -2,12 +2,13 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS
 CC = ../vc6.sh
 AR = lib
 AR_FLAGS = /nologo /out:
 CFLAGS = -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I ../Common -fPIC
 LDFLAGS =
-LIBS = -lws2_32 -ladvapi32 -llibcmt
+LIBS = -ladvapi32 -llibcmt
 EXEC =
 STATIC = lib
 LIBSUF = .dll
index a3a7efb1d63c38dceb00615bc594066b6c22b50f..ee4393ef7b657d9d413c26dbb9e0ab526277229a 100644 (file)
@@ -2,12 +2,13 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS_WATCOM
 CC = owcc
 AR = wlib
 AR_FLAGS = -q -b -n -fo
 CFLAGS = -b nt$(END) -I $(WATCOM)/h/nt -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I ../Common -fPIC
 LDFLAGS = -b nt$(END)
-LIBS = ws2_32.lib
+LIBS =
 EXEC = .exe
 STATIC = lib
 LIBSUF = .dll
index 751b6ba77727ed139d35f763c833d25b20675645..cd786de5c2b9a34d8e082fdc13acfa7a50d88683 100644 (file)
@@ -2,12 +2,13 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS
 CC = i686-w64-mingw32-gcc
 AR = i686-w64-mingw32-ar
 WINDRES = i686-w64-mingw32-windres
 CFLAGS = -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I $(PWD)/Common -fPIC -DSERVICE -mwindows
 LDFLAGS = -mwindows
-LIBS = -lws2_32
+LIBS = 
 EXEC = .exe
 LIBSUF = .dll
 PREOBJS = tewi.res
index 857d339dc6209b2313c9bc218623bd1dfdb8597e..33682c3d3d5e5f0c216b7a6ff818ee2cea4dcec7 100644 (file)
@@ -2,12 +2,13 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS
 CC = i686-w64-mingw32-gcc
 AR = i686-w64-mingw32-ar
 WINDRES = i686-w64-mingw32-windres
 CFLAGS = -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I $(PWD)/Common -fPIC
 LDFLAGS =
-LIBS = -lws2_32
+LIBS =
 EXEC = .exe
 LIBSUF = .dll
 PREOBJS = tewi.res
index d52befce9d5f4918d80da91458f0ca02454a0759..6ec458dc61908a7a444598ce091a64d75e6ad66a 100644 (file)
@@ -2,12 +2,13 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS
 CC = x86_64-w64-mingw32-gcc
 AR = x86_64-w64-mingw32-ar
 WINDRES = x86_64-w64-mingw32-windres
 CFLAGS = -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I $(PWD)/Common -fPIC -DSERVICE -mwindows
 LDFLAGS = -mwindows
-LIBS = -lws2_32
+LIBS =
 EXEC = .exe
 LIBSUF = .dll
 PREOBJS = tewi.res
index 1d74ff94fcebd15820149fcd6f17b3bfee89cf1f..f2e5842d7fb637dc0c846083354eb5ea20099a5e 100644 (file)
@@ -2,12 +2,13 @@
 
 PREFIX = C:/Tewi
 
+PLATFORM_IDENT = WINDOWS
 CC = x86_64-w64-mingw32-gcc
 AR = x86_64-w64-mingw32-ar
 WINDRES = x86_64-w64-mingw32-windres
 CFLAGS = -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I $(PWD)/Common -fPIC
 LDFLAGS =
-LIBS = -lws2_32
+LIBS = 
 EXEC = .exe
 LIBSUF = .dll
 PREOBJS = tewi.res
index 3a320afd89ce8dd504e23470ff1bea4210e10c04..f2bf9582f9242bf29a2acd621da41c11ad95ba30 100644 (file)
 #endif
 
 #if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__)
+#ifdef USE_WINSOCK1
+#include <winsock.h>
+#else
 #include <winsock2.h>
 #endif
+#endif
 
 #include <cm_string.h>
 #include <cm_log.h>
index b98e0ae6258c5da8e7658ce3e270ab12cda6dd00..e0c69f326017b9c0003c8c09beee43e1d6e2fe32 100644 (file)
 #include <string.h>
 
 #if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
+#ifdef USE_WINSOCK1
+#include <winsock.h>
+#else
 #include <winsock2.h>
+#endif
 #else
 #ifdef USE_POLL
 #ifdef __PPU__
index 3dc722601c6d442bad600d2a47bcb876be8b6792..190339e47a39ce862115a0f3415abc9282921299 100644 (file)
 #include <ws2tcpip.h>
 #include <wspiapi.h>
 #endif
+#ifdef USE_WINSOCK1
+#include <winsock.h>
+#else
 #include <winsock2.h>
+#endif
 #include <process.h>
 #include <windows.h>
 
@@ -122,7 +126,11 @@ int tw_server_init(void) {
        int i;
 #if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
        WSADATA wsa;
+#ifdef USE_WINSOCK1
+       WSAStartup(MAKEWORD(1, 1), &wsa);
+#else
        WSAStartup(MAKEWORD(2, 0), &wsa);
+#endif
 #endif
        for(i = 0; config.ports[i] != -1; i++)
                ;
index 6059e07373aa1539e432024f877fe3aceec4ae9e..2cca1ba350304b03e04efaf63d4ef24b4dad351f 100644 (file)
@@ -15,7 +15,11 @@ extern "C" {
 #include <stdbool.h>
 
 #if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
+#ifdef USE_WINSOCK1
+#include <winsock.h>
+#else
 #include <winsock2.h>
+#endif
 #define NO_IPV6
 #else
 #ifdef __PPU__
index 473f8be14646555a5d14580d057da4b700932e90..c3b556a8098769fcbeba645c6753de4c08a29b00 100644 (file)
@@ -26,6 +26,19 @@ int main(int argc, char** argv) {
 #ifndef NO_SSL
                printf("-lssl -lcrypto");
 #endif
+               if(strcmp(argv[3], "WINDOWS") == 0){
+#ifdef USE_WINSOCK1
+                       printf(" -lwsock32");
+#else
+                       printf(" -lws2_32");
+#endif
+               }else if(strcmp(argv[3], "WINDOWS_WATCOM") == 0){
+#ifdef USE_WINSOCK1
+                       printf(" wsock32.lib");
+#else
+                       printf(" ws2_32.lib");
+#endif
+               }
        }
        printf("\n");
        return 0;
diff --git a/bcc.sh b/bcc.sh
index 4d796cb23bdec69e5073b7f957ec6e09252f4d78..7a92a46925739f12b7ad673424316580921cc2d0 100755 (executable)
--- a/bcc.sh
+++ b/bcc.sh
@@ -31,7 +31,9 @@ for i in "$@"; do
        elif [ "`echo "$i" | grep -Eo "^-D"`" = "-D" ]; then
                options="$options -`echo "$i" | sed "s/^-//g"`"
        elif [ "`echo "$i" | grep -Eo "^-l"`" = "-l" ]; then
-               libraries="$libraries `echo "$i" | sed "s/^-l//g"`.lib"
+               if [ ! "$i" = "-lwsock32" ]; then
+                       libraries="$libraries `echo "$i" | sed "s/^-l//g"`.lib"
+               fi
        elif [ "$dowhat" = "output" ]; then
                dowhat=""
                outfile="$i"
index 97801a2233ac38c4fd8231d90e28f0ccdcf535b3..45fabd2edd24df5ff0ac5e76442d85f0eedb15c7 100644 (file)
@@ -10,6 +10,7 @@
 #define USE_POLL
 #define HAS_CHROOT
 #undef NO_GETADDRINFO
+#undef USE_WINSOCK1
 
 /* DO NOT EDIT BELOW THIS LINE */
 
 #undef USE_POLL
 /* Force select(2) for Windows */
 #endif
+#if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) && defined(USE_WINSOCK1) && !defined(NO_GETADDRINFO)
+#define NO_GETADDRINFO
+/* getaddrinfo is not on winsock 1 */
+#endif
 
 #if (defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)) && defined(HAS_CHROOT)
 #undef HAS_CHROOT