mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-27 03:11:52 +01:00
Make ipfw internal olist
output more user friendly.
Print object type as string for known types. Obtained from: Yandex LLC Sponsored by: Yandex LLC
This commit is contained in:
parent
f41492b00f
commit
825f02a9ed
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=300045
@ -5131,11 +5131,35 @@ static struct _s_x intcmds[] = {
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
static struct _s_x otypes[] = {
|
||||
{ "EACTION", IPFW_TLV_EACTION },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
static const char*
|
||||
lookup_eaction_name(ipfw_obj_ntlv *ntlv, int cnt, uint16_t type)
|
||||
{
|
||||
const char *name;
|
||||
int i;
|
||||
|
||||
name = NULL;
|
||||
for (i = 0; i < cnt; i++) {
|
||||
if (ntlv[i].head.type != IPFW_TLV_EACTION)
|
||||
continue;
|
||||
if (IPFW_TLV_EACTION_NAME(ntlv[i].idx) != type)
|
||||
continue;
|
||||
name = ntlv[i].name;
|
||||
break;
|
||||
}
|
||||
return (name);
|
||||
}
|
||||
|
||||
static void
|
||||
ipfw_list_objects(int ac, char *av[])
|
||||
{
|
||||
ipfw_obj_lheader req, *olh;
|
||||
ipfw_obj_ntlv *ntlv;
|
||||
const char *name;
|
||||
size_t sz;
|
||||
int i;
|
||||
|
||||
@ -5161,8 +5185,17 @@ ipfw_list_objects(int ac, char *av[])
|
||||
printf("There are no objects\n");
|
||||
ntlv = (ipfw_obj_ntlv *)(olh + 1);
|
||||
for (i = 0; i < olh->count; i++) {
|
||||
printf(" kidx: %4d\ttype: %6d\tname: %s\n", ntlv->idx,
|
||||
ntlv->head.type, ntlv->name);
|
||||
name = match_value(otypes, ntlv->head.type);
|
||||
if (name == NULL)
|
||||
name = lookup_eaction_name(
|
||||
(ipfw_obj_ntlv *)(olh + 1), olh->count,
|
||||
ntlv->head.type);
|
||||
if (name == NULL)
|
||||
printf(" kidx: %4d\ttype: %10d\tname: %s\n",
|
||||
ntlv->idx, ntlv->head.type, ntlv->name);
|
||||
else
|
||||
printf(" kidx: %4d\ttype: %10s\tname: %s\n",
|
||||
ntlv->idx, name, ntlv->name);
|
||||
ntlv++;
|
||||
}
|
||||
free(olh);
|
||||
|
Loading…
Reference in New Issue
Block a user