@@ -605,13 +605,13 @@ mongoc_socket_connect (mongoc_socket_t *sock, /* IN */
605
605
606
606
ret = connect (sock -> sd , addr , addrlen );
607
607
608
- _mongoc_socket_capture_errno (sock );
609
-
610
608
#ifdef _WIN32
611
609
if (ret == SOCKET_ERROR ) {
612
610
#else
613
611
if (ret == -1 ) {
614
612
#endif
613
+ _mongoc_socket_capture_errno (sock );
614
+
615
615
failed = true;
616
616
try_again = _mongoc_socket_errno_is_again (sock );
617
617
}
@@ -820,7 +820,9 @@ mongoc_socket_recv (mongoc_socket_t *sock, /* IN */
820
820
ret = recv (sock -> sd , buf , buflen , flags );
821
821
failed = (ret == -1 );
822
822
#endif
823
- _mongoc_socket_capture_errno (sock );
823
+ if (failed ) {
824
+ _mongoc_socket_capture_errno (sock );
825
+ }
824
826
try_again = (failed && _mongoc_socket_errno_is_again (sock ));
825
827
826
828
if (failed && try_again ) {
@@ -951,12 +953,13 @@ _mongoc_socket_try_sendv_slow (mongoc_socket_t *sock, /* IN */
951
953
952
954
for (i = 0 ; i < iovcnt ; i ++ ) {
953
955
wrote = send (sock -> sd , iov [i ].iov_base , iov [i ].iov_len , 0 );
954
- _mongoc_socket_capture_errno (sock );
955
956
#ifdef _WIN32
956
957
if (wrote == SOCKET_ERROR ) {
957
958
#else
958
959
if (wrote == -1 ) {
959
960
#endif
961
+ _mongoc_socket_capture_errno (sock );
962
+
960
963
if (!_mongoc_socket_errno_is_again (sock )) {
961
964
RETURN (-1 );
962
965
}
0 commit comments