sgcWebSockets, WebSocket Sıkıştırma/Açma işlemleri için ZLib kullanır. Yakın zamanda Zlib yeni bir sürüm yayınladı ve aşağıdaki sorunları giderdi:
- Z_FIXED stratejisi kullanılırken sınır dışı erişimlere yol açabilen bir deflate hatası giderildi.
- deflate_stored() içinde pencere doluyken oluşan bir deflate hatası giderildi.
- CRC-32 hesaplamaları 1,5 ila 3 kat hızlandırıldı.
- ARMv8 işlemcilerde donanım CRC-32 komutu kullanıldı.
- crc32_combine() işlevi x kuvvetleri tablolarıyla hızlandırıldı.
- Hızlı birleştirmeler için crc32_combine_gen() ve crc32_combine_op() eklendi.
ZLib Statik Olarak Bağlanmış
sgcWebSockets Enterprise Edition, .obj dosyalarını statik olarak bağlamak için ZLib kullanan özel bir Indy sürümü içerir. Bu dosyalar en son ZLib sürümüne güncellenmiştir, dolayısıyla bu düzeltmeyi uygulamak için yalnızca en son sgcWebSockets sürümünü indirmeniz yeterlidir.
Bu seçenek varsayılan olarak etkindir, bu nedenle kullanıcıların %99'u için yalnızca sgcWebSockets sürümünü güncellemek yeterli olacaktır (sgcWebSockets 2022.4+).
ZLib Dinamik Kütüphane
sgcWebSockets 2022.4.0 sürümünden itibaren, .obj dosyalarını ikili dosyanıza statik olarak bağlamak yerine zlib kütüphanesini dinamik olarak yükleyebilirsiniz.
Bunu yapmak için projenize aşağıdaki Conditional Define'ı ekleyin:
SGC_DYNAMICLOAD_ZLIB
Alternatif olarak, sgcIndy.inc dosyasını (kaynak klasöründe bulunur) düzenleyebilir ve aşağıdaki satırı ekleyebilirsiniz
{$DEFINE SGC_DYNAMICLOAD_ZLIB}
Son olarak, ZLib kütüphanesinin bulunduğu konumu ayarlamanız gerekir. Bunun için aşağıdaki metodu kullanın ve kütüphanenin bulunduğu Tam Yolu (kütüphanenin adı olmadan) iletin
sgcIdZLibHeaders.IdZLibSetLibPath('c:\software\zlib');
*Bu yapılandırma yalnızca Kaynak kodu içeren sgcWebSockets Enterprise Edition için geçerlidir. Derlenmiş ZLib dll dosyası özel hesaptan indirilebilir.
