This commit is contained in:
anlicheng 2026-03-27 11:39:44 +08:00
parent e556212266
commit 18d9b33399
3 changed files with 142 additions and 265 deletions

View File

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

View File

@ -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())
}

View File

@ -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广macostunarp
/// macip广
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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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<D: SwiftProtobuf.Decoder>(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<D: SwiftProtobuf.Decoder>(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<V: SwiftProtobuf.Visitor>(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
}