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);
|
m_con->recv_line(buf,4096);
|
||||||
if (!buf[0]) { m_http_state=3; break; }
|
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)
|
if (!m_recvheaders)
|
||||||
{
|
{
|
||||||
m_recvheaders_size=strlen(buf)+1;
|
m_recvheaders_size=strlen(h)+1;
|
||||||
m_recvheaders=(char*)malloc(m_recvheaders_size+1);
|
m_recvheaders=(char*)malloc(m_recvheaders_size+1);
|
||||||
if (m_recvheaders)
|
if (m_recvheaders)
|
||||||
{
|
{
|
||||||
strcpy(m_recvheaders,buf);
|
strcpy(m_recvheaders,h);
|
||||||
m_recvheaders[m_recvheaders_size]=0;
|
m_recvheaders[m_recvheaders_size]=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int oldsize=m_recvheaders_size;
|
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);
|
char *n=(char*)malloc(m_recvheaders_size+1);
|
||||||
if (n)
|
if (n)
|
||||||
{
|
{
|
||||||
memcpy(n,m_recvheaders,oldsize);
|
memcpy(n,m_recvheaders,oldsize);
|
||||||
strcpy(n+oldsize,buf);
|
strcpy(n+oldsize,h);
|
||||||
n[m_recvheaders_size]=0;
|
n[m_recvheaders_size]=0;
|
||||||
free(m_recvheaders);
|
free(m_recvheaders);
|
||||||
m_recvheaders=n;
|
m_recvheaders=n;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue