From edd0ad6de4fcfd0091312add44b783b605984406 Mon Sep 17 00:00:00 2001 From: "/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=kadlec/emailAddress=kadlec@netfilter.org" Date: Fri, 30 Sep 2005 16:45:42 +0000 Subject: 2.2.4 released, see fixes in pom-ng/set --- ipset.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) (limited to 'ipset.c') diff --git a/ipset.c b/ipset.c index a1697f3..1c77358 100644 --- a/ipset.c +++ b/ipset.c @@ -483,16 +483,15 @@ static char *ip_tonetwork(const struct in_addr *addr) char *ip_tostring(ip_set_ip_t ip, unsigned options) { struct in_addr addr; - char *name; - addr.s_addr = htonl(ip); if (!(options & OPT_NUMERIC)) { + char *name; if ((name = ip_tohost(&addr)) != NULL || (name = ip_tonetwork(&addr)) != NULL) return name; } - + return inet_ntoa(addr); } @@ -511,9 +510,6 @@ void parse_ip(const char *str, ip_set_ip_t * ip) if (inet_aton(str, &addr) != 0) { *ip = ntohl(addr.s_addr); /* We want host byte order */ - if (!*ip) - exit_error(PARAMETER_PROBLEM, - "Zero valued IP address `%s' specified", str); return; } @@ -530,10 +526,6 @@ void parse_ip(const char *str, ip_set_ip_t * ip) "Please specify one.", str); *ip = ntohl(((struct in_addr *) host->h_addr_list[0])->s_addr); - if (!*ip) - exit_error(PARAMETER_PROBLEM, - "Zero valued IP address `%s' specified", - str); return; } @@ -563,7 +555,7 @@ void parse_mask(const char *str, ip_set_ip_t * mask) DP("bits: %d", bits); - *mask = 0xFFFFFFFF << (32 - bits); + *mask = bits != 0 ? 0xFFFFFFFF << (32 - bits) : 0L; } /* Combines parse_ip and parse_mask */ @@ -589,13 +581,13 @@ parse_ipandmask(const char *str, ip_set_ip_t * ip, ip_set_ip_t * mask) parse_ip(buf, ip); DP("%s ip: %08X (%s) mask: %08X", - str, *ip, ip_tostring(*ip, 0), *mask); + str, *ip, ip_tostring_numeric(*ip), *mask); /* Apply the netmask */ *ip &= *mask; DP("%s ip: %08X (%s) mask: %08X", - str, *ip, ip_tostring(*ip, 0), *mask); + str, *ip, ip_tostring_numeric(*ip), *mask); } /* Return a string representation of a port @@ -654,11 +646,7 @@ void parse_port(const char *str, ip_set_ip_t *port) if ((string_to_number(str, 0, 65535, port) != 0) && (string_to_port(str, port) != 0)) exit_error(PARAMETER_PROBLEM, - "Invalid TCP port `%s' specified", str); - - if (!*port) - exit_error(PARAMETER_PROBLEM, - "Zero valued port `%s' specified", str); + "Invalid TCP port `%s' specified", str); } /* -- cgit v1.2.3