#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_ */