mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
refactor(apple): guard packetTunnelProvider in one place (#3013)
Just a minor cleanup suggestion to consolidate guards in one place. We could also make `networkSettings` a non-optional type which would clean things up further (will it always be initialized while the Adapter is?) Draft because stacked on #3012
This commit is contained in:
@@ -350,10 +350,11 @@ extension Adapter: CallbackHandlerDelegate {
|
||||
dnsAddress: dnsAddress)
|
||||
case .tunnelReady:
|
||||
if let networkSettings = self.networkSettings {
|
||||
if let packetTunnelProvider = self.packetTunnelProvider {
|
||||
networkSettings.apply(
|
||||
on: packetTunnelProvider, logger: self.logger, completionHandler: nil)
|
||||
}
|
||||
networkSettings.apply(
|
||||
on: packetTunnelProvider,
|
||||
logger: self.logger,
|
||||
completionHandler: nil
|
||||
)
|
||||
}
|
||||
|
||||
case .stoppingTunnel, .stoppedTunnel, .stoppingTunnelTemporarily, .stoppedTunnelTemporarily:
|
||||
@@ -377,15 +378,12 @@ extension Adapter: CallbackHandlerDelegate {
|
||||
self.logger.error("Adapter.onTunnelReady: No network settings")
|
||||
return
|
||||
}
|
||||
guard let packetTunnelProvider = self.packetTunnelProvider else {
|
||||
self.logger.error("Adapter.onTunnelReady: No packet tunnel provider")
|
||||
return
|
||||
}
|
||||
|
||||
// Connlib's up, set it as the default DNS
|
||||
networkSettings.setMatchDomains([""])
|
||||
networkSettings.apply(on: packetTunnelProvider, logger: self.logger) { error in
|
||||
if let error = error {
|
||||
packetTunnelProvider.handleTunnelShutdown(
|
||||
self.packetTunnelProvider?.handleTunnelShutdown(
|
||||
dueTo: .networkSettingsApplyFailure,
|
||||
errorMessage: error.localizedDescription)
|
||||
onStarted?(AdapterError.setNetworkSettings(error))
|
||||
@@ -408,10 +406,6 @@ extension Adapter: CallbackHandlerDelegate {
|
||||
self.logger.error("Adapter.onAddRoute: No network settings")
|
||||
return
|
||||
}
|
||||
guard let packetTunnelProvider = self.packetTunnelProvider else {
|
||||
self.logger.error("Adapter.onAddRoute: No packet tunnel provider")
|
||||
return
|
||||
}
|
||||
|
||||
networkSettings.addRoute(route)
|
||||
if case .tunnelReady = self.state {
|
||||
@@ -429,10 +423,6 @@ extension Adapter: CallbackHandlerDelegate {
|
||||
self.logger.error("Adapter.onRemoveRoute: No network settings")
|
||||
return
|
||||
}
|
||||
guard let packetTunnelProvider = self.packetTunnelProvider else {
|
||||
self.logger.error("Adapter.onRemoveRoute: No packet tunnel provider")
|
||||
return
|
||||
}
|
||||
networkSettings.removeRoute(route)
|
||||
if case .tunnelReady = self.state {
|
||||
networkSettings.apply(on: packetTunnelProvider, logger: self.logger, completionHandler: nil)
|
||||
@@ -462,10 +452,6 @@ extension Adapter: CallbackHandlerDelegate {
|
||||
self.logger.error("Adapter.onUpdateResources: No network settings")
|
||||
return
|
||||
}
|
||||
guard let packetTunnelProvider = self.packetTunnelProvider else {
|
||||
self.logger.error("Adapter.onUpdateResources: No packet tunnel provider")
|
||||
return
|
||||
}
|
||||
let updatedResourceDomains = networkResources.compactMap { $0.resourceLocation.domain }
|
||||
networkSettings.setResourceDomains(updatedResourceDomains)
|
||||
if case .tunnelReady = self.state {
|
||||
|
||||
@@ -68,7 +68,10 @@ class NetworkSettings {
|
||||
logger: Logger,
|
||||
completionHandler: ((Error?) -> Void)?
|
||||
) {
|
||||
guard let packetTunnelProvider = packetTunnelProvider else { return }
|
||||
guard let packetTunnelProvider = packetTunnelProvider else {
|
||||
logger.error("\(#function): packetTunnelProvider not initialized! This should not happen.")
|
||||
return
|
||||
}
|
||||
|
||||
guard self.hasUnappliedChanges else {
|
||||
logger.error("NetworkSettings.apply: No changes to apply")
|
||||
|
||||
Reference in New Issue
Block a user