mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-11-23 01:49:53 +03:00
Exclude inactive routes in Windows routing management
This commit is contained in:
parent
ac04c469c7
commit
05fa675d5a
@ -9414,8 +9414,16 @@ RETRY:
|
|||||||
{
|
{
|
||||||
e = ZeroMallocFast(sizeof(ROUTE_ENTRY));
|
e = ZeroMallocFast(sizeof(ROUTE_ENTRY));
|
||||||
Win32IpForwardRow2ToRouteEntry(e, &p->Table[i]);
|
Win32IpForwardRow2ToRouteEntry(e, &p->Table[i]);
|
||||||
|
|
||||||
|
if (e->Active)
|
||||||
|
{
|
||||||
Add(o, e);
|
Add(o, e);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FreeRouteEntry(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
FreeMibTable(p);
|
FreeMibTable(p);
|
||||||
|
|
||||||
// Sort by metric
|
// Sort by metric
|
||||||
@ -9573,6 +9581,7 @@ void Win32IpForwardRow2ToRouteEntry(ROUTE_ENTRY *entry, void *ip_forward_row)
|
|||||||
{
|
{
|
||||||
entry->IfMetric = p->Metric;
|
entry->IfMetric = p->Metric;
|
||||||
entry->Metric = r->Metric + p->Metric;
|
entry->Metric = r->Metric + p->Metric;
|
||||||
|
entry->Active = p->Connected;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -293,6 +293,7 @@ struct ROUTE_ENTRY
|
|||||||
UINT IfMetric;
|
UINT IfMetric;
|
||||||
UINT InterfaceID;
|
UINT InterfaceID;
|
||||||
UINT64 InnerScore;
|
UINT64 InnerScore;
|
||||||
|
bool Active;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Routing table
|
// Routing table
|
||||||
|
Loading…
Reference in New Issue
Block a user