pdh: Accept the local machine name in counter paths.
Hans Leidekker
hans at codeweavers.com
Fri Dec 21 06:56:23 CST 2012
---
dlls/pdh/pdh_main.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/dlls/pdh/pdh_main.c b/dlls/pdh/pdh_main.c
index 69f0d71..e43012b 100644
--- a/dlls/pdh/pdh_main.c
+++ b/dlls/pdh/pdh_main.c
@@ -220,14 +220,27 @@ static const struct source counter_sources[] =
{ 674, path_uptime, collect_uptime, TYPE_UPTIME, -3, 1000 }
};
+static BOOL is_local_machine( const WCHAR *name, DWORD len )
+{
+ WCHAR buf[MAX_COMPUTERNAME_LENGTH + 1];
+ DWORD buflen = sizeof(buf) / sizeof(buf[0]);
+
+ if (!GetComputerNameW( buf, &buflen )) return FALSE;
+ return len == buflen && !memicmpW( name, buf, buflen );
+}
+
static BOOL pdh_match_path( LPCWSTR fullpath, LPCWSTR path )
{
const WCHAR *p;
- if (strchrW( path, '\\')) p = fullpath;
+ if (path[0] == '\\' && path[1] == '\\' && (p = strchrW( path + 2, '\\' )) &&
+ is_local_machine( path + 2, p - path - 2 ))
+ {
+ path += p - path;
+ }
+ if (strchrW( path, '\\' )) p = fullpath;
else p = strrchrW( fullpath, '\\' ) + 1;
- if (strcmpW( p, path )) return FALSE;
- return TRUE;
+ return !strcmpW( p, path );
}
/***********************************************************************
--
1.7.10.4
More information about the wine-patches
mailing list