BUG/MEDIUM: proxy: Don't use cs_destroy() when freeing the conn_stream.
When we upgrade the mux from TCP to H2/HTX, don't use cs_destroy() to free
the conn_stream, use cs_free() instead. Using cs_destroy() would call the
mux detach method, and at that point of time the mux would be the H2 mux,
which knows nothing about that conn_stream, so bad things would happen.
This should eventually make upgrade from TCP to H2/HTX work, and fix
the github issue #196.
This should be backported to 2.0.
diff --git a/src/proxy.c b/src/proxy.c
index 1abb780..0976681 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1464,7 +1464,7 @@
* silently destroyed. The new mux
* will create new streams.
*/
- cs_destroy(cs);
+ cs_free(cs);
si_detach_endpoint(&s->si[0]);
s->logs.logwait = 0;
s->logs.level = 0;