@@ -457,6 +457,7 @@ static int session_new(nghttp2_session **session_ptr,
457457 (* session_ptr )-> remote_settings .max_concurrent_streams = 100 ;
458458
459459 (* session_ptr )-> max_send_header_block_length = NGHTTP2_MAX_HEADERSLEN ;
460+ (* session_ptr )-> max_outbound_ack = NGHTTP2_DEFAULT_MAX_OBQ_FLOOD_ITEM ;
460461
461462 if (option ) {
462463 if ((option -> opt_set_mask & NGHTTP2_OPT_NO_AUTO_WINDOW_UPDATE ) &&
@@ -516,6 +517,10 @@ static int session_new(nghttp2_session **session_ptr,
516517 option -> no_closed_streams ) {
517518 (* session_ptr )-> opt_flags |= NGHTTP2_OPTMASK_NO_CLOSED_STREAMS ;
518519 }
520+
521+ if (option -> opt_set_mask & NGHTTP2_OPT_MAX_OUTBOUND_ACK ) {
522+ (* session_ptr )-> max_outbound_ack = option -> max_outbound_ack ;
523+ }
519524 }
520525
521526 rv = nghttp2_hd_deflate_init2 (& (* session_ptr )-> hd_deflater ,
@@ -6857,7 +6862,7 @@ int nghttp2_session_add_ping(nghttp2_session *session, uint8_t flags,
68576862 mem = & session -> mem ;
68586863
68596864 if ((flags & NGHTTP2_FLAG_ACK ) &&
6860- session -> obq_flood_counter_ >= NGHTTP2_MAX_OBQ_FLOOD_ITEM ) {
6865+ session -> obq_flood_counter_ >= session -> max_outbound_ack ) {
68616866 return NGHTTP2_ERR_FLOODED ;
68626867 }
68636868
@@ -7002,7 +7007,7 @@ int nghttp2_session_add_settings(nghttp2_session *session, uint8_t flags,
70027007 return NGHTTP2_ERR_INVALID_ARGUMENT ;
70037008 }
70047009
7005- if (session -> obq_flood_counter_ >= NGHTTP2_MAX_OBQ_FLOOD_ITEM ) {
7010+ if (session -> obq_flood_counter_ >= session -> max_outbound_ack ) {
70067011 return NGHTTP2_ERR_FLOODED ;
70077012 }
70087013 }
0 commit comments