| 1696 | } |
| 1697 | |
| 1698 | struct in_addr |
| 1699 | FindAliasAddress(struct libalias *la, struct in_addr original_addr) |
| 1700 | { |
| 1701 | struct alias_link *lnk; |
| 1702 | |
| 1703 | LIBALIAS_LOCK_ASSERT(la); |
| 1704 | lnk = FindLinkOut(la, original_addr, la->nullAddress, |
| 1705 | 0, 0, LINK_ADDR, 0); |
| 1706 | if (lnk == NULL) { |
| 1707 | return (la->aliasAddress.s_addr != INADDR_ANY) ? |
| 1708 | la->aliasAddress : original_addr; |
| 1709 | } else { |
| 1710 | if (lnk->alias_addr.s_addr == INADDR_ANY) |
| 1711 | return (la->aliasAddress.s_addr != INADDR_ANY) ? |
| 1712 | la->aliasAddress : original_addr; |
| 1713 | else |
| 1714 | return (lnk->alias_addr); |
| 1715 | } |
| 1716 | } |
| 1717 | |
| 1718 | /* External routines for getting or changing link data |
| 1719 | (external to alias_db.c, but internal to alias*.c) |
no test coverage detected