@@ -169,16 +169,19 @@ mock_server_with_auto_hello (int32_t max_wire_version)
169
169
{
170
170
mock_server_t * server = mock_server_new ();
171
171
172
- char * hello = bson_strdup_printf ("{'ok': 1.0,"
173
- " 'isWritablePrimary': true,"
174
- " 'minWireVersion': 0,"
175
- " 'maxWireVersion': %d}" ,
176
- max_wire_version );
177
-
178
- BSON_ASSERT (max_wire_version > 0 );
179
- mock_server_auto_hello (server , hello );
180
-
181
- bson_free (hello );
172
+ ASSERT_WITH_MSG (max_wire_version >= WIRE_VERSION_MIN ,
173
+ "max_wire_version %" PRId32
174
+ " must be greater than or equal to minimum wire version %d" ,
175
+ max_wire_version ,
176
+ WIRE_VERSION_MIN );
177
+
178
+ mock_server_auto_hello (server ,
179
+ "{'ok': 1.0,"
180
+ " 'isWritablePrimary': true,"
181
+ " 'minWireVersion': %d,"
182
+ " 'maxWireVersion': %d}" ,
183
+ WIRE_VERSION_MIN ,
184
+ max_wire_version );
182
185
183
186
return server ;
184
187
}
@@ -205,36 +208,30 @@ mock_server_t *
205
208
mock_mongos_new (int32_t max_wire_version )
206
209
{
207
210
mock_server_t * server = mock_server_new ();
208
- char * mongos_36_fields = "" ;
209
- char * hello ;
210
-
211
- if (max_wire_version >= WIRE_VERSION_OP_MSG ) {
212
- mongos_36_fields =
213
- ","
214
- "'$clusterTime': {"
215
- " 'clusterTime': {'$timestamp': {'t': 1, 'i': 1}},"
216
- " 'signature': {"
217
- " 'hash': {'$binary': {'subType': '0', 'base64': ''}},"
218
- " 'keyId': {'$numberLong': '6446735049323708417'}"
219
- " },"
220
- " 'operationTime': {'$timestamp': {'t': 1, 'i': 1}}"
221
- "},"
222
- "'logicalSessionTimeoutMinutes': 30" ;
223
- }
224
-
225
- hello = bson_strdup_printf ("{'ok': 1.0,"
226
- " 'isWritablePrimary': true,"
227
- " 'msg': 'isdbgrid',"
228
- " 'minWireVersion': 2,"
229
- " 'maxWireVersion': %d"
230
- " %s}" ,
231
- max_wire_version ,
232
- mongos_36_fields );
233
-
234
- BSON_ASSERT (max_wire_version > 0 );
235
- mock_server_auto_hello (server , hello );
236
-
237
- bson_free (hello );
211
+
212
+ ASSERT_WITH_MSG (max_wire_version >= WIRE_VERSION_MIN ,
213
+ "max_wire_version %" PRId32
214
+ " must be greater than or equal to minimum wire version %d" ,
215
+ max_wire_version ,
216
+ WIRE_VERSION_MIN );
217
+
218
+ mock_server_auto_hello (
219
+ server ,
220
+ "{'ok': 1.0,"
221
+ " 'isWritablePrimary': true,"
222
+ " 'msg': 'isdbgrid',"
223
+ " 'minWireVersion': %d,"
224
+ " 'maxWireVersion': %d,"
225
+ " '$clusterTime': {"
226
+ " 'clusterTime': {'$timestamp': {'t': 1, 'i': 1}},"
227
+ " 'signature': {"
228
+ " 'hash': {'$binary': {'subType': '0', 'base64': ''}},"
229
+ " 'keyId': {'$numberLong': '6446735049323708417'}"
230
+ " },"
231
+ " 'operationTime': {'$timestamp': {'t': 1, 'i': 1}}},"
232
+ " 'logicalSessionTimeoutMinutes': 30}" ,
233
+ WIRE_VERSION_MIN ,
234
+ max_wire_version );
238
235
239
236
return server ;
240
237
}
@@ -553,7 +550,7 @@ auto_hello (request_t *request, void *data)
553
550
BSON_APPEND_INT32 (& response , "minWireVersion" , WIRE_VERSION_MIN );
554
551
}
555
552
if (!bson_iter_init_find (& iter , & response , "maxWireVersion" )) {
556
- BSON_APPEND_INT32 (& response , "maxWireVersion" , WIRE_VERSION_OP_MSG - 1 );
553
+ BSON_APPEND_INT32 (& response , "maxWireVersion" , WIRE_VERSION_MAX );
557
554
}
558
555
559
556
response_json = bson_as_json (& response , 0 );
@@ -2125,8 +2122,12 @@ rs_response_to_hello (
2125
2122
bson_string_t * hosts ;
2126
2123
bool first ;
2127
2124
mock_server_t * host ;
2128
- const char * session_timeout ;
2129
- char * hello ;
2125
+
2126
+ ASSERT_WITH_MSG (max_wire_version >= WIRE_VERSION_MIN ,
2127
+ "max_wire_version %" PRId32
2128
+ " must be greater than or equal to minimum wire version %d" ,
2129
+ max_wire_version ,
2130
+ WIRE_VERSION_MIN );
2130
2131
2131
2132
hosts = bson_string_new ("" );
2132
2133
@@ -2146,32 +2147,24 @@ rs_response_to_hello (
2146
2147
2147
2148
va_end (ap );
2148
2149
2149
- if (max_wire_version >= 6 ) {
2150
- session_timeout = ", 'logicalSessionTimeoutMinutes': 30" ;
2151
- mock_server_auto_endsessions (server );
2152
- } else {
2153
- session_timeout = "" ;
2154
- }
2155
-
2156
- hello = bson_strdup_printf ("{'ok': 1, "
2157
- " 'setName': 'rs',"
2158
- " 'isWritablePrimary': %s,"
2159
- " 'secondary': %s,"
2160
- " 'tags': {%s},"
2161
- " 'minWireVersion': 3,"
2162
- " 'maxWireVersion': %d,"
2163
- " 'hosts': [%s]"
2164
- " %s"
2165
- "}" ,
2166
- primary ? "true" : "false" ,
2167
- primary ? "false" : "true" ,
2168
- has_tags ? "'key': 'value'" : "" ,
2169
- max_wire_version ,
2170
- hosts -> str ,
2171
- session_timeout );
2172
-
2173
- mock_server_auto_hello (server , "%s" , hello );
2174
-
2175
- bson_free (hello );
2150
+ mock_server_auto_endsessions (server );
2151
+
2152
+ mock_server_auto_hello (server ,
2153
+ "{'ok': 1, "
2154
+ " 'setName': 'rs',"
2155
+ " 'isWritablePrimary': %s,"
2156
+ " 'secondary': %s,"
2157
+ " 'tags': {%s},"
2158
+ " 'minWireVersion': %d,"
2159
+ " 'maxWireVersion': %d,"
2160
+ " 'hosts': [%s],"
2161
+ " 'logicalSessionTimeoutMinutes': 30}" ,
2162
+ primary ? "true" : "false" ,
2163
+ primary ? "false" : "true" ,
2164
+ has_tags ? "'key': 'value'" : "" ,
2165
+ WIRE_VERSION_MIN ,
2166
+ max_wire_version ,
2167
+ hosts -> str );
2168
+
2176
2169
bson_string_free (hosts , true);
2177
2170
}
0 commit comments