sgcWebSockets usa ZLib para la compresión y descompresión de WebSocket. Recientemente ZLib ha publicado una nueva versión que corrige los siguientes problemas:
- Corrige un bug de deflate al usar la estrategia Z_FIXED que podía provocar accesos fuera de límites.
- Corrige un bug de deflate cuando la ventana está llena en deflate_stored().
- Acelera el cálculo de CRC-32 entre 1,5 y 3 veces.
- Utiliza la instrucción CRC-32 por hardware en procesadores ARMv8.
- Acelera crc32_combine() mediante tablas de potencias de x.
- Añade crc32_combine_gen() y crc32_combine_op() para combinaciones rápidas.
ZLib enlazado estáticamente
sgcWebSockets Enterprise Edition incluye una versión personalizada de Indy que usa ZLib para enlazar estáticamente los archivos .obj; esos archivos se han actualizado a la última versión de ZLib, así que solo necesitas descargar la última versión de sgcWebSockets para aplicar este parche.
Esta es la opción por defecto, así que para el 99% de los usuarios bastará con actualizar la versión de sgcWebSockets (sgcWebSockets 2022.4+).
Biblioteca dinámica de ZLib
Desde sgcWebSockets 2022.4.0, en lugar de enlazar estáticamente los archivos .obj en tu binario, puedes cargar la biblioteca zlib de forma dinámica.
Para ello, añade el siguiente Conditional Define a tu proyecto:
SGC_DYNAMICLOAD_ZLIB
Como alternativa, puedes editar el archivo sgcIndy.inc (ubicado en la carpeta source) y añadir la siguiente línea
{$DEFINE SGC_DYNAMICLOAD_ZLIB}
Por último, debes indicar dónde se encuentra la biblioteca ZLib; para ello, usa el siguiente método y pasa la ruta completa (sin el nombre de la biblioteca) donde se ubica
sgcIdZLibHeaders.IdZLibSetLibPath('c:\software\zlib');
*Esta configuración solo es válida para sgcWebSockets Enterprise Edition con código fuente. La DLL compilada de ZLib puede descargarse desde la cuenta privada.
