Skip to content

Commit 7c985ce

Browse files
committed
CDRIVER-756: Only record the errno on failure
1 parent 835f5dd commit 7c985ce

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/mongoc/mongoc-socket.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -605,13 +605,13 @@ mongoc_socket_connect (mongoc_socket_t *sock, /* IN */
605605

606606
ret = connect (sock->sd, addr, addrlen);
607607

608-
_mongoc_socket_capture_errno (sock);
609-
610608
#ifdef _WIN32
611609
if (ret == SOCKET_ERROR) {
612610
#else
613611
if (ret == -1) {
614612
#endif
613+
_mongoc_socket_capture_errno (sock);
614+
615615
failed = true;
616616
try_again = _mongoc_socket_errno_is_again (sock);
617617
}
@@ -820,7 +820,9 @@ mongoc_socket_recv (mongoc_socket_t *sock, /* IN */
820820
ret = recv (sock->sd, buf, buflen, flags);
821821
failed = (ret == -1);
822822
#endif
823-
_mongoc_socket_capture_errno (sock);
823+
if (failed) {
824+
_mongoc_socket_capture_errno (sock);
825+
}
824826
try_again = (failed && _mongoc_socket_errno_is_again (sock));
825827

826828
if (failed && try_again) {
@@ -951,12 +953,13 @@ _mongoc_socket_try_sendv_slow (mongoc_socket_t *sock, /* IN */
951953

952954
for (i = 0; i < iovcnt; i++) {
953955
wrote = send (sock->sd, iov [i].iov_base, iov [i].iov_len, 0);
954-
_mongoc_socket_capture_errno (sock);
955956
#ifdef _WIN32
956957
if (wrote == SOCKET_ERROR) {
957958
#else
958959
if (wrote == -1) {
959960
#endif
961+
_mongoc_socket_capture_errno (sock);
962+
960963
if (!_mongoc_socket_errno_is_again (sock)) {
961964
RETURN (-1);
962965
}

0 commit comments

Comments
 (0)