Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/rofl0r/proxychains-ng.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Filippov <alekseyf@google.com>2015-02-17 17:27:01 +0300
committerAleksey Filippov <alekseyf@google.com>2015-02-17 17:30:43 +0300
commit4e986caa2a31997d3e053803edee8918edbb726e (patch)
treee605be7f6e6de4b3b0c25544f7d520ce5ce5c8aa
parent8dd08e2cd29b2b0c1174adac4935e256b38c08b7 (diff)
support MSG_FASTOPEN on old kernels
-rw-r--r--src/libproxychains.c6
-rw-r--r--tests/test_sendto.c4
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);