From 4337f8f7351590ab4e95ca18d32f0e3416189df4 Mon Sep 17 00:00:00 2001 From: Luca Bacci Date: Tue, 20 Feb 2024 11:26:30 +0100 Subject: [PATCH] GWinHttpFile: Check for matching attributes before sending the HTTP(S) request We might not need to make an HTTP(S) request at all Fixes #3080 --- gio/win32/gwinhttpfile.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gio/win32/gwinhttpfile.c b/gio/win32/gwinhttpfile.c index 7a40a3335..605c28460 100644 --- a/gio/win32/gwinhttpfile.c +++ b/gio/win32/gwinhttpfile.c @@ -496,6 +496,15 @@ g_winhttp_file_query_info (GFile *file, if (_g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_STANDARD_TYPE)) g_file_info_set_file_type (info, G_FILE_TYPE_REGULAR); + if (!(_g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_STANDARD_SIZE) || + _g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_STANDARD_CONTENT_TYPE) || + _g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED) || + _g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_NSEC) || + _g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_TIME_MODIFIED_USEC))) + { + return info; + } + connection = G_WINHTTP_VFS_GET_CLASS (winhttp_file->vfs)->funcs->pWinHttpConnect (G_WINHTTP_VFS (winhttp_file->vfs)->session, winhttp_file->url.lpszHostName,