Re: [Harbour] Re: HBNETIO - How I tested ...
tcp is already giving you a fair piece of resiliance against corruption. not to say more robust stuff is absolutely unimaginable, but you are not completely naked in the dark. Ok I painted a vague picture. I agree tcp is a proven technology but what will happen with the following scenarios while creating an index: 1. Connection suddenly went off 2. Client app crash 3. Client app hang To server and other clients? Same thing as in a normal (file-server based) scenario. NETIO replaces the file-IO layer, so it can't do any more magic to solve above problems. Brgds, Viktor ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
On Thu, 17 Sep 2009, David Arturo Macias Corona wrote: Hi, So the .dbf's are created in d: while indexs .z01's are created in the folder where these belong to. Now the question is why this behavior ? Przemek ? It should be no difference. HBNETIO knows nothing about file type or default file location. It simply creates files in places requested by client. NetIO suggests that root of any server will never be allowed to be accessed. Am I correct? By default NETIO server set as root directory the directory which is returned by HB_DIRBASE(). In most of cases this function should return absolute path to executed application (NETIO server). You can test it by simple code: proc main() ? HB_DIRBASE() return If HB_DIRBASE() doesn't return absolute path then the protection may not work. In such way I suggest to set root path manually as 3-rd parameter of NETIO_LISTEN() or NETIO_MTSERVER() functions. Please remember that setting disable protection and client can access whole disk. In one of last commit I fixed typo which could cause that leading dir separators were moved before root path, i.e. for root path c:\dir when client was requesting \\file.xxx NETIO server was accessing file \\c:\dir\file.xxx. I have no idea how it can be interpreted by some OS-es. Maybe it was possible to use it to exploit the protection. Question remain: How you created .dbf files in d:\ (root dir) when netserver_os2.exe was running in d:\creative.ram\ ? They are 4 possible answers: 1. HB_DIRBASE() does not return absolute path on your platform or simply returns empty dir. Can you check what it returns? Does it contain drive letter? 2. some strange root dir was explicitly set. 3. it was side effect of bug described above and you were using NETIO server without my fix (BTW please remember that you have to keep server and client version fixed) 4. there is still problem and in some situations (some OS/FS) it's possible to break NETIO root dir protection. best regards, Przemek ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
Hi Przemek, Thank you for making NETIO possible. Will directory functions be supported? (e.g. mkdir and rmdir) I need to scatter my tables for fast access. Thanks -- ___ Surf the Web in a faster, safer and easier way: Download Opera 9 at http://www.opera.com Powered by Outblaze ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
On Thu, 17 Sep 2009, Jerry Finuliar wrote: Hi, Thank you for making NETIO possible. Will directory functions be supported? (e.g. mkdir and rmdir) I need to scatter my tables for fast access. Such functionality will be available in final version of alternative IO APIs. It will be possible to redirect any operations but now only functionality used by core RDD code is supported. best regards, Przemek ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
Such functionality will be available in final version of alternative IO APIs. It will be possible to redirect any operations but now only functionality used by core RDD code is supported. Ok I'll wait for it. One more question Are there plans to address data corruptions inherent in network applications? Sorry for asking so much and taking some of your time. TIA Best Regards, Jerry -- ___ Surf the Web in a faster, safer and easier way: Download Opera 9 at http://www.opera.com Powered by Outblaze ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
On Fri, 18 Sep 2009, Jerry Finuliar wrote: Such functionality will be available in final version of alternative IO APIs. It will be possible to redirect any operations but now only functionality used by core RDD code is supported. Ok I'll wait for it. One more question Are there plans to address data corruptions inherent in network applications? tcp is already giving you a fair piece of resiliance against corruption. not to say more robust stuff is absolutely unimaginable, but you are not completely naked in the dark. -- [-] mkdir /nonexistent ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
tcp is already giving you a fair piece of resiliance against corruption. not to say more robust stuff is absolutely unimaginable, but you are not completely naked in the dark. Ok I painted a vague picture. I agree tcp is a proven technology but what will happen with the following scenarios while creating an index: 1. Connection suddenly went off 2. Client app crash 3. Client app hang To server and other clients? Best Regards Jerry -- ___ Surf the Web in a faster, safer and easier way: Download Opera 9 at http://www.opera.com Powered by Outblaze ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour
Re: [Harbour] Re: HBNETIO - How I tested ...
On 09/02/2009 07:49 PM, Angel Pais wrote: When trying to compile this new lib on Ubuntu I get... an...@angel-laptop:~/src/harbour$ make ! Building Harbour 2.0.0beta2 from source - http://www.harbour-project.org ! MAKE: make 3.81 /bin/sh ! HB_INSTALL_PREFIX: /usr/bin ! HB_BIN_INSTALL: /usr/bin ! HB_LIB_INSTALL: /usr/lib ! HB_INC_INSTALL: /usr/include ! HB_HOST_PLAT: linux HB_SHELL: sh ! HB_PLATFORM: linux (autodetected) ! HB_COMPILER: gcc (autodetected: /usr/bin/) ! Component: 'openssl' found in /usr/include ! Component: 'gpm' found in /usr/include ! Component: 'slang' found in /usr/include ! Component: 'curses' found in /usr/include ! Component: 'x11' found in /usr/include ! Component: 'WATTCP/WATT-32' not supported on linux platform ! REVISION: 12394 make[2]: No se hace nada para `all'. make[1]: No se hace nada para `all'. make[3]: `../../../../../lib/linux/gcc/libhbcommon.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbnortl.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbpp.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbcplr.a' está actualizado. make[3]: `../../../../../bin/linux/gcc/harbour' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbrtl.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgtcgi.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgtcrs.a' está actualizado. ! 'gtdos' library skipped ! 'gtgui' library skipped ! 'gtos2' library skipped make[4]: `../../../../../../lib/linux/gcc/libgtpca.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgtsln.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgtstd.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgttrm.a' está actualizado. ! 'gtwin' library skipped ! 'gtwvt' library skipped make[4]: `../../../../../../lib/linux/gcc/libgtxwc.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbvm.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libhbvmmt.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmacro.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbcpage.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhblang.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbrdd.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libhbnulrdd.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/librddntx.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/librddnsx.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/librddcdx.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/librddfpt.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libhbsix.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libhbhsx.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libhbusrrdd.a' está actualizado. make[4]: `../../../../../../../lib/linux/gcc/libhbuddall.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbextern.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbpcre.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbzlib.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbdebug.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libharbour-2.0.0.so' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libharbourmt-2.0.0.so' está actualizado. make[3]: `../../../../../bin/linux/gcc/hbrun' está actualizado. make[3]: `../../../../../bin/linux/gcc/hbmk2' está actualizado. make[3]: `../../../../../bin/linux/gcc/hbi18n' está actualizado. make[3]: `../../../../../bin/linux/gcc/hbtest' está actualizado. make[3]: `../../../../../bin/linux/gcc/hbformat' está actualizado. ! 'gtwvg' library skipped make[3]: `../../../../../lib/linux/gcc/libhbbmcdx.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbbtree.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbclipsm.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbct.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbgt.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmisc.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmzip.a' está actualizado. make[2]: *** No hay objetivos. Alto. make[1]: *** [hbnetio] Error 2 make: *** [contrib] Error 2 an...@angel-laptop:~/src/harbour$ ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE AND CROSS COMPILE HARBOUR FOR WIN ON LINUX === * ( Tested on Ubuntu 9.04 and Ubuntu 9.10 ) * To get main reference please read the INSTALL file under the harbour source directory You need to be connected to the Net. First please
Re: [Harbour] Re: HBNETIO - How I tested ...
On 09/02/2009 07:49 PM, Angel Pais wrote: When trying to compile this new lib on Ubuntu I get... an...@angel-laptop:~/src/harbour$ make ! Building Harbour 2.0.0beta2 from source - http://www.harbour-project.org ! MAKE: make 3.81 /bin/sh ! HB_INSTALL_PREFIX: /usr/bin ! HB_BIN_INSTALL: /usr/bin ! HB_LIB_INSTALL: /usr/lib ! HB_INC_INSTALL: /usr/include ! HB_HOST_PLAT: linux HB_SHELL: sh ! HB_PLATFORM: linux (autodetected) ! HB_COMPILER: gcc (autodetected: /usr/bin/) ! Component: 'openssl' found in /usr/include ! Component: 'gpm' found in /usr/include ! Component: 'slang' found in /usr/include ! Component: 'curses' found in /usr/include ! Component: 'x11' found in /usr/include ! Component: 'WATTCP/WATT-32' not supported on linux platform ! REVISION: 12394 make[2]: No se hace nada para `all'. make[1]: No se hace nada para `all'. make[3]: `../../../../../bin/linux/gcc/harbour' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbrtl.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgtcgi.a' está actualizado. make[4]: `../../../../../../lib/linux/gcc/libgtcrs.a' está actualizado. ! 'gtdos' library skipped ! 'gtgui' library skipped ! 'gtos2' library skipped ... make[3]: `../../../../../lib/linux/gcc/libhbgt.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmisc.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmzip.a' está actualizado. make[2]: *** No hay objetivos. Alto. make[1]: *** [hbnetio] Error 2 make: *** [contrib] Error 2 an...@angel-laptop:~/src/harbour$ ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour In previous reply please replace the row: hbwmk -static -n -w -es2 netiotst with this: hbwmk -static -n -w -es2 -gtwin netiotst I repost entirely here for clarity HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE AND CROSS COMPILE HARBOUR FOR WIN ON LINUX === * ( Tested on Ubuntu 9.04 and Ubuntu 9.10 ) * To get main reference please read the INSTALL file under the harbour source directory You need to be connected to the Net. First please enable the universe repositories from menu System → Administration → Software Sources and confirm repositorie reload Please install these deb packages... so you have almost all packages to compile contrib libraries and related stuffs Please open a terminal window Applications → Accessories → Terminal and type or copy and paste (one row a time then press enter) sudo apt-get update When you use sudo the system ask you for a password, please typein your user password: you will not see any feedback (i.e terminal chars) when you type your password, so type the password, then press enter; sudo apt-get install wget cvs rcs build-essential ncurses-dev libslang2-dev tk8.3-dev unixodbc-dev subversion libncurses-dev libx11-dev libgpm-dev libcurl4-openssl-dev firebird2.1-dev libfreeimage-dev libgd2-xpm-dev libmysqlclient15-dev libpq-dev libqt4-dev liballegro4.2-dev libsqlite3-dev wine dosemu-freedos mingw32 Then update from svn Harbour 1) - Please open a terminal window Applications → Accessories → Terminal 2) - Please check the requested packages are installed see above; 3) - Type the commands rows below you can also do a copy and paste of the row, please copy and paste a row a time then press enter; mkdir $HOME/src cd $HOME/src svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour harbour cd $HOME/src/harbour export HB_BIN_INSTALL=/usr/bin export HB_INSTALL_PREFIX=/usr/bin export HB_LIB_INSTALL=/usr/lib export HB_INC_INSTALL=/usr/include make sudo -E make install When you use sudo the system ask you for a password, please type-in your user password: you will not see any feedback (i.e terminal chars) when you type your password, so type the password, then press enter; to verify your build date of harbour, type: harbour -build to generate Harbour for Win cd $HOME/src/harbour/; make HB_PLATFORM=win export HB_INSTALL_PREFIX=/tmp/hbwin; make install HB_PLATFORM=win Possible cross-build targets: Windows, Windows CE, MS-DOS, OS/2 You can use HB_PLATFORM values to select other platforms than Linux: win - MS Windows (all flavors) wce - MS Windows CE dos - MS-DOS (32-bit protected mode only) (MS-DOS compatible system also work, like dosemu) os2 - OS/2 To generate the win exe files to be run with wine using Harbour export HB_BIN_COMPILE=/tmp/hbwin/bin export PATH=/tmp/hbwin/bin:$PATH to your *nix PATH and then: cd $HOME/src/harbour/contrib/hbnetio hbwmk -static -n -w -es2 -gtwin netiotst To check the file generated # file netiotst.exe netiotst.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit to run the file type: wine ./netiotst.exe
Re: [Harbour] Re: HBNETIO - How I tested ...
On Wed, 02 Sep 2009, Angel Pais wrote: Hi, When trying to compile this new lib on Ubuntu I get... [...] make[3]: `../../../../../lib/linux/gcc/libhbgt.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmisc.a' está actualizado. make[3]: `../../../../../lib/linux/gcc/libhbmzip.a' está actualizado. make[2]: *** No hay objetivos. Alto. make[1]: *** [hbnetio] Error 2 make: *** [contrib] Error 2 an...@angel-laptop:~/src/harbour$ It looks like a local problem with your SVN repository copy. Check what you have in ~/src/harbour/contrib/hbnetio directory. I.e. execute: svn update and svn status in this directory. For sure the SVN code and build scripts are correct. BTW hbnetio should be added to DEB packages too. I'll make it in a while. best regards, Przemek ___ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour