ReLink() partial links in FindLinkOut() in the same manner as we do it
in FindLinkIn(). This will make TcpMonitorIn()/TcpMonitorOut() happy. Reviewed by: eivind
This commit is contained in:
parent
f0f63c2e82
commit
d3511328e4
@ -510,7 +510,7 @@ ReLink(struct alias_link *,
|
||||
u_short, u_short, int, int);
|
||||
|
||||
static struct alias_link *
|
||||
FindLinkOut(struct in_addr, struct in_addr, u_short, u_short, int);
|
||||
FindLinkOut(struct in_addr, struct in_addr, u_short, u_short, int, int);
|
||||
|
||||
static struct alias_link *
|
||||
FindLinkIn(struct in_addr, struct in_addr, u_short, u_short, int, int);
|
||||
@ -1034,7 +1034,8 @@ FindLinkOut(struct in_addr src_addr,
|
||||
struct in_addr dst_addr,
|
||||
u_short src_port,
|
||||
u_short dst_port,
|
||||
int link_type)
|
||||
int link_type,
|
||||
int replace_partial_links)
|
||||
{
|
||||
u_int i;
|
||||
struct alias_link *link;
|
||||
@ -1063,11 +1064,18 @@ FindLinkOut(struct in_addr src_addr,
|
||||
{
|
||||
if (dst_port != 0)
|
||||
{
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, 0, link_type);
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, 0, link_type, 0);
|
||||
if (link != NULL && replace_partial_links)
|
||||
{
|
||||
link = ReLink(link,
|
||||
src_addr, dst_addr, link->alias_addr,
|
||||
src_port, dst_port, link->alias_port,
|
||||
link_type);
|
||||
}
|
||||
}
|
||||
else if (dst_addr.s_addr != 0)
|
||||
{
|
||||
link = FindLinkOut(src_addr, nullAddress, src_port, 0, link_type);
|
||||
link = FindLinkOut(src_addr, nullAddress, src_port, 0, link_type, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1247,7 +1255,7 @@ FindIcmpOut(struct in_addr src_addr,
|
||||
|
||||
link = FindLinkOut(src_addr, dst_addr,
|
||||
id, NO_DEST_PORT,
|
||||
LINK_ICMP);
|
||||
LINK_ICMP, 0);
|
||||
if (link == NULL)
|
||||
{
|
||||
struct in_addr alias_addr;
|
||||
@ -1381,7 +1389,7 @@ FindUdpTcpOut(struct in_addr src_addr,
|
||||
break;
|
||||
}
|
||||
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, dst_port, link_type);
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, dst_port, link_type, 1);
|
||||
|
||||
if (link == NULL)
|
||||
{
|
||||
@ -1428,7 +1436,7 @@ FindAliasAddress(struct in_addr original_addr)
|
||||
struct alias_link *link;
|
||||
|
||||
link = FindLinkOut(original_addr, nullAddress,
|
||||
0, 0, LINK_ADDR);
|
||||
0, 0, LINK_ADDR, 0);
|
||||
if (link == NULL)
|
||||
{
|
||||
return aliasAddress;
|
||||
|
@ -510,7 +510,7 @@ ReLink(struct alias_link *,
|
||||
u_short, u_short, int, int);
|
||||
|
||||
static struct alias_link *
|
||||
FindLinkOut(struct in_addr, struct in_addr, u_short, u_short, int);
|
||||
FindLinkOut(struct in_addr, struct in_addr, u_short, u_short, int, int);
|
||||
|
||||
static struct alias_link *
|
||||
FindLinkIn(struct in_addr, struct in_addr, u_short, u_short, int, int);
|
||||
@ -1034,7 +1034,8 @@ FindLinkOut(struct in_addr src_addr,
|
||||
struct in_addr dst_addr,
|
||||
u_short src_port,
|
||||
u_short dst_port,
|
||||
int link_type)
|
||||
int link_type,
|
||||
int replace_partial_links)
|
||||
{
|
||||
u_int i;
|
||||
struct alias_link *link;
|
||||
@ -1063,11 +1064,18 @@ FindLinkOut(struct in_addr src_addr,
|
||||
{
|
||||
if (dst_port != 0)
|
||||
{
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, 0, link_type);
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, 0, link_type, 0);
|
||||
if (link != NULL && replace_partial_links)
|
||||
{
|
||||
link = ReLink(link,
|
||||
src_addr, dst_addr, link->alias_addr,
|
||||
src_port, dst_port, link->alias_port,
|
||||
link_type);
|
||||
}
|
||||
}
|
||||
else if (dst_addr.s_addr != 0)
|
||||
{
|
||||
link = FindLinkOut(src_addr, nullAddress, src_port, 0, link_type);
|
||||
link = FindLinkOut(src_addr, nullAddress, src_port, 0, link_type, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1247,7 +1255,7 @@ FindIcmpOut(struct in_addr src_addr,
|
||||
|
||||
link = FindLinkOut(src_addr, dst_addr,
|
||||
id, NO_DEST_PORT,
|
||||
LINK_ICMP);
|
||||
LINK_ICMP, 0);
|
||||
if (link == NULL)
|
||||
{
|
||||
struct in_addr alias_addr;
|
||||
@ -1381,7 +1389,7 @@ FindUdpTcpOut(struct in_addr src_addr,
|
||||
break;
|
||||
}
|
||||
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, dst_port, link_type);
|
||||
link = FindLinkOut(src_addr, dst_addr, src_port, dst_port, link_type, 1);
|
||||
|
||||
if (link == NULL)
|
||||
{
|
||||
@ -1428,7 +1436,7 @@ FindAliasAddress(struct in_addr original_addr)
|
||||
struct alias_link *link;
|
||||
|
||||
link = FindLinkOut(original_addr, nullAddress,
|
||||
0, 0, LINK_ADDR);
|
||||
0, 0, LINK_ADDR, 0);
|
||||
if (link == NULL)
|
||||
{
|
||||
return aliasAddress;
|
||||
|
Loading…
Reference in New Issue
Block a user