@@ -1155,17 +1155,16 @@ const struct quic_frame_parser quic_frame_parsers[] = {
11551155 [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 , },
11561156};
11571157
1158- /* quic-on-streams transport parameters frame. */
1159- const uint64_t QUIC_FT_QX_TRANSPORT_PARAMETERS = 0x3f5153300d0a0d0a ;
1160- const struct quic_frame_parser qf_parser_qx_transport_parameters = {
1161- .func = quic_parse_qmux_transport_parameters ,
1162- .proto = QF_PROTO_QMUX ,
1158+ static const struct quic_frame_builder qf_builder_qx_transport_parameters = {
1159+ .func = quic_build_qmux_transport_parameters ,
11631160 .mask = 0 ,
11641161 .flags = 0 ,
11651162};
1166- const struct quic_frame_builder qf_builder_qx_transport_parameters = {
1167- .func = quic_build_qmux_transport_parameters ,
1168- .mask = 0 ,
1163+
1164+ static const struct quic_frame_parser qf_parser_qx_transport_parameters = {
1165+ .func = quic_parse_qmux_transport_parameters ,
1166+ .proto = QF_PROTO_QMUX ,
1167+ .mask = 0 ,
11691168 .flags = 0 ,
11701169};
11711170
@@ -1181,17 +1180,22 @@ void quic_register_extra_frame(uint64_t type,
11811180 LIST_APPEND (& quic_extra_frame_handlers .list , & handler -> list );
11821181}
11831182
1183+ static struct quic_extra_frame_handler qf_handler_qx_transport_parameters = {
1184+ .builder = qf_builder_qx_transport_parameters ,
1185+ .parser = qf_parser_qx_transport_parameters ,
1186+ };
1187+
1188+ INITCALL2 (STG_REGISTER , quic_register_extra_frame ,
1189+ QUIC_FT_QX_TRANSPORT_PARAMETERS ,
1190+ & qf_handler_qx_transport_parameters );
1191+
11841192static const struct quic_frame_parser * qf_parser (uint64_t type )
11851193{
11861194 const struct quic_extra_frame_handler * frm_handler ;
11871195
11881196 if (type < QUIC_FT_MAX )
11891197 return & quic_frame_parsers [type ];
11901198
1191- /* Complete here for extra frame types greater than QUIC_FT_MAX. */
1192- if (type == QUIC_FT_QX_TRANSPORT_PARAMETERS )
1193- return & qf_parser_qx_transport_parameters ;
1194-
11951199 list_for_each_entry (frm_handler , & quic_extra_frame_handlers .list , list ) {
11961200 if (frm_handler -> type == type )
11971201 return & frm_handler -> parser ;
@@ -1226,10 +1230,6 @@ const struct quic_frame_builder *qf_builder(uint64_t type)
12261230 if (type < QUIC_FT_MAX )
12271231 return & quic_frame_builders [type ];
12281232
1229- /* Complete here for extra frame types greater than QUIC_FT_MAX. */
1230- if (type == QUIC_FT_QX_TRANSPORT_PARAMETERS )
1231- return & qf_builder_qx_transport_parameters ;
1232-
12331233 list_for_each_entry (frm_handler , & quic_extra_frame_handlers .list , list ) {
12341234 if (frm_handler -> type == type )
12351235 return & frm_handler -> builder ;
0 commit comments