mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
Updates PacketMessage to expose to/from identifiers to include the LLID, (#460)
and the to/from IPV4 addresses.
This commit is contained in:
@@ -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())
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,7 +145,6 @@ public class USBTransferProcessor implements TransferCallback
|
||||
*/
|
||||
private void stop()
|
||||
{
|
||||
mLog.debug("stop() was invoked");
|
||||
if(mRunning.compareAndSet(true, false))
|
||||
{
|
||||
mBufferDispatcherFuture.cancel(true);
|
||||
|
||||
Reference in New Issue
Block a user