MCPcopy Create free account
hub / github.com/F-Stack/f-stack / FindOriginalAddress

Function FindOriginalAddress

freebsd/netinet/libalias/alias_db.c:1666–1696  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1664}
1665
1666struct in_addr
1667FindOriginalAddress(struct libalias *la, struct in_addr alias_addr)
1668{
1669 struct alias_link *lnk;
1670
1671 LIBALIAS_LOCK_ASSERT(la);
1672 lnk = FindLinkIn(la, la->nullAddress, alias_addr,
1673 0, 0, LINK_ADDR, 0);
1674 if (lnk == NULL) {
1675 la->newDefaultLink = 1;
1676 if (la->targetAddress.s_addr == INADDR_ANY)
1677 return (alias_addr);
1678 else if (la->targetAddress.s_addr == INADDR_NONE)
1679 return (la->aliasAddress.s_addr != INADDR_ANY) ?
1680 la->aliasAddress : alias_addr;
1681 else
1682 return (la->targetAddress);
1683 } else {
1684 if (lnk->server != NULL) { /* LSNAT link */
1685 struct in_addr src_addr;
1686
1687 src_addr = lnk->server->addr;
1688 lnk->server = lnk->server->next;
1689 return (src_addr);
1690 } else if (lnk->src_addr.s_addr == INADDR_ANY)
1691 return (la->aliasAddress.s_addr != INADDR_ANY) ?
1692 la->aliasAddress : alias_addr;
1693 else
1694 return (lnk->src_addr);
1695 }
1696}
1697
1698struct in_addr
1699FindAliasAddress(struct libalias *la, struct in_addr original_addr)

Callers 4

FindIcmpInFunction · 0.85
FindProtoInFunction · 0.85
FindUdpTcpInFunction · 0.85
FindSctpRedirectAddressFunction · 0.85

Calls 1

FindLinkInFunction · 0.85

Tested by

no test coverage detected