- if (err == -1 && errno != EINPROGRESS) {
- log_perror("connect");
- safe_close(sock);
- continue;
- }
-
- // Wait for the connect to complete, or an error to happen.
- for ( ;; ) {
- bool complete = wait_for_activity(sock, POLLIN | POLLOUT, NULL);
- if (should_stop()) {
- safe_close(sock);
- return -1;
- }
- if (complete) {
- break;
- }
- }
-
- // Check whether it ended in an error or not.
- socklen_t err_size = sizeof(err);
- if (getsockopt(sock, SOL_SOCKET, SO_ERROR, &err, &err_size) == -1) {
- log_perror("getsockopt");
- safe_close(sock);
- continue;