While here fix the build on SunOS, based on patches in joyent/pkgsrc#266
from mrferda.
0.24.1 (2020-08-27)
- fz::to_integral can now handle strongly typed enum return types
0.24.0 (2020-08-21)
+ Added fz::equal_consttime
- fz::sprintf now works corrcetly if arguments are passed as (w)string_view
0.23.0 (2020-07-07)
+ Added reader/writer locks
- fz::mkdir can now return the the longest created path in case of partial failures
0.19.3 (2019-12-19)
- Rate limiting: Fix a divide by zero when distributing overflow
0.19.2 (2019-12-19)
+ Rate limiting: Added debt repay mechanism to bucket removal
- *nix: Fix returned permissions in fz::local_filesys::get_file_info/get_next_file
0.19.1 (2019-11-15)
+ Return error information to fz::local_filesys::begin_find_files
- Fix for version.hpp not getting installed
0.19.0 (2019-11-07)
+ Addded rate limiting code and a new rate-limited socket layer
+ Added fz::mutex::try_lock
+ Implemented libtool's library versioning scheme for shared library builds of libfilezilla
2019-08-15 - libfilezilla 0.18.1 released
New features:
Added fz::buffer::resize
2019-08-02 - libfilezilla 0.18.0 released
New features:
Added fz::spawn_detached_process
Add operator+ to fz::duration
*nix: If available, use eventfd instead of a self-pipe
fz::to_integral and fz::hex_decode now work with string literals
Added fz::listen_socket::fast_accept that only returns a descriptor instead of a fully-initialized fz::socket for use in a tight accept-and-dispatch loop
Functions in libfilezilla/iputils.hpp now take string_view as arguments
Added fz::socket::set_flags which can atomically enable or disable flags
Bugfixes and minor changes:
fz::socket not returns an error instead of silently failing in case of file descriptor exhaustion
Fix socket errors sometimes not being forwarded in fz::tls_layer when when writing fails in the underlying layer
Fix double-closing of socket descriptios if connection establishment fails
fz::tls_layer now fails the handshake instead of waiting indefinitely if started on a layer that has progressed passed the connected state
Small compile-time improvements to fz::sprintf
0.17.1 (2019-06-21)
+ Added support for detached signatures
- Fixed crash if using the system trust store
0.17.0 (2019-06-17)
+ libfilezilla now requires C++17
+ Changed a lot of functions to use std::string_view
+ Added fz::socket_layer as base class for layers on top of sockets
+ Added fz::tls_layer, a Transport Layer Security layer, requiring GnuTLS 3.5.7 or later
+ Added fz::translate for gettext-style translatable strings. GNU Gettext is now a built-time (but not runtime) dependency
+ Added fz::bitscan and fz::bitscan_reverse to get the index of least and most significant bit set
+ Added fz::logger_interface as a base for logging system
- *nix: Small speed-up of fz::local_filesys through the use of fstatat()
2019-04-21 - libfilezilla 0.16.0 released
New features:
Add fz::socket
Add operator*= to fz::duration
fz::event_loop can now also be created using fz::thread_pool or threadless.
Bugfixes and minor changes:
fz::async_task now releases the thread back to the pool immediately when the task has completed without waiting for the join
*nix: Fix file descriptor leaks on exec()
0.15.1 (2018-11-22)
+ Add argument to fz::strtok to return empty tokens
- Fix compatibility issue with Nettle < 3.3
- Fix fz::random_bytes on MinGW
- Fix memory leak in fz::buffer
0.15.0 (2018-10-19)
+ libfilezilla now depends on Nettle >= 3.1
+ Added fz::sha512, fz::sha256, fz::sha1 and fz::md5 hash functions
+ Added fz::hash_accumulator
+ Added fz::hmac_sha256 HMAC function
+ Added asymmetric encryption scheme using X25519
+ Added signature scheme using Ed25519
- Changed and documented semantics of the return value of fz::remove_file, removing a non-existing file is not an error
0.14.0 (2018-10-04)
+ Added fz::equal_insensitive_ascii
+ Added insensitive_ascii parameter to fz::starts_with and fz::ends_with
- Fixed namespace of to_wstring in wx glue
0.13.2 (2018-09-21)
- Fix regression in fz::shared_value::clear
- Fix parsing of URIs without path
0.13.1 (2018-09-10)
+ Made fz::scoped_lock movable
- Fix a few compiler warnings
0.11.0 (2017-09-29)
+ Add fz::buffer class
- *nix: fz::process::spawn no longer calls async-signal-unsafe functions between forking and calling execv in the child.
2017-08-14 - libfilezilla 0.10.1 released
Bugfixes and minor changes:
MSW: Improve handling of reparse points in fz::local_filesys
2017-07-10 - libfilezilla 0.10.0 released
New features:
Added fz::percent_encode and fz::percent_encode
Added fz::uri and fz::query_string
Added fz::less_insensitive_ascii for case-insensitive strings in maps
Bugfixes and minor changes:
Moved encoding functions from string.hpp to encode.hpp
Use pkg-config instead of cppunit-config to look for cppunit.
2016-11-28 - libfilezilla 0.9.0 released
New features:
Added parameter to fz::to_integral to specify which value is
returned on error.
Added fz::remove_file
Added fz::hex_encode and fz::hex_decode
2016-10-25 - libfilezilla 0.8.0 released
New features:
Added fz::str_toupper_ascii to complement fz::str_tolower_ascii
Added fz::trim and fz::trimmed for removing leading and trailing
whitespace from string
Added fz::str_is_ascii
Bugfixes and minor changes:
Fixed zero-padding for x and X string format conversion specifiers
2016-10-03 - libfilezilla 0.7.1 released
Bugfixes and minor changes:
OS X: Work around a nasty bug in XCode where programs explicitly
compiled for older versions of OS X were silently pulling in
features exclusive to the new version, resulting in crashes at
runtime
MSW: Fix detection of thread creation failures
2016-07-27 - libfilezilla 0.6.1 released
Bugfixes and minor changes:
Fix UTF-8 conversion functions and added a testcase
2016-07-20 - libfilezilla 0.6.0 released
New features:
Add fz::sprintf, a safe replacement for for the C sprintf function
libfilezilla is a free, open source C++ library, offering some basic
functionality to build high-performing, platform-independent programs.
Some of the highlights include:
* A typesafe, multi-threaded event system that's very simple to use
yet extremely efficient
* Timers for periodic events
* A datetime class that not only tracks timestamp but also their
accuracy, which simplifies dealing with timestamps originating from
different sources
* Simple process handling for spawning child processes with redirected
I/O