HP-Socket/Linux/Change-Log.txt
2023-12-25 09:30:22 +08:00

474 lines
20 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

==========================================================================================
v5.9.4 Update:
==========================================================================================
> Third-party library Upadate
-----------------
1. openssl upgrade to version 3.0.12.
2. llhttp upgrade to version 9.1.3.
3. brotli upgrade to version 1.1.0.
==========================================================================================
v5.9.3 Update:
==========================================================================================
> Major Upadate
-----------------
1. Bug fix: Upgrading to websocket protocol through HTTP methods such as POST/PUT that with request content, may cause HTTP Server exception.
2. Failure to send a single heartbeat packet between UDP clients/servers will not immediately disconnect, only detecting whether the heartbeat has timed out to determine whether to disconnect.
> Third-party library Upadate
-----------------
1. openssl upgrade to version 1.1.1v.
2. llhttp upgrade to version 8.1.1.
==========================================================================================
v5.9.2 Update:
==========================================================================================
> Major Upadate
-----------------
1. HTTP Cookie request and response headers 'Cookie' and 'Set-Cookie' support case-insensitive.
2. Better support for GCC 11 compiler.
3. Small scale code optimization.
> Third-party library Upadate
-----------------
1. openssl upgrade to version 1.1.1u.
2. mimalloc upgrade to version 1.8.2.
==========================================================================================
v5.9.1 Update:
==========================================================================================
> Major Upadate
-----------------
1. Update several APIs related to streaming compression/decompression, and support segmented compression/decompression (refer to Change-APIs.txt).
2. Update the SSL module to support OpenSSL 3.0.
> Third-party library Upadate
-----------------
1. llhttp upgrade to version 8.1.0.
2. zlib upgrade to version 1.2.13.
3. openssl upgrade to version 1.1.1s.
4. mimalloc upgrade to version 1.7.9.
5. jemalloc upgrade to version 5.3.0.
==========================================================================================
v5.8.8 Update:
==========================================================================================
> Major Upadate
-----------------
1. Client/Agent components supports specifying host name when connecting to remote server. The format is: '< hostaddress >[^< hostname >]', where '^< hostname >' is optional. One of scenario: pass SSL SNI hostname to target server through proxy server.
2. Add a series of character encoding conversion functions (Reference: Change-APIs.txt), which supports specifying the length of the source string.
3. Fix the abnormal problem of SSL Pull/Pack Server/Agent components in the scenario of manual start SSL: 'SetSSLAutoStart(FALSE)'.
> Third-party library Upadate
-----------------
1. zlib upgrade to version 1.2.12.
2. openssl upgrade to version 1.1.1n.
==========================================================================================
v5.8.7 Update:
==========================================================================================
> Major Upadate
-----------------
1. Optimize the garbage object collection and detection mechanism to improve the robustness of communication components in high load and high concurrency scenarios.
2. VS 2022 IDE supported.
> Third-party library Upadate
-----------------
1. mimalloc upgrade to version 1.7.5.
==========================================================================================
v5.8.6 Update:
==========================================================================================
> Major Upadate
-----------------
1. Added ZLib/GZip, Brotil streaming compression/decompression components: IHPCompressor and IHPDecompressor.
2. Optimize the garbage object collection and detection mechanism to improve the robustness of communication components in high load and high concurrency scenarios.
> Third-party library Upadate
-----------------
1. openssl upgrade to version 1.1.1m.
2. llhttp upgrade to version 6.0.6.
3. mimalloc upgrade to version 1.7.3.
==========================================================================================
v5.8.5 Update:
==========================================================================================
> Major Upadate
-----------------
1. Add thread pool listener interface IHPThreadPoolListener to monitor thread pool life cycle events.
2. Troubleshooting: When client series components are used as function local variables, they may crash when destroying client objects if they are not used properly.
3. Add MSBUILD one-click compilation script.
4. Code optimization to improve code robustness.
> Third-party library Upadate
-----------------
1. openssl upgrade to version 1.1.1l.
2. llhttp upgrade to version 6.0.5.
==========================================================================================
v5.8.4 Update:
==========================================================================================
> Major Upadate
-----------------
1. Add global functions: SYS_Calloc(), SYS_Alloca().
2. TCP series components add interface methods: SetNoDelay(), IsNoDelay().
3. Bug fix: mimalloc for NDK throws segment fault exception.
4. HP socket for NDK compilation script enable mimalloc by default.
> Third-party library Upadate
-----------------
1. mimalloc upgrade to version 1.7.2.
2. llhttp upgrade to version 6.0.4.
==========================================================================================
v5.8.3 Update:
==========================================================================================
> Major Upadate
-----------------
1. Bug fix: Deadlock may occur when ARQ UDP components send data.
2. HP socket for NDK compilation script disable mimalloc by default.
> Third-party library Upadate
-----------------
1. mimalloc upgrade to version 1.7.1.
2. llhttp upgrade to version 6.0.2.
3. openssl upgrade to version 1.1.1k.
==========================================================================================
v5.8.2 Update:
==========================================================================================
> Major Upadate
-----------------
1. Bug fix: some HP-Socket components raises segment fault in ARM32 platform.
2. Bug fix: UDP Client component raises segment fault in some special scenarios.
> Third-party library Upadate
-----------------
1. mimalloc upgrade to version 1.7.0.
2. llhttp upgrade to version 4.0.0.
3. openssl upgrade to version 1.1.1j.
==========================================================================================
v5.8.1 Update:
==========================================================================================
> Third-party library Upadate
-----------------
1. HTTP parser: llhttp replaces http_ parser.
2. Memory allocator: mimalloc replaces jemalloc.
3. openssl upgrade to version 1.1.1i.
> Other Upadate
-----------------
1. Move library header files to include/hpsocket directory.
==========================================================================================
v5.7.3 Update:
==========================================================================================
> Regular Upadate
-----------------
1. Add Brotli compression/decompression support, and provide _BROTLI_DISABLED recompiled macro to disable Brotli functions).
2. openssl upgrade to version 1.1.1h.
==========================================================================================
v5.7.2 Update:
==========================================================================================
> Regular Upadate
-----------------
1. Code optimization to improve stability.
2. openssl upgrade to version 1.1.1g.
3. http-parser upgrade to version 2.9.4.
4. kcp upgrade to version 1.6.
==========================================================================================
v5.7.1 Update:
==========================================================================================
> UDP Update
-----------------
1. Add new component: UDP Nod:
1) UDP Node has no concept of "connection", and can send and receive data with any address.
2) UDP Node supports three execution modes: unicast, multicast, and broadcast.
3) Add UDP Node component demo 'hp-testecho-udp-node'.
> Other Update
-----------------
1. Added 'Wait()' method for all components to wait for components to close.
2. Added 'SetReuseAddressPolicy()' method for all communication components to support setting address reuse policy.
3. Added 'SetSSLCipherList()' method for all SSL communication components to support setting SSL cipher suites.
4. Extensive API updates, code refactoring and optimization.
> Update instructions
-----------------
1. HP-Socket v5.7.1 has changed or deleted some old APIs, please refer to 'Chang-APIs.txt' when upgrading.
==========================================================================================
v5.6.4 Update:
==========================================================================================
> Regular Upadate
-----------------
1. Fix crash of HTTP component due to jemalloc bug.
==========================================================================================
v5.6.3 Update:
==========================================================================================
> Regular Upadate
-----------------
1. Code optimization to improve stability.
==========================================================================================
v5.6.2 Update:
==========================================================================================
> Regular Upadate
-----------------
1. Code optimization to improve stability.
==========================================================================================
v5.6.1 Update:
==========================================================================================
> SSL Update
-----------------
1. All SSL components add the following interface methods to support loading memory certificates:
1) Server: SetupSSLContextByMemory(), AddSSLContextByMemory()
2) Agent : SetupSSLContextByMemory()
3) Client: SetupSSLContextByMemory()
2. All SSL components add GetSSLSessionInfo() method to obtain information about SSL session.
3. SSL Server component provides a default SNI server domain name binding mechanism. In most cases, the application does not need to customize SNI callback function.
1) The default server domain name binding mechanism is enabled when the 'fnServerNameCallback' parameter value of SetupSSLContext() is nullptr.
2) BindSSLServerName() : Bind the server domain name to a specified certificate.
3) HP_SSL_DefaultServerNameCallback() : Default SNI callback function.
> HTTP Update
-----------------
1. The SendWSMessage() method of HTTP Server component delete 'lpszMask' parameter.
2. The 'pData' parameter type of the SendWSMessage() method for all HTTP components is changed to 'const BYTE*', so constants can be passed in.
3. All HTTP components add SendChunkData() method to send chunked data conveniently.
> UDP Update
-----------------
1. Optimize the UDP Cast component of Linux platform so that it behaves in accordance with the UDP Cast component of Windows platform.
2. Enhance IPv6 compatibility of all UDP components.
3. Automatically send a "close notification" datagram to the peer when the UDP Client/Server component is closing.
> Other Update
-----------------
1. jemalloc upgrade to version 5.2.1
2. openssl upgrade to version 1.1.1d.
3. Code optimization to improve stability
==========================================================================================
v5.5.3 Update:
==========================================================================================
> Typedef Update
-----------------
1. 'BOOL' typedef to int.
2. 'TRUE' value define to 1, 'FALSE' value define to 0.
> Regular Upadate
-----------------
1. Fix bug: Component startup fail of net core SDK on Linux platform.
2. Shell script 'compile.sh' support cross-compilation by use '-p|platform' command line parameter.
3. Code optimization to improve stability.
4. openssl upgrade to version 1.1.0k.
==========================================================================================
v5.5.2 Update:
==========================================================================================
> UDP Upadate
-----------------
1. Relax the maximum message length limit of UDP component, the maximum value of SetMaxDatagramSize() method can be set to 64KB.
2. Relax the maximum transmission unit length limit of ARQ UDP component. The maximum value of SetMaxTransUnit() method can be set to 64KB.
> Android NDK Update
-----------------
1. provided shell script 'build-android-ndk.sh' to build Android NDK libs.
2. provided shell script 'demo/build-android-ndk-demo.sh' to build Android NDK demo executable files.
3. provided Android NDK binary library files in the distribution package.
4. Android NDK libs are full support SSL and ICONV features now.
==========================================================================================
v5.5.1 Update:
==========================================================================================
> UDP Upadate
-----------------
1. Add ARQ UDP component: IUdpArqServer, IUdpArqClient.
2. Add ARQ UDP test demo "testecho-arq" and performance test demo testecho-arq-pfm.
3. For details on the ARQ UDP components, please refer to document <HP-Socket Development Guide>.
4. Optimize IUdpServer component to fix potential defects.
5. .net core SDK adds UDP components implementation classes.
> Other Update
-----------------
1. provided shell script 'compile.sh' to compile hp-socket libs in local machine.
2. provided Android NDK build script (script directory: /project/android-ndk).
3. jemalloc upgrade to version 5.2.0
4. http-parser upgrade to version 2.9.2
==========================================================================================
v5.4.4 Update:
==========================================================================================
> TCP Components Update
-----------------
1. The IAgent component supports specifying a local IP address and/or local port when connecting to the server.
> Other Update
-----------------
1. Code optimization.
2. http-parser upgrade to version 2.9.0
3. openssl upgrade to version 1.1.0j
4. provide _UDP_DISABLED precompiled macro to remove UDP components
==========================================================================================
v5.4.3 Update:
==========================================================================================
> HTTP Components Update
-----------------
1. The HTTP components can manually start HTTP communication to perform pre-operations such as SOCKS proxy server settings for HTTP communication.
2. The HTTP components (Server/Agent/Client) adds the following interface methods to support manual startup of the HTTP communication:
1) StartHttp(): Manually start HTTP communication. When the component is set to non-automatic start, this method needs to be called to start the HTTP communication.
2) SetHttpAutoStart(): Set the component's HTTP start mode (default: TRUE, automatic start).
3) IsHttpAutoStart(): Get the component's HTTP start mode.
> Other Update
-----------------
1. Bug fix: UDP Server may be trigger the OnAccept event repeatedly in high concurrent scenarios
==========================================================================================
v5.4.2 Update:
==========================================================================================
> SSL Components Update
-----------------
1. The SSL components can manually start SSL handshake to perform pre-operations such as proxy server settings for SSL/Https communication.
2. The SSL components (Server/Agent/Client) adds the following interface methods to support manual startup of the SSL handshake:
1) StartSSLHandShake(): Manually start SSL handshake. When the component is set to non-automatic handshake, this method needs to be called to start the SSL handshake.
2) SetSSLAutoHandShake(): Set the component's handshake mode (default: TRUE, automatic handshake).
3) IsSSLAutoHandShake(): Get the component's handshake mode.
> Other Update
-----------------
1. All component interface methods that may cause a Socket to close are asynchronously fired OnClose event in the Socket communication thread.
2. The Disconnect() method of the Server and Agent components no longer supports non-forced disconnects (still retains the bForce parameter) and is forced to disconnect when invoked.
3. openssl upgrade to version 1.1.0i
==========================================================================================
v5.4.1 Update:
==========================================================================================
> Add Thread Pool Component
-----------------
1. add IHPThreadPool thread pool component
2. important methods ofIHPThreadPool:
1) Start: startup thread pool
2) Stop: shutdown thread pool
3) Submit: submit task
4) AdjustThreadCount: adjust thread count
> Interface Update
-----------------
1. The Connect() method of IAgent interface adds parameter 'usLocalPort', which can be bound to a local port when connecting
2. The Start() method of IClient interface adds parameter 'usLocalPort', which can be bound to a local port when connecting
3. IClient/IAgent/IServer interfaces add method IsConnected() to detect whether it is valid connection
> Regular Update
-----------------
1. fix known issues
2. performance optimization
==========================================================================================
v5.3.2 Update:
==========================================================================================
> Regular Update
-----------------
1. bug fix: shared library can not be loaded by dlopen() in version 5.3.1
2. jemalloc upgrade to version 5.1.0
==========================================================================================
v5.3.1 Update:
==========================================================================================
> Android NDK supported
-----------------
1. all components are compatible with Android NDK
2. provide _ZLIB_DISABLED precompiled macro to disable zlib functions
3. provide _ICONV_DISABLED precompiled macro to disable iconv functions
> Regular Update
-----------------
1. http-parser upgrade to version 2.8.1, and reference it using source code
2. jemalloc upgrade to version 5.0.1
3. openssl upgrade to version 1.1.0h
==========================================================================================
v5.2.1 Update:
==========================================================================================
> Create HP-Socket SSL Components
-----------------
1. Server: SSL Server, SSL Pull Server, SSL Pack Server
2. Agent: SSL Agent, SSL Pull Agent, SSL Pack Agent
3. Client: SSL Client, SSL Pull Client, SSL Pack Client
> Create HP-Socket HTTP Components
-----------------
1. Server: HTTP Server, HTTPS Server
2. Agent: HTTP Agent, HTTPS Agent
3. Client: HTTP Client, HTTPS Client, HTTP Sync Client, HTTPS Sync Client
> Create Demos:
-----------------
1. testecho-ssl: (SRC) SSL simple test echo server/agent/client
2. testecho-ssl-pfm: (SO) SSL performance test echo server/agent/client
3. testecho-ssl-pull: (SO) SSL pull echo server/agent/client
4. testecho-ssl-pack: (4C SO) SSL pack echo server/agent/client
5. testecho-http: (SRC) HTTP simple test echo server/agent/client/sync-client
6. testecho-http-4c: (4C SO) HTTP simple test echo server/agent/client/sync-client
> Other Updates:
-----------------
1. Version number revision: Use a unified version number for Windows & Linux distribution
2. Code optimization and knowing bug fixed
==========================================================================================
v1.0.0 Update:
==========================================================================================
> Create HP-Socket Basic Components
-----------------
1. Server: TCP Server, TCP Pull Server, TCP Pack Server, UDP Server
2. Agent: TCP Agent, TCP Pull Agent, TCP Pack Agent
3. Client: TCP Client, TCP Pull Client, TCP Pack Client, UDP Client, UDP Cast
> Create Demos:
-----------------
1. testecho: tcp simple test echo server/agent/client
2. testecho-pfm: tcp performance test echo server/agent/client
3. testecho-pull: tcp pull echo server/agent/client
4. testecho-pack: tcp pack echo server/agent/client
5. testecho-udp: udp simple echo server/client/cast
6. testecho-udp-pfm: udp performance test echo server/client
7. testecho-lib: tcp pull echo server/agent/client (use hpsocket.so and hpsocket4c.so)