Only sends ACKs on path 0
@@ -53,10 +53,9 @@ protoop_arg_t schedule_frames(picoquic_cnx_t *cnx) {
checksum_overhead = helper_get_checksum_length(cnx, is_cleartext_mode);
/* Check whether it makes sense to add an ACK at the end of the retransmission */
/* Don't do that if it risks mixing clear text and encrypted ack */
+ picoquic_path_t *path_0 = (picoquic_path_t *) get_cnx(cnx, AK_CNX_PATH, 0);
if (is_cleartext_mode == 0 && ptype != picoquic_packet_0rtt_protected) {
- if (helper_prepare_ack_frame(cnx, current_time, pc, &bytes[length],
- send_buffer_min_max - checksum_overhead - length, &data_bytes)
- == 0) {
+ if (sending_path == path_0 && helper_prepare_ack_frame(cnx, current_time, pc, &bytes[length], send_buffer_min_max - checksum_overhead - length, &data_bytes) == 0) {
length += (uint32_t)data_bytes;
set_pkt(packet, AK_PKT_LENGTH, length);
}
