2 #include <sys/socket.h>
3 #include <netinet/ip.h>
4 #include <netinet/tcp.h>
8 int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen) {
9 static int (*real_connect)(int, const struct sockaddr *, socklen_t);
11 real_connect = dlsym(RTLD_NEXT, "connect");
13 int res = real_connect(sockfd, addr, addrlen);
14 if (res != 0) return res;
16 static const int one = 1;
17 setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));
21 int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) {
22 static int (*real_accept)(int, struct sockaddr *, socklen_t *);
24 real_accept = dlsym(RTLD_NEXT, "accept");
26 int res = real_accept(sockfd, addr, addrlen);
27 if (res == -1) return res;
29 static const int one = 1;
30 setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));