]> Nishi Git Mirror - tewi.git/commitdiff
add dos supportr
authorNishi <nishi@nishi.boats>
Wed, 16 Oct 2024 14:34:51 +0000 (14:34 +0000)
committerNishi <nishi@nishi.boats>
Wed, 16 Oct 2024 14:34:51 +0000 (14:34 +0000)
git-svn-id: file:///raid/svn-personal/tewi/trunk@359 8739d7e6-ffea-ec47-b151-bdff447c6205

13 files changed:
Platform/dos.mk [new file with mode: 0644]
README
README.tmpl
Server/config.c
Server/http.c
Server/main.c
Server/module.c
Server/server.c
Server/strptime.c
Server/strptime.h
Server/tw_config.h
Server/version.c
config_platform.h

diff --git a/Platform/dos.mk b/Platform/dos.mk
new file mode 100644 (file)
index 0000000..a324eeb
--- /dev/null
@@ -0,0 +1,16 @@
+# $Id$
+
+PREFIX = C:/Tewi
+
+PLATFORM_IDENT = DOS_WATCOM
+CC = owcc
+AR = wlib
+AR_FLAGS = -q -b -n -fo
+CFLAGS = -b dos4g$(END) -I $(WATCOM)/h -I $(PWD)/watt32/inc -g -std=c99 -DPREFIX=\"$(PREFIX)\" -I ../Common -fPIC
+LDFLAGS = -b dos4g$(END)
+LIBS = $(PWD)/watt32/lib/wattcpwf.lib
+EXEC = .exe
+STATIC = lib
+LIBSUF = .dll
+OBJ = obj
+MODULE=
diff --git a/README b/README
index ec6a1b414fc2b8b3410fadd222972027be1ef861..f2cbcc7f899c8877e2cf6cd4930706d2a778928f 100644 (file)
--- a/README
+++ b/README
@@ -46,6 +46,7 @@ Haiku                    Working
 Minix                    Working
 UnixWare                 Working on 7.1.1
 OS/2                     Working
+DOS                      Working, missing module support and multi-threading
 NeXTSTEP                 Working, missing module support
 PlayStation Portable     Working, missing module support
                          TODO: Get multi-threading working (maybe)
index 300843bd6876f1e04831340296dd29fd29b15067..0d15b567a75a3c3b85ea817d4a993ccd0282e74f 100644 (file)
@@ -46,6 +46,7 @@ Haiku                    Working
 Minix                    Working
 UnixWare                 Working on 7.1.1
 OS/2                     Working
+DOS                      Working, missing module support and multi-threading
 NeXTSTEP                 Working, missing module support
 PlayStation Portable     Working, missing module support
                          TODO: Get multi-threading working (maybe)
index 53d860ea7e4ed0c48e11f70bcf6fedb063b0d133..dea42446078d0bbe2f3e55f8708a6300515ff053 100644 (file)
@@ -14,7 +14,7 @@
 #include <unistd.h>
 #endif
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__))
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__))
 #ifdef USE_WINSOCK1
 #include <winsock.h>
 #else
index cf74139dfa5431dacd171df46491756a626b88a5..8357759e542e47251793b043f7939c70245a1fe2 100644 (file)
@@ -21,7 +21,7 @@
 #include <tcpustd.h>
 #endif
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__))
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__))
 #ifdef USE_WINSOCK1
 #include <winsock.h>
 #else
index 2400b33656cb5bdc6dc0e1bbc024c03ae884165b..b5c7000bd4e30499917b2ecf3c528cffa58feddc 100644 (file)
 #include <types.h>
 #endif
 
+#ifdef __DOS__
+#include <tcp.h>
+#endif
+
 #include <cm_log.h>
 #include <cm_string.h>
 
@@ -34,7 +38,7 @@
 #include "tw_server.h"
 #include "tw_version.h"
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__))
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__))
 #include <windows.h>
 #elif defined(__NETWARE__)
 #endif
