forked from ldcsaa/HP-Socket
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog.txt
289 lines (238 loc) · 13 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
==========================================================================================
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)