tunnelkit
tunnelkit copied to clipboard
Suggestion to improve usability of VPN notification observation
Summary
While observing the VPN status notification using NotificationCenter and this libraries VPNNotification struct app crashes when attempting to retrieve a value that does not currently exist.
Steps to reproduce
Start observing VPN status using:
NotificationCenter.default.addObserver(
self,
selector: #selector(...),
name: VPNNotification.didChangeStatus,
object: nil
)
Connect to VPN and try to retrieve notification.vpnError in your notification reciever.
What is the current bug behavior?
App crashes with uncatchable exception (fatalError(...)).
What is the expected correct behavior?
A catchable exception is thrown.
Relevant logs and/or screenshots
Possible fixes suggested remediation
The least you can do is instead of using fatalError(...) if value does not exist in userInfo throw a catchable exception, but would prefer to somehow recieve an enum/result value of either error/status in VPN status notification.