diff --git a/Tun/Punchnet/Actors/SDLPuncherActor.swift b/Tun/Punchnet/Actors/SDLPuncherActor.swift index 5da3a53..9454ee4 100644 --- a/Tun/Punchnet/Actors/SDLPuncherActor.swift +++ b/Tun/Punchnet/Actors/SDLPuncherActor.swift @@ -42,12 +42,10 @@ actor SDLPuncherActor { return } - let pktId = self.nextPacketId() coolingDown[dstMac] = (pktId, Date().addingTimeInterval(cooldownInterval)) // 触发一次打洞 var queryInfo = SDLQueryInfo() - queryInfo.pktID = pktId queryInfo.dstMac = request.dstMac self.pendingRequests[pktId] = request @@ -74,15 +72,6 @@ actor SDLPuncherActor { } } - private func nextPacketId() -> UInt32 { - let pktId = self.pktId - self.pktId &+= 1 - if self.pktId == 0 { - self.pktId = 1 - } - return pktId - } - private func cleanExpiredCoolingDown() { let date = Date() for (key, (pktId, expireAt)) in coolingDown { diff --git a/Tun/Punchnet/ArpServer.swift b/Tun/Punchnet/ArpServer.swift index e0a41ee..34765d5 100644 --- a/Tun/Punchnet/ArpServer.swift +++ b/Tun/Punchnet/ArpServer.swift @@ -17,7 +17,6 @@ actor ArpServer { private var coolingDown: [UInt32: Date] = [:] - private var packetId: UInt32 = 1 private var known_macs: [UInt32: ArpEntry] = [:] private let arpTTL: TimeInterval @@ -75,16 +74,12 @@ actor ArpServer { return } - let pktID = self.packetId - self.packetId &+= 1 - // 单位时间内指允许提交一次 self.coolingDown[targetIp] = Date().addingTimeInterval(3) // 进行arp查询 var arpRequest = SDLArpRequest() arpRequest.targetIp = targetIp - arpRequest.pktID = pktID quicClient.send(type: .arpRequest, data: try arpRequest.serializedData()) } diff --git a/Tun/Punchnet/SDLMessage.pb.swift b/Tun/Punchnet/SDLMessage.pb.swift index 539f33b..29d09b8 100644 --- a/Tun/Punchnet/SDLMessage.pb.swift +++ b/Tun/Punchnet/SDLMessage.pb.swift @@ -72,27 +72,12 @@ struct SDLWelcome: Sendable { init() {} } -/// quic 通讯消息 -struct SDLEmpty: Sendable { - // SwiftProtobuf.Message conformance is added in an extension below. See the - // `Message` and `Message+*Additions` files in the SwiftProtobuf library for - // methods supported on all messages. - - var pktID: UInt32 = 0 - - var unknownFields = SwiftProtobuf.UnknownStorage() - - init() {} -} - /// 这里修改成了扁平的结构, 否则有些字段不好找放的位置 struct SDLRegisterSuper: @unchecked Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var clientID: String = String() /// 网络地址信息已经有https请求分配了 @@ -125,8 +110,6 @@ struct SDLRegisterSuperAck: @unchecked Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - /// 目前支持aes, chacha20 var algorithm: String = String() @@ -147,8 +130,6 @@ struct SDLRegisterSuperNak: Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var errorCode: UInt32 = 0 var errorMessage: String = String() @@ -158,13 +139,12 @@ struct SDLRegisterSuperNak: Sendable { init() {} } +/// 网络地址查询 struct SDLQueryInfo: @unchecked Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var dstMac: Data = Data() var unknownFields = SwiftProtobuf.UnknownStorage() @@ -177,8 +157,6 @@ struct SDLPeerInfo: @unchecked Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var dstMac: Data = Data() var v4Info: SDLV4Info { @@ -210,15 +188,17 @@ struct SDLPeerInfo: @unchecked Sendable { /// ARP查询相关 /// 真实的arp请求是通过广播的形式获取到的,但是针对于macos这种tun的实现;是能够分析出arp请求包的; /// 对于当前网络来说,服务端是知道mac对应的ip地址的,因此没有必要广播;直接通过服务器端返回 -struct SDLArpRequest: Sendable { +struct SDLArpRequest: @unchecked Sendable { // SwiftProtobuf.Message conformance is added in an extension below. See the // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var targetIp: UInt32 = 0 + var originIp: UInt32 = 0 + + var context: Data = Data() + var unknownFields = SwiftProtobuf.UnknownStorage() init() {} @@ -229,12 +209,14 @@ struct SDLArpResponse: @unchecked Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var targetIp: UInt32 = 0 var targetMac: Data = Data() + var originIp: UInt32 = 0 + + var context: Data = Data() + var unknownFields = SwiftProtobuf.UnknownStorage() init() {} @@ -246,8 +228,6 @@ struct SDLPolicyRequest: Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var srcIdentityID: UInt32 = 0 var dstIdentityID: UInt32 = 0 @@ -265,8 +245,6 @@ struct SDLPolicyResponse: @unchecked Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var pktID: UInt32 = 0 - var srcIdentityID: UInt32 = 0 var dstIdentityID: UInt32 = 0 @@ -343,8 +321,6 @@ struct SDLStunRequest: @unchecked Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var cookie: UInt32 = 0 - var clientID: String = String() var networkID: UInt32 = 0 @@ -378,8 +354,6 @@ struct SDLStunReply: Sendable { // `Message` and `Message+*Additions` files in the SwiftProtobuf library for // methods supported on all messages. - var cookie: UInt32 = 0 - var unknownFields = SwiftProtobuf.UnknownStorage() init() {} @@ -615,50 +589,17 @@ extension SDLWelcome: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementatio } } -extension SDLEmpty: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { - static let protoMessageName: String = "SDLEmpty" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - ] - - mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - default: break - } - } - } - - func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } - try unknownFields.traverse(visitor: &visitor) - } - - static func ==(lhs: SDLEmpty, rhs: SDLEmpty) -> Bool { - if lhs.pktID != rhs.pktID {return false} - if lhs.unknownFields != rhs.unknownFields {return false} - return true - } -} - extension SDLRegisterSuper: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLRegisterSuper" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "client_id"), - 3: .standard(proto: "network_id"), - 4: .same(proto: "mac"), - 5: .same(proto: "ip"), - 6: .standard(proto: "mask_len"), - 7: .same(proto: "hostname"), - 8: .standard(proto: "pub_key"), - 9: .standard(proto: "access_token"), + 1: .standard(proto: "client_id"), + 2: .standard(proto: "network_id"), + 3: .same(proto: "mac"), + 4: .same(proto: "ip"), + 5: .standard(proto: "mask_len"), + 6: .same(proto: "hostname"), + 7: .standard(proto: "pub_key"), + 8: .standard(proto: "access_token"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -667,53 +608,48 @@ extension SDLRegisterSuper: SwiftProtobuf.Message, SwiftProtobuf._MessageImpleme // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularStringField(value: &self.clientID) }() - case 3: try { try decoder.decodeSingularUInt32Field(value: &self.networkID) }() - case 4: try { try decoder.decodeSingularBytesField(value: &self.mac) }() - case 5: try { try decoder.decodeSingularUInt32Field(value: &self.ip) }() - case 6: try { try decoder.decodeSingularUInt32Field(value: &self.maskLen) }() - case 7: try { try decoder.decodeSingularStringField(value: &self.hostname) }() - case 8: try { try decoder.decodeSingularStringField(value: &self.pubKey) }() - case 9: try { try decoder.decodeSingularStringField(value: &self.accessToken) }() + case 1: try { try decoder.decodeSingularStringField(value: &self.clientID) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.networkID) }() + case 3: try { try decoder.decodeSingularBytesField(value: &self.mac) }() + case 4: try { try decoder.decodeSingularUInt32Field(value: &self.ip) }() + case 5: try { try decoder.decodeSingularUInt32Field(value: &self.maskLen) }() + case 6: try { try decoder.decodeSingularStringField(value: &self.hostname) }() + case 7: try { try decoder.decodeSingularStringField(value: &self.pubKey) }() + case 8: try { try decoder.decodeSingularStringField(value: &self.accessToken) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if !self.clientID.isEmpty { - try visitor.visitSingularStringField(value: self.clientID, fieldNumber: 2) + try visitor.visitSingularStringField(value: self.clientID, fieldNumber: 1) } if self.networkID != 0 { - try visitor.visitSingularUInt32Field(value: self.networkID, fieldNumber: 3) + try visitor.visitSingularUInt32Field(value: self.networkID, fieldNumber: 2) } if !self.mac.isEmpty { - try visitor.visitSingularBytesField(value: self.mac, fieldNumber: 4) + try visitor.visitSingularBytesField(value: self.mac, fieldNumber: 3) } if self.ip != 0 { - try visitor.visitSingularUInt32Field(value: self.ip, fieldNumber: 5) + try visitor.visitSingularUInt32Field(value: self.ip, fieldNumber: 4) } if self.maskLen != 0 { - try visitor.visitSingularUInt32Field(value: self.maskLen, fieldNumber: 6) + try visitor.visitSingularUInt32Field(value: self.maskLen, fieldNumber: 5) } if !self.hostname.isEmpty { - try visitor.visitSingularStringField(value: self.hostname, fieldNumber: 7) + try visitor.visitSingularStringField(value: self.hostname, fieldNumber: 6) } if !self.pubKey.isEmpty { - try visitor.visitSingularStringField(value: self.pubKey, fieldNumber: 8) + try visitor.visitSingularStringField(value: self.pubKey, fieldNumber: 7) } if !self.accessToken.isEmpty { - try visitor.visitSingularStringField(value: self.accessToken, fieldNumber: 9) + try visitor.visitSingularStringField(value: self.accessToken, fieldNumber: 8) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLRegisterSuper, rhs: SDLRegisterSuper) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.clientID != rhs.clientID {return false} if lhs.networkID != rhs.networkID {return false} if lhs.mac != rhs.mac {return false} @@ -730,11 +666,10 @@ extension SDLRegisterSuper: SwiftProtobuf.Message, SwiftProtobuf._MessageImpleme extension SDLRegisterSuperAck: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLRegisterSuperAck" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .same(proto: "algorithm"), - 3: .same(proto: "key"), - 4: .standard(proto: "region_id"), - 5: .standard(proto: "session_token"), + 1: .same(proto: "algorithm"), + 2: .same(proto: "key"), + 3: .standard(proto: "region_id"), + 4: .standard(proto: "session_token"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -743,37 +678,32 @@ extension SDLRegisterSuperAck: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularStringField(value: &self.algorithm) }() - case 3: try { try decoder.decodeSingularBytesField(value: &self.key) }() - case 4: try { try decoder.decodeSingularUInt32Field(value: &self.regionID) }() - case 5: try { try decoder.decodeSingularBytesField(value: &self.sessionToken) }() + case 1: try { try decoder.decodeSingularStringField(value: &self.algorithm) }() + case 2: try { try decoder.decodeSingularBytesField(value: &self.key) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.regionID) }() + case 4: try { try decoder.decodeSingularBytesField(value: &self.sessionToken) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if !self.algorithm.isEmpty { - try visitor.visitSingularStringField(value: self.algorithm, fieldNumber: 2) + try visitor.visitSingularStringField(value: self.algorithm, fieldNumber: 1) } if !self.key.isEmpty { - try visitor.visitSingularBytesField(value: self.key, fieldNumber: 3) + try visitor.visitSingularBytesField(value: self.key, fieldNumber: 2) } if self.regionID != 0 { - try visitor.visitSingularUInt32Field(value: self.regionID, fieldNumber: 4) + try visitor.visitSingularUInt32Field(value: self.regionID, fieldNumber: 3) } if !self.sessionToken.isEmpty { - try visitor.visitSingularBytesField(value: self.sessionToken, fieldNumber: 5) + try visitor.visitSingularBytesField(value: self.sessionToken, fieldNumber: 4) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLRegisterSuperAck, rhs: SDLRegisterSuperAck) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.algorithm != rhs.algorithm {return false} if lhs.key != rhs.key {return false} if lhs.regionID != rhs.regionID {return false} @@ -786,9 +716,8 @@ extension SDLRegisterSuperAck: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl extension SDLRegisterSuperNak: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLRegisterSuperNak" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "error_code"), - 3: .standard(proto: "error_message"), + 1: .standard(proto: "error_code"), + 2: .standard(proto: "error_message"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -797,29 +726,24 @@ extension SDLRegisterSuperNak: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularUInt32Field(value: &self.errorCode) }() - case 3: try { try decoder.decodeSingularStringField(value: &self.errorMessage) }() + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.errorCode) }() + case 2: try { try decoder.decodeSingularStringField(value: &self.errorMessage) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if self.errorCode != 0 { - try visitor.visitSingularUInt32Field(value: self.errorCode, fieldNumber: 2) + try visitor.visitSingularUInt32Field(value: self.errorCode, fieldNumber: 1) } if !self.errorMessage.isEmpty { - try visitor.visitSingularStringField(value: self.errorMessage, fieldNumber: 3) + try visitor.visitSingularStringField(value: self.errorMessage, fieldNumber: 2) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLRegisterSuperNak, rhs: SDLRegisterSuperNak) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.errorCode != rhs.errorCode {return false} if lhs.errorMessage != rhs.errorMessage {return false} if lhs.unknownFields != rhs.unknownFields {return false} @@ -830,8 +754,7 @@ extension SDLRegisterSuperNak: SwiftProtobuf.Message, SwiftProtobuf._MessageImpl extension SDLQueryInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLQueryInfo" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "dst_mac"), + 1: .standard(proto: "dst_mac"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -840,25 +763,20 @@ extension SDLQueryInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularBytesField(value: &self.dstMac) }() + case 1: try { try decoder.decodeSingularBytesField(value: &self.dstMac) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if !self.dstMac.isEmpty { - try visitor.visitSingularBytesField(value: self.dstMac, fieldNumber: 2) + try visitor.visitSingularBytesField(value: self.dstMac, fieldNumber: 1) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLQueryInfo, rhs: SDLQueryInfo) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.dstMac != rhs.dstMac {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true @@ -868,10 +786,9 @@ extension SDLQueryInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementat extension SDLPeerInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLPeerInfo" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "dst_mac"), - 3: .standard(proto: "v4_info"), - 4: .standard(proto: "v6_info"), + 1: .standard(proto: "dst_mac"), + 2: .standard(proto: "v4_info"), + 3: .standard(proto: "v6_info"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -880,10 +797,9 @@ extension SDLPeerInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementati // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularBytesField(value: &self.dstMac) }() - case 3: try { try decoder.decodeSingularMessageField(value: &self._v4Info) }() - case 4: try { try decoder.decodeSingularMessageField(value: &self._v6Info) }() + case 1: try { try decoder.decodeSingularBytesField(value: &self.dstMac) }() + case 2: try { try decoder.decodeSingularMessageField(value: &self._v4Info) }() + case 3: try { try decoder.decodeSingularMessageField(value: &self._v6Info) }() default: break } } @@ -894,23 +810,19 @@ extension SDLPeerInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementati // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if !self.dstMac.isEmpty { - try visitor.visitSingularBytesField(value: self.dstMac, fieldNumber: 2) + try visitor.visitSingularBytesField(value: self.dstMac, fieldNumber: 1) } try { if let v = self._v4Info { - try visitor.visitSingularMessageField(value: v, fieldNumber: 3) + try visitor.visitSingularMessageField(value: v, fieldNumber: 2) } }() try { if let v = self._v6Info { - try visitor.visitSingularMessageField(value: v, fieldNumber: 4) + try visitor.visitSingularMessageField(value: v, fieldNumber: 3) } }() try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLPeerInfo, rhs: SDLPeerInfo) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.dstMac != rhs.dstMac {return false} if lhs._v4Info != rhs._v4Info {return false} if lhs._v6Info != rhs._v6Info {return false} @@ -922,8 +834,9 @@ extension SDLPeerInfo: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementati extension SDLArpRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLArpRequest" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "target_ip"), + 1: .standard(proto: "target_ip"), + 2: .standard(proto: "origin_ip"), + 3: .same(proto: "context"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -932,26 +845,31 @@ extension SDLArpRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementa // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularUInt32Field(value: &self.targetIp) }() + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.targetIp) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.originIp) }() + case 3: try { try decoder.decodeSingularBytesField(value: &self.context) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if self.targetIp != 0 { - try visitor.visitSingularUInt32Field(value: self.targetIp, fieldNumber: 2) + try visitor.visitSingularUInt32Field(value: self.targetIp, fieldNumber: 1) + } + if self.originIp != 0 { + try visitor.visitSingularUInt32Field(value: self.originIp, fieldNumber: 2) + } + if !self.context.isEmpty { + try visitor.visitSingularBytesField(value: self.context, fieldNumber: 3) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLArpRequest, rhs: SDLArpRequest) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.targetIp != rhs.targetIp {return false} + if lhs.originIp != rhs.originIp {return false} + if lhs.context != rhs.context {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } @@ -960,9 +878,10 @@ extension SDLArpRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementa extension SDLArpResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLArpResponse" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "target_ip"), - 3: .standard(proto: "target_mac"), + 1: .standard(proto: "target_ip"), + 2: .standard(proto: "target_mac"), + 3: .standard(proto: "origin_ip"), + 4: .same(proto: "context"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -971,31 +890,36 @@ extension SDLArpResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplement // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularUInt32Field(value: &self.targetIp) }() - case 3: try { try decoder.decodeSingularBytesField(value: &self.targetMac) }() + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.targetIp) }() + case 2: try { try decoder.decodeSingularBytesField(value: &self.targetMac) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.originIp) }() + case 4: try { try decoder.decodeSingularBytesField(value: &self.context) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if self.targetIp != 0 { - try visitor.visitSingularUInt32Field(value: self.targetIp, fieldNumber: 2) + try visitor.visitSingularUInt32Field(value: self.targetIp, fieldNumber: 1) } if !self.targetMac.isEmpty { - try visitor.visitSingularBytesField(value: self.targetMac, fieldNumber: 3) + try visitor.visitSingularBytesField(value: self.targetMac, fieldNumber: 2) + } + if self.originIp != 0 { + try visitor.visitSingularUInt32Field(value: self.originIp, fieldNumber: 3) + } + if !self.context.isEmpty { + try visitor.visitSingularBytesField(value: self.context, fieldNumber: 4) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLArpResponse, rhs: SDLArpResponse) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.targetIp != rhs.targetIp {return false} if lhs.targetMac != rhs.targetMac {return false} + if lhs.originIp != rhs.originIp {return false} + if lhs.context != rhs.context {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true } @@ -1004,10 +928,9 @@ extension SDLArpResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplement extension SDLPolicyRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLPolicyRequest" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "src_identity_id"), - 3: .standard(proto: "dst_identity_id"), - 4: .same(proto: "version"), + 1: .standard(proto: "src_identity_id"), + 2: .standard(proto: "dst_identity_id"), + 3: .same(proto: "version"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -1016,33 +939,28 @@ extension SDLPolicyRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImpleme // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularUInt32Field(value: &self.srcIdentityID) }() - case 3: try { try decoder.decodeSingularUInt32Field(value: &self.dstIdentityID) }() - case 4: try { try decoder.decodeSingularUInt32Field(value: &self.version) }() + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.srcIdentityID) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.dstIdentityID) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.version) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if self.srcIdentityID != 0 { - try visitor.visitSingularUInt32Field(value: self.srcIdentityID, fieldNumber: 2) + try visitor.visitSingularUInt32Field(value: self.srcIdentityID, fieldNumber: 1) } if self.dstIdentityID != 0 { - try visitor.visitSingularUInt32Field(value: self.dstIdentityID, fieldNumber: 3) + try visitor.visitSingularUInt32Field(value: self.dstIdentityID, fieldNumber: 2) } if self.version != 0 { - try visitor.visitSingularUInt32Field(value: self.version, fieldNumber: 4) + try visitor.visitSingularUInt32Field(value: self.version, fieldNumber: 3) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLPolicyRequest, rhs: SDLPolicyRequest) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.srcIdentityID != rhs.srcIdentityID {return false} if lhs.dstIdentityID != rhs.dstIdentityID {return false} if lhs.version != rhs.version {return false} @@ -1054,11 +972,10 @@ extension SDLPolicyRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImpleme extension SDLPolicyResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLPolicyResponse" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .standard(proto: "pkt_id"), - 2: .standard(proto: "src_identity_id"), - 3: .standard(proto: "dst_identity_id"), - 4: .same(proto: "version"), - 5: .same(proto: "rules"), + 1: .standard(proto: "src_identity_id"), + 2: .standard(proto: "dst_identity_id"), + 3: .same(proto: "version"), + 4: .same(proto: "rules"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -1067,37 +984,32 @@ extension SDLPolicyResponse: SwiftProtobuf.Message, SwiftProtobuf._MessageImplem // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.pktID) }() - case 2: try { try decoder.decodeSingularUInt32Field(value: &self.srcIdentityID) }() - case 3: try { try decoder.decodeSingularUInt32Field(value: &self.dstIdentityID) }() - case 4: try { try decoder.decodeSingularUInt32Field(value: &self.version) }() - case 5: try { try decoder.decodeSingularBytesField(value: &self.rules) }() + case 1: try { try decoder.decodeSingularUInt32Field(value: &self.srcIdentityID) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.dstIdentityID) }() + case 3: try { try decoder.decodeSingularUInt32Field(value: &self.version) }() + case 4: try { try decoder.decodeSingularBytesField(value: &self.rules) }() default: break } } } func traverse(visitor: inout V) throws { - if self.pktID != 0 { - try visitor.visitSingularUInt32Field(value: self.pktID, fieldNumber: 1) - } if self.srcIdentityID != 0 { - try visitor.visitSingularUInt32Field(value: self.srcIdentityID, fieldNumber: 2) + try visitor.visitSingularUInt32Field(value: self.srcIdentityID, fieldNumber: 1) } if self.dstIdentityID != 0 { - try visitor.visitSingularUInt32Field(value: self.dstIdentityID, fieldNumber: 3) + try visitor.visitSingularUInt32Field(value: self.dstIdentityID, fieldNumber: 2) } if self.version != 0 { - try visitor.visitSingularUInt32Field(value: self.version, fieldNumber: 4) + try visitor.visitSingularUInt32Field(value: self.version, fieldNumber: 3) } if !self.rules.isEmpty { - try visitor.visitSingularBytesField(value: self.rules, fieldNumber: 5) + try visitor.visitSingularBytesField(value: self.rules, fieldNumber: 4) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLPolicyResponse, rhs: SDLPolicyResponse) -> Bool { - if lhs.pktID != rhs.pktID {return false} if lhs.srcIdentityID != rhs.srcIdentityID {return false} if lhs.dstIdentityID != rhs.dstIdentityID {return false} if lhs.version != rhs.version {return false} @@ -1240,14 +1152,13 @@ extension SDLNetworkShutdownEvent: SwiftProtobuf.Message, SwiftProtobuf._Message extension SDLStunRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLStunRequest" static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "cookie"), - 2: .standard(proto: "client_id"), - 3: .standard(proto: "network_id"), - 4: .same(proto: "mac"), - 5: .same(proto: "ip"), - 6: .standard(proto: "nat_type"), - 7: .standard(proto: "v6_info"), - 8: .standard(proto: "session_token"), + 1: .standard(proto: "client_id"), + 2: .standard(proto: "network_id"), + 3: .same(proto: "mac"), + 4: .same(proto: "ip"), + 5: .standard(proto: "nat_type"), + 6: .standard(proto: "v6_info"), + 7: .standard(proto: "session_token"), ] mutating func decodeMessage(decoder: inout D) throws { @@ -1256,14 +1167,13 @@ extension SDLStunRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplement // allocates stack space for every case branch when no optimizations are // enabled. https://github.com/apple/swift-protobuf/issues/1034 switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.cookie) }() - case 2: try { try decoder.decodeSingularStringField(value: &self.clientID) }() - case 3: try { try decoder.decodeSingularUInt32Field(value: &self.networkID) }() - case 4: try { try decoder.decodeSingularBytesField(value: &self.mac) }() - case 5: try { try decoder.decodeSingularUInt32Field(value: &self.ip) }() - case 6: try { try decoder.decodeSingularUInt32Field(value: &self.natType) }() - case 7: try { try decoder.decodeSingularMessageField(value: &self._v6Info) }() - case 8: try { try decoder.decodeSingularBytesField(value: &self.sessionToken) }() + case 1: try { try decoder.decodeSingularStringField(value: &self.clientID) }() + case 2: try { try decoder.decodeSingularUInt32Field(value: &self.networkID) }() + case 3: try { try decoder.decodeSingularBytesField(value: &self.mac) }() + case 4: try { try decoder.decodeSingularUInt32Field(value: &self.ip) }() + case 5: try { try decoder.decodeSingularUInt32Field(value: &self.natType) }() + case 6: try { try decoder.decodeSingularMessageField(value: &self._v6Info) }() + case 7: try { try decoder.decodeSingularBytesField(value: &self.sessionToken) }() default: break } } @@ -1274,35 +1184,31 @@ extension SDLStunRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplement // allocates stack space for every if/case branch local when no optimizations // are enabled. https://github.com/apple/swift-protobuf/issues/1034 and // https://github.com/apple/swift-protobuf/issues/1182 - if self.cookie != 0 { - try visitor.visitSingularUInt32Field(value: self.cookie, fieldNumber: 1) - } if !self.clientID.isEmpty { - try visitor.visitSingularStringField(value: self.clientID, fieldNumber: 2) + try visitor.visitSingularStringField(value: self.clientID, fieldNumber: 1) } if self.networkID != 0 { - try visitor.visitSingularUInt32Field(value: self.networkID, fieldNumber: 3) + try visitor.visitSingularUInt32Field(value: self.networkID, fieldNumber: 2) } if !self.mac.isEmpty { - try visitor.visitSingularBytesField(value: self.mac, fieldNumber: 4) + try visitor.visitSingularBytesField(value: self.mac, fieldNumber: 3) } if self.ip != 0 { - try visitor.visitSingularUInt32Field(value: self.ip, fieldNumber: 5) + try visitor.visitSingularUInt32Field(value: self.ip, fieldNumber: 4) } if self.natType != 0 { - try visitor.visitSingularUInt32Field(value: self.natType, fieldNumber: 6) + try visitor.visitSingularUInt32Field(value: self.natType, fieldNumber: 5) } try { if let v = self._v6Info { - try visitor.visitSingularMessageField(value: v, fieldNumber: 7) + try visitor.visitSingularMessageField(value: v, fieldNumber: 6) } }() if !self.sessionToken.isEmpty { - try visitor.visitSingularBytesField(value: self.sessionToken, fieldNumber: 8) + try visitor.visitSingularBytesField(value: self.sessionToken, fieldNumber: 7) } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLStunRequest, rhs: SDLStunRequest) -> Bool { - if lhs.cookie != rhs.cookie {return false} if lhs.clientID != rhs.clientID {return false} if lhs.networkID != rhs.networkID {return false} if lhs.mac != rhs.mac {return false} @@ -1317,31 +1223,18 @@ extension SDLStunRequest: SwiftProtobuf.Message, SwiftProtobuf._MessageImplement extension SDLStunReply: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding { static let protoMessageName: String = "SDLStunReply" - static let _protobuf_nameMap: SwiftProtobuf._NameMap = [ - 1: .same(proto: "cookie"), - ] + static let _protobuf_nameMap = SwiftProtobuf._NameMap() mutating func decodeMessage(decoder: inout D) throws { - while let fieldNumber = try decoder.nextFieldNumber() { - // The use of inline closures is to circumvent an issue where the compiler - // allocates stack space for every case branch when no optimizations are - // enabled. https://github.com/apple/swift-protobuf/issues/1034 - switch fieldNumber { - case 1: try { try decoder.decodeSingularUInt32Field(value: &self.cookie) }() - default: break - } - } + // Load everything into unknown fields + while try decoder.nextFieldNumber() != nil {} } func traverse(visitor: inout V) throws { - if self.cookie != 0 { - try visitor.visitSingularUInt32Field(value: self.cookie, fieldNumber: 1) - } try unknownFields.traverse(visitor: &visitor) } static func ==(lhs: SDLStunReply, rhs: SDLStunReply) -> Bool { - if lhs.cookie != rhs.cookie {return false} if lhs.unknownFields != rhs.unknownFields {return false} return true }