@@ -146,9 +146,8 @@ _bson_error_message_printf (bson_error_t *error, const char *format, ...)
146
146
}
147
147
}
148
148
149
- #define RUN_CMD_ERR ( _domain , _code , _msg ) \
149
+ #define RUN_CMD_ERR_DECORATE \
150
150
do { \
151
- bson_set_error (error, _domain, _code, _msg); \
152
151
_bson_error_message_printf ( \
153
152
error, \
154
153
"Failed to send \"%s\" command with database \"%s\": %s", \
@@ -157,6 +156,11 @@ _bson_error_message_printf (bson_error_t *error, const char *format, ...)
157
156
error->message); \
158
157
} while (0)
159
158
159
+ #define RUN_CMD_ERR (_domain , _code , ...) \
160
+ do { \
161
+ bson_set_error (error, _domain, _code, __VA_ARGS__); \
162
+ RUN_CMD_ERR_DECORATE; \
163
+ } while (0)
160
164
161
165
/*
162
166
*--------------------------------------------------------------------------
@@ -259,13 +263,7 @@ mongoc_cluster_run_command_opquery (mongoc_cluster_t *cluster,
259
263
mongoc_cluster_disconnect_node (cluster , server_id , true, error );
260
264
261
265
/* add info about the command to writev_full's error message */
262
- _bson_error_message_printf (
263
- error ,
264
- "Failed to send \"%s\" command with database \"%s\": %s" ,
265
- cmd -> command_name ,
266
- cmd -> db_name ,
267
- error -> message );
268
-
266
+ RUN_CMD_ERR_DECORATE ;
269
267
GOTO (done );
270
268
}
271
269
@@ -2579,6 +2577,8 @@ mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster,
2579
2577
cluster -> sockettimeoutms ,
2580
2578
error );
2581
2579
if (!ok ) {
2580
+ /* add info about the command to writev_full's error message */
2581
+ RUN_CMD_ERR_DECORATE ;
2582
2582
mongoc_cluster_disconnect_node (
2583
2583
cluster , server_stream -> sd -> id , true, error );
2584
2584
bson_free (output );
@@ -2590,6 +2590,7 @@ mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster,
2590
2590
ok = _mongoc_buffer_append_from_stream (
2591
2591
& buffer , server_stream -> stream , 4 , cluster -> sockettimeoutms , error );
2592
2592
if (!ok ) {
2593
+ RUN_CMD_ERR_DECORATE ;
2593
2594
mongoc_cluster_disconnect_node (
2594
2595
cluster , server_stream -> sd -> id , true, error );
2595
2596
bson_free (output );
@@ -2602,8 +2603,7 @@ mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster,
2602
2603
memcpy (& msg_len , buffer .data , 4 );
2603
2604
msg_len = BSON_UINT32_FROM_LE (msg_len );
2604
2605
if ((msg_len < 16 ) || (msg_len > server_stream -> sd -> max_msg_size )) {
2605
- bson_set_error (
2606
- error ,
2606
+ RUN_CMD_ERR (
2607
2607
MONGOC_ERROR_PROTOCOL ,
2608
2608
MONGOC_ERROR_PROTOCOL_INVALID_REPLY ,
2609
2609
"Message size %d is not within expected range 16-%d bytes" ,
@@ -2623,6 +2623,7 @@ mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster,
2623
2623
cluster -> sockettimeoutms ,
2624
2624
error );
2625
2625
if (!ok ) {
2626
+ RUN_CMD_ERR_DECORATE ;
2626
2627
mongoc_cluster_disconnect_node (
2627
2628
cluster , server_stream -> sd -> id , true, error );
2628
2629
bson_free (output );
@@ -2633,8 +2634,7 @@ mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster,
2633
2634
2634
2635
ok = _mongoc_rpc_scatter (& rpc , buffer .data , buffer .len );
2635
2636
if (!ok ) {
2636
- bson_set_error (error ,
2637
- MONGOC_ERROR_PROTOCOL ,
2637
+ RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL ,
2638
2638
MONGOC_ERROR_PROTOCOL_INVALID_REPLY ,
2639
2639
"Malformed message from server" );
2640
2640
bson_free (output );
@@ -2648,8 +2648,7 @@ mongoc_cluster_run_opmsg (mongoc_cluster_t *cluster,
2648
2648
2649
2649
output = bson_realloc (output , len );
2650
2650
if (!_mongoc_rpc_decompress (& rpc , (uint8_t * ) output , len )) {
2651
- bson_set_error (error ,
2652
- MONGOC_ERROR_PROTOCOL ,
2651
+ RUN_CMD_ERR (MONGOC_ERROR_PROTOCOL ,
2653
2652
MONGOC_ERROR_PROTOCOL_INVALID_REPLY ,
2654
2653
"Could not decompress message from server" );
2655
2654
mongoc_cluster_disconnect_node (
0 commit comments