From 7335bc2fb6b0bb3ebc27be074ae056125e078284 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Thu, 29 Apr 2021 14:01:07 +0300 Subject: [PATCH 1/2] Do not change error code >10 on redirection --- src/auth.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/auth.c b/src/auth.c index 42e28b5..634b092 100644 --- a/src/auth.c +++ b/src/auth.c @@ -317,7 +317,7 @@ int handleredirect(struct clientparam * param, struct ace * acentry){ } if((res = alwaysauth(param))){ - return (res == 10)? res : 60+res; + return (res >= 10)? res : 60+res; } } else { From e235ada0dea060a0d78205527d653bb0aa623f01 Mon Sep 17 00:00:00 2001 From: Vladimir Dubrovin <3proxy@3proxy.ru> Date: Tue, 11 May 2021 13:53:41 +0300 Subject: [PATCH 2/2] Make SSLPlugin to compile under *nix --- src/plugins/SSLPlugin/ssl_plugin.c | 16 ++++++++-------- src/proxy.h | 3 +++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/plugins/SSLPlugin/ssl_plugin.c b/src/plugins/SSLPlugin/ssl_plugin.c index 188d671..6d7d729 100644 --- a/src/plugins/SSLPlugin/ssl_plugin.c +++ b/src/plugins/SSLPlugin/ssl_plugin.c @@ -120,10 +120,10 @@ static int ssl_send(SOCKET s, const void *msg, size_t len, int flags){ if((res = ssl_write(sslq->conn, (void *)msg, len)) <= 0){ err = SSL_get_error((SSL *)((ssl_conn*)sslq->conn)->ssl, res); if (err == SSL_ERROR_WANT_WRITE){ - _set_errno(EAGAIN); + seterrno3(EAGAIN); return -1; } - else _set_errno(err); + else seterrno3(err); } return res; } @@ -144,10 +144,10 @@ static int ssl_sendto(SOCKET s, const void *msg, size_t len, int flags, const st if((res = ssl_write(sslq->conn, (void *)msg, len)) <= 0) { err = SSL_get_error((SSL *)((ssl_conn*)sslq->conn)->ssl, res); if (err == SSL_ERROR_WANT_WRITE){ - _set_errno(EAGAIN); + seterrno3(EAGAIN); return -1; } - else _set_errno(err); + else seterrno3(err); } return res; } @@ -167,10 +167,10 @@ static int ssl_recvfrom(SOCKET s, void *msg, size_t len, int flags, struct socka if((res = ssl_read(sslq->conn, (void *)msg, len)) <= 0) { err = SSL_get_error((SSL *)((ssl_conn*)sslq->conn)->ssl, res); if (err == SSL_ERROR_WANT_READ) { - _set_errno(EAGAIN); + seterrno3(EAGAIN); return -1; } - else _set_errno(err); + else seterrno3(err); } return res; } @@ -189,10 +189,10 @@ static int WINAPI ssl_recv(SOCKET s, void *msg, size_t len, int flags){ if((res = ssl_read(sslq->conn, (void *)msg, len)) <= 0) { err = SSL_get_error((SSL *)((ssl_conn*)sslq->conn)->ssl, res); if (err == SSL_ERROR_WANT_READ) { - _set_errno(EAGAIN); + seterrno3(EAGAIN); return -1; } - else _set_errno(err); + else seterrno3(err); } return res; } diff --git a/src/proxy.h b/src/proxy.h index 85beda4..9ff920e 100644 --- a/src/proxy.h +++ b/src/proxy.h @@ -116,6 +116,9 @@ void daemonize(void); #ifdef _WIN32 #define strcasecmp stricmp #define strncasecmp strnicmp +#define seterrno3(x) _set_errno(x) +#else +#define seterrno3(x) (errno = x) #endif #ifndef SOCKET_ERROR