]> Nishi Git Mirror - dataworks.git/commitdiff
add rcli stuff
authornishi <nishi@d4a5a174-5a4a-5b4b-b672-37683c10d7d5>
Thu, 13 Jun 2024 02:09:13 +0000 (02:09 +0000)
committernishi <nishi@d4a5a174-5a4a-5b4b-b672-37683c10d7d5>
Thu, 13 Jun 2024 02:09:13 +0000 (02:09 +0000)
git-svn-id: file:///raid/svn-main/nishi-dataworks/trunk@285 d4a5a174-5a4a-5b4b-b672-37683c10d7d5

Makefiles/Platforms/win9x.mk
Makefiles/common-decl.mk
Makefiles/common.mk
README.md
RemoteClient/Makefile
RemoteClient/hayes.c [new file with mode: 0644]
RemoteClient/rcli.c [new file with mode: 0644]
RemoteClient/tcpip.c [new file with mode: 0644]
Server/tcpip.c

index e4c1dcda11e4b8a55ed4575a42704d3cd23b0714..e28993e649857fa8ab474bc583d551c0de957fda 100644 (file)
@@ -4,3 +4,4 @@ WATCOM_PLATFORM=win95
 include Makefiles/Platforms/watcom.mk
 EXEC_SUFFIX=.exe
 SERVER =
+RCLI =
index fbde8f3c330dfa6cede4bc28c5fcfcd40954602f..933fc48d519798d28082519ccbe85f1e8d9c144c 100644 (file)
@@ -22,6 +22,7 @@ PLATFORM_M = `uname -m`
 PLATFORM_P = `uname -p | sed -E "s/[ \\(\\)]/-/g"`
 LINK_LIB = ../Library/$(STATICLIB_PREFIX)dataworks$(STATICLIB_SUFFIX)
 SERVER = ./Server
+RCLI = ./RemoteClient
 SERVER_MODULE = tcpip.o
 RCLI_MODULE = tcpip.o
 VERSION = `cat Library/dataworks.c | grep " dataworks_version " | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9]+)?'`
index 58e59fc125ea04ebe462f14d4233fddb145de1d8..7afe2b422ea406b19668c0aefe1449f935c5c373 100644 (file)
@@ -1,10 +1,10 @@
 # $Id$
 
-.PHONY: all no-doc replace format clean ./Library ./Client ./Document ./Grammar ./Package/PKGBUILD archive archive-prepare archive-cleanup archive-targz archive-zip dosbox prepare-dosbox dosbox-x cleanup-dosbox get-version
+.PHONY: all no-doc replace format clean ./Library ./Client ./Document ./Grammar ./RemoteClient ./Package/PKGBUILD archive archive-prepare archive-cleanup archive-targz archive-zip dosbox prepare-dosbox dosbox-x cleanup-dosbox get-version
 
-all: ./Grammar ./Library ./Client $(SERVER) ./Document
+all: ./Grammar ./Library ./Client $(SERVER) $(RCLI) ./Document
 
-no-doc: ./Grammar ./Library ./Client $(SERVER)
+no-doc: ./Grammar ./Library ./Client $(SERVER) $(RCLI)
 
 ./Grammar::
        $(MAKE) -C $@ $(COMPILE_FLAGS)
@@ -18,6 +18,9 @@ no-doc: ./Grammar ./Library ./Client $(SERVER)
 ./Server:: ./Library
        $(MAKE) -C $@ $(COMPILE_FLAGS)
 
+./RemoteClient:: ./Library
+       $(MAKE) -C $@ $(COMPILE_FLAGS)
+
 ./Document::
        $(MAKE) -C ./Document $(COMPILE_FLAGS)
 
@@ -45,6 +48,7 @@ archive-prepare: all
        rm -f dataworks.zip dataworks.tar.gz
        rm -rf dataworks-dist
        mkdir -p dataworks-dist
