Changeset View
Changeset View
Standalone View
Standalone View
sbin/ipfw/tables.c
Show First 20 Lines • Show All 1,496 Lines • ▼ Show 20 Lines | tentry_fill_value(ipfw_obj_header *oh, ipfw_obj_tentry *tent, char *arg, | ||||
/* | /* | ||||
* Shorthands: handle single value if vmask consists | * Shorthands: handle single value if vmask consists | ||||
* of numbers only. e.g.: | * of numbers only. e.g.: | ||||
* vmask = "fib,skipto" -> treat input "1" as "1,1" | * vmask = "fib,skipto" -> treat input "1" as "1,1" | ||||
*/ | */ | ||||
n = arg; | n = arg; | ||||
etype = NULL; | etype = NULL; | ||||
for (i = 1; i < (1 << 31); i *= 2) { | for (i = 1; i < (1U << 31); i *= 2) { | ||||
if ((flag = (vmask & i)) == 0) | if ((flag = (vmask & i)) == 0) | ||||
continue; | continue; | ||||
vmask &= ~flag; | vmask &= ~flag; | ||||
if ((comma = strchr(n, ',')) != NULL) | if ((comma = strchr(n, ',')) != NULL) | ||||
*comma = '\0'; | *comma = '\0'; | ||||
switch (flag) { | switch (flag) { | ||||
▲ Show 20 Lines • Show All 237 Lines • ▼ Show 20 Lines | if (vmask == IPFW_VTYPE_LEGACY) { | ||||
if (print_ip != 0) { | if (print_ip != 0) { | ||||
flag = htonl(v->tag); | flag = htonl(v->tag); | ||||
inet_ntop(AF_INET, &flag, buf, sz); | inet_ntop(AF_INET, &flag, buf, sz); | ||||
} else | } else | ||||
snprintf(buf, sz, "%u", v->tag); | snprintf(buf, sz, "%u", v->tag); | ||||
return; | return; | ||||
} | } | ||||
for (i = 1; i < (1 << 31); i *= 2) { | for (i = 1; i < (1U << 31); i *= 2) { | ||||
if ((flag = (vmask & i)) == 0) | if ((flag = (vmask & i)) == 0) | ||||
continue; | continue; | ||||
l = 0; | l = 0; | ||||
switch (flag) { | switch (flag) { | ||||
case IPFW_VTYPE_TAG: | case IPFW_VTYPE_TAG: | ||||
l = snprintf(buf, sz, "%u,", v->tag); | l = snprintf(buf, sz, "%u,", v->tag); | ||||
break; | break; | ||||
▲ Show 20 Lines • Show All 263 Lines • Show Last 20 Lines |