From 3c6eef6bb0788c5165783d4c9d6d023563594693 Mon Sep 17 00:00:00 2001 From: z3APA3A <3APA3A@3proxy.ru> Date: Fri, 16 Oct 2015 17:14:01 +0300 Subject: [PATCH] Add Forwarded: header instead of X-Forwarded-For and Via Add Forwarded: header instead of X-Forwarded-For and Via in HTTP proxy. proxy -a3 changes to old behavior. --- src/proxy.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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;