diff --git a/src/proxy.c b/src/proxy.c index 7a89123..b741652 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -810,11 +810,20 @@ for(;;){ } inbuf = 0; #ifndef ANONYMOUS - if(anonymous!=1){ + if(!anonymous){ + sprintf((char*)buf+strlen((char *)buf), "Forwared: for="); + if(*SAFAMILY(¶m->sincr) == AF_INET6) sprintf((char*)buf+strlen((char *)buf), "\"["); + myinet_ntop(*SAFAMILY(¶m->sincr), SAADDR(¶m->sincr), (char *)buf + strlen((char *)buf), 128); + if(*SAFAMILY(¶m->sincr) == AF_INET6) sprintf((char*)buf+strlen((char *)buf), "]:%d\";by=", (int)ntohs(*SAPORT(¶m->sincr))); + else sprintf((char*)buf+strlen((char *)buf), ":%d;by=", (int)ntohs(*SAPORT(¶m->sincr))); + gethostname((char *)(buf+strlen((char *)buf)), 256); + sprintf((char*)buf+strlen((char *)buf), ":%d\r\n", (int)ntohs(*SAPORT(¶m->sincl))); + } + else if(anonymous>1){ sprintf((char*)buf+strlen((char *)buf), "Via: 1.1 "); gethostname((char *)(buf+strlen((char *)buf)), 256); sprintf((char*)buf+strlen((char *)buf), ":%d (%s %s)\r\nX-Forwarded-For: ", (int)ntohs(*SAPORT(¶m->srv->intsa)), conf.stringtable?conf.stringtable[2]:(unsigned char *)"", conf.stringtable?conf.stringtable[3]:(unsigned char *)""); - if(!anonymous)myinet_ntop(*SAFAMILY(¶m->sincr), SAADDR(¶m->sincr), (char *)buf + strlen((char *)buf), 128); + if(anonymous != 2)myinet_ntop(*SAFAMILY(¶m->sincr), SAADDR(¶m->sincr), (char *)buf + strlen((char *)buf), 128); else { unsigned long tmp;