Add uc_set_tcp_keepalive_cfg too set keepalive options

This commit is contained in:
Nils O. Selåsdal
2013-07-08 22:15:56 +02:00
parent e1f16b3603
commit b475fae56b
2 changed files with 71 additions and 15 deletions
+31 -7
View File
@@ -10,42 +10,66 @@ extern "C" {
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_nonblocking(int fd);
int uc_set_nonblocking(int fd);
/**
* set the file descriptor to blocking
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_blocking(int fd);
int uc_set_blocking(int fd);
/**
* set the socket file descriptor to SO_REUSEADDR
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_reuseaddr(int sockfd);
int uc_set_reuseaddr(int sockfd);
/**
* enable TCP keepalive on the socket
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_tcp_keepalive(int sockfd);
int uc_set_tcp_keepalive(int sockfd);
struct UCKeepConfig {
/** The maximum number of keepalive probes TCP should
* send before dropping the connection. (TCP_KEEPCNT socket option)
*/
int keepcnt;
/** The time (in seconds) the connection needs to remain
* idle before TCP starts sending keepalive probes (TCP_KEEPIDLE socket option)
*/
int keepidle;
/** The time (in seconds) between individual keepalive probes.
* (TCP_KEEPINTVL socket option)
*/
int keepintvl;
};
/** Set the keepalive options on the socket
* This also enables TCP keepalive on the socket
*
* @param fd file descriptor
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int uc_set_tcp_keepalive_cfg(int sockfd, const struct UCKeepConfig *cfg);
/**
* Set the socket send timeout, in miliseconds
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_send_timeout(int sockfd,long timeoutms);
int uc_set_send_timeout(int sockfd,long timeoutms);
/**
* Set the socket receive timeout, in miliseconds
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_receive_timeout(int sockfd,long timeoutms);
int uc_set_receive_timeout(int sockfd,long timeoutms);
/*
* Set the IP DSCP (differnetiated services code point) header value
@@ -53,7 +77,7 @@ int set_receive_timeout(int sockfd,long timeoutms);
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_ip_dscp(int fd, unsigned int dscp);
int uc_set_ip_dscp(int fd, unsigned int dscp);
#ifdef __cplusplus