mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-28 14:21:00 +01:00
MEDIUM: session: use the ALPN token and proxy mode to select the mux
When an incoming connection is made on an HTTP mode frontend, the session now looks up the mux to use based on the ALPN token and the proxy mode. This will allow easier mux registration, and we don't need to hard-code the mux_pt_ops anymore.
This commit is contained in:
parent
f64908294c
commit
2e0b2b5f83
@ -757,17 +757,17 @@ static inline const struct mux_ops *conn_find_best_mux(struct connection *conn,
|
||||
}
|
||||
|
||||
/* finds the best mux for incoming connection <conn>, a proxy in and http mode
|
||||
* <mode>, and installs it on the connection for direction <dir> (MUX_INBOUND/
|
||||
* MUX_OUTBOUND). Returns < 0 on error.
|
||||
* <mode>, and installs it on the connection for upper context <ctx>. Returns
|
||||
* < 0 on error.
|
||||
*/
|
||||
static inline int conn_install_best_mux(struct connection *conn, int mode, enum mux_dir dir)
|
||||
static inline int conn_install_best_mux(struct connection *conn, int mode, void *ctx)
|
||||
{
|
||||
const struct mux_ops *mux_ops;
|
||||
|
||||
mux_ops = conn_find_best_mux(conn, mode);
|
||||
if (!mux_ops)
|
||||
return -1;
|
||||
return conn_install_mux(conn, mux_ops, dir);
|
||||
return conn_install_mux(conn, mux_ops, ctx);
|
||||
}
|
||||
|
||||
#endif /* _PROTO_CONNECTION_H */
|
||||
|
||||
@ -21,7 +21,6 @@
|
||||
#include <proto/connection.h>
|
||||
#include <proto/listener.h>
|
||||
#include <proto/log.h>
|
||||
#include <proto/mux_pt.h>
|
||||
#include <proto/proto_http.h>
|
||||
#include <proto/proxy.h>
|
||||
#include <proto/session.h>
|
||||
@ -407,7 +406,7 @@ static int conn_complete_session(struct connection *conn)
|
||||
goto fail;
|
||||
|
||||
session_count_new(sess);
|
||||
if (conn_install_mux(conn, &mux_pt_ops, NULL) < 0)
|
||||
if (conn_install_best_mux(conn, sess->fe->mode == PR_MODE_HTTP, NULL) < 0)
|
||||
goto fail;
|
||||
|
||||
/* the embryonic session's task is not needed anymore */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user