diff options
| author | Ruslan Ermilov <ru@FreeBSD.org> | 2003-06-01 22:49:59 +0000 |
|---|---|---|
| committer | Ruslan Ermilov <ru@FreeBSD.org> | 2003-06-01 22:49:59 +0000 |
| commit | f1a529f3da97dddae7572c8d31d7e912422f1657 (patch) | |
| tree | cf06bfc7dad89a44777d0f9f970f360a4b3954a4 /sys/netinet/libalias/alias_db.c | |
| parent | ebe5d44d5a9d9dfa1323f42b460397074654a1bf (diff) | |
Notes
Diffstat (limited to 'sys/netinet/libalias/alias_db.c')
| -rw-r--r-- | sys/netinet/libalias/alias_db.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/netinet/libalias/alias_db.c b/sys/netinet/libalias/alias_db.c index e3aab97dd0f6..1b59b0572b89 100644 --- a/sys/netinet/libalias/alias_db.c +++ b/sys/netinet/libalias/alias_db.c @@ -1239,7 +1239,7 @@ FindLinkOut(struct in_addr src_addr, specified as using the default source address (i.e. device interface address) without knowing in advance what that address is. */ - if (aliasAddress.s_addr != 0 && + if (aliasAddress.s_addr != INADDR_ANY && src_addr.s_addr == aliasAddress.s_addr) { link = _FindLinkOut(nullAddress, dst_addr, src_port, dst_port, @@ -1395,7 +1395,7 @@ FindLinkIn(struct in_addr dst_addr, specified as using the default aliasing address (i.e. device interface address) without knowing in advance what that address is. */ - if (aliasAddress.s_addr != 0 && + if (aliasAddress.s_addr != INADDR_ANY && alias_addr.s_addr == aliasAddress.s_addr) { link = _FindLinkIn(dst_addr, nullAddress, dst_port, alias_port, @@ -1805,7 +1805,8 @@ FindOriginalAddress(struct in_addr alias_addr) if (targetAddress.s_addr == INADDR_ANY) return alias_addr; else if (targetAddress.s_addr == INADDR_NONE) - return aliasAddress; + return (aliasAddress.s_addr != INADDR_ANY) ? + aliasAddress : alias_addr; else return targetAddress; } @@ -1818,7 +1819,8 @@ FindOriginalAddress(struct in_addr alias_addr) link->server = link->server->next; return (src_addr); } else if (link->src_addr.s_addr == INADDR_ANY) - return aliasAddress; + return (aliasAddress.s_addr != INADDR_ANY) ? + aliasAddress : alias_addr; else return link->src_addr; } @@ -1834,12 +1836,14 @@ FindAliasAddress(struct in_addr original_addr) 0, 0, LINK_ADDR, 0); if (link == NULL) { - return aliasAddress; + return (aliasAddress.s_addr != INADDR_ANY) ? + aliasAddress : original_addr; } else { if (link->alias_addr.s_addr == INADDR_ANY) - return aliasAddress; + return (aliasAddress.s_addr != INADDR_ANY) ? + aliasAddress : original_addr; else return link->alias_addr; } |
