When an MPE PID is marked as suspect from switching encryption on/off, but it has already sucessfully delivered IPv4 or LLC PDUs, the suspicion is cleared.
All checks were successful
🚀 Pack skyscraper8 / make-zip (push) Successful in 47s
All checks were successful
🚀 Pack skyscraper8 / make-zip (push) Successful in 47s
This commit is contained in:
parent
c4c08d1494
commit
f7aa6ecf67
@ -15,7 +15,10 @@ namespace skyscraper5.src.Mpeg2.PacketFilter
|
|||||||
{
|
{
|
||||||
state = new bool?[8192];
|
state = new bool?[8192];
|
||||||
suspicions = new byte[8192];
|
suspicions = new byte[8192];
|
||||||
|
exemptions = new bool[8192];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool[] exemptions;
|
||||||
private bool?[] state;
|
private bool?[] state;
|
||||||
private byte[] suspicions;
|
private byte[] suspicions;
|
||||||
private const byte LIMIT = 3;
|
private const byte LIMIT = 3;
|
||||||
@ -24,7 +27,12 @@ namespace skyscraper5.src.Mpeg2.PacketFilter
|
|||||||
{
|
{
|
||||||
bool scrambled = packet.TSC != 0;
|
bool scrambled = packet.TSC != 0;
|
||||||
|
|
||||||
if (!state[packet.PID].HasValue)
|
if (exemptions[packet.PID])
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!state[packet.PID].HasValue)
|
||||||
{
|
{
|
||||||
state[packet.PID] = scrambled;
|
state[packet.PID] = scrambled;
|
||||||
return true;
|
return true;
|
||||||
@ -45,5 +53,12 @@ namespace skyscraper5.src.Mpeg2.PacketFilter
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
internal void SetExempt(int pid)
|
||||||
|
{
|
||||||
|
exemptions[pid] = true;
|
||||||
|
state[pid] = null;
|
||||||
|
suspicions[pid] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"profiles": {
|
"profiles": {
|
||||||
"skyscraper8": {
|
"skyscraper8": {
|
||||||
"commandName": "Project",
|
"commandName": "Project",
|
||||||
"commandLineArgs": "salvage strat3 \"Z:\\Persönliches\\Satellitescommunity\\Skyscraper Test Fixture\\105.5E_4169.263_H_5237_(2026-04-24 12.36.13)_dump.ts\"",
|
"commandLineArgs": "salvage strat1 \"C:\\Users\\Sascha Schiemann\\Downloads\\65.0W_11304.256_V_30000_(2026-05-17 09.44.02)_dump.ts\"",
|
||||||
"remoteDebugEnabled": false
|
"remoteDebugEnabled": false
|
||||||
},
|
},
|
||||||
"Container (Dockerfile)": {
|
"Container (Dockerfile)": {
|
||||||
|
|||||||
@ -1744,6 +1744,7 @@ namespace skyscraper5.Skyscraper.Scraper
|
|||||||
public void OnIpDatagram(int pid, byte[] payload)
|
public void OnIpDatagram(int pid, byte[] payload)
|
||||||
{
|
{
|
||||||
UiJunction?.EnableUiFeature(SkyscraperUiFeature.IpTrafficAnalysis);
|
UiJunction?.EnableUiFeature(SkyscraperUiFeature.IpTrafficAnalysis);
|
||||||
|
TeiOnOffFilter.SetExempt(pid);
|
||||||
if (ipTrafficHandler == null)
|
if (ipTrafficHandler == null)
|
||||||
{
|
{
|
||||||
StorageConnectionManager storageConnectionManager = StorageConnectionManager.GetInstance();
|
StorageConnectionManager storageConnectionManager = StorageConnectionManager.GetInstance();
|
||||||
@ -3008,6 +3009,7 @@ namespace skyscraper5.Skyscraper.Scraper
|
|||||||
{
|
{
|
||||||
if (Array.TrueForAll(contents, x => x == 0))
|
if (Array.TrueForAll(contents, x => x == 0))
|
||||||
return;
|
return;
|
||||||
|
TeiOnOffFilter.SetExempt(pid);
|
||||||
if (etherType <= 1500)
|
if (etherType <= 1500)
|
||||||
{
|
{
|
||||||
OnLlcFrame((ushort)pid, source, destination, etherType, contents);
|
OnLlcFrame((ushort)pid, source, destination, etherType, contents);
|
||||||
@ -3108,7 +3110,7 @@ namespace skyscraper5.Skyscraper.Scraper
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ipTrafficHandler.HandleLlcFrame(pid, source, destination, etherType, contents);
|
//ipTrafficHandler.HandleLlcFrame(pid, source, destination, etherType, contents);
|
||||||
|
|
||||||
|
|
||||||
MemoryStream llcStream = new MemoryStream(contents, true);
|
MemoryStream llcStream = new MemoryStream(contents, true);
|
||||||
|
|||||||
@ -4,7 +4,7 @@ namespace skyscraper8;
|
|||||||
|
|
||||||
public class VersionInfo
|
public class VersionInfo
|
||||||
{
|
{
|
||||||
private const int PUBLIC_RELEASE = 19;
|
private const int PUBLIC_RELEASE = 20;
|
||||||
|
|
||||||
public static int GetPublicReleaseNumber()
|
public static int GetPublicReleaseNumber()
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user