Skip to content

Commit 8538cca

Browse files
authored
RUST-1060 Omit non-pub fields from Debug output of ClientOptions (#516)
1 parent 9d6dd0b commit 8538cca

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/client/options/mod.rs

+4
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,7 @@ pub struct ClientOptions {
484484
pub server_selection_timeout: Option<Duration>,
485485

486486
#[builder(default, setter(skip))]
487+
#[derivative(Debug = "ignore")]
487488
pub(crate) socket_timeout: Option<Duration>,
488489

489490
/// The TLS configuration for the Client to use in its connections with the server.
@@ -503,9 +504,11 @@ pub struct ClientOptions {
503504
/// Information from the SRV URI that generated these client options, if applicable.
504505
#[builder(default, setter(skip))]
505506
#[serde(skip)]
507+
#[derivative(Debug = "ignore")]
506508
pub(crate) original_srv_info: Option<OriginalSrvInfo>,
507509

508510
#[builder(default, setter(skip))]
511+
#[derivative(Debug = "ignore")]
509512
pub(crate) original_uri: Option<String>,
510513

511514
/// Configuration of the trust-dns resolver used for SRV and TXT lookups.
@@ -515,6 +518,7 @@ pub struct ClientOptions {
515518
/// configuration, so a custom configuration is recommended.
516519
#[builder(default, setter(skip))]
517520
#[serde(skip)]
521+
#[derivative(Debug = "ignore")]
518522
pub(crate) resolver_config: Option<ResolverConfig>,
519523

520524
/// Used by tests to override MIN_HEARTBEAT_FREQUENCY.

src/client/options/test.rs

+12
Original file line numberDiff line numberDiff line change
@@ -189,3 +189,15 @@ async fn parse_unknown_options() {
189189
.await;
190190
parse_uri("maxstalenessms", Some("maxstalenessseconds")).await;
191191
}
192+
193+
#[cfg_attr(feature = "tokio-runtime", tokio::test)]
194+
#[cfg_attr(feature = "async-std-runtime", async_std::test)]
195+
async fn options_debug_omits_uri() {
196+
let uri = "mongodb://username:password@localhost/";
197+
let options = ClientOptions::parse(uri).await.unwrap();
198+
199+
let debug_output = format!("{:?}", options);
200+
assert!(!debug_output.contains("username"));
201+
assert!(!debug_output.contains("password"));
202+
assert!(!debug_output.contains("uri"));
203+
}

0 commit comments

Comments
 (0)