@@ -93,7 +97,7 @@ char tw_server[2048];
 
 int startup(int argc, char** argv);
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__)) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__)) || defined(__BORLANDC__)
 char* get_registry(const char* main, const char* sub) {
        DWORD bufsize = 512;
        HKEY handle;
@@ -750,7 +754,7 @@ void thread_stuff(void* pargs) {
 int startup(int argc, char** argv) {
        int i;
        char* r;
-#if defined(__MINGW32__) || defined(_MSC_VER) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__)) || defined(__BORLANDC__)
+#if defined(__MINGW32__) || defined(_MSC_VER) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__)) || defined(__BORLANDC__)
        char* confpath = cm_strdup(PREFIX "/etc/tewi.conf");
        char* regpath = get_registry("Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Tewi HTTPd", "InstallDir");
        if(regpath != NULL) {
@@ -823,6 +827,9 @@ int startup(int argc, char** argv) {
                STDERR_LOG("Could not read the config\n");
                return 1;
        }
+#ifdef __DOS__
+       sock_init();
+#endif
        if(tw_server_init() != 0) {
                STDERR_LOG("Could not initialize the server\n");
                return 1;
@@ -834,7 +841,7 @@ int startup(int argc, char** argv) {
 #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(__BORLANDC__) && !defined(__WATCOMC__)
        signal(SIGCHLD, SIG_IGN);
        signal(SIGPIPE, SIG_IGN);
-#elif !defined(BUILD_GUI) && !defined(__OS2__) && !defined(__NETWARE__)
+#elif !defined(BUILD_GUI) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__)
        SetConsoleTitle(tw_server);
 #endif
        return -1;
index 8ebd3952774d7739a1c0c907fb4f259d344e2c73..b04d912d76e8114d00371d31eb3ee64d46788c7e 100644 (file)
@@ -17,7 +17,7 @@
 
 extern struct tw_config config;
 
-#if defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(__NeXT__)
+#if defined(_PSP) || defined(__PPU__) || defined(__ps2sdk__) || defined(__NeXT__) || defined(__DOS__)
 void* tw_module_load(const char* path) { return NULL; }
 
 void* tw_module_symbol(void* mod, const char* sym) { return NULL; }
index 7a4247477ae2e26ecd34f206b97f40c5bf36b66b..3ed89fecc5c01ef7297c214715ae0c136ad217ac 100644 (file)
@@ -47,7 +47,7 @@ typedef int socklen_t;
 #include <tcpustd.h>
 #endif
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__))
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__))
 #ifndef NO_GETNAMEINFO
 #include <ws2tcpip.h>
 #include <wspiapi.h>
@@ -70,6 +70,13 @@ typedef int socklen_t;
 #define htons(x) x
 #include "strptime.h"
 typedef int socklen_t;
+#elif defined(__DOS__)
+#include <netinet/tcp.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <sys/select.h>
+
+#include "strptime.h"
 #else
 #ifdef USE_POLL
 #ifdef __PPU__
@@ -166,7 +173,7 @@ void close_socket(int sock) {
 
 int tw_server_init(void) {
        int i;
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__))
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__))
        WSADATA wsa;
 #ifdef USE_WINSOCK1
        WSAStartup(MAKEWORD(1, 1), &wsa);
@@ -964,6 +971,7 @@ cleanup:
        close_socket(sock);
 #if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__)
 #ifdef __NETWARE__
+#elif defined(__DOS__)
 #else
        _endthread();
 #endif
@@ -986,6 +994,7 @@ struct thread_entry {
        thread_id thread;
 #elif defined(__NETWARE__)
        int thread;
+#elif defined(__DOS__)
 #else
        HANDLE handle;
 #endif
@@ -1075,6 +1084,8 @@ void tw_server_loop(void) {
                                        _beginthread(tw_server_pass, 0, 0, e);
 #elif defined(__NETWARE__)
                                        tw_server_pass(e);
+#elif defined(__DOS__)
+                                       tw_server_pass(e);
 #else
                                        _beginthread(tw_server_pass, 0, e);
 #endif
index 3148cc5fc8ea56413e55d0b0c128f3b927882466..6277c2b52527e2e30ffa6841daaac0407803a573 100644 (file)
@@ -469,7 +469,7 @@ recurse:
                     bp = NULL;
                     continue;
                 }
-#if defined(_WIN32) || defined(__OS2__) || defined(__NeXT__)
+#if defined(_WIN32) || defined(__OS2__) || defined(__NeXT__) || defined(__DOS__)
 #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__NeXT__)
                if (1)
 #else
index d69f07ab1ad8e8aecd9d06916beee35b5fff38f9..c56574730c4c6d3970197955fb412e1e56b709b5 100644 (file)
@@ -7,7 +7,7 @@ extern "C" {
 
 #include <time.h>
 
-#if defined(_WIN32) || defined(_PSP) || defined(__ps2sdk__) || defined(__OS2__) || defined(__NETWARE__) || defined(__NeXT__)
+#if defined(_WIN32) || defined(_PSP) || defined(__ps2sdk__) || defined(__OS2__) || defined(__NETWARE__) || defined(__NeXT__) || defined(__DOS__)
 char* strptime(const char *buf, const char *fmt, struct tm *tm);
 #endif
 
index 579ee4d7124c90a95441dba24c85b2d1be2cdd01..f1f3dcb51b87d4cc34d4a064a528959ec39ebf8d 100644 (file)
@@ -17,7 +17,7 @@ extern "C" {
 #include <sys/types.h>
 #endif
 
-#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__))
+#if defined(__MINGW32__) || defined(_MSC_VER) || defined(__BORLANDC__) || (defined(__WATCOMC__) && !defined(__OS2__) && !defined(__NETWARE__) && !defined(__DOS__))
 #ifdef USE_WINSOCK1
 #include <winsock.h>
 #else
index 73e2de751fd20a3c99b0496f1ce074712a076d90..b38a060393e11b19a7aac0a1082e69fffcc92570 100644 (file)
@@ -21,6 +21,8 @@ const char* tw_platform =
     "NeXT"
 #elif defined(__NETWARE__)
     "NetWare"
+#elif defined(__DOS__)
+    "DOS"
 #elif defined(__MINGW32__)
     "Windows-MinGW32"
 #elif defined(_MSC_VER)
index fa20200e8d670792ab9e2bdc02f5ec2a19008061..3d4d5308c126a74caa3fcb0d906b2a085db6049c 100644 (file)
 #define NO_IPV6
 #endif
 
+#if defined(__WATCOMC__) && defined(__DOS__) && !defined(NO_IPV6)
+#define NO_IPV6
+#endif
+
 #if defined(__NeXT__) && !defined(NO_IPV6)
 #define NO_IPV6
 #endif