Add fd_utils

This commit is contained in:
Nils O. Selåsdal
2013-05-30 22:38:56 +02:00
parent cfc7cae5c0
commit 5a427007d6
2 changed files with 131 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
#ifndef FD_UTILS_H_
#define FD_UTILS_H_
#ifdef __cplusplus
extern "C" {
#endif
// inspect errno if any of these fails
/**
* set the file descriptor to non-blocking
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int 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);
/**
* set the socket file descriptor to SO_REUSEADDR
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int 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);
/**
* 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);
/**
* 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);
/*
* Set the IP DSCP (differnetiated services code point) header value
* The dscp must be < 64
* @param fd file descriptor
* @return 0 on success -1 on failure
*/
int set_ip_dscp(int fd, unsigned int dscp);
#ifdef __cplusplus
};
#endif
#endif /* FD_UTILS_H_ */