Closed adcen0107 closed 2 years ago
1、当前代码的源文件xqc_frame_parser.c中函数xqc_parse_max_streams_frame实现如下: xqc_int_t xqc_parse_max_streams_frame(xqc_packet_in_t packet_in, uint64_t max_streams, int bidirectional, xqc_connection_t conn) { unsigned char p = packet_in->pos; const unsigned char end = packet_in->last; const unsigned char first_byte = *p++;
int vlen; if (first_byte == 0x12) { *bidirectional = 1; } else { *bidirectional = 0; } vlen = xqc_vint_read(p, end, max_streams); if (vlen < 0) { return -XQC_EVINTREAD; } p += vlen; packet_in->pos = p; packet_in->pi_frame_types |= XQC_FRAME_BIT_MAX_STREAMS; xqc_log_event(conn->log, TRA_FRAMES_PROCESSED, XQC_FRAME_MAX_STREAM_DATA, *bidirectional, *max_streams); return XQC_OK;
} 2、函数xqc_log_event的第3个参数类型错误,这里使用的是MAX STREAM DATA,而应该传入MAX_STREAM。
很明显,代码应该改为: xqc_log_event(conn->log, TRA_FRAMES_PROCESSED, XQC_FRAME_MAX_STREAMS, bidirectional, max_streams);
当收到max stream frame时,接收端解析日志即可以看到打印错误信息。
网络问题导致重复提交了issue
What happened?
1、当前代码的源文件xqc_frame_parser.c中函数xqc_parse_max_streams_frame实现如下: xqc_int_t xqc_parse_max_streams_frame(xqc_packet_in_t packet_in, uint64_t max_streams, int bidirectional, xqc_connection_t conn) { unsigned char p = packet_in->pos; const unsigned char end = packet_in->last; const unsigned char first_byte = *p++;
} 2、函数xqc_log_event的第3个参数类型错误,这里使用的是MAX STREAM DATA,而应该传入MAX_STREAM。
Steps To Reproduce
很明显,代码应该改为: xqc_log_event(conn->log, TRA_FRAMES_PROCESSED, XQC_FRAME_MAX_STREAMS, bidirectional, max_streams);
Relevant log output