sgcWebSockets uses ZLib for WebSocket Compression/Decompression. Recently Zlib a released a nouvelle version avec fixes le suivant issues:
- Fix a deflate bug lorsque utilisant le Z_FIXED strategy que peut result in out-of-bound accesses.
- Fix a deflate bug lorsque le window est full in deflate_stored().
- Speed up CRC-32 computations par un factor de 1.5 to 3.
- Use le hardware CRC-32 instruction on ARMv8 processors.
- Speed up crc32_combine() avec powers de x tables.
- Add crc32_combine_gen() et crc32_combine_op() for fast combines.
ZLib Statically Linked
sgcWebSockets Enterprise Edition inclut a custom Indy version qui rend use de ZLib to statically link le .obj files, ces files ont été updated vers le latest ZLib version, donc tu seulement doit download le dernier sgcWebSockets version to apply ce fix.
Ceci est le option par défaut, donc for 99% de utilisateurs, just updating le sgcWebSockets version sera enough (sgcWebSockest 2022.4+).
ZLib Dynamic Library
From sgcWebSockets 2022.4.0, au lieu de statically link le .obj files in ton binary, tu peux load le zlib library dynamically.
Pour cela, add le suivant Conditional Define to ton projet:
SGC_DYNAMICLOAD_ZLIB
As an alternative, tu peux edit le fichier sgcIndy.inc (located dans le source folder) et add le suivant line
{$DEFINE SGC_DYNAMICLOAD_ZLIB}
Enfin, tu dois définir le location où est le ZLib library, pour cela, utiliser le suivant méthode et pass le Full Path (without le nom de la library) où est located
sgcIdZLibHeaders.IdZLibSetLibPath('c:\software\zlib');
*This configuration est seulement valid for sgcWebSockets Enterprise Edition avec Source code. Le compiled ZLib dll peut être downloaded depuis le private account.
