@@ -63,6 +63,8 @@ pub struct TransportConfig {
63
63
pub ( crate ) congestion_controller_factory : Arc < dyn congestion:: ControllerFactory + Send + Sync > ,
64
64
65
65
pub ( crate ) enable_segmentation_offload : bool ,
66
+
67
+ pub ( crate ) send_grease_transport_parameter : bool ,
66
68
}
67
69
68
70
impl TransportConfig {
@@ -334,6 +336,14 @@ impl TransportConfig {
334
336
self . enable_segmentation_offload = enabled;
335
337
self
336
338
}
339
+
340
+ /// Specifies whether the GREASE transport parameter is sent during transport parameter negotiation.
341
+ ///
342
+ /// Defaults to `true`.
343
+ pub fn send_grease_random_transport_parameter ( & mut self , enabled : bool ) -> & mut Self {
344
+ self . send_grease_transport_parameter = enabled;
345
+ self
346
+ }
337
347
}
338
348
339
349
impl Default for TransportConfig {
@@ -374,6 +384,8 @@ impl Default for TransportConfig {
374
384
congestion_controller_factory : Arc :: new ( congestion:: CubicConfig :: default ( ) ) ,
375
385
376
386
enable_segmentation_offload : true ,
387
+
388
+ send_grease_transport_parameter : true ,
377
389
}
378
390
}
379
391
}
@@ -405,6 +417,7 @@ impl fmt::Debug for TransportConfig {
405
417
deterministic_packet_numbers : _,
406
418
congestion_controller_factory : _,
407
419
enable_segmentation_offload,
420
+ send_grease_transport_parameter,
408
421
} = self ;
409
422
fmt. debug_struct ( "TransportConfig" )
410
423
. field ( "max_concurrent_bidi_streams" , max_concurrent_bidi_streams)
@@ -432,6 +445,10 @@ impl fmt::Debug for TransportConfig {
432
445
. field ( "datagram_send_buffer_size" , datagram_send_buffer_size)
433
446
. field ( "congestion_controller_factory" , & "[ opaque ]" )
434
447
. field ( "enable_segmentation_offload" , enable_segmentation_offload)
448
+ . field (
449
+ "send_grease_transport_parameter" ,
450
+ send_grease_transport_parameter,
451
+ )
435
452
. finish ( )
436
453
}
437
454
}
0 commit comments