Skip to content
This repository was archived by the owner on Oct 31, 2023. It is now read-only.

Commit c41f406

Browse files
committed
SERVER-41794 Only log about sslMode being deprecated when it's set for the first time
1 parent 9c87e0d commit c41f406

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed

src/mongo/idl/server_parameter.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,26 @@ IDLServerParameterDeprecatedAlias::IDLServerParameterDeprecatedAlias(StringData
103103
void IDLServerParameterDeprecatedAlias::append(OperationContext* opCtx,
104104
BSONObjBuilder& b,
105105
const std::string& fieldName) {
106-
warning() << "Use of deprecated server parameter '" << name() << "', please use '"
107-
<< _sp->name() << "' instead.";
106+
std::call_once(_warnOnce, [&] {
107+
warning() << "Use of deprecated server parameter '" << name() << "', please use '"
108+
<< _sp->name() << "' instead.";
109+
});
108110
_sp->append(opCtx, b, fieldName);
109111
}
110112

111113
Status IDLServerParameterDeprecatedAlias::set(const BSONElement& newValueElement) {
112-
warning() << "Use of deprecared server parameter '" << name() << "', please use '"
113-
<< _sp->name() << "' instead.";
114+
std::call_once(_warnOnce, [&] {
115+
warning() << "Use of deprecated server parameter '" << name() << "', please use '"
116+
<< _sp->name() << "' instead.";
117+
});
114118
return _sp->set(newValueElement);
115119
}
116120

117121
Status IDLServerParameterDeprecatedAlias::setFromString(const std::string& str) {
118-
warning() << "Use of deprecared server parameter '" << name() << "', please use '"
119-
<< _sp->name() << "' instead.";
122+
std::call_once(_warnOnce, [&] {
123+
warning() << "Use of deprecated server parameter '" << name() << "', please use '"
124+
<< _sp->name() << "' instead.";
125+
});
120126
return _sp->setFromString(str);
121127
}
122128

src/mongo/idl/server_parameter.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ class IDLServerParameterDeprecatedAlias : public ServerParameter {
168168
Status setFromString(const std::string& str) final;
169169

170170
private:
171+
std::once_flag _warnOnce;
171172
ServerParameter* _sp;
172173
};
173174

src/mongo/util/net/ssl_parameters.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,17 @@ StatusWith<SSLParams::SSLModes> checkTLSModeTransition(T modeToString,
103103
}
104104
}
105105

106+
std::once_flag warnForSSLMode;
107+
106108
} // namespace
107109

108110
void SSLModeServerParameter::append(OperationContext*,
109111
BSONObjBuilder& builder,
110112
const std::string& fieldName) {
111-
warning() << "Use of deprecared server parameter 'sslMode', please use 'tlsMode' instead.";
113+
std::call_once(warnForSSLMode, [] {
114+
warning() << "Use of deprecated server parameter 'sslMode', please use 'tlsMode' instead.";
115+
});
116+
112117
builder.append(fieldName, SSLParams::sslModeFormat(sslGlobalParams.sslMode.load()));
113118
}
114119

@@ -121,7 +126,9 @@ void TLSModeServerParameter::append(OperationContext*,
121126
}
122127

123128
Status SSLModeServerParameter::setFromString(const std::string& strMode) {
124-
warning() << "Use of deprecared server parameter 'sslMode', please use 'tlsMode' instead.";
129+
std::call_once(warnForSSLMode, [] {
130+
warning() << "Use of deprecated server parameter 'sslMode', please use 'tlsMode' instead.";
131+
});
125132

126133
auto swNewMode = checkTLSModeTransition(
127134
SSLParams::sslModeFormat, SSLParams::sslModeParse, "sslMode", strMode);

0 commit comments

Comments
 (0)