Skip to content

Commit

Permalink
Close #24.
Browse files Browse the repository at this point in the history
Fix unhandled exception when receiving non-chattervox AX.25 packets.
  • Loading branch information
brannondorsey committed Mar 7, 2019
1 parent 35fcac3 commit 2e70b70
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/Messenger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export class Messenger extends EventEmitter {
})
}

private async _onAX25DataRecieved(data: any) {
private async _onAX25DataRecieved(data: any): Promise<undefined> {

let packet: Packet
try {
Expand Down
19 changes: 14 additions & 5 deletions src/Packet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,20 +163,29 @@ export class Packet {
}

static async FromAX25Packet(ax25Buffer: Buffer): Promise<Packet> {

const ax25Packet = new AX25.Packet()
try {
ax25Packet.disassemble(ax25Buffer)
} catch (err) {
const error = TypeError(err.message)
error.name = 'InvalidPacket'
throw error
throwInvalidPacketError(err)
}

const packet = new Packet()
packet.from = ax25Packet.source
packet.to = ax25Packet.destination
await packet.disassemble(ax25Packet.payload)
try {
await packet.disassemble(ax25Packet.payload)
} catch (err) {
throwInvalidPacketError(err)
}

return packet
}
}

function throwInvalidPacketError(err: Error): TypeError {
const error = TypeError(err.message)
error.name = 'InvalidPacket'
throw error
}

0 comments on commit 2e70b70

Please sign in to comment.