+       mkdir -p dataworks-dist/RemoteClient
        mkdir -p dataworks-dist/Server
        mkdir -p dataworks-dist/Client
        mkdir -p dataworks-dist/Library
@@ -54,6 +58,8 @@ archive-prepare: all
        -cp Library/*.lib dataworks-dist/Library/
        -cp Server/dataworks_server$(EXEC_SUFFIX) dataworks-dist/Server/
        -rmdir dataworks-dist/Server
+       -cp RemoteClient/dataworks_remote_client$(EXEC_SUFFIX) dataworks-dist/RemoteClient/
+       -rmdir dataworks-dist/RemoteClient
        cp Library/*.h dataworks-dist/Library/
        cp Client/dataworks$(EXEC_SUFFIX) dataworks-dist/Client/
        cp -rf Document/doc/html dataworks-dist/Document/html
index 15e3ae0bf32edee114926b9200ab06a18bb5e5b9..a0e147853abb482b5e73e733a73a65d43a816908 100644 (file)
--- a/README.md
+++ b/README.md
@@ -68,6 +68,9 @@ Original: http://sw.nishi.boats/svn/nishi-dataworks
  - `Package`
  
        Contains files related to package manager
+ - `RemoteClient`
+       Contains remote client source code
  - `Server`
  
        Contains server source code
index 1bdaf00c3586fa0e4a5c417ba400243e7b5c716d..c864c4276ae1a410626c4a7e36ba628fbb45fedd 100644 (file)
@@ -5,7 +5,7 @@
 
 OBJS = rcli.o $(RCLI_MODULE)
 
-all: dataworks_server$(EXEC_SUFFIX)
+all: dataworks_remote_client$(EXEC_SUFFIX)
 
 dataworks_remote_client$(EXEC_SUFFIX): $(OBJS) $(LINK_LIB)
        $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(LINK_LIB) $(RCLILINK_LIB)
diff --git a/RemoteClient/hayes.c b/RemoteClient/hayes.c
new file mode 100644 (file)
index 0000000..a2b35fc
--- /dev/null
@@ -0,0 +1,27 @@
+/* $Id$ */
+/* --- START LICENSE --- */
+/* -------------------------------------------------------------------------- */
+/* Copyright (c) 2024 Crabware.                                               */
+/* Redistribution and use in source and binary forms, with or without modific */
+/* ation, are permitted provided that the following conditions are met:       */
+/*     1. Redistributions of source code must retain the above copyright noti */
+/* ce, this list of conditions and the following disclaimer.                  */
+/*     2. Redistributions in binary form must reproduce the above copyright n */
+/* otice, this list of conditions and the following disclaimer in the documen */
+/* tation and/or other materials provided with the distribution.              */
+/*     3. Neither the name of the copyright holder nor the names of its contr */
+/* ibutors may be used to endorse or promote products derived from this softw */
+/* are without specific prior written permission.                             */
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS */
+/* " AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, TH */
+/* E IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPO */
+/* SE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS  */
+/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CON */
+/* SEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITU */
+/* TE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPT */
+/* ION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, S */
+/* TRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN AN */
+/* Y WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY  */
+/* OF SUCH DAMAGE.                                                            */
+/* -------------------------------------------------------------------------- */
+/* --- END LICENSE --- */
diff --git a/RemoteClient/rcli.c b/RemoteClient/rcli.c
new file mode 100644 (file)
index 0000000..ab24a2f
--- /dev/null
@@ -0,0 +1,5 @@
+/* $Id$ */
+/* --- START LICNESE --- */
+/* --- END LICNESE --- */
+
+int main() {}
diff --git a/RemoteClient/tcpip.c b/RemoteClient/tcpip.c
new file mode 100644 (file)
index 0000000..a2b35fc
--- /dev/null
@@ -0,0 +1,27 @@
+/* $Id$ */
+/* --- START LICENSE --- */
+/* -------------------------------------------------------------------------- */
+/* Copyright (c) 2024 Crabware.                                               */
+/* Redistribution and use in source and binary forms, with or without modific */
+/* ation, are permitted provided that the following conditions are met:       */
+/*     1. Redistributions of source code must retain the above copyright noti */
+/* ce, this list of conditions and the following disclaimer.                  */
+/*     2. Redistributions in binary form must reproduce the above copyright n */
+/* otice, this list of conditions and the following disclaimer in the documen */
+/* tation and/or other materials provided with the distribution.              */
+/*     3. Neither the name of the copyright holder nor the names of its contr */
+/* ibutors may be used to endorse or promote products derived from this softw */
+/* are without specific prior written permission.                             */
+/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS */
+/* " AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, TH */
+/* E IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPO */
+/* SE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS  */
+/* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CON */
+/* SEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITU */
+/* TE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPT */
+/* ION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, S */
+/* TRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN AN */
+/* Y WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY  */
+/* OF SUCH DAMAGE.                                                            */
+/* -------------------------------------------------------------------------- */
+/* --- END LICENSE --- */
index 736e6310fa26692d477ff7f71b5831f34c41a23b..db4bcb9292d647c26dd3a45486429875969c2ac8 100644 (file)
@@ -41,7 +41,11 @@ extern char** argv;
 extern bool auth;
 extern char* authfile;
 
