18 #include <sys/types.h> 19 #include <sys/socket.h> 21 #include <netinet/in.h> 27 struct sockaddr *addr,
32 socklen_t svlen =
sizeof sv;
36 return connect (sfd, addr, addrlen);
37 if (getsockopt (sfd, SOL_SOCKET, SO_RCVTIMEO, (
char *)&sv, &svlen) < 0)
39 if (setsockopt (sfd, SOL_SOCKET, SO_RCVTIMEO, (
char *)timeout,
sizeof *timeout) < 0)
41 ret = connect (sfd, addr, addrlen);
42 setsockopt (sfd, SOL_SOCKET, SO_RCVTIMEO, (
char *)&sv,
sizeof sv);
int connectWithTimeout(int sfd, struct sockaddr *addr, int addrlen, struct timeval *timeout)
BSD and SRV5 Unix timestamp.