summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/libalias/alias_db.c26
-rw-r--r--sys/netinet/libalias/libalias.39
2 files changed, 22 insertions, 13 deletions
diff --git a/sys/netinet/libalias/alias_db.c b/sys/netinet/libalias/alias_db.c
index 296f0d1..b0a2642 100644
--- a/sys/netinet/libalias/alias_db.c
+++ b/sys/netinet/libalias/alias_db.c
@@ -863,7 +863,7 @@ AddLink(struct in_addr src_addr,
link->src_addr = src_addr;
link->dst_addr = dst_addr;
link->alias_addr = alias_addr;
- link->proxy_addr.s_addr = 0;
+ link->proxy_addr.s_addr = INADDR_ANY;
link->src_port = src_port;
link->dst_port = dst_port;
link->proxy_port = 0;
@@ -893,7 +893,7 @@ AddLink(struct in_addr src_addr,
}
/* Determine alias flags */
- if (dst_addr.s_addr == 0)
+ if (dst_addr.s_addr == INADDR_ANY)
link->flags |= LINK_UNKNOWN_DEST_ADDR;
if (dst_port == 0)
link->flags |= LINK_UNKNOWN_DEST_PORT;
@@ -1127,7 +1127,7 @@ _FindLinkIn(struct in_addr dst_addr,
loop will have to know about this. */
flags_in = 0;
- if (dst_addr.s_addr == 0)
+ if (dst_addr.s_addr == INADDR_ANY)
flags_in |= LINK_UNKNOWN_DEST_ADDR;
if (dst_port == 0)
flags_in |= LINK_UNKNOWN_DEST_PORT;
@@ -1455,14 +1455,16 @@ FindOriginalAddress(struct in_addr alias_addr)
if (link == NULL)
{
newDefaultLink = 1;
- if (targetAddress.s_addr != 0)
- return targetAddress;
- else
+ if (targetAddress.s_addr == INADDR_ANY)
+ return alias_addr;
+ else if (targetAddress.s_addr == INADDR_NONE)
return aliasAddress;
+ else
+ return targetAddress;
}
else
{
- if (link->src_addr.s_addr == 0)
+ if (link->src_addr.s_addr == INADDR_ANY)
return aliasAddress;
else
return link->src_addr;
@@ -1483,7 +1485,7 @@ FindAliasAddress(struct in_addr original_addr)
}
else
{
- if (link->alias_addr.s_addr == 0)
+ if (link->alias_addr.s_addr == INADDR_ANY)
return aliasAddress;
else
return link->alias_addr;
@@ -1601,7 +1603,7 @@ GetStateOut(struct alias_link *link)
struct in_addr
GetOriginalAddress(struct alias_link *link)
{
- if (link->src_addr.s_addr == 0)
+ if (link->src_addr.s_addr == INADDR_ANY)
return aliasAddress;
else
return(link->src_addr);
@@ -1618,7 +1620,7 @@ GetDestAddress(struct alias_link *link)
struct in_addr
GetAliasAddress(struct alias_link *link)
{
- if (link->alias_addr.s_addr == 0)
+ if (link->alias_addr.s_addr == INADDR_ANY)
return aliasAddress;
else
return link->alias_addr;
@@ -2139,8 +2141,8 @@ PacketAliasInit(void)
deleteAllLinks = 0;
}
- aliasAddress.s_addr = 0;
- targetAddress.s_addr = 0;
+ aliasAddress.s_addr = INADDR_ANY;
+ targetAddress.s_addr = INADDR_NONE;
icmpLinkCount = 0;
udpLinkCount = 0;
diff --git a/sys/netinet/libalias/libalias.3 b/sys/netinet/libalias/libalias.3
index df1440c..66acc92 100644
--- a/sys/netinet/libalias/libalias.3
+++ b/sys/netinet/libalias/libalias.3
@@ -701,9 +701,16 @@ host machine, it will be sent to the address
indicated by a call to PacketAliasSetTarget().
If this function is not called, or is called
-with a zero address argument, then all new
+with a INADDR_NONE address argument, then all new
incoming packets go to the address set by
PacketAliasSetAddress.
+
+If this function is called with a INADDR_ANY address
+argument, then all new incoming packets go to the
+address specified in the packet.
+This allows external machines to talk directly to
+internal machines if they can route packets to the
+machine in question.
.Ss 6.2 PacketAliasCheckNewLink()
.Ft int
OpenPOWER on IntegriCloud