aboutsummaryrefslogblamecommitdiffstats
path: root/WireGuard/WireGuardNetworkExtension/ErrorNotifier.swift
blob: 3fc7c45b0397875ec451820ac87a23fefecb464b (plain) (tree)
1
2
3
4
5
6
7
8
9
                               
                                                             



                       
                                    
 
                                        
                                                      


                                           
                                                     

                                                                                                                                                       
                                                                                                              





                                                                                

     
// SPDX-License-Identifier: MIT
// Copyright © 2018-2019 WireGuard LLC. All Rights Reserved.

import NetworkExtension

class ErrorNotifier {
    let activationAttemptId: String?

    init(activationAttemptId: String?) {
        self.activationAttemptId = activationAttemptId
        ErrorNotifier.removeLastErrorFile()
    }

    func notify(_ error: PacketTunnelProviderError) {
        guard let activationAttemptId = activationAttemptId, let lastErrorFilePath = FileManager.networkExtensionLastErrorFileURL?.path else { return }
        let errorMessageData = "\(activationAttemptId)\n\(error)".data(using: .utf8)
        FileManager.default.createFile(atPath: lastErrorFilePath, contents: errorMessageData, attributes: nil)
    }

    static func removeLastErrorFile() {
        if let lastErrorFileURL = FileManager.networkExtensionLastErrorFileURL {
            _ = FileManager.deleteFile(at: lastErrorFileURL)
        }
    }
}