tunnelkit icon indicating copy to clipboard operation
tunnelkit copied to clipboard

Suggestion to improve usability of VPN notification observation

Open tomasjablonskis opened this issue 2 years ago • 0 comments

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

image

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.

tomasjablonskis avatar Feb 09 '24 11:02 tomasjablonskis