static void print(const struct ebt_u_entry *entry, const struct ebt_entry_match *match) { struct ebt_ip_info *ipinfo = (struct ebt_ip_info *)match->data; int j; if (ipinfo->bitmask & EBT_IP_SOURCE) { printf("--ip-src "); if (ipinfo->invflags & EBT_IP_SOURCE) printf("! "); for (j = 0; j < 4; j++) printf("%d%s",((unsigned char *)&ipinfo->saddr)[j], (j == 3) ? "" : "."); printf("%s ", ebt_mask_to_dotted(ipinfo->smsk)); } if (ipinfo->bitmask & EBT_IP_DEST) { printf("--ip-dst "); if (ipinfo->invflags & EBT_IP_DEST) printf("! "); for (j = 0; j < 4; j++) printf("%d%s", ((unsigned char *)&ipinfo->daddr)[j], (j == 3) ? "" : "."); printf("%s ", ebt_mask_to_dotted(ipinfo->dmsk)); } if (ipinfo->bitmask & EBT_IP_TOS) { printf("--ip-tos "); if (ipinfo->invflags & EBT_IP_TOS) printf("! "); printf("0x%02X ", ipinfo->tos); } if (ipinfo->bitmask & EBT_IP_PROTO) { struct protoent *pe; printf("--ip-proto "); if (ipinfo->invflags & EBT_IP_PROTO) printf("! "); pe = getprotobynumber(ipinfo->protocol); if (pe == NULL) { printf("%d ", ipinfo->protocol); } else { printf("%s ", pe->p_name); } } if (ipinfo->bitmask & EBT_IP_SPORT) { printf("--ip-sport "); if (ipinfo->invflags & EBT_IP_SPORT) printf("! "); print_port_range(ipinfo->sport); } if (ipinfo->bitmask & EBT_IP_DPORT) { printf("--ip-dport "); if (ipinfo->invflags & EBT_IP_DPORT) printf("! "); print_port_range(ipinfo->dport); } }
static void brip_print(const void *ip, const struct xt_entry_match *match, int numeric) { struct ebt_ip_info *info = (struct ebt_ip_info *)match->data; struct in_addr *addrp, *maskp; if (info->bitmask & EBT_IP_SOURCE) { printf("--ip-src "); if (info->invflags & EBT_IP_SOURCE) printf("! "); addrp = (struct in_addr *)&info->saddr; maskp = (struct in_addr *)&info->smsk; printf("%s%s ", xtables_ipaddr_to_numeric(addrp), xtables_ipmask_to_numeric(maskp)); } if (info->bitmask & EBT_IP_DEST) { printf("--ip-dst "); if (info->invflags & EBT_IP_DEST) printf("! "); addrp = (struct in_addr *)&info->daddr; maskp = (struct in_addr *)&info->dmsk; printf("%s%s ", xtables_ipaddr_to_numeric(addrp), xtables_ipmask_to_numeric(maskp)); } if (info->bitmask & EBT_IP_TOS) { printf("--ip-tos "); if (info->invflags & EBT_IP_TOS) printf("! "); printf("0x%02X ", info->tos); } if (info->bitmask & EBT_IP_PROTO) { struct protoent *pe; printf("--ip-proto "); if (info->invflags & EBT_IP_PROTO) printf("! "); pe = getprotobynumber(info->protocol); if (pe == NULL) { printf("%d ", info->protocol); } else { printf("%s ", pe->p_name); } } if (info->bitmask & EBT_IP_SPORT) { printf("--ip-sport "); if (info->invflags & EBT_IP_SPORT) printf("! "); print_port_range(info->sport); } if (info->bitmask & EBT_IP_DPORT) { printf("--ip-dport "); if (info->invflags & EBT_IP_DPORT) printf("! "); print_port_range(info->dport); } }
static void print(const struct ebt_u_entry *entry, const struct ebt_entry_match *match) { struct ebt_ip6_info *ipinfo = (struct ebt_ip6_info *)match->data; if (ipinfo->bitmask & EBT_IP6_SOURCE) { printf("--ip6-src "); if (ipinfo->invflags & EBT_IP6_SOURCE) printf("! "); printf("%s", ebt_ip6_to_numeric(&ipinfo->saddr)); printf("/%s ", ebt_ip6_to_numeric(&ipinfo->smsk)); } if (ipinfo->bitmask & EBT_IP6_DEST) { printf("--ip6-dst "); if (ipinfo->invflags & EBT_IP6_DEST) printf("! "); printf("%s", ebt_ip6_to_numeric(&ipinfo->daddr)); printf("/%s ", ebt_ip6_to_numeric(&ipinfo->dmsk)); } if (ipinfo->bitmask & EBT_IP6_TCLASS) { printf("--ip6-tclass "); if (ipinfo->invflags & EBT_IP6_TCLASS) printf("! "); printf("0x%02X ", ipinfo->tclass); } if (ipinfo->bitmask & EBT_IP6_PROTO) { struct protoent *pe; printf("--ip6-proto "); if (ipinfo->invflags & EBT_IP6_PROTO) printf("! "); pe = getprotobynumber(ipinfo->protocol); if (pe == NULL) { printf("%d ", ipinfo->protocol); } else { printf("%s ", pe->p_name); } } if (ipinfo->bitmask & EBT_IP6_SPORT) { printf("--ip6-sport "); if (ipinfo->invflags & EBT_IP6_SPORT) printf("! "); print_port_range(ipinfo->sport); } if (ipinfo->bitmask & EBT_IP6_DPORT) { printf("--ip6-dport "); if (ipinfo->invflags & EBT_IP6_DPORT) printf("! "); print_port_range(ipinfo->dport); } }