Redirection fixes

This commit is contained in:
z3APA3A 2014-11-26 01:50:14 +03:00
parent b5bcb44e27
commit f82d1e296b
3 changed files with 11 additions and 11 deletions

View File

@ -267,14 +267,16 @@ int handleredirect(struct clientparam * param, struct ace * acentry){
return 0;
}
else if(!cur->redirport && cur->redirip) {
unsigned short port = *SAPORT(&param->sinsl);
memset(&param->sinsl, 0, sizeof(param->sinsl));
*SAFAMILY(&param->sinsl) = AF_INET;
*(unsigned long *)SAADDR(&param->sinsl) = cur->redirip;
*SAPORT(&param->sinsl) = port;
unsigned short port = *SAPORT(&param->sinsr);
memset(&param->sinsl, 0, sizeof(param->sinsr));
*SAFAMILY(&param->sinsr) = AF_INET;
*(unsigned long *)SAADDR(&param->sinsr) = cur->redirip;
*SAPORT(&param->sinsr) = port;
}
else if(!cur->redirip && cur->redirport) *SAPORT(&param->sinsl) = cur->redirport;
else if(!cur->redirip && cur->redirport) *SAPORT(&param->sinsr) = cur->redirport;
else if(*SAFAMILY(&param->req) == AF_INET){
memset(&param->sinsr, 0, sizeof(param->sinsr));
*SAFAMILY(&param->sinsr) = AF_INET;
*(unsigned long *)SAADDR(&param->sinsr) = cur->redirip;
*SAPORT(&param->sinsr) = cur->redirport;
}

View File

@ -619,12 +619,10 @@ int doconnect(struct clientparam * param){
if ((param->remsock=so._socket(*SAFAMILY(&param->sinsr), SOCK_STREAM, IPPROTO_TCP)) == INVALID_SOCKET) {return (11);}
so._setsockopt(param->remsock, SOL_SOCKET, SO_LINGER, (unsigned char *)&lg, sizeof(lg));
#ifndef NOIPV6
if(*SAFAMILY(&param->sinsr) == AF_INET)
if(*SAFAMILY(&param->sinsr) == AF_INET6) memcpy(&param->sinsl, &param->srv->extsa6, sizeof(param->srv->extsa6));
else
#endif
memcpy(&param->sinsl, &param->srv->extsa, sizeof(param->srv->extsa));
#ifndef NOIPV6
else memcpy(&param->sinsl, &param->srv->extsa6, sizeof(param->srv->extsa6));
#endif
if (param->srv->targetport && !*SAPORT(&param->sinsl) && ntohs(*SAPORT(&param->sincr)) > 1023) *SAPORT(&param->sinsl) = *SAPORT(&param->sincr);
if(so._bind(param->remsock, (struct sockaddr*)&param->sinsl, sizeof(param->sinsl))==-1) {
#ifndef NOIPV6

View File

@ -1,2 +1,2 @@
#define VERSION "3proxy-0.8b-devel"
#define BUILDDATE "141109215219"
#define BUILDDATE "141126014759"