aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--conf.c8
-rw-r--r--udp.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/conf.c b/conf.c
index c6d06ea..3bf7301 100644
--- a/conf.c
+++ b/conf.c
@@ -389,7 +389,7 @@ static void get_dns(struct ctx *c)
dns4 - &c->ip4.dns[0] < ARRAY_SIZE(c->ip4.dns) - 1 &&
inet_pton(AF_INET, p + 1, dns4)) {
/* We can only access local addresses via the gw redirect */
- if (ntohl(*dns4) >> IN_CLASSA_NSHIFT == IN_LOOPBACKNET) {
+ if (IPV4_IS_LOOPBACK(ntohl(*dns4))) {
if (c->no_map_gw) {
*dns4 = 0;
continue;
@@ -1190,7 +1190,7 @@ void conf(struct ctx *c, int argc, char **argv)
inet_pton(AF_INET, optarg, &c->ip4.dns_fwd) &&
c->ip4.dns_fwd != htonl(INADDR_ANY) &&
c->ip4.dns_fwd != htonl(INADDR_BROADCAST) &&
- c->ip4.dns_fwd != htonl(INADDR_LOOPBACK))
+ !IPV4_IS_LOOPBACK(ntohl(c->ip4.dns_fwd)))
break;
err("Invalid DNS forwarding address: %s", optarg);
@@ -1388,7 +1388,7 @@ void conf(struct ctx *c, int argc, char **argv)
inet_pton(AF_INET, optarg, &c->ip4.addr) &&
c->ip4.addr != htonl(INADDR_ANY) &&
c->ip4.addr != htonl(INADDR_BROADCAST) &&
- c->ip4.addr != htonl(INADDR_LOOPBACK) &&
+ !IPV4_IS_LOOPBACK(ntohl(c->ip4.addr)) &&
!IN_MULTICAST(ntohl(c->ip4.addr)))
break;
@@ -1424,7 +1424,7 @@ void conf(struct ctx *c, int argc, char **argv)
inet_pton(AF_INET, optarg, &c->ip4.gw) &&
c->ip4.gw != htonl(INADDR_ANY) &&
c->ip4.gw != htonl(INADDR_BROADCAST) &&
- c->ip4.gw != htonl(INADDR_LOOPBACK))
+ !IPV4_IS_LOOPBACK(ntohl(c->ip4.gw)))
break;
err("Invalid gateway address: %s", optarg);
diff --git a/udp.c b/udp.c
index 4b201d3..7ce533d 100644
--- a/udp.c
+++ b/udp.c
@@ -680,7 +680,7 @@ static void udp_sock_fill_data_v4(const struct ctx *c, int n,
src = ntohl(b->s_in.sin_addr.s_addr);
src_port = ntohs(b->s_in.sin_port);
- if (src >> IN_CLASSA_NSHIFT == IN_LOOPBACKNET ||
+ if (IPV4_IS_LOOPBACK(src) ||
src == INADDR_ANY || src == ntohl(c->ip4.addr_seen)) {
b->iph.saddr = c->ip4.gw;
udp_tap_map[V4][src_port].ts = now->tv_sec;