@@ -43,6 +43,8 @@ pub struct TransportConfig {
43
43
pub ( crate ) congestion_controller_factory : Arc < dyn congestion:: ControllerFactory + Send + Sync > ,
44
44
45
45
pub ( crate ) enable_segmentation_offload : bool ,
46
+
47
+ pub ( crate ) send_grease_transport_parameter : bool ,
46
48
}
47
49
48
50
impl TransportConfig {
@@ -314,6 +316,14 @@ impl TransportConfig {
314
316
self . enable_segmentation_offload = enabled;
315
317
self
316
318
}
319
+
320
+ /// Specifies whether the GREASE transport parameter is sent during transport parameter negotiation.
321
+ ///
322
+ /// Defaults to `true`.
323
+ pub fn send_grease_random_transport_parameter ( & mut self , enabled : bool ) -> & mut Self {
324
+ self . send_grease_transport_parameter = enabled;
325
+ self
326
+ }
317
327
}
318
328
319
329
impl Default for TransportConfig {
@@ -354,6 +364,8 @@ impl Default for TransportConfig {
354
364
congestion_controller_factory : Arc :: new ( congestion:: CubicConfig :: default ( ) ) ,
355
365
356
366
enable_segmentation_offload : true ,
367
+
368
+ send_grease_transport_parameter : true ,
357
369
}
358
370
}
359
371
}
@@ -385,6 +397,7 @@ impl fmt::Debug for TransportConfig {
385
397
deterministic_packet_numbers : _,
386
398
congestion_controller_factory : _,
387
399
enable_segmentation_offload,
400
+ send_grease_transport_parameter,
388
401
} = self ;
389
402
fmt. debug_struct ( "TransportConfig" )
390
403
. field ( "max_concurrent_bidi_streams" , max_concurrent_bidi_streams)
@@ -412,6 +425,10 @@ impl fmt::Debug for TransportConfig {
412
425
. field ( "datagram_send_buffer_size" , datagram_send_buffer_size)
413
426
. field ( "congestion_controller_factory" , & "[ opaque ]" )
414
427
. field ( "enable_segmentation_offload" , enable_segmentation_offload)
428
+ . field (
429
+ "send_grease_transport_parameter" ,
430
+ send_grease_transport_parameter,
431
+ )
415
432
. finish ( )
416
433
}
417
434
}
0 commit comments