From e651633c54451c3d8c98d93091927fe0d1a8ed4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Sat, 21 Jan 2023 06:54:51 +0800 Subject: [PATCH] Temp: detect both `device/class` and`device/device/class` --- src/detection/temps/temps_linux.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/detection/temps/temps_linux.c b/src/detection/temps/temps_linux.c index 5a1dc2bd4..913e6f037 100644 --- a/src/detection/temps/temps_linux.c +++ b/src/detection/temps/temps_linux.c @@ -29,11 +29,15 @@ static bool parseHwmonDir(FFstrbuf* dir, FFTempValue* value) ffReadFileBuffer(dir->chars, &value->name); ffStrbufSubstrBefore(dir, dirLength); - ffStrbufAppendS(dir, "device/device/class"); - - if(ffReadFileBuffer(dir->chars, &valueBuffer)) + ffStrbufAppendS(dir, "device/class"); + if(!ffReadFileBuffer(dir->chars, &valueBuffer)) + { + ffStrbufSubstrBefore(dir, dirLength); + ffStrbufAppendS(dir, "device/device/class"); + ffReadFileBuffer(dir->chars, &valueBuffer); + } + if(valueBuffer.length) value->deviceClass = (uint32_t) strtoul(valueBuffer.chars, NULL, 16); - ffStrbufSubstrBefore(dir, dirLength); return value->name.length > 0 || value->deviceClass > 0; }