-#ifdef __MINGW32__
+#if defined(__MINGW32__)
+#define USE_WINSOCK
+#endif
+
+#ifdef USE_WINSOCK
 #include <process.h>
 #include <windows.h>
 #include <winsock2.h>
@@ -61,7 +65,7 @@ bool option(const char* str, const char* shortopt, const char* longopt);
 
 int port = 4096;
 int server_socket;
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
 struct sockaddr_in server_address;
 #else
 struct sockaddr_in6 server_address;
@@ -97,11 +101,11 @@ int server_init(void) {
                        db = dataworks_database_open(argv[i]);
                }
        }
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
        WSADATA wsa;
        WSAStartup(MAKEWORD(2, 0), &wsa);
 #endif
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
        if((server_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {
 #else
        if((server_socket = socket(AF_INET6, SOCK_STREAM, IPPROTO_TCP)) < 0) {
@@ -120,7 +124,7 @@ int server_init(void) {
                close(server_socket);
                return 1;
        }
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
 #else
        int no = 0;
        if(setsockopt(server_socket, IPPROTO_IPV6, IPV6_V6ONLY, &no, sizeof(no)) < 0) {
@@ -130,7 +134,7 @@ int server_init(void) {
        }
 #endif
        memset(&server_address, 0, sizeof(server_address));
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
        server_address.sin_family = AF_INET;
        server_address.sin_addr.S_un.S_addr = INADDR_ANY;
        server_address.sin_port = htons(port);
@@ -149,7 +153,7 @@ int server_init(void) {
                close(server_socket);
                return 1;
        }
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
 #else
        signal(SIGCHLD, SIG_IGN);
 #endif
@@ -157,7 +161,7 @@ int server_init(void) {
        return 0;
 }
 
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
 unsigned int WINAPI pass_sock(LPVOID sockptr) {
        int sock = *(int*)sockptr;
 #else
@@ -165,7 +169,7 @@ void pass_sock(int sock) {
 #endif
        protocol_init(sock);
        protocol_loop(sock);
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
        closesocket(sock);
 #else
        close(sock);
@@ -177,7 +181,7 @@ void server_loop(void) {
                struct sockaddr_in claddr;
                int clen = sizeof(claddr);
                int sock = accept(server_socket, (struct sockaddr*)&claddr, &clen);
-#ifdef __MINGW32__
+#ifdef USE_WINSOCK
                HANDLE thread;
                thread = (HANDLE)_beginthreadex(NULL, 0, pass_sock, &sock, 0, NULL);
 #else