* contrib/hbssl/hbssl.hbx
* contrib/hbssl/bio.c
! fixed BIO_set_conn_int_port() to work with OpenSSL >= 1.1
(emulation with BIO_set_conn_port())
! fixed BIO_get_conn_ip() to work with OpenSSL >= 1.1
(emulation with BIO_get_conn_address() and BIO_ADDR_hostname_string())
+ added BIO_get_conn_address(), it returns HB_SOCKET compatible array
with address
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/sslctx.c
+ added new function SSL_CTX_use_RSAPrivateKey()
! respect OPENSSL_NO_RSA macro in other SSL_CTX_use_RSA*() functions
* contrib/hbssl/evp.c
! use EVP_CIPHER_key_length() and EVP_CIPHER_iv_length() in
EVP_BytesToKey() to detect the exact key and iv length.
* contrib/hbssl/hbssl.h
* contrib/hbssl/evppkey.c
* contrib/hbssl/rsa.c
* removed hb_RSA_par_remove() function, use RSA_up_ref() instead
* contrib/hbssl/hbssl.h
* contrib/hbssl/x509.c
* contrib/hbssl/pem.c
* contrib/hbssl/ssl.c
* removed 2-nd parameter ( HB_BOOL fRelease ) from hb_X509_ret(),
use X509_up_ref() instead
* contrib/hbssl/pem.c
* respect OPENSSL_NO_DSA, OPENSSL_NO_DH and OPENSSL_NO_RSA macros
* contrib/hbssl/ssl_sock.c
* added casting to pacify SSL_set_fd() warning and updated link with
description of the problem
* .github/workflows/vm1-ci.yml
* reenabled freebsd builds
* be sure N_CPUS is always set
* show compiler version before build
* contrib/3rd/sqlite3/sqlite3.hbp
* enable -Wno-unknown-warning-option only for CLANG - older GCC versions
does not like it
* use -Wno-stringop-overread instead of -Wno-error=stringop-overread,
Unlike Wno-error=* the unknown -Wno-* options are ignored by most of
old GCC compilers
* contrib/hbcurl/core.c
! declare buffer for CURLOPT_ERRORBUFFER as 'char *' instead of
'unsigned char *', the exact buffer type is chcked in typecheck-gcc.h
and 'unsigned char *' does not pass this test
; QUESTION:
Why curl_easy_setopt( <pCurl>, HB_CURLOPT_ER_BUFF_SETUP, [<nBufSize>] )
accepts <nBufSize> parameter?
Buffer smaller then CURL_ERROR_SIZE means GPF and larger waste of memory.
The only acceptable value for <nBufSize> is CURL_ERROR_SIZE.
The allocate buffer should be initialized with '\0' otherwise we will
have other GPF trap when user call curl_easy_er_buff_get() before any
error is set. This bug was fixed in CURL 7.60.0.
* .github/workflows/vm1-ci.yml
* .github/workflows/vm2-ci.yml
* updated to always set number of CPUs for -j GNU make switch,
using unlimited number of forks (-j without parameter) causes
'Resource temporarily unavailable' error
2025-01-24 19:15 UTC-0300 Mario Wan Stadnik (wanstadnik gmail.com)
* utils/hbmk2/hbmk2.prg
* http://timestamp.verisign.com/scripts/timstamp.dll has limped
along for the last few years and had been working in a sort
of depreciated state, but the new owners of the certificate
issuing business, DigiCert, have issued a migration alert so
we are switching to: http://timestamp.comodoca.com/authenticode
; It allows the user to choose the algorithm: SHA256 or SH1
* contrib/hbct/dattime3.c
! fixed in block variable declaration for strict ANSI C compat
* code formatting
; both borrowed from Viktor's fork, thanks
aa4665f16fd9f37296b0
* src/rdd/dbcmd.c
* note about C5.3/5.2 DBAPPEND( [<lUnlockAll>=.t.] ) updated again
upon Przemek notification, thanks
* contrib/hbwin/olecore.c
* pacified false MSVC warning. It's very seldom situation that I'm adding
code to pacify false compiler warnings anyhow in this case it cost in
practice nothing so I decided to do that.
* contrib/xhb/hboutdbg.c
* src/rtl/gtcrs/gtcrs.c
* NULL pointer casting to pacify warning
* src/pp/hbpp.c
% do not created new iLen variable but reuse the one previously declared
* src/vm/classes.c
% allocate puiMsgIdx as array of HB_USHORT items instead of HB_SYMCNT.
This modification only reduces the memory usage and has no effect on
number of accepted symbols.
* changed 'HB_SYMCNT uiHashKey' to 'HB_SIZE nHashKey' to avoid explicit
casting in the code
* contrib/hbssl/hbssl.hbm
* added -Wno-error=deprecated-declarations to suppress errors in Solaris
strict builds compiled with -Werror
EVP_des_*() except EVP_des_ede3*()), EVP_desx_*(), EVP_rc[24]*() and
EVP_md[245]*() are deprecated
* include/hbdate.h
* src/common/hbdate.c
* src/harbour.def
+ added new C functions:
HB_BOOL hb_timeStrGetUTC( const char * szTime,
int * piHour, int * piMinutes,
int * piSeconds, int * piMSec,
int * piUTCOffset );
HB_BOOL hb_timeStampStrGetUTC( const char * szDateTime,
int * piYear, int * piMonth,
int * piDay, int * piHour,
int * piMinutes, int * piSeconds,
int * piMSec, int * piUTCOffset );
They can decode timestamp value with ISO 8601 UTC offset.
* src/common/hbdate.c
* use hb_timeStampStrGetUTC() in hb_timeStampStrGetDT() and return UTC
time if it was with UTC offset
Now Harbour compiler accept timestamp strings with with UTC offset, i.e.
? t"2025-01-22 00:45 UTC+0100" // => 2025-01-21 23:45:00.000
Also HB_StrToTS() supports it.
* src/pp/hbpp.c
* use new hb_timeStampStrGetDT() to decode timestamp from ChangeLog to
build revision number. It also fixes bug with decoding negative UTC
offsets.
* contrib/hbcurl/core.c
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/hbcurl.hbx
* applied more cleanups, following Viktor Szakats guidance in hisrepo:
6127603217
- add `HB_CURLM_ERROR` to indicate error in hbcurl wrapper.
- replace use of `HB_CURLM_INTERNAL_ERROR` with `HB_CURLM_ERROR`.
- sync Harbour variable integer sizes with curl ones.
- tidy up a variable scopes.
- drop unused variable.
- omit `hb_ret()` (it's a no-op).
- formatting.
- add functions to `hbcurl.hbx`.
+ add curl_ws_send()/curl_ws_recv() - WebSocket connectivity,
borrowed from Viktor's fork, thanks again!
2c71a5c940
* src/rdd/dbcmd.c
* note about C5.3 and Harbour extensions to
DBAPPEND( [<lUnlockAll>=.t.] ), thanks Viktor
* ChangeLog.txt
! typos
* utils/hbmk2/hbmk2.prg
* do not interrupt whole build process when optional dependency package
is disabled explicitly by -depcontrol=<optdeppkg>:no
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* respect QT_SELECT envvar looking for QT dependencies
* .github/workflows/windows-ci.yml
* install freeimage only in 64-bit environment,
it's not available in the 32-bit one
* contrib/3rd/sqlite3/sqlite3.hbp
* use -Wno-unknown-warning-option to pacify problems with old
clang versions which do not understand -Wno-stringop-overread
* contrib/3rd/sqlite3/sqlite3.hbp
* do not enable -Wno-error=stringop-overread C compiler flag in MS-Windows
clang builds and HB_BUILD_TEST='strict' - this C clang version does not
support it
* .github/workflows/windows-ci.yml
* disabled global -Wno-error=... C compiler parameters
* set HB_BUILD_TEST="${{matrix.strictness}}" envvar
* contrib/3rd/sqlite3/sqlite3.hbp
* set -Wno-error=stringop-overread C compiler parameter for GCC builds
when HB_BUILD_TEST='strict'
* contrib/hbzebra/hbzebra.hbp
* set -Wno-error=array-bounds C compiler parameter for GCC builds
when HB_BUILD_TEST='strict'
* include/hbapifs.h
! added missing declaration for hb_fileParamGet()
* include/hbgtcore.h
* added HB_EXPORT attribute for hb_gt_getClipboard(), hb_gt_setClipboard()
and hb_gt_dos_keyCodeTranslate()
* include/hbrdddbf.h
! removed declaration for hb_dbfTranslateRec() function - this functions
was removed many years ago
* include/harbour.hbx
* src/harbour.def
! fixed order of declared functions - they should be sorted.
* contrib/hbssl/evp.c
* clear key and iv buffers before passing them to EVP_BytesToKey()
otherwise some uninitialized bytes are accessed and valgrind reports
uninitialized memory access
* contrib/hbssl/evpciph.c
! fixed typo in index in my previous commit
* contrib/hbssl/tests/digest.prg
! use OPENSSL_VERSION_NUMBER() instead OPENSSL_VERSION() to retrieve
OpenSSL version number
* contrib/hbssl/tests/inetssl.prg
* updated to use 2048 RSA certificates instead of 1024 ones which are
no more supported by modern OpenSSL libraries
* contrib/hbssl/tests/pem.prg
* cleaned output
* contrib/hbssl/bio.c
! added missing BIO_free() call in HB_BIO destructor
! fixed BIO_free() function to properly operate on HB_BIO structure
* contrib/hbssl/evp.c
! fixed EVP_PKEY_free() to work with Harbour GC pointer items instead of
raw pointer items
* contrib/hbssl/evpciph.c
! fixed EVP_SealInit() and EVP_OpenInit() to work with Harbour GC pointer
items instead of raw pointer items
* contrib/hbssl/hbssl.h
* contrib/hbssl/rsa.c
* contrib/hbssl/evppkey.c
+ added new C functions:
void hb_RSA_par_free( int iParam );
EVP_PKEY * hb_EVP_PKEY_get( PHB_ITEM pItem );
void hb_EVP_PKEY_free( PHB_ITEM pItem );
* contrib/hbssl/evppkey.c
! fixed EVP_PKEY_assign_RSA to work with RSA Harbour GC pointer
item instead of raw pointer items
* contrib/hbssl/pem.c
! redirect old dummy functions to current ones using Harbour GC pointer
items:
PEM_read_bio_PrivateKey() => PEM_read_PrivateKey()
PEM_read_bio_PUBKEY() => PEM_read_PUBKEY()
PEM_read_bio_X509() => PEM_read_X509()
PEM_read_bio_X509_AUX() => PEM_read_X509_AUX()
Now they should work.
; above are only few fixes for chosen problems and still there are many
others, most of HBSSL code should be rewritten from scratch to work
with OpenSSL 3.x API
* contrib/hbssl/bio.c
! added missing BIO_free() call in HB_BIO destructor
! fixed BIO_free() function to properly operate on HB_BIO structure
* contrib/hbssl/evpciph.c
! accept EVP_KEY Harbour pointer items in EVP_SealInit()
* contrib/hbssl/hbssl.h
* contrib/hbssl/rsa.c
* contrib/hbssl/evppkey.c
! accept EVP_KEY Harbour pointer items in EVP_PKEY_assign_RSA()
; above are only few fixes for chosen problems and still there are many others
; most of HBSSL code should be rewritten to work with OpenSSL 3.0 API
* src/rtl/listbox.prg
* merged #371 from Kamil, thanks for the patch.
Applied minor reformat .NOT. -> ! and added a comment
about buggy ListBox:hitTest() on no-box dropdown in
Cl*pper 5.3.
* src/rtl/listbox.prg
! fixed nTop not being incremented in ListBox:hitTest() for no-box dropdown
* replaced inconsistent references to ::nTop with nTop
* renamed variables to better reflect their role
* contrib/hbcurl/hbcurl.ch
* updated HB_CURLOPT_SSL_OPTIONS: HB_CURLSSLOPT_*
+ added HB_CURLMSG_RESP_HANDLE, HB_CURLMSG_RESP_HPOS
mappings of array elements returned by
curl_multi_info_read( <hMulti>[, <aHandles> ]) -> <aResults>
* contrib/hbcurl/core.c
* adapted @emazv72 contribution from:
https://github.com/vszakats/hb/pull/344
Many thanks, it could be useful for managing multiple transfers,
by extending some kind of Inkey() loop or in many other
scenarios.
+ added curl lib version guards
* minor code and code formattings
+ extended function
curl_multi_info_read( <hMulti>[, <aHandles> ]) -> <aResults>
with a possibility to return real GC pointer of specific
transfer related to reported event. <aHandles> should be
specified if this is expected.
+ contrib/hbcurl/tests/multi.prg
+ demo of the additions
* src/common/hbver.c
* indent cleanup
* src/rtl/filesys.c
* src/rtl/fssize.c
! restore dynamic calling of GetFileAttributesEx() on
Windows (significant only on very old systems)
* config/global.mk
* config/win/clang-noauto.mk
* config/win/clang.mk
* supplemented config for Windows clang cross compilers
distributed in multilib fashion, like Martin Storsjo's:
https://github.com/mstorsjo/llvm-mingw
+ HB_CCPREFIX= support for clang on Windows, you can build
ARM64 Harbour from AMD64 hosts using mentioned toolchain:
set PATH=C:\llvm-mingw\bin;%PATH%
set HB_COMPILER=clang
win-make (build for your host first)
set HB_CCPREFIX=aarch64-w64-mingw32-
set HB_HOST_BIN=<HarbourPath>\bin\win\clang\ (if not autodetected)
win-make
; cross compiling from Unix hosts is not yet tested, but
looks very close to be possible
! fixed typo's
* utils/hbmk2/hbmk2.prg
* changed llvm-ar call to also respect HB_CCPREFIX