diff options
Diffstat (limited to 'src/ui.c')
-rw-r--r-- | src/ui.c | 34 |
1 files changed, 33 insertions, 1 deletions
@@ -9,6 +9,8 @@ #include <string.h> /* memcmp, str* */ #include <libipset/linux_ip_set.h> /* IPSET_CMD_* */ +#include <libipset/icmp.h> /* id_to_icmp */ +#include <libipset/icmpv6.h> /* id_to_icmpv6 */ #include <libipset/types.h> /* IPSET_*_ARG */ #include <libipset/session.h> /* ipset_envopt_parse */ #include <libipset/parse.h> /* ipset_parse_family */ @@ -141,7 +143,7 @@ ipset_match_cmd(const char *arg, const char * const name[]) if (len > strlen(name[0]) || !len) return false; - else if (memcmp(arg, name[0], len) == 0) + else if (strcmp(arg, name[0]) == 0) return true; else if (len != 1) return false; @@ -242,3 +244,33 @@ ipset_shift_argv(int *argc, char *argv[], int from) return; } +/** + * ipset_port_usage - prints the usage for the port parameter + * + * Print the usage for the port parameter to stdout. + */ +void +ipset_port_usage(void) +{ + int i; + const char *name; + + printf(" [PROTO:]PORT is a valid pattern of the following:\n" + " PORTNAME port name from /etc/services\n" + " PORTNUMBER port number identifier\n" + " tcp|udp:PORTNAME|PORTNUMBER\n" + " icmp:CODENAME supported ICMP codename\n" + " icmp:TYPE/CODE ICMP type/code value\n" + " icmpv6:CODENAME supported ICMPv6 codename\n" + " icmpv6:TYPE/CODE ICMPv6 type/code value\n" + " PROTO:0 all other protocols\n\n"); + + printf(" Supported ICMP codenames:\n"); + i = 0; + while ((name = id_to_icmp(i++)) != NULL) + printf(" %s\n", name); + printf(" Supported ICMPv6 codenames:\n"); + i = 0; + while ((name = id_to_icmpv6(i++)) != NULL) + printf(" %s\n", name); +} |