Lines Matching refs:lnk
205 GetNewPort(struct libalias *la, struct alias_link *lnk, int alias_port_param) in GetNewPort() argument
225 lnk->alias_port = (u_short) alias_port_param; in GetNewPort()
245 ? lnk->src_port in GetNewPort()
253 grp = StartPointIn(la, lnk->alias_addr, port, lnk->link_type, 0); in GetNewPort()
258 if (lnk->dst_addr.s_addr == search_result->dst_addr.s_addr && in GetNewPort()
259 lnk->dst_port == search_result->dst_port) in GetNewPort()
276 (lnk->flags & LINK_PARTIALLY_SPECIFIED) && in GetNewPort()
277 ((lnk->link_type == LINK_TCP) || in GetNewPort()
278 (lnk->link_type == LINK_UDP))) { in GetNewPort()
279 if (!GetSocket(la, port, &lnk->sockfd, lnk->link_type)) { in GetNewPort()
284 lnk->alias_port = port; in GetNewPort()
423 struct alias_link *lnk, *lnk_tmp; in CleanupAliasData() local
428 TAILQ_FOREACH_SAFE(lnk, &la->checkExpire, expire.list, lnk_tmp) in CleanupAliasData()
429 DeleteLink(&lnk, deletePermanent); in CleanupAliasData()
432 CleanupLink(struct libalias *la, struct alias_link **lnk, int deletePermanent) in CleanupLink() argument
436 if (lnk == NULL || *lnk == NULL) in CleanupLink()
439 if (LibAliasTime - (*lnk)->timestamp > (*lnk)->expire.time) { in CleanupLink()
440 DeleteLink(lnk, deletePermanent); in CleanupLink()
441 if ((*lnk) == NULL) in CleanupLink()
446 TAILQ_REMOVE(&la->checkExpire, (*lnk), expire.list); in CleanupLink()
447 TAILQ_INSERT_TAIL(&la->checkExpire, (*lnk), expire.list); in CleanupLink()
451 UseLink(struct libalias *la, struct alias_link *lnk) in UseLink() argument
453 CleanupLink(la, &lnk, 0); in UseLink()
454 if (lnk != NULL) in UseLink()
455 lnk->timestamp = LibAliasTime; in UseLink()
456 return (lnk); in UseLink()
462 struct alias_link *lnk = *plnk; in DeleteLink() local
463 struct libalias *la = lnk->la; in DeleteLink()
467 if (!deletePermanent && (lnk->flags & LINK_PERMANENT)) in DeleteLink()
472 ClearFWHole(lnk); in DeleteLink()
475 switch (lnk->link_type) { in DeleteLink()
477 LIST_REMOVE(lnk, pptp.list); in DeleteLink()
483 if (lnk->server != NULL) { in DeleteLink()
486 head = curr = lnk->server; in DeleteLink()
493 SPLAY_REMOVE(splay_out, &la->linkSplayOut, lnk); in DeleteLink()
497 LIST_REMOVE(lnk, all.in); in DeleteLink()
500 grp = StartPointIn(la, lnk->alias_addr, lnk->alias_port, lnk->link_type, 0); in DeleteLink()
512 TAILQ_REMOVE(&la->checkExpire, lnk, expire.list); in DeleteLink()
516 if (lnk->sockfd != -1) { in DeleteLink()
518 close(lnk->sockfd); in DeleteLink()
522 switch (lnk->link_type) { in DeleteLink()
531 free(lnk->data.tcp); in DeleteLink()
541 if (lnk->data.frag_ptr != NULL) in DeleteLink()
542 free(lnk->data.frag_ptr); in DeleteLink()
552 free(lnk); in DeleteLink()
566 struct alias_link *lnk; in AddLink() local
570 lnk = malloc(sizeof(struct alias_link)); in AddLink()
571 if (lnk == NULL) { in AddLink()
579 lnk->la = la; in AddLink()
580 lnk->src_addr = src_addr; in AddLink()
581 lnk->dst_addr = dst_addr; in AddLink()
582 lnk->alias_addr = alias_addr; in AddLink()
583 lnk->proxy_addr.s_addr = INADDR_ANY; in AddLink()
584 lnk->src_port = src_port; in AddLink()
585 lnk->dst_port = dst_port; in AddLink()
586 lnk->proxy_port = 0; in AddLink()
587 lnk->server = NULL; in AddLink()
588 lnk->link_type = link_type; in AddLink()
590 lnk->sockfd = -1; in AddLink()
592 lnk->flags = 0; in AddLink()
593 lnk->pflags = 0; in AddLink()
594 lnk->timestamp = LibAliasTime; in AddLink()
599 lnk->expire.time = ICMP_EXPIRE_TIME; in AddLink()
602 lnk->expire.time = UDP_EXPIRE_TIME; in AddLink()
605 lnk->expire.time = TCP_EXPIRE_INITIAL; in AddLink()
608 lnk->expire.time = FRAGMENT_ID_EXPIRE_TIME; in AddLink()
611 lnk->expire.time = FRAGMENT_PTR_EXPIRE_TIME; in AddLink()
614 lnk->expire.time = PROTO_EXPIRE_TIME; in AddLink()
620 lnk->flags |= LINK_UNKNOWN_DEST_ADDR; in AddLink()
622 lnk->flags |= LINK_UNKNOWN_DEST_PORT; in AddLink()
625 if (GetNewPort(la, lnk, alias_port_param) != 0) { in AddLink()
626 free(lnk); in AddLink()
647 free(lnk); in AddLink()
659 lnk->data.tcp = aux_tcp; in AddLink()
680 LIST_INSERT_HEAD(&la->pptpList, lnk, pptp.list); in AddLink()
685 grp = StartPointIn(la, alias_addr, lnk->alias_port, link_type, 1); in AddLink()
687 free(lnk); in AddLink()
692 SPLAY_INSERT(splay_out, &la->linkSplayOut, lnk); in AddLink()
695 if (lnk->flags & LINK_PARTIALLY_SPECIFIED) in AddLink()
696 LIST_INSERT_HEAD(&grp->partial, lnk, all.in); in AddLink()
698 LIST_INSERT_HEAD(&grp->full, lnk, all.in); in AddLink()
704 TAILQ_INSERT_TAIL(&la->checkExpire, lnk, expire.list); in AddLink()
709 return (lnk); in AddLink()
751 struct alias_link *lnk; in _SearchLinkOut() local
760 lnk = SPLAY_FIND(splay_out, &la->linkSplayOut, &needle); in _SearchLinkOut()
761 return (UseLink(la, lnk)); in _SearchLinkOut()
772 struct alias_link *lnk; in _FindLinkOut() local
775 lnk = _SearchLinkOut(la, src_addr, dst_addr, src_port, dst_port, link_type); in _FindLinkOut()
776 if (lnk != NULL || !replace_partial_links) in _FindLinkOut()
777 return (lnk); in _FindLinkOut()
781 lnk = _SearchLinkOut(la, src_addr, dst_addr, src_port, 0, in _FindLinkOut()
783 if (lnk == NULL) in _FindLinkOut()
784 lnk = _SearchLinkOut(la, src_addr, ANY_ADDR, src_port, in _FindLinkOut()
787 if (lnk == NULL && in _FindLinkOut()
789 lnk = _SearchLinkOut(la, src_addr, ANY_ADDR, src_port, 0, in _FindLinkOut()
792 if (lnk != NULL) { in _FindLinkOut()
793 lnk = ReLink(lnk, in _FindLinkOut()
794 src_addr, dst_addr, lnk->alias_addr, in _FindLinkOut()
795 src_port, dst_port, lnk->alias_port, in _FindLinkOut()
798 return (lnk); in _FindLinkOut()
809 struct alias_link *lnk; in FindLinkOut() local
812 lnk = _FindLinkOut(la, src_addr, dst_addr, src_port, dst_port, in FindLinkOut()
815 if (lnk == NULL) { in FindLinkOut()
824 lnk = _FindLinkOut(la, ANY_ADDR, dst_addr, src_port, dst_port, in FindLinkOut()
828 return (lnk); in FindLinkOut()
841 struct alias_link *lnk; in _FindLinkIn() local
869 LIST_FOREACH(lnk, &grp->full, all.in) { in _FindLinkIn()
870 if (lnk->dst_addr.s_addr == dst_addr.s_addr && in _FindLinkIn()
871 lnk->dst_port == dst_port) { in _FindLinkIn()
874 found = UseLink(la, lnk); in _FindLinkIn()
886 LIST_FOREACH(lnk, &grp->full, all.in) { in _FindLinkIn()
887 if(lnk->dst_addr.s_addr == dst_addr.s_addr) { in _FindLinkIn()
888 lnk_unknown_dst_port = lnk; in _FindLinkIn()
894 LIST_FOREACH(lnk, &grp->full, all.in) { in _FindLinkIn()
895 if(lnk->dst_port == dst_port) { in _FindLinkIn()
896 lnk_unknown_dst_addr = lnk; in _FindLinkIn()
907 LIST_FOREACH(lnk, &grp->partial, all.in) { in _FindLinkIn()
908 int flags = (flags_in | lnk->flags) & LINK_PARTIALLY_SPECIFIED; in _FindLinkIn()
912 lnk_unknown_all = lnk; in _FindLinkIn()
914 lnk->dst_port == dst_port && in _FindLinkIn()
916 lnk_unknown_dst_addr = lnk; in _FindLinkIn()
918 lnk->dst_addr.s_addr == dst_addr.s_addr) { in _FindLinkIn()
919 lnk_unknown_dst_port = lnk; in _FindLinkIn()
925 lnk = (lnk_unknown_dst_port != NULL) ? lnk_unknown_dst_port in _FindLinkIn()
929 if (lnk == NULL || !replace_partial_links) in _FindLinkIn()
930 return (lnk); in _FindLinkIn()
932 if (lnk->server != NULL) { /* LSNAT link */ in _FindLinkIn()
933 src_addr = lnk->server->addr; in _FindLinkIn()
934 src_port = lnk->server->port; in _FindLinkIn()
935 lnk->server = lnk->server->next; in _FindLinkIn()
937 src_addr = lnk->src_addr; in _FindLinkIn()
938 src_port = lnk->src_port; in _FindLinkIn()
942 lnk->src_addr = src_addr; in _FindLinkIn()
943 lnk->src_port = src_port; in _FindLinkIn()
945 lnk = ReLink(lnk, in _FindLinkIn()
950 return (lnk); in _FindLinkIn()
961 struct alias_link *lnk; in FindLinkIn() local
964 lnk = _FindLinkIn(la, dst_addr, alias_addr, dst_port, alias_port, in FindLinkIn()
967 if (lnk == NULL) { in FindLinkIn()
976 lnk = _FindLinkIn(la, dst_addr, ANY_ADDR, dst_port, alias_port, in FindLinkIn()
980 return (lnk); in FindLinkIn()
1005 struct alias_link *lnk; in FindIcmpIn() local
1008 lnk = FindLinkIn(la, dst_addr, alias_addr, in FindIcmpIn()
1011 if (lnk == NULL && create && !(la->packetAliasMode & PKT_ALIAS_DENY_INCOMING)) { in FindIcmpIn()
1015 lnk = AddLink(la, target_addr, dst_addr, alias_addr, in FindIcmpIn()
1019 return (lnk); in FindIcmpIn()
1028 struct alias_link *lnk; in FindIcmpOut() local
1031 lnk = FindLinkOut(la, src_addr, dst_addr, in FindIcmpOut()
1034 if (lnk == NULL && create) { in FindIcmpOut()
1038 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in FindIcmpOut()
1042 return (lnk); in FindIcmpOut()
1050 struct alias_link *lnk; in FindFragmentIn1() local
1053 lnk = FindLinkIn(la, dst_addr, alias_addr, in FindFragmentIn1()
1057 if (lnk == NULL) { in FindFragmentIn1()
1058 lnk = AddLink(la, ANY_ADDR, dst_addr, alias_addr, in FindFragmentIn1()
1062 return (lnk); in FindFragmentIn1()
1101 struct alias_link *lnk; in FindProtoIn() local
1104 lnk = FindLinkIn(la, dst_addr, alias_addr, in FindProtoIn()
1108 if (lnk == NULL && !(la->packetAliasMode & PKT_ALIAS_DENY_INCOMING)) { in FindProtoIn()
1112 lnk = AddLink(la, target_addr, dst_addr, alias_addr, in FindProtoIn()
1116 return (lnk); in FindProtoIn()
1124 struct alias_link *lnk; in FindProtoOut() local
1127 lnk = FindLinkOut(la, src_addr, dst_addr, in FindProtoOut()
1131 if (lnk == NULL) { in FindProtoOut()
1135 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in FindProtoOut()
1139 return (lnk); in FindProtoOut()
1151 struct alias_link *lnk; in FindUdpTcpIn() local
1166 lnk = FindLinkIn(la, dst_addr, alias_addr, in FindUdpTcpIn()
1170 if (lnk == NULL && create && !(la->packetAliasMode & PKT_ALIAS_DENY_INCOMING)) { in FindUdpTcpIn()
1174 lnk = AddLink(la, target_addr, dst_addr, alias_addr, in FindUdpTcpIn()
1178 return (lnk); in FindUdpTcpIn()
1190 struct alias_link *lnk; in FindUdpTcpOut() local
1205 lnk = FindLinkOut(la, src_addr, dst_addr, src_port, dst_port, link_type, create); in FindUdpTcpOut()
1207 if (lnk == NULL && create) { in FindUdpTcpOut()
1211 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in FindUdpTcpOut()
1215 return (lnk); in FindUdpTcpOut()
1224 struct alias_link *lnk; in AddPptp() local
1227 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in AddPptp()
1231 return (lnk); in AddPptp()
1239 struct alias_link *lnk; in FindPptpOutByCallId() local
1242 LIST_FOREACH(lnk, &la->pptpList, pptp.list) in FindPptpOutByCallId()
1243 if (lnk->src_addr.s_addr == src_addr.s_addr && in FindPptpOutByCallId()
1244 lnk->dst_addr.s_addr == dst_addr.s_addr && in FindPptpOutByCallId()
1245 lnk->src_port == src_call_id) in FindPptpOutByCallId()
1248 return (UseLink(la, lnk)); in FindPptpOutByCallId()
1256 struct alias_link *lnk; in FindPptpOutByPeerCallId() local
1259 LIST_FOREACH(lnk, &la->pptpList, pptp.list) in FindPptpOutByPeerCallId()
1260 if (lnk->src_addr.s_addr == src_addr.s_addr && in FindPptpOutByPeerCallId()
1261 lnk->dst_addr.s_addr == dst_addr.s_addr && in FindPptpOutByPeerCallId()
1262 lnk->dst_port == dst_call_id) in FindPptpOutByPeerCallId()
1265 return (UseLink(la, lnk)); in FindPptpOutByPeerCallId()
1273 struct alias_link *lnk; in FindPptpInByCallId() local
1277 LIST_FOREACH(lnk, &la->pptpList, pptp.list) in FindPptpInByCallId()
1278 if (lnk->dst_port == dst_call_id && in FindPptpInByCallId()
1279 lnk->dst_addr.s_addr == dst_addr.s_addr && in FindPptpInByCallId()
1280 lnk->alias_addr.s_addr == alias_addr.s_addr) in FindPptpInByCallId()
1283 return (UseLink(la, lnk)); in FindPptpInByCallId()
1291 struct alias_link *lnk; in FindPptpInByPeerCallId() local
1294 LIST_FOREACH(lnk, &la->pptpList, pptp.list) in FindPptpInByPeerCallId()
1295 if (lnk->alias_port == alias_call_id && in FindPptpInByPeerCallId()
1296 lnk->dst_addr.s_addr == dst_addr.s_addr && in FindPptpInByPeerCallId()
1297 lnk->alias_addr.s_addr == alias_addr.s_addr) in FindPptpInByPeerCallId()
1300 return (lnk); in FindPptpInByPeerCallId()
1311 struct alias_link *lnk; in FindRtspOut() local
1326 lnk = FindLinkOut(la, src_addr, dst_addr, src_port, 0, link_type, 1); in FindRtspOut()
1328 if (lnk == NULL) { in FindRtspOut()
1332 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in FindRtspOut()
1336 return (lnk); in FindRtspOut()
1342 struct alias_link *lnk; in FindOriginalAddress() local
1345 lnk = FindLinkIn(la, ANY_ADDR, alias_addr, in FindOriginalAddress()
1347 if (lnk == NULL) { in FindOriginalAddress()
1356 if (lnk->server != NULL) { /* LSNAT link */ in FindOriginalAddress()
1359 src_addr = lnk->server->addr; in FindOriginalAddress()
1360 lnk->server = lnk->server->next; in FindOriginalAddress()
1362 } else if (lnk->src_addr.s_addr == INADDR_ANY) in FindOriginalAddress()
1366 return (lnk->src_addr); in FindOriginalAddress()
1373 struct alias_link *lnk; in FindAliasAddress() local
1376 lnk = FindLinkOut(la, original_addr, ANY_ADDR, in FindAliasAddress()
1378 if (lnk == NULL) { in FindAliasAddress()
1382 if (lnk->alias_addr.s_addr == INADDR_ANY) in FindAliasAddress()
1386 return (lnk->alias_addr); in FindAliasAddress()
1405 SetFragmentAddr(struct alias_link *lnk, struct in_addr src_addr) in SetFragmentAddr() argument
1407 lnk->data.frag_addr = src_addr; in SetFragmentAddr()
1411 GetFragmentAddr(struct alias_link *lnk, struct in_addr *src_addr) in GetFragmentAddr() argument
1413 *src_addr = lnk->data.frag_addr; in GetFragmentAddr()
1417 SetFragmentPtr(struct alias_link *lnk, void *fptr) in SetFragmentPtr() argument
1419 lnk->data.frag_ptr = fptr; in SetFragmentPtr()
1423 GetFragmentPtr(struct alias_link *lnk, void **fptr) in GetFragmentPtr() argument
1425 *fptr = lnk->data.frag_ptr; in GetFragmentPtr()
1429 SetStateIn(struct alias_link *lnk, int state) in SetStateIn() argument
1434 if (lnk->data.tcp->state.out != ALIAS_TCP_STATE_CONNECTED) in SetStateIn()
1435 lnk->expire.time = TCP_EXPIRE_DEAD; in SetStateIn()
1437 lnk->expire.time = TCP_EXPIRE_SINGLEDEAD; in SetStateIn()
1440 if (lnk->data.tcp->state.out == ALIAS_TCP_STATE_CONNECTED) in SetStateIn()
1441 lnk->expire.time = TCP_EXPIRE_CONNECTED; in SetStateIn()
1450 lnk->data.tcp->state.in = state; in SetStateIn()
1454 SetStateOut(struct alias_link *lnk, int state) in SetStateOut() argument
1459 if (lnk->data.tcp->state.in != ALIAS_TCP_STATE_CONNECTED) in SetStateOut()
1460 lnk->expire.time = TCP_EXPIRE_DEAD; in SetStateOut()
1462 lnk->expire.time = TCP_EXPIRE_SINGLEDEAD; in SetStateOut()
1465 if (lnk->data.tcp->state.in == ALIAS_TCP_STATE_CONNECTED) in SetStateOut()
1466 lnk->expire.time = TCP_EXPIRE_CONNECTED; in SetStateOut()
1475 lnk->data.tcp->state.out = state; in SetStateOut()
1479 GetStateIn(struct alias_link *lnk) in GetStateIn() argument
1482 return (lnk->data.tcp->state.in); in GetStateIn()
1486 GetStateOut(struct alias_link *lnk) in GetStateOut() argument
1489 return (lnk->data.tcp->state.out); in GetStateOut()
1493 GetOriginalAddress(struct alias_link *lnk) in GetOriginalAddress() argument
1495 if (lnk->src_addr.s_addr == INADDR_ANY) in GetOriginalAddress()
1496 return (lnk->la->aliasAddress); in GetOriginalAddress()
1498 return (lnk->src_addr); in GetOriginalAddress()
1502 GetDestAddress(struct alias_link *lnk) in GetDestAddress() argument
1504 return (lnk->dst_addr); in GetDestAddress()
1508 GetAliasAddress(struct alias_link *lnk) in GetAliasAddress() argument
1510 if (lnk->alias_addr.s_addr == INADDR_ANY) in GetAliasAddress()
1511 return (lnk->la->aliasAddress); in GetAliasAddress()
1513 return (lnk->alias_addr); in GetAliasAddress()
1531 GetOriginalPort(struct alias_link *lnk) in GetOriginalPort() argument
1533 return (lnk->src_port); in GetOriginalPort()
1537 GetAliasPort(struct alias_link *lnk) in GetAliasPort() argument
1539 return (lnk->alias_port); in GetAliasPort()
1544 GetDestPort(struct alias_link *lnk) in GetDestPort() argument
1546 return (lnk->dst_port); in GetDestPort()
1553 SetAckModified(struct alias_link *lnk) in SetAckModified() argument
1555 lnk->data.tcp->state.ack_modified = 1; in SetAckModified()
1559 GetProxyAddress(struct alias_link *lnk) in GetProxyAddress() argument
1561 return (lnk->proxy_addr); in GetProxyAddress()
1565 SetProxyAddress(struct alias_link *lnk, struct in_addr addr) in SetProxyAddress() argument
1567 lnk->proxy_addr = addr; in SetProxyAddress()
1571 GetProxyPort(struct alias_link *lnk) in GetProxyPort() argument
1573 return (lnk->proxy_port); in GetProxyPort()
1577 SetProxyPort(struct alias_link *lnk, u_short port) in SetProxyPort() argument
1579 lnk->proxy_port = port; in SetProxyPort()
1584 GetAckModified(struct alias_link *lnk) in GetAckModified() argument
1586 return (lnk->data.tcp->state.ack_modified); in GetAckModified()
1596 GetDeltaAckIn(u_long ack, struct alias_link *lnk) in GetDeltaAckIn() argument
1603 i = lnk->data.tcp->state.index; in GetDeltaAckIn()
1610 x = lnk->data.tcp->ack[i]; in GetDeltaAckIn()
1638 GetDeltaSeqOut(u_long seq, struct alias_link *lnk) in GetDeltaSeqOut() argument
1645 i = lnk->data.tcp->state.index; in GetDeltaSeqOut()
1652 x = lnk->data.tcp->ack[i]; in GetDeltaSeqOut()
1680 AddSeq(struct alias_link *lnk, int delta, u_int ip_hl, u_short ip_len, in AddSeq() argument
1696 i = lnk->data.tcp->state.index; in AddSeq()
1697 lnk->data.tcp->ack[i] = x; in AddSeq()
1701 lnk->data.tcp->state.index = 0; in AddSeq()
1703 lnk->data.tcp->state.index = i; in AddSeq()
1707 SetExpire(struct alias_link *lnk, int expire) in SetExpire() argument
1710 lnk->flags &= ~LINK_PERMANENT; in SetExpire()
1711 DeleteLink(&lnk, 0); in SetExpire()
1713 lnk->flags |= LINK_PERMANENT; in SetExpire()
1715 lnk->expire.time = expire; in SetExpire()
1725 SetProtocolFlags(struct alias_link *lnk, int pflags) in SetProtocolFlags() argument
1727 lnk->pflags = pflags; in SetProtocolFlags()
1731 GetProtocolFlags(struct alias_link *lnk) in GetProtocolFlags() argument
1733 return (lnk->pflags); in GetProtocolFlags()
1737 SetDestCallId(struct alias_link *lnk, u_int16_t cid) in SetDestCallId() argument
1739 LIBALIAS_LOCK_ASSERT(lnk->la); in SetDestCallId()
1740 ReLink(lnk, lnk->src_addr, lnk->dst_addr, lnk->alias_addr, in SetDestCallId()
1741 lnk->src_port, cid, lnk->alias_port, lnk->link_type, 1); in SetDestCallId()
1798 struct alias_link * lnk = TAILQ_FIRST(&la->checkExpire); in HouseKeeping() local
1800 CleanupLink(la, &lnk, 0); in HouseKeeping()
1868 struct alias_link *lnk; in LibAliasRedirectPort() local
1886 lnk = NULL; in LibAliasRedirectPort()
1890 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in LibAliasRedirectPort()
1894 if (lnk != NULL) { in LibAliasRedirectPort()
1895 lnk->flags |= LINK_PERMANENT; in LibAliasRedirectPort()
1906 return (lnk); in LibAliasRedirectPort()
1911 LibAliasAddServer(struct libalias *la, struct alias_link *lnk, struct in_addr addr, u_short port) in LibAliasAddServer() argument
1919 switch (lnk->link_type) { in LibAliasAddServer()
1934 head = lnk->server; in LibAliasAddServer()
1938 SPLAY_REMOVE(splay_out, &la->linkSplayOut, lnk); in LibAliasAddServer()
1947 lnk->server = server; in LibAliasAddServer()
1964 struct alias_link *lnk; in LibAliasRedirectProto() local
1967 lnk = AddLink(la, src_addr, dst_addr, alias_addr, in LibAliasRedirectProto()
1971 if (lnk != NULL) { in LibAliasRedirectProto()
1972 lnk->flags |= LINK_PERMANENT; in LibAliasRedirectProto()
1982 return (lnk); in LibAliasRedirectProto()
1990 struct alias_link *lnk; in LibAliasRedirectAddr() local
1993 lnk = AddLink(la, src_addr, ANY_ADDR, alias_addr, in LibAliasRedirectAddr()
1997 if (lnk != NULL) { in LibAliasRedirectAddr()
1998 lnk->flags |= LINK_PERMANENT; in LibAliasRedirectAddr()
2008 return (lnk); in LibAliasRedirectAddr()
2013 LibAliasRedirectDynamic(struct libalias *la, struct alias_link *lnk) in LibAliasRedirectDynamic() argument
2020 if (lnk->flags & LINK_PARTIALLY_SPECIFIED) in LibAliasRedirectDynamic()
2023 lnk->flags &= ~LINK_PERMANENT; in LibAliasRedirectDynamic()
2033 LibAliasRedirectDelete(struct libalias *la, struct alias_link *lnk) in LibAliasRedirectDelete() argument
2037 DeleteLink(&lnk, 1); in LibAliasRedirectDelete()
2334 PunchFWHole(struct alias_link *lnk) in PunchFWHole() argument
2341 la = lnk->la; in PunchFWHole()
2346 lnk->link_type != LINK_TCP) in PunchFWHole()
2381 if (GetOriginalPort(lnk) != 0 && GetDestPort(lnk) != 0) { in PunchFWHole()
2387 GetOriginalAddress(lnk), ntohs(GetOriginalPort(lnk)), in PunchFWHole()
2388 GetDestAddress(lnk), ntohs(GetDestPort(lnk))); in PunchFWHole()
2395 GetDestAddress(lnk), ntohs(GetDestPort(lnk)), in PunchFWHole()
2396 GetOriginalAddress(lnk), ntohs(GetOriginalPort(lnk))); in PunchFWHole()
2403 lnk->data.tcp->fwhole = fwhole; in PunchFWHole()
2410 ClearFWHole(struct alias_link *lnk) in ClearFWHole() argument
2414 la = lnk->la; in ClearFWHole()
2415 if (lnk->link_type == LINK_TCP) { in ClearFWHole()
2416 int fwhole = lnk->data.tcp->fwhole; /* Where is the firewall hole? */ in ClearFWHole()
2426 lnk->data.tcp->fwhole = -1; in ClearFWHole()
2477 struct alias_link *lnk; in FindSctpRedirectAddress() local
2481 lnk = FindLinkIn(la, sm->ip_hdr->ip_src, sm->ip_hdr->ip_dst, in FindSctpRedirectAddress()
2483 if (lnk != NULL) { in FindSctpRedirectAddress()
2485 return (lnk->src_addr); in FindSctpRedirectAddress()
2491 lnk = FindLinkIn(la, sm->ip_hdr->ip_src, sm->ip_hdr->ip_dst, in FindSctpRedirectAddress()
2493 if (lnk != NULL) in FindSctpRedirectAddress()
2495 return (lnk->src_addr); in FindSctpRedirectAddress()