Rebase against 4be4e282b737a7cfbccf18552a581ee6de3ac13c.

[winsta-WinStationEnumerateW]
Removed patch to add stub for winsta.WinStationEnumerateW (accepted upstream).
This commit is contained in:
Sebastian Lackner 2016-04-28 00:39:39 +02:00
parent 95899b69cc
commit 0712486b63
6 changed files with 125 additions and 233 deletions

View File

@ -1,44 +1,42 @@
From fe2b318c4d9cee458cc4db4d41c028a8b783282d Mon Sep 17 00:00:00 2001
From 413b8907e3c4747d83ccacf8657554552ff18620 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Fri, 1 Apr 2016 01:29:51 +0200
Subject: fsutil: Add fsutil program with support for creating hard links.
---
configure.ac | 1 +
programs/fsutil/Makefile.in | 8 +++
programs/fsutil/fsutil.rc | 34 ++++++++++
programs/fsutil/main.c | 151 ++++++++++++++++++++++++++++++++++++++++++++
programs/fsutil/resources.h | 25 ++++++++
5 files changed, 219 insertions(+)
create mode 100644 programs/fsutil/Makefile.in
configure.ac | 2 +-
programs/fsutil/Makefile.in | 3 +
programs/fsutil/fsutil.rc | 34 ++++++++++++
programs/fsutil/main.c | 131 ++++++++++++++++++++++++++++++++++++++++++--
programs/fsutil/resources.h | 25 +++++++++
5 files changed, 188 insertions(+), 7 deletions(-)
create mode 100644 programs/fsutil/fsutil.rc
create mode 100644 programs/fsutil/main.c
create mode 100644 programs/fsutil/resources.h
diff --git a/configure.ac b/configure.ac
index 20478df..8cd1f4a 100644
index 597b84e..1968321 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3459,6 +3459,7 @@ WINE_CONFIG_PROGRAM(expand,,[install])
@@ -3463,7 +3463,7 @@ WINE_CONFIG_PROGRAM(expand,,[install])
WINE_CONFIG_PROGRAM(explorer,,[clean,install])
WINE_CONFIG_PROGRAM(extrac32,,[install])
WINE_CONFIG_PROGRAM(findstr,,[install])
-WINE_CONFIG_PROGRAM(fsutil,,[install])
+WINE_CONFIG_PROGRAM(fsutil,,[clean,install])
WINE_CONFIG_PROGRAM(hh,,[install])
WINE_CONFIG_PROGRAM(hostname,,[clean,install])
WINE_CONFIG_PROGRAM(icacls,,[install])
diff --git a/programs/fsutil/Makefile.in b/programs/fsutil/Makefile.in
new file mode 100644
index 0000000..7433695
--- /dev/null
index f339c4c..7433695 100644
--- a/programs/fsutil/Makefile.in
+++ b/programs/fsutil/Makefile.in
@@ -0,0 +1,8 @@
+MODULE = fsutil.exe
+APPMODE = -mconsole -municode
@@ -1,5 +1,8 @@
MODULE = fsutil.exe
APPMODE = -mconsole -municode
+IMPORTS = user32
+
+C_SRCS = \
+ main.c
C_SRCS = \
main.c
+
+RC_SRCS = fsutil.rc
diff --git a/programs/fsutil/fsutil.rc b/programs/fsutil/fsutil.rc
@ -82,37 +80,29 @@ index 0000000..593f817
+ STRING_HARDLINK_CREATE_USAGE, "Syntax: fsutil hardlink create old new\n\n"
+}
diff --git a/programs/fsutil/main.c b/programs/fsutil/main.c
new file mode 100644
index 0000000..ff58dd4
--- /dev/null
index 2bce87e..41370b5 100644
--- a/programs/fsutil/main.c
+++ b/programs/fsutil/main.c
@@ -0,0 +1,151 @@
+/*
@@ -1,5 +1,6 @@
/*
* Copyright 2016 Austin English
+ * Copyright 2016 Michael Müller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -16,18 +17,136 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "wine/debug.h"
+#include <windows.h>
+#include <wine/unicode.h>
+#include <wine/debug.h>
+
+#include "resources.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(fsutil);
+
WINE_DEFAULT_DEBUG_CHANNEL(fsutil);
+static void output_write(const WCHAR *str, DWORD wlen)
+{
+ DWORD count, ret;
@ -214,15 +204,20 @@ index 0000000..ff58dd4
+ return ret;
+}
+
+int wmain(int argc, WCHAR *argv[])
+{
int wmain(int argc, WCHAR *argv[])
{
- int i;
+ static const WCHAR hardlinkW[]={'h','a','r','d','l','i','n','k',0};
+ int i, ret = 0;
+
+ for (i = 0; i < argc; i++)
- WINE_FIXME("stub:");
for (i = 0; i < argc; i++)
- WINE_FIXME(" %s", wine_dbgstr_w(argv[i]));
- WINE_FIXME("\n");
+ WINE_TRACE(" %s", wine_dbgstr_w(argv[i]));
+ WINE_TRACE("\n");
+
- return 0;
+ if (argc > 1)
+ {
+ if (!strcmpiW(argv[1], hardlinkW))
@ -237,7 +232,7 @@ index 0000000..ff58dd4
+
+ output_string(STRING_USAGE);
+ return ret;
+}
}
diff --git a/programs/fsutil/resources.h b/programs/fsutil/resources.h
new file mode 100644
index 0000000..b85826a
@ -270,5 +265,5 @@ index 0000000..b85826a
+#define STRING_HARDLINK_USAGE 104
+#define STRING_HARDLINK_CREATE_USAGE 105
--
2.7.1
2.8.0

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "a6e1adb8b701c390b248f8c4d74bef1ed5557599"
echo "4be4e282b737a7cfbccf18552a581ee6de3ac13c"
}
# Show version information
@ -385,7 +385,6 @@ patch_enable_all ()
enable_winmm_Delay_Import_Depends="$1"
enable_winmm_mciSendCommandA="$1"
enable_winspool_drv_SetPrinterW="$1"
enable_winsta_WinStationEnumerateW="$1"
enable_wintrust_WinVerifyTrust="$1"
enable_wpcap_Dynamic_Linking="$1"
enable_wpcap_Several_Fixes="$1"
@ -1327,9 +1326,6 @@ patch_enable ()
winspool.drv-SetPrinterW)
enable_winspool_drv_SetPrinterW="$2"
;;
winsta-WinStationEnumerateW)
enable_winsta_WinStationEnumerateW="$2"
;;
wintrust-WinVerifyTrust)
enable_wintrust_WinVerifyTrust="$2"
;;
@ -7541,9 +7537,9 @@ fi
# | * dlls/wininet/http.c, dlls/wininet/tests/http.c
# |
if test "$enable_wininet_HttpOpenRequestW" -eq 1; then
patch_apply wininet-HttpOpenRequestW/0001-wininet-Set-default-HTTP-port-correctly-when-passing.patch
patch_apply wininet-HttpOpenRequestW/0001-wininet-Handle-INTERNET_INVALID_PORT_NUMBER-in-HttpO.patch
(
echo '+ { "Michael Müller", "wininet: Set default HTTP port correctly when passing INTERNET_FLAG_SECURE to InternetConnect.", 1 },';
echo '+ { "Michael Müller", "wininet: Handle INTERNET_INVALID_PORT_NUMBER in HttpOpenRequest.", 1 },';
) >> "$patchlist"
fi
@ -7618,21 +7614,6 @@ if test "$enable_winspool_drv_SetPrinterW" -eq 1; then
) >> "$patchlist"
fi
# Patchset winsta-WinStationEnumerateW
# |
# | This patchset fixes the following Wine bugs:
# | * [#38102] Add stub for winsta.WinStationEnumerateW
# |
# | Modified files:
# | * dlls/winsta/main.c, dlls/winsta/winsta.spec
# |
if test "$enable_winsta_WinStationEnumerateW" -eq 1; then
patch_apply winsta-WinStationEnumerateW/0001-winsta-Add-stub-for-WinStationEnumerateW.patch
(
echo '+ { "Austin English", "winsta: Add stub for WinStationEnumerateW.", 2 },';
) >> "$patchlist"
fi
# Patchset wintrust-WinVerifyTrust
# |
# | Modified files:

View File

@ -0,0 +1,76 @@
From 842a91f83a472f364f6617f90a657603385fbc59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 25 Apr 2016 21:46:29 +0200
Subject: wininet: Handle INTERNET_INVALID_PORT_NUMBER in HttpOpenRequest.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Michael Müller <michael@fds-team.de>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
---
dlls/wininet/http.c | 11 +++++++++--
dlls/wininet/tests/http.c | 6 +++---
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index ef0b36e..9d75b59 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -3331,7 +3331,7 @@ static DWORD HTTP_HttpOpenRequestW(http_session_t *session,
{
appinfo_t *hIC = session->appInfo;
http_request_t *request;
- DWORD len;
+ DWORD port, len;
TRACE("-->\n");
@@ -3360,7 +3360,14 @@ static DWORD HTTP_HttpOpenRequestW(http_session_t *session,
request->session = session;
list_add_head( &session->hdr.children, &request->hdr.entry );
- request->server = get_server(session->hostName, session->hostPort, (dwFlags & INTERNET_FLAG_SECURE) != 0, TRUE);
+ port = session->hostPort;
+ if (port == INTERNET_INVALID_PORT_NUMBER)
+ {
+ port = (session->hdr.dwFlags & INTERNET_FLAG_SECURE) ?
+ INTERNET_DEFAULT_HTTPS_PORT : INTERNET_DEFAULT_HTTP_PORT;
+ }
+
+ request->server = get_server(session->hostName, port, (dwFlags & INTERNET_FLAG_SECURE) != 0, TRUE);
if(!request->server) {
WININET_Release(&request->hdr);
return ERROR_OUTOFMEMORY;
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index 66ba526..6aa0f4c 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -5771,13 +5771,13 @@ static void test_default_service_port(void)
ok(request != NULL, "HttpOpenRequest failed\n");
ret = HttpSendRequestA(request, NULL, 0, NULL, 0);
- todo_wine ok(ret, "HttpSendRequest failed with error %u\n", GetLastError());
+ ok(ret, "HttpSendRequest failed with error %u\n", GetLastError());
size = sizeof(buffer);
memset(buffer, 0, sizeof(buffer));
ret = HttpQueryInfoA(request, HTTP_QUERY_HOST | HTTP_QUERY_FLAG_REQUEST_HEADERS, buffer, &size, NULL);
ok(ret, "HttpQueryInfo failed with error %u\n", GetLastError());
- todo_wine ok(!strcmp(buffer, "test.winehq.org"), "Expected test.winehg.org, got '%s'\n", buffer);
+ ok(!strcmp(buffer, "test.winehq.org"), "Expected test.winehg.org, got '%s'\n", buffer);
InternetCloseHandle(request);
InternetCloseHandle(connect);
@@ -5796,7 +5796,7 @@ static void test_default_service_port(void)
memset(buffer, 0, sizeof(buffer));
ret = HttpQueryInfoA(request, HTTP_QUERY_HOST | HTTP_QUERY_FLAG_REQUEST_HEADERS, buffer, &size, NULL);
ok(ret, "HttpQueryInfo failed with error %u\n", GetLastError());
- todo_wine ok(!strcmp(buffer, "test.winehq.org:443"), "Expected test.winehg.org:443, got '%s'\n", buffer);
+ ok(!strcmp(buffer, "test.winehq.org:443"), "Expected test.winehg.org:443, got '%s'\n", buffer);
InternetCloseHandle(request);
InternetCloseHandle(connect);
--
2.8.0

View File

@ -1,118 +0,0 @@
From 66e49d5b0868a9832f339056ddfd25cf4aee01ba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 19 Mar 2016 03:53:51 +0100
Subject: wininet: Set default HTTP port correctly when passing
INTERNET_FLAG_SECURE to InternetConnect.
---
dlls/wininet/http.c | 8 +++++--
dlls/wininet/tests/http.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 65 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 143dc75..2f8fba4 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -3335,7 +3335,7 @@ static DWORD HTTP_HttpOpenRequestW(http_session_t *session,
{
appinfo_t *hIC = session->appInfo;
http_request_t *request;
- DWORD len;
+ DWORD port, len;
TRACE("-->\n");
@@ -3364,7 +3364,11 @@ static DWORD HTTP_HttpOpenRequestW(http_session_t *session,
request->session = session;
list_add_head( &session->hdr.children, &request->hdr.entry );
- request->server = get_server(session->hostName, session->hostPort, (dwFlags & INTERNET_FLAG_SECURE) != 0, TRUE);
+ port = session->hostPort;
+ if (port == INTERNET_INVALID_PORT_NUMBER)
+ port = (session->hdr.dwFlags & INTERNET_FLAG_SECURE) ? INTERNET_DEFAULT_HTTPS_PORT : INTERNET_DEFAULT_HTTP_PORT;
+
+ request->server = get_server(session->hostName, port, (dwFlags & INTERNET_FLAG_SECURE) != 0, TRUE);
if(!request->server) {
WININET_Release(&request->hdr);
return ERROR_OUTOFMEMORY;
diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c
index 82fd10b..4e5b7fe 100644
--- a/dlls/wininet/tests/http.c
+++ b/dlls/wininet/tests/http.c
@@ -5733,7 +5733,8 @@ static void test_connection_failure(void)
static void test_default_service_port(void)
{
HINTERNET session, connect, request;
- DWORD error;
+ DWORD size, count, error;
+ char buffer[128];
BOOL ret;
session = InternetOpenA("winetest", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
@@ -5753,6 +5754,63 @@ static void test_default_service_port(void)
ok(error == ERROR_INTERNET_SECURITY_CHANNEL_ERROR || error == ERROR_INTERNET_CANNOT_CONNECT,
"got %u\n", error);
+ size = sizeof(buffer) - 1;
+ count = 0;
+ memset(buffer, 0, sizeof(buffer));
+ ret = HttpQueryInfoA(request, HTTP_QUERY_HOST | HTTP_QUERY_FLAG_REQUEST_HEADERS, buffer, &size, &count);
+ ok(ret, "HttpQueryInfo succeeded\n");
+ ok(!strcmp(buffer, "test.winehq.org:80"), "Expected test.winehg.org:80, got %s\n", buffer);
+
+ InternetCloseHandle(request);
+ InternetCloseHandle(connect);
+ InternetCloseHandle(session);
+
+ session = InternetOpenA("winetest", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
+ ok(session != NULL, "InternetOpen failed\n");
+
+ connect = InternetConnectA(session, "test.winehq.org", INTERNET_INVALID_PORT_NUMBER, NULL, NULL,
+ INTERNET_SERVICE_HTTP, INTERNET_FLAG_SECURE, 0);
+ ok(connect != NULL, "InternetConnect failed\n");
+
+ request = HttpOpenRequestA(connect, NULL, "/", NULL, NULL, NULL, INTERNET_FLAG_SECURE, 0);
+ ok(request != NULL, "HttpOpenRequest failed\n");
+
+ SetLastError(0xdeadbeef);
+ ret = HttpSendRequestA(request, NULL, 0, NULL, 0);
+ ok(ret, "HttpSendRequest failed with error %u\n", GetLastError());
+
+ size = sizeof(buffer) - 1;
+ count = 0;
+ memset(buffer, 0, sizeof(buffer));
+ ret = HttpQueryInfoA(request, HTTP_QUERY_HOST | HTTP_QUERY_FLAG_REQUEST_HEADERS, buffer, &size, &count);
+ ok(ret, "HttpQueryInfo succeeded\n");
+ ok(!strcmp(buffer, "test.winehq.org"), "Expected test.winehg.org, got %s\n", buffer);
+
+ InternetCloseHandle(request);
+ InternetCloseHandle(connect);
+ InternetCloseHandle(session);
+
+ session = InternetOpenA("winetest", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
+ ok(session != NULL, "InternetOpen failed\n");
+
+ connect = InternetConnectA(session, "test.winehq.org", INTERNET_INVALID_PORT_NUMBER, NULL, NULL,
+ INTERNET_SERVICE_HTTP, INTERNET_FLAG_SECURE, 0);
+ ok(connect != NULL, "InternetConnect failed\n");
+
+ request = HttpOpenRequestA(connect, NULL, "/", NULL, NULL, NULL, 0, 0);
+ ok(request != NULL, "HttpOpenRequest failed\n");
+
+ SetLastError(0xdeadbeef);
+ ret = HttpSendRequestA(request, NULL, 0, NULL, 0);
+ ok(ret, "HttpSendRequest failed with error %u\n", GetLastError());
+
+ size = sizeof(buffer) - 1;
+ count = 0;
+ memset(buffer, 0, sizeof(buffer));
+ ret = HttpQueryInfoA(request, HTTP_QUERY_HOST | HTTP_QUERY_FLAG_REQUEST_HEADERS, buffer, &size, &count);
+ ok(ret, "HttpQueryInfo succeeded\n");
+ ok(!strcmp(buffer, "test.winehq.org:443"), "Expected test.winehg.org:443, got %s\n", buffer);
+
InternetCloseHandle(request);
InternetCloseHandle(connect);
InternetCloseHandle(session);
--
2.7.1

View File

@ -1,41 +0,0 @@
From 7b26357b2125f80df05269f2bb38592dd2e8be6f Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Thu, 7 May 2015 06:15:58 +0200
Subject: winsta: Add stub for WinStationEnumerateW. (v2)
---
dlls/winsta/main.c | 7 +++++++
dlls/winsta/winsta.spec | 2 +-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/winsta/main.c b/dlls/winsta/main.c
index a95782f..59efef2 100644
--- a/dlls/winsta/main.c
+++ b/dlls/winsta/main.c
@@ -91,3 +91,10 @@ BOOL WINAPI WinStationVirtualOpen( PVOID a, PVOID b, PVOID c )
SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
return FALSE;
}
+
+BOOLEAN WINAPI WinStationEnumerateW( HANDLE server, PSESSIONIDW *sessionids, ULONG *count )
+{
+ FIXME( "%p %p %p\n", server, sessionids, count );
+ SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
+ return FALSE;
+}
diff --git a/dlls/winsta/winsta.spec b/dlls/winsta/winsta.spec
index 30aa6b5..a9def1a 100644
--- a/dlls/winsta/winsta.spec
+++ b/dlls/winsta/winsta.spec
@@ -29,7 +29,7 @@
@ stub WinStationEnumerateA
@ stub WinStationEnumerateLicenses
@ stub WinStationEnumerateProcesses
-@ stub WinStationEnumerateW
+@ stdcall WinStationEnumerateW(long ptr ptr)
@ stub WinStationEnumerate_IndexedA
@ stub WinStationEnumerate_IndexedW
@ stub WinStationFreeGAPMemory
--
2.4.5

View File

@ -1 +0,0 @@
Fixes: [38102] Add stub for winsta.WinStationEnumerateW