Releases: haproxytech/spoa-mirror
Releases · haproxytech/spoa-mirror
v1.2.19: BUG/MINOR: fixed the use of '--mirror-(interface|local-port)' program…
… command-line arguments The ability to set several parameters for outgoing connections was added to the program a long time ago: interface/address and local port range. Indeed? Everything was written, parsing the arguments and setting the parameters for the output connections, but.. the link between them was missing. This commit fixed it, finally. Version of the program changed to v1.2.19.
v1.2.18: MINOR: added possibility to change HTTP headers that are sent to mirr…
…or URL The function spoa_msg_arg_hdrs() has been added, which allows changing the type of the SPOE argument 'arg_hdrs' to a string (until now, that argument could only be binary). In this way, the use of the regsub() converter is enabled in that argument, so that it is now possible to change the HTTP headers that are sent to the mirror URL. For example, instead of: args arg_method=method arg_path=url arg_ver=req.ver arg_hdrs=req.hdrs_bin arg_body=req.body , the following can be used: args arg_method=method arg_path=url arg_ver=req.ver arg_hdrs=req.hdrs,regsub(foo,bar) arg_body=req.body Version of the program changed to v1.2.18.
v1.2.17: CLEANUP: drop CURLOPT_PUT because it is deprecated
CURLOPT_UPLOAD should be used instead of CURLOPT_PUT. In fact, CURLOPT_UPLOAD is also used in source, so CURLOPT_PUT is unnecessary even before it was deprecated. Version of the program changed to v1.2.17.
v1.2.16: BUG/MINOR: deferred calling the libev socket timer callback function
On Linux systems with a newer cURL library (say ubuntu 22 which uses cURL v7.81.0), the program crashes in the mir_curl_timer_cb() function (when calling function mir_curl_ev_timer_cb()). It was solved so that the call of the respective function is done via the timer (and not directly as before). This should fix GitHub issue #31. Version of the program changed to v1.2.16.
v1.2.15: BUG/MINOR: debug: define DBG_FUNC_END() macro for non-debug mode
Version of the program changed to v1.2.15.
v1.2.14: MINOR: debug: show return values of all functions in the debug output
If the program is configured using the --enable-debug option, then log messages are printed to stdout during operation (or to a file specified at program startup). In the log one can then find (among other things) the order in which the function is called and the value that the function returns (if it is not a void type). Prior to applying this patch, no value returned by a function was logged. Log output example: [ 1][ 0.000661] worker_thread(0x558c674ba200) { [ 1][ 0.000672] Worker started, thread id: 104866 [ 1][ 0.000716] ev_backend_type(0x7f7858000b60) { [ 1][ 0.000721] ev_backend_name(4) { [ 1][ 0.000722] } = 0x558c6554b05c [ 1][ 0.000722] } = 0x558c6554b05c [ 1][ 0.000723] libev: using backend 'epoll' .. [ 1][ 5.210447] worker_thread_exit(0x558c674ba200) { [ 1][ 5.210458] Worker is stopped [ 1][ 5.210459] } = (nil) Version of the program changed to v1.2.14.
v1.2.13: BUG/MINOR: fixed saving of HTTP headers data in struct mirror
Sometimes, the header list was not initialized, so when the memory was freed in the mir_ptr_free() function, the program crashed because the list pointer had NULL content. This should probably solve the GitHub issue #12. Version of the program changed to v1.2.13.
v1.2.12: BUG/MINOR: multiple execution of the function worker_stop() disabled
In case HAProxy is used in master-worker mode, it is possible that it sends a SIGINT signal several times in a row. Also, it may happen that the program runs out of time and immediately after that the program receives a SIGINT signal. Any of these causes led to the crash of the program. Version of the program changed to v1.2.12.
v1.2.11: MINOR: improved initialization and release of 'struct buffer' data
The debug printing of members of this structure has been slightly revised in several places.
v1.2.6: BUG/MINOR: removed memory leaks if no HTTP requests are mirrored
In case the program was compiled to use the cURL library and we did not specify a mirror url at program startup, the memory allocated for mirroring HTTP requests was not freed. Version of the program changed to v1.2.6.