Blame bootstrap_ver/extensions/libxt_icmp.h

Packit Service dd8e2b
struct xt_icmp_names {
Packit Service dd8e2b
	const char *name;
Packit Service dd8e2b
	uint8_t type;
Packit Service dd8e2b
	uint8_t code_min, code_max;
Packit Service dd8e2b
};
Packit Service dd8e2b
Packit Service dd8e2b
static void xt_print_icmp_types(const struct xt_icmp_names *icmp_codes,
Packit Service dd8e2b
				unsigned int n_codes)
Packit Service dd8e2b
{
Packit Service dd8e2b
	unsigned int i;
Packit Service dd8e2b
Packit Service dd8e2b
	for (i = 0; i < n_codes; ++i) {
Packit Service dd8e2b
		if (i && icmp_codes[i].type == icmp_codes[i-1].type) {
Packit Service dd8e2b
			if (icmp_codes[i].code_min == icmp_codes[i-1].code_min
Packit Service dd8e2b
			    && (icmp_codes[i].code_max
Packit Service dd8e2b
				== icmp_codes[i-1].code_max))
Packit Service dd8e2b
				printf(" (%s)", icmp_codes[i].name);
Packit Service dd8e2b
			else
Packit Service dd8e2b
				printf("\n   %s", icmp_codes[i].name);
Packit Service dd8e2b
		}
Packit Service dd8e2b
		else
Packit Service dd8e2b
			printf("\n%s", icmp_codes[i].name);
Packit Service dd8e2b
	}
Packit Service dd8e2b
	printf("\n");
Packit Service dd8e2b
}