Skip to content

Releases: haproxytech/spoa-mirror

v1.2.19: BUG/MINOR: fixed the use of '--mirror-(interface|local-port)' program…

21 Apr 02:16
Compare
Choose a tag to compare
… 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…

09 Oct 10:00
Compare
Choose a tag to compare
…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

04 Sep 19:14
Compare
Choose a tag to compare
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

14 Sep 22:29
Compare
Choose a tag to compare
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

12 Apr 22:05
Compare
Choose a tag to compare

v1.2.14: MINOR: debug: show return values of all functions in the debug output

12 Apr 20:58
Compare
Choose a tag to compare
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

17 Aug 12:34
Compare
Choose a tag to compare
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

13 Jul 21:51
Compare
Choose a tag to compare
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

13 Jul 21:25
Compare
Choose a tag to compare
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

24 Feb 21:44
Compare
Choose a tag to compare
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.