mirror of
https://github.com/curl/curl.git
synced 2025-02-23 15:10:03 +08:00
tcpkeepalive: Support CURLOPT_TCP_KEEPIDLE on OSX
MacOS X doesn't have TCP_KEEPIDLE/TCP_KEEPINTVL but only a single TCP_KEEPALIVE (see http://developer.apple.com/library/mac/#DOCUMENTATION/Darwin/Reference/ManPages/man4/tcp.4.html). Here is a patch for CURLOPT_TCP_KEEPIDLE on OSX platforms.
This commit is contained in:
parent
32144ca241
commit
29fdb2700f
@ -148,6 +148,15 @@ tcpkeepalive(struct SessionHandle *data,
|
|||||||
infof(data, "Failed to set TCP_KEEPINTVL on fd %d\n", sockfd);
|
infof(data, "Failed to set TCP_KEEPINTVL on fd %d\n", sockfd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef TCP_KEEPALIVE
|
||||||
|
/* Mac OS X style */
|
||||||
|
optval = curlx_sltosi(data->set.tcp_keepidle);
|
||||||
|
KEEPALIVE_FACTOR(optval);
|
||||||
|
if(setsockopt(sockfd, IPPROTO_TCP, TCP_KEEPALIVE,
|
||||||
|
(void *)&optval, sizeof(optval)) < 0) {
|
||||||
|
infof(data, "Failed to set TCP_KEEPALIVE on fd %d\n", sockfd);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user