sgcWebSockets utilise ZLib pour la compression/décompression WebSocket. Récemment, Zlib a publié une nouvelle version qui corrige les problèmes suivants :
- Correction d'un bug de deflate lors de l'utilisation de la stratégie Z_FIXED pouvant entraîner des accès hors limites.
- Correction d'un bug de deflate lorsque la fenêtre est pleine dans deflate_stored().
- Accélération des calculs CRC-32 d'un facteur de 1,5 à 3.
- Utilisation de l'instruction CRC-32 matérielle sur les processeurs ARMv8.
- Accélération de crc32_combine() avec des tables de puissances de x.
- Ajout de crc32_combine_gen() et crc32_combine_op() pour des combinaisons rapides.
ZLib lié statiquement
sgcWebSockets Enterprise Edition inclut une version personnalisée d'Indy qui utilise ZLib pour lier statiquement les fichiers .obj ; ces fichiers ont été mis à jour vers la dernière version de ZLib, il te suffit donc de télécharger la dernière version de sgcWebSockets pour appliquer ce correctif.
C'est l'option par défaut, donc pour 99 % des utilisateurs, la simple mise à jour de la version de sgcWebSockets suffira (sgcWebSockets 2022.4+).
Bibliothèque dynamique ZLib
À partir de sgcWebSockets 2022.4.0, au lieu de lier statiquement les fichiers .obj dans ton binaire, tu peux charger la bibliothèque zlib dynamiquement.
Pour cela, ajoute le define conditionnel suivant à ton projet :
SGC_DYNAMICLOAD_ZLIB
Alternativement, tu peux éditer le fichier sgcIndy.inc (situé dans le dossier source) et ajouter la ligne suivante
{$DEFINE SGC_DYNAMICLOAD_ZLIB}
Enfin, tu dois définir l'emplacement de la bibliothèque ZLib ; pour cela, utilise la méthode suivante et passe le chemin complet (sans le nom de la bibliothèque) où elle se trouve
sgcIdZLibHeaders.IdZLibSetLibPath('c:\software\zlib');
*Cette configuration n'est valide que pour sgcWebSockets Enterprise Edition avec code source. La DLL ZLib compilée peut être téléchargée depuis le compte privé.
