Don't fail wininet tests behind a firewall

Patrik Stridvall ps at leissner.se
Mon Oct 7 13:43:25 CDT 2002


*** firewall

* dlls/wininet/tests/http.c:
Fixed test to not fail behind firewalls or
without an internet connection.

Index: wine/dlls/wininet/tests/http.c
===================================================================
RCS file: /home/wine/wine/dlls/wininet/tests/http.c,v
retrieving revision 1.2
diff -u -u -r1.2 http.c
--- wine/dlls/wininet/tests/http.c	17 Sep 2002 00:04:35 -0000	1.2
+++ wine/dlls/wininet/tests/http.c	7 Oct 2002 18:32:36 -0000
@@ -90,6 +90,8 @@
     ok((hi != 0x0),"InternetOpen Failed");
     trace("InternetOpenA -->\n");
 
+    if (hi == 0x0) goto abort;
+
     InternetSetStatusCallback(hi,&callback);
 
     trace("InternetConnectA <--\n");
@@ -97,6 +99,8 @@
     ok((hic != 0x0),"InternetConnect Failed");
     trace("InternetConnectA -->\n");
 
+    if (hic == 0x0) goto abort;
+
     types = (char*)malloc(100);
     strcpy(types,"*");
 
@@ -104,10 +108,20 @@
     hor = HttpOpenRequestA(hic, "GET",
                           "/about/",
                           0x0,0x0,(const
char**)&types,0x00400800,0xdeadbead);
-
-    ok((hor != 0x0),"HttpOpenRequest Failed");
+    if (hor == 0x0 && GetLastError() == 12007 /*
ERROR_INTERNET_NAME_NOT_RESOLVED */) {
+        /*
+         * If the internet name can't be resolved we are probably behind
+         * a firewall or in some other way not directly connected to the
+         * Internet. Not enough reason to fail the test. Just ignore and
+         * abort.
+         */
+    } else  {
+        ok((hor != 0x0),"HttpOpenRequest Failed");
+    }
     trace("HttpOpenRequestA -->\n");
 
+    if (hor == 0x0) goto abort;
+
     trace("HttpSendRequestA -->\n");
     rc = HttpSendRequestA(hor, "", 0xffffffff,0x0,0x0);
     if (flags)
@@ -170,12 +184,21 @@
             HeapFree(GetProcessHeap(),0,buffer);
         }
     }
-    rc = InternetCloseHandle(hi);
-    ok ((rc != 0), "InternetCloseHandle failed");
-    rc = InternetCloseHandle(hor);
-    ok ((rc != 0), "InternetCloseHandle failed");
-    if (flags)
-        Sleep(100);
+abort:
+    if (hor != 0x0) {
+        rc = InternetCloseHandle(hor);
+        ok ((rc != 0), "InternetCloseHandle of handle opened by
HttpOpenRequestA failed");
+    }
+    if (hor != 0x0) {
+        rc = InternetCloseHandle(hic);
+        ok ((rc != 0), "InternetCloseHandle of handle opened by
InternetConnectA failed");
+    }
+    if (hi != 0x0) {
+      rc = InternetCloseHandle(hi);
+      ok ((rc != 0), "InternetCloseHandle of handle opened by InternetOpenA
failed");
+      if (flags)
+          Sleep(100);
+    }
 }
 
 



More information about the wine-patches mailing list