@@ -34,6 +34,7 @@ struct _mock_server_t
34
34
{
35
35
mock_server_handler_t handler ;
36
36
void * handler_data ;
37
+ bool verbose ;
37
38
38
39
mongoc_thread_t main_thread ;
39
40
mongoc_cond_t cond ;
@@ -50,6 +51,7 @@ struct _mock_server_t
50
51
int last_response_id ;
51
52
52
53
bool isMaster ;
54
+ bool isSecondary ;
53
55
int minWireVersion ;
54
56
int maxWireVersion ;
55
57
int maxBsonObjectSize ;
@@ -150,6 +152,10 @@ handle_ismaster (mock_server_t *server,
150
152
BSON_ASSERT (doc );
151
153
152
154
bson_append_bool (& reply_doc , "ismaster" , -1 , server -> isMaster );
155
+ if (!server -> isMaster ) {
156
+ bson_append_bool (& reply_doc , "secondary" , -1 , server -> isSecondary );
157
+ }
158
+
153
159
bson_append_int32 (& reply_doc , "maxBsonObjectSize" , -1 ,
154
160
server -> maxBsonObjectSize );
155
161
bson_append_int32 (& reply_doc , "maxMessageSizeBytes" , -1 ,
@@ -253,7 +259,10 @@ mock_server_worker (void *data)
253
259
254
260
again :
255
261
if (_mongoc_buffer_fill (& buffer , stream , 4 , -1 , & error ) == -1 ) {
256
- MONGOC_WARNING ("%s():%d: %s" , __FUNCTION__ , __LINE__ , error .message );
262
+ if (mock_server_verbose (server )) {
263
+ MONGOC_WARNING ("%s():%d: %s" , __FUNCTION__ , __LINE__ , error .message );
264
+ }
265
+
257
266
GOTO (failure );
258
267
}
259
268
@@ -328,6 +337,8 @@ mock_server_new_rs (const char *address,
328
337
mock_server_handler_t handler ,
329
338
void * handler_data ,
330
339
const char * setName ,
340
+ bool isMaster ,
341
+ bool isSecondary ,
331
342
const mongoc_host_list_t * hosts )
332
343
{
333
344
mock_server_t * server ;
@@ -343,14 +354,16 @@ mock_server_new_rs (const char *address,
343
354
server = bson_malloc0 (sizeof * server );
344
355
server -> handler = handler ? handler : dummy_handler ;
345
356
server -> handler_data = handler_data ;
357
+ server -> verbose = true;
346
358
server -> sock = NULL ;
347
359
_mongoc_array_init (& server -> streams , sizeof (mongoc_stream_t * ));
348
360
server -> address = address ;
349
361
server -> port = port ;
350
362
351
363
server -> minWireVersion = 0 ;
352
364
server -> maxWireVersion = 0 ;
353
- server -> isMaster = true;
365
+ server -> isMaster = isMaster ;
366
+ server -> isSecondary = isSecondary ;
354
367
server -> maxBsonObjectSize = 16777216 ;
355
368
server -> maxMessageSizeBytes = 48000000 ;
356
369
@@ -373,7 +386,8 @@ mock_server_new (const char *address,
373
386
mock_server_handler_t handler ,
374
387
void * handler_data )
375
388
{
376
- return mock_server_new_rs (address , port , handler , handler_data , NULL , NULL );
389
+ return mock_server_new_rs (address , port , handler , handler_data ,
390
+ NULL , true, false, NULL );
377
391
}
378
392
379
393
@@ -483,6 +497,29 @@ mock_server_run_in_thread (mock_server_t *server)
483
497
}
484
498
485
499
500
+ void
501
+ mock_server_set_verbose (mock_server_t * server ,
502
+ bool verbose )
503
+ {
504
+ mongoc_mutex_lock (& server -> mutex );
505
+ server -> verbose = verbose ;
506
+ mongoc_mutex_unlock (& server -> mutex );
507
+ }
508
+
509
+
510
+ bool
511
+ mock_server_verbose (mock_server_t * server )
512
+ {
513
+ bool verbose ;
514
+
515
+ mongoc_mutex_lock (& server -> mutex );
516
+ verbose = server -> verbose ;
517
+ mongoc_mutex_unlock (& server -> mutex );
518
+
519
+ return verbose ;
520
+ }
521
+
522
+
486
523
void
487
524
mock_server_quit (mock_server_t * server )
488
525
{
0 commit comments