forked from splunk/pion
-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
402 lines (282 loc) · 15.4 KB
/
ChangeLog
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
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
Version 5.0.7 (2014-10-17)
==========================
* Updated Windows build to Visual Studio 2013
* updated Windows property sheet files to use openssl 1.0.1j log4cplus 1.1.3
* fixed bug in pion::http::parser cookie header handling
* password hashing now uses strong hashing algorithm
* fixed incorrect usage of CMAKE_MODULE_PATH (thanks camio)
* added clang++ support in cmake (thanks snikulov)
Version 5.0.6 (2014-03-24)
==========================
* Updated copyrights and misc files for move from Cloudmeter to Splunk
* pion::http::parser - added HTTP 0.9 Simple-Request support
* autoconf - fixed order of library linking for Ubuntu 12.04
* cmake - make install does not copy headers (thanks snikulov)
* cmake - patches for Visual Studio 2012 (thanks nullable-type)
* cmake - disabled in-source build with log message (thanks snikulov)
* SPDY fix for RST stream status code logging (thanks pmed)
* PION_DISABLE_LOGGING and PION_USE_OSTREAM_LOGGING fixes (thanks snikulov)
Version 5.0.5 (2013-12-16)
==========================
* Support for automatically generating dump files on Windows
* FileService was not honoring max file size when file is modified
* tcp_server tries to gain admin rights for ephemeral ports (thanks jrosser)
* Fixed bug parsing whitespace before HTTP header names (thanks maksqwe)
* Fixed bug in http::writer::send_more_data (thanks magnum)
* Various updates to support Boost 1.55.0 (thanks maysl, snikulov)
* Various updates to support Visual C++ (thanks pmed, snikulov)
* Added support for building with CMake (thanks snikulov)
Version 5.0.4 (2013-09-16)
==========================
* Attributes in Set-Cookie headers should not be quoted (thanks sba)
* Use BOOST_SYSTEM_NOEXCEPT for compatibility with Boost 1.54 (thanks rogerim)
* Added http::request function to set content given a buffer pointer and size
Version 5.0.3 (2013-07-26)
==========================
* Uninitialized memory error in http::parser with headers-only parsing
* Infinite loop in http::parser when using a payload handler callback
* Added algorithm::xml_encode() method; now using it to prevent XSS attacks
* Improved handling of uncaught exceptions in http::server
Version 5.0.2 (2013-06-02)
==========================
* parse_multipart_form_data() corrupts binary files (Alexandre Parenteau)
Version 5.0.1 (2013-04-15)
==========================
* Lots of renaming, refactoring, bug fixes, etc.
Version 4.0.3 (2011-04-14)
==========================
* Added support for new libraries and build environments (1105, 1106, 1107)
Version 4.0.1 (2011-03-08)
==========================
* Added read() and write() methods to HTTPMessage for serialization (1086)
* Improved error handling in HTTP(Request/Response)(Reader/Writer) (1083)
Version 3.0.21 (2011-01-25)
===========================
* HTTP Parser - fixed various chunked content parsing errors (991)
* HTTP Parser - now recovers gracefully if status line is missing comment (994)
* HTTP Parser - handle "deflate" encoded content with zlib headers (1008)
* HTTP Parser - ignore tab characters in query string content (1014)
* HTTP Parser - allow for empty cookie names (1015)
* HTTP Parser - don't remove unquoted spaces from cookie values (1016)
* HTTP Parser - allow for responses with no HTTP headers (1017)
* HTTP Parser - improve recovery from truncated requests (1033)
* HTTP Parser - recover from empty query parameter names (1006)
* HTTP Parser - raw headers strings were sometimes truncated (1031)
* TCPTimer.cpp was missing boost/bind.hpp include file (1005)
* TCPConnection - now allows for SSL state change (1024)
* HTTPMessage - added headers_only options for send() and receive() (1025)
Version 3.0.9 (2010-04-30)
==========================
* HTTPReader - add support for timeouts (900)
Version 3.0.5 (2010-04-02)
==========================
* TCPConnection - add accessors for ssl socket object (901)
Version 3.0.3 (2010-03-12)
==========================
* HTTPTypes::url_encode() crashes when input string has negative char (877)
* TCPConnection::write() was not passing error_code by reference (878)
Version 3.0.1 (2010-03-01)
==========================
* Added ability to dynamically remove resources from HTTPServers (834)
* Added support to HTTPParser for saving the raw HTTP headers (842)
* HTTPParser now uses a default status code of 0 instead of 200 (817)
* Removed build numbers from Unix library names (861)
Version 2.2.12 (2010-02-16)
===========================
* Made HTTP query parameter map case-insensitive (836)
Version 2.2.10 (2010-01-20)
===========================
* HTTPParser will now ignore attributes from Set-Cookie HTTP headers (808)
* Disabled default building of static libraries in Unix autoconf scripts (825)
Version 2.2.8 (2009-12-04)
==========================
* HTTP client library not sending payload content that started with NULL (777)
* Added support for newer Boost releases (through 1.41) and for gcc 4.4 (780)
Version 2.2.2 (2009-10-09)
==========================
* HTTPParser query parameter parsing failed on LF & CR characters (681)
* Improved autoconf detection for support of Boost.Lockfree library (692)
* Improved error handling in PluginManager when loading fails (736)
* Fixed "make install" on Unix platforms using autoconf (378)
* Pion's unit tests now use random port numbers (690)
Version 2.1.4 (2009-07-31)
==========================
* Switched default logging to use log4cplus 1.0.3 instead of log4cxx (274, 514)
* Updated and merged in the latest version of the boost.lockfree library (647)
* Added PionId class to replace dependency on the OSSP UUID library (515)
* The Unix build scripts now auto-detect everything correctly (591)
* Fixed copy methods for HTTPMessage, HTTPRequest & HTTPResponse (590)
* Added setMaxContentLength() method to HTTPServer (589)
Version 2.0.8 (2009-06-05)
==========================
* Fixed bug with "./configure --with-debug" failing on boost thread tests (598)
Version 2.0.6 (2009-05-26)
==========================
* HTTPParser exception thrown when Content-Length had leading whitespace (585)
* Miscellaneous improvements to Windows MSVC build projects (564)
Version 1.2.4 (2009-03-27)
==========================
* Removed dependencies on sqlite since it is now embedded into platform (475)
* HTTPParser dropping requests when TCP connection contained 304 responses (481)
* Updated PionLockedQueue so that it now always keeps track of the size (469)
Version 1.1.4 (2009-02-16)
==========================
* Build updated to Boost 1.36 & 1.37 (314, 270)
* Updates to support and use the latest Boost.Lockfree library (408, 409)
* Unit test cleanup and refactoring (416)
Version 1.0.10 (2009-01-22)
===========================
* Added support and unit tests for maximum HTTP payload content sizes (399)
* Updated HTTPParser to recover from missing packets and other errors (407)
* TCPServer can now bind to privileged ports when running as setuid (522)
* Fixed occasional crashes in pion-net unit tests on multi-core systems (528)
Version 1.0.8 (2008-12-17)
==========================
* Various improvements to how docs are built/cleaned (379)
Version 1.0.6 (2008-11-20)
==========================
* Pruning orphaned connections (346)
* Fixing auto generated INSTALL file (347)
* Autoconf fixes (347)
Version 1.0.4 (2008-10-16)
==========================
* Cookie collection now case sensitive (500)
* Added unit test and fixed bug when parsing query strings with "&&" (333)
* Added HEADER_X_FORWARDED_FOR to HTTPTypes (318)
* Added TCPConnection::connect() function that performs dns lookups (318)
Version 1.0.0 (2008-09-12)
==========================
* QueryService added, then removed, and placed into pion::platform
* Update clear() function to clear all members()
* Added test to see if base64 routines handle binary data in strings properly
Version 0.6.0 (2008-08-29)
==========================
* Fixed bug with the --disable-logging configure option breaking build (254)
* Updated HTTPParser::parseCookieHeader() to be usable for char[] as well
* Only HTML documentation is now build with Doxygen when using "make docs"
Version 0.5.8 (2008-07-18)
==========================
* Simplified HTTPParser class and eliminated some redundant code (240)
* HTTPTypes::url_encoded() was not properly encoding space characters (239)
* HTTPParser was not extracting POST query when charset is specified (243)
* Unable to compile HTTPAuth code with log4cplus support (249)
* TCPStream unit tests were occasionally failing (206)
* Added --with-boost-extension option to Unix configure script (217)
* Misc updates to get things building on gcc 4.2 and gcc 4.3 (241)
Version 0.5.6 (2008-05-02)
==========================
* Added support for user authentication using cookies and HTTP Basic-Auth
* Added support to HTTPServer to redirect/rewrite HTTP requests internally
* Updated HTTPRequest to track the original resource requested when redirected
* Refactored PionScheduler so that two scheduling policies are now provided
* Added PionLockedQueue and PionLockFreeQueue based on Michael & Scott's work
* Added "make docs" Unix build option that uses Doxygen to build all the docs
* Unix build scripts now support dynamic versions of the Boost.UnitTest libs
* Boost 1.35.0 or later is now REQUIRED (it includes ASIO); see README.boost
Version 0.5.4 (2008-03-07)
==========================
* HTTPMessage header names now use case-insensitive comparisons (#79)
* Fixed parsing errors when chunked content included extra whitespace (#73)
* Fixed HTTP parsing errors when there was no "Content-Length" header (#78)
* Fixed a bug that caused HTTPServer to not find resources correctly (#85)
* HTTPServer now lets you bind any function object to resources (#69)
* Moved plugins functionality from HTTPServer into a new WebServer class (#69)
* PionScheduler is no longer a singleton; now is a member of TCPServer (#86)
* PionScheduler can now be extended to provide alternative algorithms (#86)
* Added TCPStream: a std::basic_iostream wrapper around TCPConnection
* Added getRemotePort() and getRemoteEndpoint() members to TCPConnection
* Web service plugins are now functions objects; no more handleRequest()
* Moved web service plugins into the pion::plugins namespace
Version 0.5.2 (2007-12-17)
==========================
* Added support for parsing chunked HTTP requests and responses (#37)
* Refactored PluginManager out of HTTPServer service management code (#62)
Version 0.4.2 (2007-12-14)
==========================
* OpenSSL functionality is now enabled for MSVC
* PionCounter is now a thread-safe 64-bit integer counter
* PionScheduler now uses boost::detail::atomic_count instead of PionCounter
* Added unit tests and fixed some bugs related to sending chunked responses
* Boost 1.34.1 and ASIO 0.3.9 are now REQUIRED; see README.boost
Version 0.4.0 (2007-11-08)
==========================
* Added support to send HTTP requests and parse responses; lots of refactoring
* Added unit tests! Integrated into MSVC, or use "make check" for Unixes
* The log4cxx library can now be used to build with MSVC (see README.msvc)
* PionNetEngine singleton was removed; servers are now used independently
* Added "writable" FileService option that lets you add, change & delete files
* Servers can now be bound to any endpoints that are supported by ASIO
* Added new PionCounter and PionScheduler classes to the Common Library
* The WebService::handleRequest() function now returns void instead of bool
* Renamed PionServerTest to PionHelloServer & PionServiceTest to PionWebServer
* Improved performance and flexibility of Boost library detection in autoconf
* Logging via std::ostream is now the default (see --disable-logging)
* Logging via std::ostream now uses a globally-shared priority level
* MSVC projects were failing to build if there were spaces in the path
* Fixed various crashes that mainly occurred during shutdown in Windows
* Boost 1.34.1 and ASIO 0.3.8 are now REQUIRED; see README.boost
Version 0.3.4 (2007-10-12)
==========================
* Renamed "libpion" to "Pion Network Library" (or "pion-net" for short)
* Rearranged directories & files to separate out the "Pion Common Library"
* Added support to HTTPResponse for sending chunked responses
* Added new options to FileService: max_cache_size and max_chunk_size
* Updated log4cxx support so that it works with both 0.9.7 and 0.10.x
Version 0.3.2 (2007-09-14)
==========================
* Added support for MSVC compiler (see builds/VC/libpion.vcproj file)
* Added support for HTTP/1.1 pipelining (multiple requests in single packet)
* Added support for linking static HTTP module libraries into programs
* Added accessor functions for client IP address in HTTPRequest/TCPConnection
* Moved more I/O logic into TCPConnection to cleanup SSL checks
* Changed start() to startup() and stop() to shutdown() in PionEngine
Version 0.2.4 (2007-09-05)
==========================
* Fixed a bug in HTTPServer that caused it to not find some modules correctly
* Removed writeNoCopy(const T& data) function since only strings make sense
* Updated cookie parser to ignore garbage after quoted values
* Updated build scripts so that they find Boost libs build with GCC 4.1
* Updated cygwin patches for Boost 1.34.1
Version 0.2.2 (2007-06-26)
==========================
* Accept errors caused servers to stop listening for new connections
Version 0.2.0 (2007-06-19)
==========================
* Boost 1.34.0 and ASIO 0.3.8 are now REQUIRED; see README.boost
* Lots of platform testing and better platform-specific documentation
* Added support to FileModule for the "cache" and "scan" options
* Added Last-Modified HTTP header to FileModule and support for client cache
* Changed HTTPServer error handlers to use functions rather than modules
* Re-worked PionPlugin library so that it handles reference counting internally
* Added start() and stop() virtual functions to HTTPModule
* Added beforeStarting() and afterStopping() virtual functions to TCPServer
* Added PionHashMap.hpp for setting-up unordered map types
* Added work-around for bug that causes Windows to crash @ shutdown
Version 0.1.6 (2007-06-01)
==========================
* Added support for HTTP module configuration files (see testmodules.conf)
* Added support for parsing & setting cookies (Version 1, RFC 2109)
* Added a CookieModule that displays and lets you add/delete cookies
* Added LogModule that displays events when an external log library is used
* Added support to FileModule for cygwin paths and "file" option
* Added support for SSL/TLS using OpenSSL (must use --with-openssl)
* Plug-ins now use pion_create_PLUGINNAME and pion_destroy_PLUGINNAME
* Fixed bugs related to the parsing of request (POST) content
Version 0.1.4 (2007-05-25)
==========================
* Fixed miscellaneous bugs with the HTTPResponse class
* Added support for parsing POST content, and GET and POST query parameters
* Added support for passing configuration options to HTTP modules
* Added EchoModule and FileModule, and stubs for LogModule
* Added support for HTTP modules to be dynamically-loadable libraries
* Added support for pkg-config (http://pkg-config.freedesktop.org/wiki/)
* Moved around some of the source directories & renamed test programs
* Added build support & documentation for FreeBSD, Solaris and Windows
* Added Xcode project file for Mac OS X (you must still use "configure")
Version 0.1.2 (2007-05-01)
==========================
* Added support for log4cplus, log4cpp and std::ostream logging
* Added more detailed build information for Linux and Mac OS X
Version 0.1.0 (2007-04-30)
==========================
* First alpha release with very basic functionality