Notes about the Abyss Patch -- By: Rosimildo da Silva, Jan 31, 2001. ------------------------------------------------------------------- This file contains some notes about the changes made to the Abyss source tree. The changes were required to fix a few bugs, and port the base code to compile under CygWin, and Borland C++ free compiler. The free compiler for Win32 from Borland can be downloaded from here: http://www.borland.com/bcppbuilder/freecompiler/ What is new: + Package should compile out of the box under CygWin + Added makefiles and changes to use Borland C++ compiler under WIN32 as well as VC++ 6.0 + Fix Abyss.dsp to use the proper thread safe libraries, and updated to VC++ 6.0 + Fixed thread leaks ( handles ) Applying the patch to Abyss-0.3.tar.gz -------------------------------------- + get archive from here: http://abyss.linuxave.net/abyss-0.3.tar.gz WARNING: this site seems to be dead for the last two months. + cd /work ( any dir ) tar xzvf abyss-0.3.tar.gz cd abyss patch -p1 ( BCC_PATH=d:\bcb5 ) make -f makefile.bcc32 c) VC++ 6.0 cd abyss\src msdev Abyss.dsp ( Or just open the workspace with Visual Studio, and you know the drill ). NOTE: Under Cygwin, after I apply the patch, Visual Studio was unable to recognize the workspace. ??? List of changes done to the ABYSS http server: ( ChangesLog ) ---------------------------------------------- + changed _WIN32 to ABYSS_WIN32. THis solve the problem that the macro _WIN32 is defined under CygWin. CygWin has a unix like api ( _UNIX ), so the macro _UNIX should be defined then. Under CygWin we would have _UNIX and _WIN32 defined at the same time. + Theead API -- Added two extra functions: ThreadExit() and ThreadClose(). These allows the resources of the threads to be released when the thread has complete its duty serving the request. + Added extra flag to TConn structure to make possible the management of the worker threads by the server. + Changed allocation of TConn array from stack to heap. This would cause problems on certain system ( specially embedded systems ), where the stack sizes arr not that large. + Changed ServerRun to free thread resources when the connection for the thread is closed. + Changed main.c to make the sginal registration conforming with the usage of the _FORK option. + Change ThreadCreate to be able to specify the "stack size" of the worker's threads ( pthread ). Defined lable for it. + Added flag _NO_USERS to disable check for users and groups. This is useful for embedded systems where no users are available. + Updated VC++ workspace to version 6.0 + Changed the creation of the thread under WIN32 to use a RTL function ( _beginthreadex ), as recommend by MS, instead of using the naked WIN32 API. -- Rosimildo da Silva rdasilva@connectel.com ConnectTel, Inc. Austin, TX -- USA Phone : 512-338-1111 Fax : 512-918-0449 Company Page: http://www.connecttel.com Home Page: http://members.nbci.com/rosimildo/