mirror of
https://github.com/3proxy/3proxy.git
synced 2025-02-23 18:45:40 +08:00
Redirection fixes
This commit is contained in:
parent
b5bcb44e27
commit
f82d1e296b
14
src/auth.c
14
src/auth.c
@ -267,14 +267,16 @@ int handleredirect(struct clientparam * param, struct ace * acentry){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if(!cur->redirport && cur->redirip) {
|
else if(!cur->redirport && cur->redirip) {
|
||||||
unsigned short port = *SAPORT(¶m->sinsl);
|
unsigned short port = *SAPORT(¶m->sinsr);
|
||||||
memset(¶m->sinsl, 0, sizeof(param->sinsl));
|
memset(¶m->sinsl, 0, sizeof(param->sinsr));
|
||||||
*SAFAMILY(¶m->sinsl) = AF_INET;
|
*SAFAMILY(¶m->sinsr) = AF_INET;
|
||||||
*(unsigned long *)SAADDR(¶m->sinsl) = cur->redirip;
|
*(unsigned long *)SAADDR(¶m->sinsr) = cur->redirip;
|
||||||
*SAPORT(¶m->sinsl) = port;
|
*SAPORT(¶m->sinsr) = port;
|
||||||
}
|
}
|
||||||
else if(!cur->redirip && cur->redirport) *SAPORT(¶m->sinsl) = cur->redirport;
|
else if(!cur->redirip && cur->redirport) *SAPORT(¶m->sinsr) = cur->redirport;
|
||||||
else if(*SAFAMILY(¶m->req) == AF_INET){
|
else if(*SAFAMILY(¶m->req) == AF_INET){
|
||||||
|
memset(¶m->sinsr, 0, sizeof(param->sinsr));
|
||||||
|
*SAFAMILY(¶m->sinsr) = AF_INET;
|
||||||
*(unsigned long *)SAADDR(¶m->sinsr) = cur->redirip;
|
*(unsigned long *)SAADDR(¶m->sinsr) = cur->redirip;
|
||||||
*SAPORT(¶m->sinsr) = cur->redirport;
|
*SAPORT(¶m->sinsr) = cur->redirport;
|
||||||
}
|
}
|
||||||
|
@ -619,12 +619,10 @@ int doconnect(struct clientparam * param){
|
|||||||
if ((param->remsock=so._socket(*SAFAMILY(¶m->sinsr), SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {return (11);}
|
if ((param->remsock=so._socket(*SAFAMILY(¶m->sinsr), SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {return (11);}
|
||||||
so._setsockopt(param->remsock, SOL_SOCKET, SO_LINGER, (unsigned char *)&lg, sizeof(lg));
|
so._setsockopt(param->remsock, SOL_SOCKET, SO_LINGER, (unsigned char *)&lg, sizeof(lg));
|
||||||
#ifndef NOIPV6
|
#ifndef NOIPV6
|
||||||
if(*SAFAMILY(¶m->sinsr) == AF_INET)
|
if(*SAFAMILY(¶m->sinsr) == AF_INET6) memcpy(¶m->sinsl, ¶m->srv->extsa6, sizeof(param->srv->extsa6));
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
memcpy(¶m->sinsl, ¶m->srv->extsa, sizeof(param->srv->extsa));
|
memcpy(¶m->sinsl, ¶m->srv->extsa, sizeof(param->srv->extsa));
|
||||||
#ifndef NOIPV6
|
|
||||||
else memcpy(¶m->sinsl, ¶m->srv->extsa6, sizeof(param->srv->extsa6));
|
|
||||||
#endif
|
|
||||||
if (param->srv->targetport && !*SAPORT(¶m->sinsl) && ntohs(*SAPORT(¶m->sincr)) > 1023) *SAPORT(¶m->sinsl) = *SAPORT(¶m->sincr);
|
if (param->srv->targetport && !*SAPORT(¶m->sinsl) && ntohs(*SAPORT(¶m->sincr)) > 1023) *SAPORT(¶m->sinsl) = *SAPORT(¶m->sincr);
|
||||||
if(so._bind(param->remsock, (struct sockaddr*)¶m->sinsl, sizeof(param->sinsl))==-1) {
|
if(so._bind(param->remsock, (struct sockaddr*)¶m->sinsl, sizeof(param->sinsl))==-1) {
|
||||||
#ifndef NOIPV6
|
#ifndef NOIPV6
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
#define VERSION "3proxy-0.8b-devel"
|
#define VERSION "3proxy-0.8b-devel"
|
||||||
#define BUILDDATE "141109215219"
|
#define BUILDDATE "141126014759"
|
||||||
|
Loading…
Reference in New Issue
Block a user