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:
Jamil
2024-01-02 05:51:19 -08:00
committed by GitHub
parent 506b357cd6
commit 110e128b93
2 changed files with 11 additions and 22 deletions

View File

@@ -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 {

View File

@@ -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")