fixed bug #1445735 - WinProxy headers not read by NSISdl
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4559 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
7e6bba5c3f
commit
fc8348b5a5
1 changed files with 15 additions and 4 deletions
|
@ -404,25 +404,36 @@ run_again:
|
|||
{
|
||||
m_con->recv_line(buf,4096);
|
||||
if (!buf[0]) { m_http_state=3; break; }
|
||||
|
||||
char *h = buf;
|
||||
|
||||
// workaround for bug #1445735
|
||||
//
|
||||
// some proxies, like WinProxy, prefix headers with tabs
|
||||
// or spaces. to make sure headers are detected properly,
|
||||
// this removes up to 128 useless white spaces.
|
||||
|
||||
while ((h - buf < 128) && (*h == ' ' || *h == '\t')) h++;
|
||||
|
||||
if (!m_recvheaders)
|
||||
{
|
||||
m_recvheaders_size=strlen(buf)+1;
|
||||
m_recvheaders_size=strlen(h)+1;
|
||||
m_recvheaders=(char*)malloc(m_recvheaders_size+1);
|
||||
if (m_recvheaders)
|
||||
{
|
||||
strcpy(m_recvheaders,buf);
|
||||
strcpy(m_recvheaders,h);
|
||||
m_recvheaders[m_recvheaders_size]=0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
int oldsize=m_recvheaders_size;
|
||||
m_recvheaders_size+=strlen(buf)+1;
|
||||
m_recvheaders_size+=strlen(h)+1;
|
||||
char *n=(char*)malloc(m_recvheaders_size+1);
|
||||
if (n)
|
||||
{
|
||||
memcpy(n,m_recvheaders,oldsize);
|
||||
strcpy(n+oldsize,buf);
|
||||
strcpy(n+oldsize,h);
|
||||
n[m_recvheaders_size]=0;
|
||||
free(m_recvheaders);
|
||||
m_recvheaders=n;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue