Commit 29fdb270 authored by Robert Wruck's avatar Robert Wruck Committed by Daniel Stenberg
Browse files

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.
parent 32144ca2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -148,6 +148,15 @@ tcpkeepalive(struct SessionHandle *data,
      infof(data, "Failed to set TCP_KEEPINTVL on fd %d\n", sockfd);
    }
#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
  }
}