View | Details | Raw Unified | Return to bug 785
Collapse All | Expand All

(-)sshconnect.c.ORIG (-2 / +8 lines)
Lines 223-238 Link Here
223
	struct timeval tv;
223
	struct timeval tv;
224
	socklen_t optlen;
224
	socklen_t optlen;
225
	int fdsetsz, optval, rc, result = -1;
225
	int fdsetsz, optval, rc, result = -1;
226
	int flags;
226
227
227
	if (timeout <= 0)
228
	if (timeout <= 0)
228
		return (connect(sockfd, serv_addr, addrlen));
229
		return (connect(sockfd, serv_addr, addrlen));
229
230
230
	if (fcntl(sockfd, F_SETFL, O_NONBLOCK) < 0)
231
	flags = fcntl(sockfd, F_GETFL);
232
233
	if (fcntl(sockfd, F_SETFL, flags|O_NONBLOCK) < 0)
231
		return (-1);
234
		return (-1);
232
235
233
	rc = connect(sockfd, serv_addr, addrlen);
236
	rc = connect(sockfd, serv_addr, addrlen);
234
	if (rc == 0)
237
	if (rc == 0) {
238
		fcntl(sockfd, F_SETFL, flags);
235
		return (0);
239
		return (0);
240
	}
236
	if (errno != EINPROGRESS)
241
	if (errno != EINPROGRESS)
237
		return (-1);
242
		return (-1);
238
243
Lines 272-277 Link Here
272
			errno = optval;
277
			errno = optval;
273
			break;
278
			break;
274
		}
279
		}
280
		fcntl(sockfd, F_SETFL, flags);
275
		result = 0;
281
		result = 0;
276
		break;
282
		break;
277
	default:
283
	default:

Return to bug 785