Blame extensions/libxt_icmp.h

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