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