From 24a3783d7cd241222ec4a9b5a24ff901cb06e6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 18 Apr 2023 18:30:10 +0800 Subject: [PATCH] Network: code refactor & bug fixes --- src/detection/network/network.h | 4 ++-- src/detection/network/network_apple.c | 4 ++-- src/detection/network/network_linux.c | 4 ++-- src/detection/network/network_windows.c | 10 +++++----- src/modules/network.c | 11 +++++++++-- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/detection/network/network.h b/src/detection/network/network.h index 2a4393d31..0766e6ace 100644 --- a/src/detection/network/network.h +++ b/src/detection/network/network.h @@ -10,8 +10,8 @@ typedef struct FFNetworkResult FFstrbuf name; FFstrbuf type; FFstrbuf address; - int32_t mtu; - bool on; + uint32_t mtu; + bool up; } FFNetworkResult; const char* ffDetectNetwork(FFinstance* instance, FFlist* result); diff --git a/src/detection/network/network_apple.c b/src/detection/network/network_apple.c index 249372859..b46adf909 100644 --- a/src/detection/network/network_apple.c +++ b/src/detection/network/network_apple.c @@ -29,11 +29,11 @@ const char* ffDetectNetwork(FFinstance* instance, FFlist* result) ffStrbufInit(&item->name); ffStrbufInit(&item->address); item->mtu = 0; - item->on = true; + item->up = true; ffCfStrGetString(SCNetworkInterfaceGetLocalizedDisplayName(ni), &item->name); ffCfStrGetString(SCNetworkInterfaceGetHardwareAddressString(ni), &item->address); - SCNetworkInterfaceCopyMTU(ni, &item->mtu, nil, nil); + SCNetworkInterfaceCopyMTU(ni, (int*) &item->mtu, nil, nil); } if (result->length == 0) diff --git a/src/detection/network/network_linux.c b/src/detection/network/network_linux.c index 07c4ccc8d..2390f11e4 100644 --- a/src/detection/network/network_linux.c +++ b/src/detection/network/network_linux.c @@ -92,14 +92,14 @@ const char* ffDetectNetwork(FFinstance* instance, FFlist* result) ffStrbufInitS(&item->name, i->if_name); ffStrbufInit(&item->address); item->mtu = 0; - item->on = isUp; + item->up = isUp; ffStrbufSetF(&path, "/sys/class/net/%s/address", i->if_name); ffReadFileBuffer(path.chars, &item->address); ffStrbufSetF(&path, "/sys/class/net/%s/mtu", i->if_name); if (ffReadFileBuffer(path.chars, &fileContent)) - item->mtu = (int32_t) ffStrbufToUInt16(&fileContent, 0); + item->mtu = ffStrbufToUInt16(&fileContent, 0); } if_freenameindex(infs); diff --git a/src/detection/network/network_windows.c b/src/detection/network/network_windows.c index 741f8fddd..3ac5cbc7e 100644 --- a/src/detection/network/network_windows.c +++ b/src/detection/network/network_windows.c @@ -44,8 +44,8 @@ const char* ffDetectNetwork(FFinstance* instance, FFlist* result) if (adapter->IfType == IF_TYPE_SOFTWARE_LOOPBACK) continue; - bool isOn = adapter->OperStatus == IfOperStatusUp; - if (!isOn && !instance->config.networkAll) + bool isUp = adapter->OperStatus == IfOperStatusUp; + if (!isUp && !instance->config.networkAll) continue; const char* strType = NULL; @@ -87,12 +87,12 @@ const char* ffDetectNetwork(FFinstance* instance, FFlist* result) ffStrbufInitS(&item->type, strType); ffStrbufInit(&item->name); ffStrbufInit(&item->address); - item->mtu = (int32_t) adapter->Mtu; - item->on = isOn; + item->mtu = adapter->Mtu; + item->up = isUp; ffStrbufSetWS(&item->name, adapter->FriendlyName); for (ULONG i = 0; i < adapter->PhysicalAddressLength; i++) - ffStrbufAppendF(&item->address, "%.2X-", (int) adapter->PhysicalAddress[i]); + ffStrbufAppendF(&item->address, "%.2x-", (int) adapter->PhysicalAddress[i]); ffStrbufTrimRight(&item->address, '-'); } diff --git a/src/modules/network.c b/src/modules/network.c index c61cd53f4..21782e48b 100644 --- a/src/modules/network.c +++ b/src/modules/network.c @@ -24,7 +24,10 @@ void ffPrintNetwork(FFinstance* instance) { if(instance->config.network.key.length == 0) { - ffStrbufSetF(&key, "%s (%s)", FF_NETWORK_MODULE_NAME, network->type.chars); + if (network->type.length > 0) + ffStrbufSetF(&key, "%s (%s)", FF_NETWORK_MODULE_NAME, network->type.chars); + else + ffStrbufSetS(&key, FF_NETWORK_MODULE_NAME); } else { @@ -42,12 +45,16 @@ void ffPrintNetwork(FFinstance* instance) else { ffPrintFormatString(instance, key.chars, 0, NULL, &instance->config.network.outputFormat, FF_NETWORK_NUM_FORMAT_ARGS, (FFformatarg[]){ - {FF_FORMAT_ARG_TYPE_STRING, network->on ? "ON" : "OFF"}, + {FF_FORMAT_ARG_TYPE_STRING, network->up ? "UP" : "DOWN"}, {FF_FORMAT_ARG_TYPE_STRBUF, &network->type}, {FF_FORMAT_ARG_TYPE_STRBUF, &network->name}, {FF_FORMAT_ARG_TYPE_STRBUF, &network->address}, {FF_FORMAT_ARG_TYPE_INT, &network->mtu}, }); } + + ffStrbufDestroy(&network->type); + ffStrbufDestroy(&network->name); + ffStrbufDestroy(&network->address); } }