@@ -1169,17 +1169,16 @@ const struct quic_frame_parser quic_frame_parsers[] = {
11691169 [QUIC_FT_HANDSHAKE_DONE ] = { .func = quic_parse_handshake_done_frame , .proto = QF_PROTO_QUIC , .flags = QUIC_FL_RX_PACKET_ACK_ELICITING , .mask = QUIC_FT_PKT_TYPE____1_BITMASK , },
11701170};
11711171
1172- /* quic-on-streams transport parameters frame. */
1173- const uint64_t QUIC_FT_QX_TRANSPORT_PARAMETERS = 0x3f5153300d0a0d0a ;
1174- const struct quic_frame_parser qf_parser_qx_transport_parameters = {
1175- .func = quic_parse_qmux_transport_parameters ,
1176- .proto = QF_PROTO_QMUX ,
1172+ static const struct quic_frame_builder qf_builder_qx_transport_parameters = {
1173+ .func = quic_build_qmux_transport_parameters ,
11771174 .mask = 0 ,
11781175 .flags = 0 ,
11791176};
1180- const struct quic_frame_builder qf_builder_qx_transport_parameters = {
1181- .func = quic_build_qmux_transport_parameters ,
1182- .mask = 0 ,
1177+
1178+ static const struct quic_frame_parser qf_parser_qx_transport_parameters = {
1179+ .func = quic_parse_qmux_transport_parameters ,
1180+ .proto = QF_PROTO_QMUX ,
1181+ .mask = 0 ,
11831182 .flags = 0 ,
11841183};
11851184
@@ -1202,17 +1201,25 @@ static void quic_register_extra_frame(uint64_t type,
12021201 LIST_APPEND (& quic_extra_frame_handlers .list , & handler -> list );
12031202}
12041203
1204+ static struct quic_extra_frame_handler qf_handler_qx_transport_parameters = {
1205+ .builder = qf_builder_qx_transport_parameters ,
1206+ .parser = qf_parser_qx_transport_parameters ,
1207+ };
1208+
1209+ /* quic-on-streams transport parameters frame. */
1210+ const uint64_t QUIC_FT_QX_TRANSPORT_PARAMETERS = 0x3f5153300d0a0d0a ;
1211+
1212+ INITCALL2 (STG_REGISTER , quic_register_extra_frame ,
1213+ QUIC_FT_QX_TRANSPORT_PARAMETERS ,
1214+ & qf_handler_qx_transport_parameters );
1215+
12051216static const struct quic_frame_parser * qf_parser (uint64_t type )
12061217{
12071218 const struct quic_extra_frame_handler * frm_handler ;
12081219
12091220 if (type < QUIC_FT_MAX )
12101221 return & quic_frame_parsers [type ];
12111222
1212- /* Complete here for extra frame types greater than QUIC_FT_MAX. */
1213- if (type == QUIC_FT_QX_TRANSPORT_PARAMETERS )
1214- return & qf_parser_qx_transport_parameters ;
1215-
12161223 list_for_each_entry (frm_handler , & quic_extra_frame_handlers .list , list ) {
12171224 if (frm_handler -> type == type )
12181225 return & frm_handler -> parser ;
@@ -1247,10 +1254,6 @@ const struct quic_frame_builder *qf_builder(uint64_t type)
12471254 if (type < QUIC_FT_MAX )
12481255 return & quic_frame_builders [type ];
12491256
1250- /* Complete here for extra frame types greater than QUIC_FT_MAX. */
1251- if (type == QUIC_FT_QX_TRANSPORT_PARAMETERS )
1252- return & qf_builder_qx_transport_parameters ;
1253-
12541257 list_for_each_entry (frm_handler , & quic_extra_frame_handlers .list , list ) {
12551258 if (frm_handler -> type == type )
12561259 return & frm_handler -> builder ;
0 commit comments