Otherwise winsock2.h's fd_set macros break <sys/select.h> which is included by <time.h> on NetBSD. Moving winsock2.h after all system includes may work too because http.c does not (currently) use any of the fd_set APIs. But it seems like there would be a higher risk of mixing Unix socket types from the Unix headers with the Windows ones. So include winsock2.h first as recommended, but then _WIN32 is defined which causes zlib.h to use FAR which is not allowed in Wine code. So carve out an exception for it.
Signed-off-by: Francois Gouget fgouget@codeweavers.com ---
Resubmitting...
dlls/wininet/http.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index fc412849eb5..949a6afc9c6 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -29,15 +29,19 @@
#include "config.h"
+#include "winsock2.h" +#include "ws2ipdef.h" + #include <stdlib.h>
#ifdef HAVE_ZLIB +# undef FAR +# define FAR # include <zlib.h> +# undef FAR +# define FAR __ONLY_IN_WINELIB(/* nothing */) #endif
-#include "winsock2.h" -#include "ws2ipdef.h" - #include <stdarg.h> #include <stdio.h> #include <time.h>
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=57268
Your paranoid android.
=== debian10 (32 bit report) ===
wininet: http.c:6201: Test failed: expected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) 2 times, received 0 times http.c:355: Test failed: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 110 (INTERNET_STATUS_REDIRECT) http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:6811: Test succeeded inside todo block: 7011: expected status 20 got 20 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 21 got 21 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 30 got 30 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 31 got 31 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6782: Test succeeded inside todo block: unexpected buflen = 8 http.c:6784: Test succeeded inside todo block: ar->dwResult = 1, expected 1 http.c:6811: Test succeeded inside todo block: 7011: expected status 100 got 100 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 20 got 20 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 21 got 21 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 30 got 30 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 31 got 31 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6782: Test succeeded inside todo block: unexpected buflen = 8 http.c:6784: Test succeeded inside todo block: ar->dwResult = 1, expected 1 http.c:6811: Test succeeded inside todo block: 7011: expected status 100 got 100 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 30 got 30 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 31 got 31 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6782: Test succeeded inside todo block: unexpected buflen = 8 http.c:6784: Test succeeded inside todo block: ar->dwResult = 1, expected 1 http.c:6811: Test succeeded inside todo block: 7011: expected status 100 got 100 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6811: Test succeeded inside todo block: 7011: expected status 10 got 10 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:6782: Test succeeded inside todo block: unexpected buflen = 8 http.c:6786: Test succeeded inside todo block: ar->dwResult = 0, expected 1 http.c:6787: Test succeeded inside todo block: ar->dwError = 12007, expected 12007 http.c:6811: Test succeeded inside todo block: 7011: expected status 100 got 100 http.c:6812: Test succeeded inside todo block: 7011: expected function 3 got 3 http.c:6815: Test succeeded inside todo block: 7011: expected thread 49 got 50 http.c:377: Test succeeded inside todo block: unexpected size 12 http.c:386: Test succeeded inside todo block: unexpected size 12 http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 70 (INTERNET_STATUS_HANDLE_CLOSING) http.c:456: Test succeeded inside todo block: info length should be sizeof(HINTERNET) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 70 (INTERNET_STATUS_HANDLE_CLOSING) http.c:456: Test succeeded inside todo block: info length should be sizeof(HINTERNET) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 50 (INTERNET_STATUS_CLOSING_CONNECTION) http.c:355: Test succeeded inside todo block: unexpected status 51 (INTERNET_STATUS_CONNECTION_CLOSED) http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 50 (INTERNET_STATUS_CLOSING_CONNECTION) http.c:355: Test succeeded inside todo block: unexpected status 51 (INTERNET_STATUS_CONNECTION_CLOSED) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 70 (INTERNET_STATUS_HANDLE_CLOSING) http.c:456: Test succeeded inside todo block: info length should be sizeof(HINTERNET) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 70 (INTERNET_STATUS_HANDLE_CLOSING) http.c:456: Test succeeded inside todo block: info length should be sizeof(HINTERNET) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:377: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 21 (INTERNET_STATUS_CONNECTED_TO_SERVER) http.c:386: Test succeeded inside todo block: unexpected size 10 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1 http.c:355: Test succeeded inside todo block: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test succeeded inside todo block: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:397: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test succeeded inside todo block: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:412: Test succeeded inside todo block: info length should be sizeof(DWORD) instead of 4 http.c:355: Test succeeded inside todo block: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:469: Test succeeded inside todo block: info length should be sizeof(INTERNET_ASYNC_RESULT) instead of 8 http.c:472: Test succeeded inside todo block: iar->dwResult = 1
Report errors: wininet:http prints too much data (41427 bytes)
=== debian10 (32 bit Chinese:China report) ===
wininet: http.c:6171: Test failed: req_error = 12038 http.c:6210: Test failed: Unexpected cert errors 12038, skipping security flags tests http.c:4777: Test failed: expected 1 pending read, got 2
=== debian10 (32 bit WoW report) ===
wininet: http.c:6201: Test failed: expected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) 2 times, received 0 times http.c:355: Test failed: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test failed: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:355: Test failed: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test failed: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:355: Test failed: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:706: Test failed: expected status 30 (INTERNET_STATUS_SENDING_REQUEST) 1 times, received 2 times http.c:707: Test failed: expected status 31 (INTERNET_STATUS_REQUEST_SENT) 1 times, received 2 times http.c:708: Test failed: expected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) 1 times, received 3 times http.c:709: Test failed: expected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) 1 times, received 3 times http.c:1138: Test failed: expected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) 1 times, received 2 times Unhandled exception: page fault on write access to 0xdeadbef3 in 32-bit code (0x7e3c9814).
=== debian10 (64 bit WoW report) ===
wininet: http.c:6201: Test failed: expected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) 2 times, received 0 times http.c:355: Test failed: unexpected status 30 (INTERNET_STATUS_SENDING_REQUEST) http.c:355: Test failed: unexpected status 31 (INTERNET_STATUS_REQUEST_SENT) http.c:355: Test failed: unexpected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) http.c:355: Test failed: unexpected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) http.c:355: Test failed: unexpected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) http.c:706: Test failed: expected status 30 (INTERNET_STATUS_SENDING_REQUEST) 1 times, received 2 times http.c:707: Test failed: expected status 31 (INTERNET_STATUS_REQUEST_SENT) 1 times, received 2 times http.c:708: Test failed: expected status 40 (INTERNET_STATUS_RECEIVING_RESPONSE) 1 times, received 3 times http.c:709: Test failed: expected status 41 (INTERNET_STATUS_RESPONSE_RECEIVED) 1 times, received 3 times http.c:1138: Test failed: expected status 100 (INTERNET_STATUS_REQUEST_COMPLETE) 1 times, received 2 times
Hi Francois,
On 02/10/2019 12:33, Francois Gouget wrote:
Otherwise winsock2.h's fd_set macros break <sys/select.h> which is included by <time.h> on NetBSD. Moving winsock2.h after all system includes may work too because http.c does not (currently) use any of the fd_set APIs. But it seems like there would be a higher risk of mixing Unix socket types from the Unix headers with the Windows ones. So include winsock2.h first as recommended, but then _WIN32 is defined which causes zlib.h to use FAR which is not allowed in Wine code. So carve out an exception for it.
Using FAR by host zlib.h is worrying. Ideally, we'd move wininet to PE file and not have to deal with it. zlib is one of the reasons it's not done yet (using host APIs for proxy settings is the other reason). Maybe we should import zlib to Wine and build it against msvcrt?
Thanks,
Jacek
On Wed, 2 Oct 2019, Jacek Caban wrote: [...]
Using FAR by host zlib.h is worrying. Ideally, we'd move wininet to PE file and not have to deal with it. zlib is one of the reasons it's not done yet (using host APIs for proxy settings is the other reason). Maybe we should import zlib to Wine and build it against msvcrt?
I'm really annoyed by the huge amount of failures spewed by this wininet:http test. But then I noticed things took a turn for the worse on the 9th of september:
https://test.winehq.org/data/tests/wininet:http.html
So I looked further and found more casualties: https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/wininet:ftp.html
Can anyone give me (or rather Newman) a hint as to what's broken?
On 02/10/2019 14:46, Francois Gouget wrote:
Can anyone give me (or rather Newman) a hint as to what's broken?
It looks like the tests are using test.winehq.com, but that server is now returning a certificate for *.winehq.org. It looks like it previously returned a self-signed certificate, judging by the test code. Newman, did the certificate on the server change recently?
The tests can be amended to use test.winehq.org instead of .com, which fixes most of the failures. I can submit a patch for that if the .com should no longer be used.
Owen
I had to disable that virtual server since the self signed cert fails with the following error:
AH02562: Failed to configure certificate test.winehq.com:443:0 (with chain), check /etc/ssl/self-signed/server.crt SSL Library Error: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
It was preventing the apache2 daemon from starting.
I'll generate a new self signed cert and see if I can get it working.
-N
On 10/2/19 9:52 AM, Owen Rudge wrote:
On 02/10/2019 14:46, Francois Gouget wrote:
Can anyone give me (or rather Newman) a hint as to what's broken?
It looks like the tests are using test.winehq.com, but that server is now returning a certificate for *.winehq.org. It looks like it previously returned a self-signed certificate, judging by the test code. Newman, did the certificate on the server change recently?
The tests can be amended to use test.winehq.org instead of .com, which fixes most of the failures. I can submit a patch for that if the .com should no longer be used.
Owen
On 02/10/2019 16:02, Jeremy Newman wrote:
I'll generate a new self signed cert and see if I can get it working.
The subject and issuer parameters are hard-coded into the test, so the new certificate would need to match the existing certificate:
Subject:
US Minnesota Saint Paul WineHQ test.winehq.com webmaster@winehq.org
Issuer:
US Minnesota WineHQ test.winehq.com webmaster@winehq.org
Cheers,
Owen
Ok, new cert has been generated and is running on https://test.winehq.com/
-N
On 10/2/19 10:09 AM, Owen Rudge wrote:
On 02/10/2019 16:02, Jeremy Newman wrote:
I'll generate a new self signed cert and see if I can get it working.
The subject and issuer parameters are hard-coded into the test, so the new certificate would need to match the existing certificate:
Subject:
US Minnesota Saint Paul WineHQ test.winehq.com webmaster@winehq.org
Issuer:
US Minnesota WineHQ test.winehq.com webmaster@winehq.org
Cheers,
Owen
On Wed, 2 Oct 2019, Jeremy Newman wrote:
Ok, new cert has been generated and is running on https://test.winehq.com/
This still does not work:
https://test.winehq.org/data/tests/wininet:http.html https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/wininet:ftp.html
Is it because the tests need to be updated to match the new certificates or because there is a problem with the certificates?
Also, since winehq.org is the main domain used for the winehq site, wouldn't it be more future-proof for the tests to use the same domain, so test.winehq.org, or is there some reson why they cannot?
On 14-10-19 10:55, Francois Gouget wrote:
On Wed, 2 Oct 2019, Jeremy Newman wrote:
Ok, new cert has been generated and is running on https://test.winehq.com/
This still does not work:
https://test.winehq.org/data/tests/wininet:http.html https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/wininet:ftp.html
Is it because the tests need to be updated to match the new certificates or because there is a problem with the certificates?
Also, since winehq.org is the main domain used for the winehq site, wouldn't it be more future-proof for the tests to use the same domain, so test.winehq.org, or is there some reson why they cannot?
As mentioned earlier in this thread, these failures are mostly because the ftp server (ftp.winehq.org) appears to be down.
Seems to be: http.c:6213: Tests skipped: Unexpected cert errors 12157, skipping security flags tests
The new cert is using: sha256RSA with a 2048 bit public key.
-N
On 10/14/2019 3:55 AM, Francois Gouget wrote:
On Wed, 2 Oct 2019, Jeremy Newman wrote:
Ok, new cert has been generated and is running on https://test.winehq.com/
This still does not work:
https://test.winehq.org/data/tests/wininet:http.html https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/wininet:ftp.html
Is it because the tests need to be updated to match the new certificates or because there is a problem with the certificates?
Also, since winehq.org is the main domain used for the winehq site, wouldn't it be more future-proof for the tests to use the same domain, so test.winehq.org, or is there some reson why they cannot?
I need to rework my second patch - it fixed the http failures, but it looks like there are similar issues in other DLLs.
Cheers,
Owen
On 15 Oct 2019, at 14:51, Jeremy Newman jnewman@codeweavers.com wrote:
Seems to be: http.c:6213: Tests skipped: Unexpected cert errors 12157, skipping security flags tests
The new cert is using: sha256RSA with a 2048 bit public key.
-N
On 10/14/2019 3:55 AM, Francois Gouget wrote:
On Wed, 2 Oct 2019, Jeremy Newman wrote: Ok, new cert has been generated and is running on https://test.winehq.com/
This still does not work: https://test.winehq.org/data/tests/wininet:http.html https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/wininet:ftp.html Is it because the tests need to be updated to match the new certificates or because there is a problem with the certificates? Also, since winehq.org is the main domain used for the winehq site, wouldn't it be more future-proof for the tests to use the same domain, so test.winehq.org, or is there some reson why they cannot?
So I looked further and found more casualties: https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:protocol.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/urlmon:url.html https://test.winehq.org/data/tests/wininet:ftp.html https://test.winehq.org/data/tests/wininet:ftp.html
Can anyone give me (or rather Newman) a hint as to what's broken?
For FTP tests, it looks like FTP server is down.
Jacek
Jacek Caban jacek@codeweavers.com writes:
Hi Francois,
On 02/10/2019 12:33, Francois Gouget wrote:
Otherwise winsock2.h's fd_set macros break <sys/select.h> which is included by <time.h> on NetBSD. Moving winsock2.h after all system includes may work too because http.c does not (currently) use any of the fd_set APIs. But it seems like there would be a higher risk of mixing Unix socket types from the Unix headers with the Windows ones. So include winsock2.h first as recommended, but then _WIN32 is defined which causes zlib.h to use FAR which is not allowed in Wine code. So carve out an exception for it.
Using FAR by host zlib.h is worrying. Ideally, we'd move wininet to PE file and not have to deal with it. zlib is one of the reasons it's not done yet (using host APIs for proxy settings is the other reason). Maybe we should import zlib to Wine and build it against msvcrt?
Yes, building as PE would be better. zlib should be fairly easy to fix, but I haven't done it yet because it wouldn't help without also fixing the proxy settings thing. Anybody wants to have a look at that one?
On Wed, 2019-10-02 at 15:57 +0200, Alexandre Julliard wrote:
Yes, building as PE would be better. zlib should be fairly easy to fix, but I haven't done it yet because it wouldn't help without also fixing the proxy settings thing. Anybody wants to have a look at that one?
I can take a look.