Hi Przemek,
Do you see any problems renaming public HB_SOCKET_T to simply HB_SOCKET?
(at the same time in hbinet.c HB_SOCKET should be renamed to
HB_SOCKET_STRUCT
to comply with other parts of Harbour (and avoid collision))
Brgds,
Viktor
On 2009.07.27., at 11:43, dru...@users.sourceforge.net wrote:
Revision: 11892
http://harbour-project.svn.sourceforge.net/harbour-project/?rev=11892&view=rev
Author: druzus
Date: 2009-07-27 21:43:31 +0000 (Mon, 27 Jul 2009)
Log Message:
-----------
2009-07-27 23:43 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
+ added socket error codes to HB_IOERRORS
* harbour/include/Makefile
+ harbour/include/hbsocket.ch
+ harbour/include/hbsocket.h
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbsocket.c
+ added new BSD socket functions: hb_socket*(). They should be
quite
close to low level C socket interface with few modifications
which
help to hide some platform differences. Unfortunately we do not
use
autoconf so I had to arbitrary set which features are available
on some platforms. In practice it means that it reduces
portability
to older OS-es, i.e. it should work with current Linux versions
but it will not without some modifications in macros used to
control
supported features with older Linuxes using kernel 2.2 or 2.0.
The same can happen with other *nix ports like Darwin, SunOS,
HP-UX
or with different versions of some Windows compilers. I also do
not
know which functionality is available in OS2 GCC ports and I
would
like to ask OS2 users to make tests and disable not working
features.
We also need tests with HP-UX, Darwin and SunOS.
IP6 support is enabled only in *nixes. If Windows users are
interested
in IP6 then please add support for it. Most of Windows
compilers do
not support standard POSIX functions so I do not want to make it
myself using unknown for me API without testing.
In *nix builds PF_UNIX/PF_LOCAL sockets are also supported.
Support for other socket types can be easy added if someone is
interested in them.
The constant values used in hbsocket.ch are equal to original BSD
socket definitions. If it's necessary then it's possible to
enable
their translation inside hbsocket.c code though I do not think we
will find such OS.
The list of hb_socket*() functions was designed to cover all
existing
functionality in hbinet.c and socket.c. Most of functions
supports
timeout parameter what effectively allows to hide direct select()
usage.
Please make test with real applications and report any problems
with hb_inet*() functions you will find.
* harbour/source/vm/hvm.c
* minor cleanup
* harbour/source/rtl/hbi18n1.c
* cleaned variable name
* harbour/source/rtl/hbinet.c
* harbour/examples/uhttpd2/socket.c
* harbour/contrib/hbssl/hbssl.c
* updated to use hb_socket*() functions
* harbour/include/hbextern.ch
* enabled HB_INET*() functions in DOS builds - they will simply
return
errors
- harbour/include/hbapinet.h
- removed old header file
* harbour/source/pp/ppcore.c
! modified ENDTEXT marker to work also with comments in the same
line
It's more closer to Clipper though intentionally we are not fully
CA-Cl*pper compatible here.
Modified Paths:
--------------
trunk/harbour/ChangeLog
trunk/harbour/contrib/hbssl/hbssl.c
trunk/harbour/examples/uhttpd2/socket.c
trunk/harbour/include/Makefile
trunk/harbour/include/hbextern.ch
trunk/harbour/include/hbstack.h
trunk/harbour/source/pp/ppcore.c
trunk/harbour/source/rtl/Makefile
trunk/harbour/source/rtl/hbi18n1.c
trunk/harbour/source/rtl/hbinet.c
trunk/harbour/source/vm/hvm.c
Added Paths:
-----------
trunk/harbour/include/hbsocket.ch
trunk/harbour/include/hbsocket.h
trunk/harbour/source/rtl/hbsocket.c
Removed Paths:
-------------
trunk/harbour/include/hbapinet.h
This was sent by the SourceForge.net collaborative development
platform, the world's largest Open Source development site.
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour