This patch makes sure we clean up our version and implementation fields
in our Managed Proxy struct after each test run.
This was detected by LeakSanitizer.
See: tpo/core/tor#11101.
This patch adds two new keys to bridges' extra-info document:
"transport-version" and "transport-implementation".
These two new values always appear together (if one is missing, the
other one will be missing too) and is parsed from PT's STATUS
TYPE=version messages.
See: tpo/core/tor#11101.
This patch adds support for handling the version status message. Once we
receive such message, we add the given version string to the
managed_proxy_t instance. Note this value can be NULL and the value can
change throughout the lifetime of the PT as multiple status version
messages are handled.
See: tpo/core/tor#11101
I noticed this when doing some M4 macro analysis work, and saw
that the version of `ax_check_compile_flag.m4` in Tor has two serial
lines ('serial 5' and 'serial 6') which is invalid.
We could just fix one of the lines, but it makes more sense to just
sync with upstream, I think.
Import ax_check_compile_flag.m4 from autoconf-archive at latest
commit at time of writing (4e8aab846b0872fba99f1fe02ebcdff178a34c87).
Signed-off-by: Sam James <sam@gentoo.org>
It turns out that circuit_package_relay_cell() returns 0 in order to drop a
cell but there is a code path, if the circuit queue is full, that also silently
closes the circuit and returns 0.
This lead to Conflux thinking a cell was sent but actually the cell was not and
the circuit was closed leading to the hard assert.
And so this function makes sure that circuit_package_relay_cell() and
append_cell_to_circuit_queue() returns a value that indicate what happened with
the cell and circuit so the caller can make an informed decision with it.
This change makes it that we do NOT enter the Conflux subsystem if the cell is
not queued on the circuit.
Fixes#40921
Signed-off-by: David Goulet <dgoulet@torproject.org>