summaryrefslogtreecommitdiffstats
path: root/sys/netinet/libalias
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>2000-03-31 20:36:29 +0000
committerbrian <brian@FreeBSD.org>2000-03-31 20:36:29 +0000
commit67534b228aa77f848b6a5635e1164846fb38fc9e (patch)
tree1c2a208f8f28ff2637591b4199a64eb87e392f6e /sys/netinet/libalias
parent34ac70fb1ff46ebc0730cdcacb2438aabe91bcd2 (diff)
downloadFreeBSD-src-67534b228aa77f848b6a5635e1164846fb38fc9e.zip
FreeBSD-src-67534b228aa77f848b6a5635e1164846fb38fc9e.tar.gz
Allow PacketAliasSetTarget() to be passed the following:
INADDR_NONE: Incoming packets go to the alias address (the default) INADDR_ANY: Incoming packets are not NAT'd (direct access to the internal network from outside) anything else: Incoming packets go to the specified address Change a few inaddr::s_addr == 0 to inaddr::s_addr == INADDR_ANY while I'm there.
Diffstat (limited to 'sys/netinet/libalias')
-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