LocalIP: add option --localip-default-route-only

This commit is contained in:
李通洲
2023-07-17 18:32:13 +08:00
parent 1e57c4c088
commit f34d51b911
5 changed files with 33 additions and 2 deletions
+25 -2
View File
@@ -80,10 +80,17 @@ void ffPrintLocalIp(FFLocalIpOptions* options)
{
ffPrintLogoAndKey(FF_LOCALIP_DISPLAY_NAME, 0, &options->moduleArgs.key, &options->moduleArgs.keyColor);
bool flag = false;
FF_LIST_FOR_EACH(FFLocalIpResult, ip, results)
{
if ((void*) ip != (void*) results.data)
if (options->defaultRouteOnly && !ip->defaultRoute)
continue;
if (flag)
fputs(" - ", stdout);
else
flag = true;
printIp(ip, false);
}
putchar('\n');
@@ -94,11 +101,14 @@ void ffPrintLocalIp(FFLocalIpOptions* options)
FF_LIST_FOR_EACH(FFLocalIpResult, ip, results)
{
if (options->defaultRouteOnly && !ip->defaultRoute)
continue;
formatKey(options, ip, &key);
if(options->moduleArgs.outputFormat.length == 0)
{
ffPrintLogoAndKey(key.chars, 0, NULL, &options->moduleArgs.keyColor);
printIp(ip, results.length > 1);
printIp(ip, !options->defaultRouteOnly);
putchar('\n');
}
else
@@ -130,6 +140,7 @@ void ffInitLocalIpOptions(FFLocalIpOptions* options)
options->showType = FF_LOCALIP_TYPE_IPV4_BIT;
ffStrbufInit(&options->namePrefix);
options->defaultRouteOnly = false;
}
bool ffParseLocalIpCommandOptions(FFLocalIpOptions* options, const char* key, const char* value)
@@ -190,6 +201,12 @@ bool ffParseLocalIpCommandOptions(FFLocalIpOptions* options, const char* key, co
return true;
}
if (ffStrEqualsIgnCase(subKey, "default-route-only"))
{
options->defaultRouteOnly = ffOptionParseBoolean(value);
return true;
}
return false;
}
@@ -268,6 +285,12 @@ void ffParseLocalIpJsonObject(yyjson_val* module)
continue;
}
if (ffStrEqualsIgnCase(key, "defaultRouteOnly"))
{
options.defaultRouteOnly = yyjson_get_bool(val);
continue;
}
ffPrintError(FF_LOCALIP_MODULE_NAME, 0, &options.moduleArgs, "Unknown JSON key %s", key);
}
}
+1
View File
@@ -22,4 +22,5 @@ typedef struct FFLocalIpOptions
FFLocalIpType showType;
FFstrbuf namePrefix;
bool defaultRouteOnly;
} FFLocalIpOptions;