diff --git a/include/haproxy/connection-t.h b/include/haproxy/connection-t.h index 88534dc63..a603966e5 100644 --- a/include/haproxy/connection-t.h +++ b/include/haproxy/connection-t.h @@ -670,6 +670,7 @@ struct mux_proto_list { enum proto_proxy_mode mode; enum proto_proxy_side side; const struct mux_ops *mux; + const char *alpn; /* Default alpn to set by default when the mux protocol is forced (optional, in binary form) */ struct list list; }; diff --git a/src/mux_h1.c b/src/mux_h1.c index 30dcb6086..7b9cddf8d 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -5987,7 +5987,7 @@ static const struct mux_ops mux_h1_ops = { static struct mux_proto_list mux_proto_h1 = { .token = IST("h1"), .mode = PROTO_MODE_HTTP, .side = PROTO_SIDE_BOTH, .mux = &mux_h1_ops }; static struct mux_proto_list mux_proto_http = - { .token = IST(""), .mode = PROTO_MODE_HTTP, .side = PROTO_SIDE_BOTH, .mux = &mux_http_ops }; + { .token = IST(""), .mode = PROTO_MODE_HTTP, .side = PROTO_SIDE_BOTH, .mux = &mux_http_ops, .alpn = "\010http/1.1" }; INITCALL1(STG_REGISTER, register_mux_proto, &mux_proto_h1); INITCALL1(STG_REGISTER, register_mux_proto, &mux_proto_http); diff --git a/src/mux_h2.c b/src/mux_h2.c index 2a57f41a8..39119ce4f 100644 --- a/src/mux_h2.c +++ b/src/mux_h2.c @@ -8717,7 +8717,7 @@ static const struct mux_ops h2_ops = { }; static struct mux_proto_list mux_proto_h2 = - { .token = IST("h2"), .mode = PROTO_MODE_HTTP, .side = PROTO_SIDE_BOTH, .mux = &h2_ops }; + { .token = IST("h2"), .mode = PROTO_MODE_HTTP, .side = PROTO_SIDE_BOTH, .mux = &h2_ops, .alpn = "\002h2" }; INITCALL1(STG_REGISTER, register_mux_proto, &mux_proto_h2);