diff --git a/Contrib/Makensisw/makensisw.cpp b/Contrib/Makensisw/makensisw.cpp index 267c4390..62cc276b 100644 --- a/Contrib/Makensisw/makensisw.cpp +++ b/Contrib/Makensisw/makensisw.cpp @@ -215,21 +215,32 @@ BOOL CALLBACK DialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { int len; char *response = (char *)GlobalAlloc(GPTR,RSZ); char url[300]; - JNL_HTTPGet get; + static char pbuf[8192]; + char *p=NULL; + if (getProxyInfo(pbuf)) { + p=my_strstr(pbuf,"http="); + if (!p) p=pbuf; + else { + p+=5; + char *tp=my_strstr(p,";"); + if (tp) *tp=0; + } + } + JNL_HTTPGet *get = new JNL_HTTPGet(JNL_CONNECTION_AUTODNS,16384,(p&&p[0])?p:NULL);; JNL::open_socketlib(); lstrcpy(url,NSIS_UPDATE); lstrcat(url,g_sdata.brandingv); lstrcpy(response,"0"); - get.addheader("User-Agent:Nullsoft Sex (Mozilla)"); - get.addheader("Accept:*/*"); - get.connect(url); + get->addheader("User-Agent:Nullsoft Sex (Mozilla)"); + get->addheader("Accept:*/*"); + get->connect(url); while (1) { - int st=get.run(); + int st=get->run(); if (st<0) break; //error - if (get.get_status()==2) { - if(len=get.bytes_available()) { + if (get->get_status()==2) { + if(len=get->bytes_available()) { if (len>RSZ) len=RSZ; - len=get.get_bytes(response,len); + len=get->get_bytes(response,len); } } if (st==1) break; //closed diff --git a/Contrib/Makensisw/noclib.cpp b/Contrib/Makensisw/noclib.cpp index 73a6a708..09f428fd 100644 --- a/Contrib/Makensisw/noclib.cpp +++ b/Contrib/Makensisw/noclib.cpp @@ -29,6 +29,22 @@ char *my_strrchr(const char *string, int c) { return 0; } +char *my_strstr(char *i, char *s) { + if (lstrlen(i)>=lstrlen(s)) while (i[lstrlen(s)-1]) { + int l=lstrlen(s)+1; + char *ii=i; + char *is=s; + while (--l>0) { + if (*ii != *is) break; + ii++; + is++; + } + if (l==0) return i; + i++; + } + return NULL; +} + void *my_memset(void *dest, int c, size_t count) { for (size_t i=0; i