Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Avoid log warning for tls_context if the user didn't set it #365

Merged
merged 6 commits into from
Jun 19, 2020
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions source/client/options_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -672,11 +672,11 @@ CommandLineOptionsPtr OptionsImpl::toCommandLineOptionsInternal() const {
}
}

// Only set the tls context if it looks non-empty, to avoid a warning being logged about field
// deprecation. Ideally this would follow the way transport_socket uses absl::optional below.
// Only set the tls context if needed, to avoid a warning being logged about field deprecation.
// Ideally this would follow the way transport_socket uses absl::optional below.
// But as this field is about to get eliminated this minimal effort shortcut may be more suitable.
if (!Envoy::MessageUtil()(tls_context_,
envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext())) {
if (!Envoy::Protobuf::util::MessageDifferencer::Equivalent(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note - equivalent is not the same as equal. This would say that two messages are the same if one has a value set to zero and the other one has it unset where the default is zero.

Considering we are using this to determine if the message is unset, is that behavior desired?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a good catch, thanks. Thinking this through, you're right, this isn't what we need here. I switched this to use the ByteSizeLong() method you pointed out. I'm not super concerned about it not being the fastest way to pull this off, as it is going to be eliminated at some point. Plus this isn't in the hot path. Addressed in f467e86

tls_context_, envoy::extensions::transport_sockets::tls::v3::UpstreamTlsContext())) {
*(command_line_options->mutable_tls_context()) = tls_context_;
}
if (transport_socket_.has_value()) {
Expand Down