- Add function
u_map_count_keys_case
- Breaking: Change
binary_body
type touchar *
instruct _u_request
andstruct _u_response
- Minor bugfixes
- Build with flag
-Wpedantic
- Fix tests to comply with libmicrohttpd 1.0.0 cookie parsing
- Add functions
ulfius_send_http_request_with_limit
andulfius_send_http_streaming_request_max_header
- cmake: restore option
WITH_YDER
which was forgotten in last release refactor - cmake: split package build options in 3 (tar.gz, deb and rpm), and set all packages build to off by default
- Set protocols to http and https only in send requests
- Fix static analyzer warnings
- Minor improvements
- cmake: remove
DownloadProject
feature, now dependencies must be previously installed
- Websockets client: fix case where server sends a 0-length packet (#245)
- Minor improvements
- Improve cmake script and build for Visual Studio integration
- Minor bugfixes
- Build with flag
-Wconversion
- Add cmake build flag
WITH_WEBSOCKET_MESSAGE_LIST
to completely disable message lists storage in websockets
- Add
ulfius_websocket_parse_json_message
for incoming websocket messages - Breaking: in
ulfius_websocket_send_json_message
, returnU_ERROR_PARAMS
ifj_message
is NULL - Update callback examples
- Fix minor bugs
- Update
SameSite
cookie value, addU_COOKIE_SAME_SITE_EMPTY
and allow value None - Fix pkg-config file with absolute path for
CMAKE_INSTALL_{INCLUDE,LIB}DIR
- Fix
CMAKE_MODULE_PATH
who was used as single value
- Fix multipart/form-data for large values, thanks itzoke! (#222, #223)
- Add option
allowed_post_processor
instruct _u_instance
to disable post parameter processing depending on the content-type - Add more example_callbacks
- Fix Origin header setting in websocket client
- Remove header duplicates and Content-Length
- Redirect libmicrohttpd logs to yder
- Replace
uint
withunsigned int
- Add
ulfius_export_request_http
andulfius_export_response_http
- Use
o_strnullempty
instead ofo_strlen
to check if achar *
has data
- Use
o_malloc
everywhere instead ofmalloc
(#206)
- Fix
ulfius_websocket_wait_close
- Fix
ulfius_send_http_request
when url contains spaces
- Fix cookie management in
ulfius_send_http_request
andulfius_send_http_streaming_request
- Add option
U_OPT_AUTH_BASIC
toulfius_set_request_properties
- Fix bug in static_compressed_inmemory_website callback example
- Add
void
parameter to functions with no param - Security: Fix bug when malformed HTTP requests are sent, thanks Jeremy Brown! (CVE-2021-40540)
- Remove yder flag from
libulfius.pc
when yder is disabled - Avoid Time-of-check time-of-use filesystem race condition, assume
fopen
result is enough
- Add
ULFIUS_CHECK_VERSION
macro (Thanks Oliv3) - Add
struct _websocket_manager.keep_messages
flag - Add
struct _u_response.free_shared_data
andulfius_set_response_shared_data
- Fix post processor on multiple values with the same key (Thanks Oliv3)
- Fix certificate generation on MacOS (Thanks @valera-rozuvan)
- Add missing check includes if tests are built (Thanks @valera-rozuvan)
- Add option
U_OPT_HTTP_URL_APPEND
toulfius_set_request_properties
- Use
ulfius_set_request_properties
in example programs
- Fix websocket protocol and extension management bug, thanks to Olivier Girondel
- Remove Travis CI tests
- Add Makefile flag
UWSCFLAG
to disable uwsc build
- Allow
Content-Enconding
header withulfius_send_http_request
to compress the response body - Add http_compression callback example
- Add static_compressed_inmemory_website callback example
- Add callback return value
U_CALLBACK_IGNORE
to igore incrementation ofrequest->callback_position
- Add
ulfius_add_websocket_extension_message_perform
andulfius_add_websocket_client_extension_message_perform
for advanced websocket extensions management - Add Compression Extensions for WebSocket
- Fix lots of websocket bugs thanks to Autobahn|Testsuite.
- Update doc generation
- Add
ulfius_websocket_send_json_message
, thanks to Olivier Girondel - Update pkg-config Libs with all dependencies
- Add
ulfius_global_init
andulfius_global_close
- Rename
U_STREAM_SIZE_UNKOWN
toU_STREAM_SIZE_UNKNOWN
, keepU_STREAM_SIZE_UNKOWN
for backward compatibility
- Increase
ULFIUS_POSTBUFFERSIZE
to follow MHD documentation - Adapt code to be compatible with all MHD version
- In case of secure websocket communication, use a combination of
gnutls_record_check_pending()
andpoll()
to determine if data is ready. (Thanks Wouter van Herpen!) - Install uwsc manpage
- Fix bug about missing
res
variable assignment. (Thanks Gianfranco Costamagna!)
- Check header property case insensitive in websocket client
- Add libcurl option
CURLOPT_NOPROGRESS
inulfius_send_http_streaming_request
- Add
ulfius_start_framework_with_mhd_options
for expert mode - Fix websocket bugs: #163 (Thanks wouher!)
- Add
ulfius_set_request_properties
andulfius_set_response_properties
- Update doc generation
- Fix jansson memoy management bug
- Fix build on MinGW-w64
- Allow
NULL
values onstruct _u_map
- Add function
ulfius_send_smtp_rich_email
to send e-mails with a specified content-type - Fix and improve
ulfius_add_endpoint_list
- Add doxygen documentation
- Add
follow_redirect
instruct _u_request
- Fix certificate check #154
- Add precision for chunked response, got the inspiration from #132
- Update access token for oauth2 bearer validation callback function, add precision concerning libjwt, fix #133
- Update callback_check_glewlwyd_access_token to the up-to-date version
- Various small fixes
- Fix warning appeared with gcc 9.1, fixes #128
- Make
instance->mhd_response_copy_data
useless if MHD>=0.9.61 - Fix
MHD_start_daemon
flag to reuseMHD_USE_THREAD_PER_CONNECTION
by default, fix #131, thanks laf0rge!
- Clean build process
- Fix memory leak in
ulfius_set_string_body_request
andulfius_set_string_body_response
- Call callback function websocket_onclose_callback on all times, even if the websocket hasn't properly worked, so the calling program can avoid memory leak and broken resources, fix #126
- Fix package dependencies in cmake script
- Fix core test to skip websocket tests if webscket is disabled
- Disable ipv6 capabilities if libmicrohttpd is older than 0.9.52
- Small bugfixes
- Add
struct _u_request->callback_position
to know the position of the current callback in the callback list - Use
MHD_USE_AUTO
instead ofMHD_USE_THREAD_PER_CONNECTION
iflibmicrohttpd
is newer then 0.9.52 - Add
network_type
instruct _u_instance
andstruct _u_request
to specify IPV4, IPV6 or both networks - Add
check_server_certificate_flag
,check_proxy_certificate
,check_proxy_certificate_flag
andca_path
instruct _u_request
to add more precision and control on SSL verification inu_send_request
- Add functions
ulfius_set_string_body_request
,ulfius_set_binary_body_request
,ulfius_set_empty_body_request
- Add
url_path
instruct _u_request
to store the url path only, without query parameters - Add
ulfius_url_decode
andulfius_url_encode
- Clean code, add more tests
- Install pkgconfig file when using Makefile
- Fix #121 where websockets messages of 126 or 127 bytes long made errors
- Use
gnutls_rnd()
instead ofrand()
- Fix sneaky bug where endpoint injection inside a endpoint callback can lead to wrong callback calls, or even worse, crashes
- Fix #121 where websockets messages of 126 or 127 bytes long made errors
- Fix sneaky bug where endpoint injection inside a endpoint callback can lead to wrong callback calls, or even worse, crashes
- Add flag to build Ulfius with GnuTLS support but without Websockets
- Improve Travis CI script
- Fix CMake build process that didn't obviously linked Ulfius with pthreads
- Add command to run tests with valgrind
- Fix utf8 check on NULL value
- Fix uwsc crash on some systems
- Add struct _u_endpoint.check_utf8 to check all request parameters and values to be valid utf8 strings
- Add client certificate authentication for webservice and send request library (issue #83)
- Fix build config file bug when using -jxx option to Makefile (issue #84)
- Allow to disable Yder logging library, to use Ulfius in embedded systems like FreeRTOS where console, syslog or journald are not available, and file logging is overkill
- Add support for FreeRTOS and LWIP, Thanks to Dirk Uhlemann
- Add support for SameSite attribute in response cookies (issue #88)
- CMake scripts improvements
- Add config file ulfius-cfg.h dynamically built with the options
- Adapt examples with new ulfius-cfg.h file
- Fix #79 where yuarel should be hidden from the outside world
- Fix #78 where gnutls is not required if websocket is disabled
- Fix Websocket fragmented messages
- Fix CMake script that installed Orcania twice
- Fix cppcheck warnings
- Add timeout for http connections
- Allow to use MHD_RESPMEM_MUST_COPY for different memory manager, fix #63
- Add websocket client framework
- Add uwsc - Ulfius WebSocket Client - A simple command-line websocket client program
- Add Travis CI
- Add RPM in CMake script package
- Fix CMake build when /usr/local is not present in default build path
- Improve documentation with summary
- Yet another websocket fix, this one was binary messages not properly handled
- At the same time, improve websocket_example to handle incoming binary messages
- Fix websocket bug that did not close a websocket properly after wrongly closed connections
- Add last example_callbacks versions
- Improve documentation on ulfius_get_json_body_request and ulfius_get_json_body_response
- Fix websocket bug that kept some connections open after being unproperly closed by the client
- Fix Makefile soname
- Add Debian hardening patch on Makefile
- Fix websocket_example that worked for Firefox onky due to minor bugs in websocket management and misunderstanding the RFC
- Update oauth2_bearer/glewlwyd_resource to handle client tokens
- Sync version number on all places it's located
- Add CMake installation script
- Various bugfixes
- Fix PTHREAD_MUTEX_RECURSIVE_NP bug
- Fix bug in websockets
- Added error informations inside ulfius_get_json_body_request function (#33)
- code cleaning
- small bugfixes
- Add large file upload support (#31)
- fix
upload_data_size
and memory consumption - Make ldconfig harmless if not root (#26)