Updates PacketMessage to expose to/from identifiers to include the LLID, (#460)

and the to/from IPV4 addresses.
This commit is contained in:
Denny Sheirer
2018-12-27 06:57:18 -05:00
committed by GitHub
parent 347a71f097
commit 5960343637
3 changed files with 17 additions and 17 deletions

View File

@@ -1010,6 +1010,8 @@ public class P25DecoderState extends DecoderState implements IChannelEventListen
else if(message instanceof PacketMessage)
{
PacketMessage packetMessage = (PacketMessage)message;
getIdentifierCollection().remove(IdentifierClass.USER);
getIdentifierCollection().update(packetMessage.getIdentifiers());
IPacket packet = packetMessage.getPacket();
@@ -1025,22 +1027,11 @@ public class P25DecoderState extends DecoderState implements IChannelEventListen
IPacket udpPayload = udpPacket.getPayload();
Identifier from = packetMessage.getHeader().isOutbound() ?
ipv4.getHeader().getFromAddress() : packetMessage.getHeader().getLLID();
Identifier to = packetMessage.getHeader().isOutbound() ?
packetMessage.getHeader().getLLID() : ipv4.getHeader().getToAddress();
getIdentifierCollection().update(from);
getIdentifierCollection().update(to);
if(udpPayload instanceof ARSPacket)
{
ARSPacket arsPacket = (ARSPacket)udpPayload;
MutableIdentifierCollection ic = new MutableIdentifierCollection(getIdentifierCollection().getIdentifiers());
ic.remove(IdentifierClass.USER);
ic.update(from);
ic.update(to);
DecodeEvent packetEvent = P25DecodeEvent.builder(message.getTimestamp())
.channel(getCurrentChannel())
@@ -1054,9 +1045,6 @@ public class P25DecoderState extends DecoderState implements IChannelEventListen
else
{
MutableIdentifierCollection ic = new MutableIdentifierCollection(getIdentifierCollection().getIdentifiers());
ic.remove(IdentifierClass.USER);
ic.update(from);
ic.update(to);
DecodeEvent packetEvent = P25DecodeEvent.builder(message.getTimestamp())
.channel(getCurrentChannel())

View File

@@ -37,7 +37,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
@@ -52,6 +51,7 @@ public class PacketMessage extends P25Message
private BinaryMessage mPacketMessage;
private SNDCPPacketHeader mSNDCPPacketHeader;
private IPacket mPacket;
private List<Identifier> mIdentifiers;
public PacketMessage(PDUSequence PDUSequence, int nac, long timestamp)
{
@@ -262,6 +262,19 @@ public class PacketMessage extends P25Message
@Override
public List<Identifier> getIdentifiers()
{
return Collections.EMPTY_LIST;
if(mIdentifiers == null)
{
mIdentifiers = new ArrayList<>();
mIdentifiers.add(getPDUSequence().getHeader().getLLID());
if(getPacket() instanceof IPV4Packet)
{
IPV4Packet ipv4 = (IPV4Packet)getPacket();
mIdentifiers.add(ipv4.getHeader().getFromAddress());
mIdentifiers.add(ipv4.getHeader().getToAddress());
}
}
return mIdentifiers;
}
}