58 lines
2.9 KiB
Swift
Executable File
58 lines
2.9 KiB
Swift
Executable File
import Foundation
|
|
|
|
public enum TunnelEvent: EventType {
|
|
public var description: String {
|
|
switch self {
|
|
case .opened(let tunnel):
|
|
return "Tunnel \(tunnel) starts processing data."
|
|
case .closeCalled(let tunnel):
|
|
return "Close is called on tunnel \(tunnel)."
|
|
case .forceCloseCalled(let tunnel):
|
|
return "Force close is called on tunnel \(tunnel)."
|
|
case let .receivedRequest(request, from: socket, on: tunnel):
|
|
return "Tunnel \(tunnel) received request \(request) from proxy socket \(socket)."
|
|
case let .receivedReadySignal(socket, currentReady: signal, on: tunnel):
|
|
if signal == 1 {
|
|
return "Tunnel \(tunnel) received ready-for-forward signal from socket \(socket)."
|
|
} else {
|
|
return "Tunnel \(tunnel) received ready-for-forward signal from socket \(socket). Start forwarding data."
|
|
}
|
|
case let .proxySocketReadData(data, from: socket, on: tunnel):
|
|
return "Tunnel \(tunnel) received \(data.count) bytes from proxy socket \(socket)."
|
|
case let .proxySocketWroteData(data, by: socket, on: tunnel):
|
|
if let data = data {
|
|
return "Proxy socket \(socket) sent \(data.count) bytes data from Tunnel \(tunnel)."
|
|
} else {
|
|
return "Proxy socket \(socket) sent data from Tunnel \(tunnel)."
|
|
}
|
|
case let .adapterSocketReadData(data, from: socket, on: tunnel):
|
|
return "Tunnel \(tunnel) received \(data.count) bytes from adapter socket \(socket)."
|
|
case let .adapterSocketWroteData(data, by: socket, on: tunnel):
|
|
if let data = data {
|
|
return "Adatper socket \(socket) sent \(data.count) bytes data from Tunnel \(tunnel)."
|
|
} else {
|
|
return "Adapter socket \(socket) sent data from Tunnel \(tunnel)."
|
|
}
|
|
case let .connectedToRemote(socket, on: tunnel):
|
|
return "Adapter socket \(socket) connected to remote successfully on tunnel \(tunnel)."
|
|
case let .updatingAdapterSocket(from: old, to: new, on: tunnel):
|
|
return "Updating adapter socket of tunnel \(tunnel) from \(old) to \(new)."
|
|
case .closed(let tunnel):
|
|
return "Tunnel \(tunnel) closed."
|
|
}
|
|
}
|
|
|
|
case opened(Tunnel),
|
|
closeCalled(Tunnel),
|
|
forceCloseCalled(Tunnel),
|
|
receivedRequest(ConnectSession, from: ProxySocket, on: Tunnel),
|
|
receivedReadySignal(SocketProtocol, currentReady: Int, on: Tunnel),
|
|
proxySocketReadData(Data, from: ProxySocket, on: Tunnel),
|
|
proxySocketWroteData(Data?, by: ProxySocket, on: Tunnel),
|
|
adapterSocketReadData(Data, from: AdapterSocket, on: Tunnel),
|
|
adapterSocketWroteData(Data?, by: AdapterSocket, on: Tunnel),
|
|
connectedToRemote(AdapterSocket, on: Tunnel),
|
|
updatingAdapterSocket(from: AdapterSocket, to: AdapterSocket, on: Tunnel),
|
|
closed(Tunnel)
|
|
}
|