summary refs log tree commit diff stats
path: root/plugins/upd
diff options
context:
space:
mode:
authorBerke Viktor <berkeviktor@aol.com>2012-02-08 21:52:27 +0100
committerBerke Viktor <berkeviktor@aol.com>2012-02-08 21:52:27 +0100
commit067ee4fc5b71872a1fb2758e07fae960832022d9 (patch)
tree351208fa99b3348fa9022e5b46286cfcffc2cf0f /plugins/upd
parent0520f6d948a7c22187c6ba23888f096d144cfcfb (diff)
supposed workaround for disabling chunked encoding (snq-)
Diffstat (limited to 'plugins/upd')
-rw-r--r--plugins/upd/upd.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/plugins/upd/upd.c b/plugins/upd/upd.c
index baf5b85b..1659162c 100644
--- a/plugins/upd/upd.c
+++ b/plugins/upd/upd.c
@@ -33,6 +33,7 @@ static const char version[] = "2.1";
 static char*
 check_version ()
 {
+#if 0
 	HINTERNET hINet, hFile;
 	hINet = InternetOpen ("Update Checker", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
 
@@ -67,8 +68,8 @@ check_version ()
 
 	InternetCloseHandle (hINet);
 	return "Unknown";
+#endif
 
-#if 0
 	/* Google Code's messing up with requests, use HTTP/1.0 as suggested. More info:
 
 	   http://code.google.com/p/support/issues/detail?id=6095
@@ -80,13 +81,13 @@ check_version ()
 
 	   So this code's basically useless since disabling HTTP/1.1 will work with the
 	   above code too.
+
+	   Update: a Connection: close header seems to disable chunked encoding.
 	*/
 
-	static char buffer[1024];
-	DWORD dwRead;
 	HINTERNET hOpen, hConnect, hResource;
 
-	hOpen = InternetOpen (TEXT("Update Checker"),
+	hOpen = InternetOpen (TEXT ("Update Checker"),
 						INTERNET_OPEN_TYPE_PRECONFIG,
 						NULL,
 						NULL,
@@ -97,7 +98,7 @@ check_version ()
 	}
 
 	hConnect = InternetConnect (hOpen,
-								TEXT("xchat-wdk.googlecode.com"),
+								TEXT ("xchat-wdk.googlecode.com"),
 								INTERNET_INVALID_PORT_NUMBER,
 								NULL,
 								NULL,
@@ -111,9 +112,9 @@ check_version ()
 	}
 
 	hResource = HttpOpenRequest (hConnect,
-								TEXT("GET"),
-								TEXT("/git/version.txt?r=wdk"),
-								TEXT("HTTP/1.0"),
+								TEXT ("GET"),
+								TEXT ("/git/version.txt?r=wdk"),
+								TEXT ("HTTP/1.0"),
 								NULL,
 								NULL,
 								INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_AUTH,
@@ -126,6 +127,10 @@ check_version ()
 	}
 	else
 	{
+		static char buffer[1024];
+		DWORD dwRead;
+
+		HttpAddRequestHeaders (hResource, TEXT ("Connection: close\r\n"), -1L, HTTP_ADDREQ_FLAG_ADD);	/* workaround for GC bug */
 		HttpSendRequest (hResource, NULL, 0, NULL, 0);
 
 		while (InternetReadFile (hResource, buffer, 1023, &dwRead))
@@ -142,7 +147,6 @@ check_version ()
 		InternetCloseHandle (hOpen);
 		return buffer;
 	}
-#endif
 }
 
 static int