diff options
author | Aleksey Filippov <alekseyf@google.com> | 2015-02-17 17:27:01 +0300 |
---|---|---|
committer | Aleksey Filippov <alekseyf@google.com> | 2015-02-17 17:30:43 +0300 |
commit | 4e986caa2a31997d3e053803edee8918edbb726e (patch) | |
tree | e605be7f6e6de4b3b0c25544f7d520ce5ce5c8aa | |
parent | 8dd08e2cd29b2b0c1174adac4935e256b38c08b7 (diff) |
support MSG_FASTOPEN on old kernels
-rw-r--r-- | src/libproxychains.c | 6 | ||||
-rw-r--r-- | tests/test_sendto.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/libproxychains.c b/src/libproxychains.c index 07a9865..c9eaeaa 100644 --- a/src/libproxychains.c +++ b/src/libproxychains.c @@ -482,9 +482,12 @@ struct hostent *gethostbyaddr(const void *addr, socklen_t len, int type) { return NULL; } +#ifndef MSG_FASTOPEN +# define MSG_FASTOPEN 0x20000000 +#endif + ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen) { -#ifdef MSG_FASTOPEN if (flags & MSG_FASTOPEN) { if (!connect(sockfd, dest_addr, addrlen) && errno != EINPROGRESS) { return -1; @@ -493,6 +496,5 @@ ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, addrlen = 0; flags &= ~MSG_FASTOPEN; } -#endif return true_sendto(sockfd, buf, len, flags, dest_addr, addrlen); } diff --git a/tests/test_sendto.c b/tests/test_sendto.c index 77d2e9c..57b008f 100644 --- a/tests/test_sendto.c +++ b/tests/test_sendto.c @@ -7,6 +7,10 @@ #include <netinet/in.h> #include <netdb.h> +#ifndef MSG_FASTOPEN +# define MSG_FASTOPEN 0x20000000 +#endif + void error(const char *msg) { perror(msg); |