Implemented PacketType AssociationRequest & Response
This commit is contained in:
parent
0d472e8cb3
commit
fe5dec7860
@ -10,6 +10,8 @@ const PacketType = {
|
||||
BlockAcknowledgment: 'BlockAcknowledgment',
|
||||
NoData: 'NoData',
|
||||
Authentication: 'Authentication',
|
||||
AssociationRequest: 'AssociationRequest',
|
||||
AssociationResponse: 'AssociationResponse',
|
||||
Unknown: 'Unknown'
|
||||
}
|
||||
|
||||
@ -51,6 +53,11 @@ class AuthenticationPacket extends Packet{
|
||||
authenticationType;
|
||||
}
|
||||
|
||||
class AssociationRequestPacket extends PacketWithSSID{}
|
||||
class AssociationResponsePacket extends Packet{
|
||||
associationIsSuccessful;
|
||||
}
|
||||
|
||||
// Specify exports
|
||||
module.exports = {
|
||||
PacketType,
|
||||
@ -61,4 +68,6 @@ module.exports = {
|
||||
ProbeResponsePacket,
|
||||
AuthenticationType,
|
||||
AuthenticationPacket,
|
||||
AssociationRequestPacket,
|
||||
AssociationResponsePacket,
|
||||
};
|
||||
|
@ -1,7 +1,7 @@
|
||||
const logger = require.main.require("./helper/logger.js")("PacketStreamFactory");
|
||||
const { Transform } = require('stream');
|
||||
const { DateTime } = require("luxon");
|
||||
const { PacketType, Packet, PacketWithSSID, BeaconPacket, ProbeRequestPacket, ProbeResponsePacket, AuthenticationPacket, AuthenticationType } = require.main.require('./dto/Packet.js');
|
||||
const { PacketType, Packet, PacketWithSSID, BeaconPacket, ProbeRequestPacket, ProbeResponsePacket, AuthenticationPacket, AuthenticationType, AssociationResponsePacket } = require.main.require('./dto/Packet.js');
|
||||
|
||||
const PACKET_TYPE_MAP = {
|
||||
"Beacon": PacketType.Beacon,
|
||||
@ -14,6 +14,8 @@ const PACKET_TYPE_MAP = {
|
||||
"Acknowledgment": PacketType.Acknowledgment,
|
||||
"BA": PacketType.BlockAcknowledgment,
|
||||
"Authentication": PacketType.Authentication,
|
||||
"Assoc Request": PacketType.AssociationRequest,
|
||||
"Assoc Response": PacketType.AssociationResponse,
|
||||
};
|
||||
const PACKET_TYPES_REGEX = Object.keys(PACKET_TYPE_MAP).join('|');
|
||||
|
||||
@ -76,6 +78,7 @@ class PacketStreamFactory extends Transform{
|
||||
case PacketType.Beacon:
|
||||
case PacketType.ProbeRequest:
|
||||
case PacketType.ProbeResponse:
|
||||
case PacketType.AssociationRequest:
|
||||
newPacket = new PacketWithSSID();
|
||||
newPacket.ssid = data.match(new RegExp(`(^| )${packetTypeStr} `+'\\'+`((.{0,32})`+'\\'+`)($| )`, 'i'))?.[2] ?? null;
|
||||
break;
|
||||
@ -84,6 +87,11 @@ class PacketStreamFactory extends Transform{
|
||||
newPacket = new AuthenticationPacket();
|
||||
newPacket.authenticationType = AUTHENTICATION_TYPE_MAP[data.match(/(?<=(^|\s)Authentication\s).{3,}(?=\:(\s|$))/i)[0]] ?? AuthenticationType.Unknown;
|
||||
break;
|
||||
|
||||
case PacketType.AssociationResponse:
|
||||
newPacket = new AssociationResponsePacket();
|
||||
newPacket.associationIsSuccessful = data.match(/Assoc Response\s.{0,30}Successful(?=\s|$)/img) ? true : false;
|
||||
break;
|
||||
}
|
||||
if(newPacket) packet = Object.assign(new newPacket, packet); // Use new, more specific, packet and copy old data over
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user