diff --git a/src/proxy.c b/src/proxy.c index b741652..d7483ce 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -811,12 +811,13 @@ for(;;){ inbuf = 0; #ifndef ANONYMOUS 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); + int len = strlen((char *)buf); + len += sprintf((char*)buf + len, "Forwared: for="); + if(*SAFAMILY(¶m->sincr) == AF_INET6) len += sprintf((char*)buf + len, "\"["); + len += myinet_ntop(*SAFAMILY(¶m->sincr), SAADDR(¶m->sincr), (char *)buf + len, 128); + if(*SAFAMILY(¶m->sincr) == AF_INET6) len += sprintf((char*)buf + len, "]:%d\";by=", (int)ntohs(*SAPORT(¶m->sincr))); + else len += sprintf((char*)buf + len, ":%d;by=", (int)ntohs(*SAPORT(¶m->sincr))); + gethostname((char *)(buf + len), 256); sprintf((char*)buf+strlen((char *)buf), ":%d\r\n", (int)ntohs(*SAPORT(¶m->sincl))); } else if(anonymous>1){