fix warning

This commit is contained in:
anlicheng 2025-07-14 17:10:55 +08:00
parent 83ae28387e
commit e19617961c
3 changed files with 30 additions and 45 deletions

View File

@ -19,11 +19,10 @@ import NIOCore
import NIOPosix
// sn-server
class SDLNoticeClient: ChannelInboundHandler {
class SDLNoticeClient: ChannelInboundHandler, @unchecked Sendable {
public typealias InboundIn = AddressedEnvelope<ByteBuffer>
public typealias OutboundOut = AddressedEnvelope<ByteBuffer>
private var thread: Thread?
var context: ChannelHandlerContext?
private let group = MultiThreadedEventLoopGroup(numberOfThreads: 1)
private let remoteAddress: SocketAddress
@ -34,7 +33,6 @@ class SDLNoticeClient: ChannelInboundHandler {
//
func start() {
self.thread = Thread {
let bootstrap = DatagramBootstrap(group: self.group)
.channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
.channelInitializer { channel in
@ -48,8 +46,6 @@ class SDLNoticeClient: ChannelInboundHandler {
// This will never unblock as we don't close the channel
try! channel.closeFuture.wait()
}
self.thread?.start()
}
// -- MARK: ChannelInboundHandler Methods
@ -80,16 +76,15 @@ class SDLNoticeClient: ChannelInboundHandler {
return
}
let remoteAddress = self.remoteAddress
context.eventLoop.execute {
let buffer = context.channel.allocator.buffer(bytes: data)
let envelope = AddressedEnvelope<ByteBuffer>(remoteAddress: self.remoteAddress, data: buffer)
let envelope = AddressedEnvelope<ByteBuffer>(remoteAddress: remoteAddress, data: buffer)
context.writeAndFlush(self.wrapOutboundOut(envelope), promise: nil)
}
}
deinit {
self.thread?.cancel()
try? self.group.syncShutdownGracefully()
}
}

View File

@ -11,7 +11,7 @@ import NIOPosix
import Combine
// --MARK: SuperNode
class SDLSuperClient: ChannelInboundHandler {
class SDLSuperClient: ChannelInboundHandler, @unchecked Sendable {
public typealias InboundIn = ByteBuffer
public typealias OutboundOut = ByteBuffer
@ -302,21 +302,21 @@ extension SDLSuperClient {
return .init(msgId: msgId, packet: .empty)
case .registerSuperAck:
guard let bytes = buffer.readBytes(length: buffer.readableBytes),
let registerSuperAck = try? SDLRegisterSuperAck(serializedData: Data(bytes)) else {
let registerSuperAck = try? SDLRegisterSuperAck(serializedBytes: bytes) else {
return nil
}
return .init(msgId: msgId, packet: .registerSuperAck(registerSuperAck))
case .registerSuperNak:
guard let bytes = buffer.readBytes(length: buffer.readableBytes),
let registerSuperNak = try? SDLRegisterSuperNak(serializedData: Data(bytes)) else {
let registerSuperNak = try? SDLRegisterSuperNak(serializedBytes: bytes) else {
return nil
}
return .init(msgId: msgId, packet: .registerSuperNak(registerSuperNak))
case .peerInfo:
guard let bytes = buffer.readBytes(length: buffer.readableBytes),
let peerInfo = try? SDLPeerInfo(serializedData: Data(bytes)) else {
let peerInfo = try? SDLPeerInfo(serializedBytes: bytes) else {
return nil
}
@ -333,7 +333,7 @@ extension SDLSuperClient {
switch command {
case .changeNetwork:
guard let changeNetworkCommand = try? SDLChangeNetworkCommand(serializedData: Data(bytes)) else {
guard let changeNetworkCommand = try? SDLChangeNetworkCommand(serializedBytes: bytes) else {
return nil
}
@ -349,17 +349,17 @@ extension SDLSuperClient {
switch event {
case .natChanged:
guard let natChangedEvent = try? SDLNatChangedEvent(serializedData: Data(bytes)) else {
guard let natChangedEvent = try? SDLNatChangedEvent(serializedBytes: bytes) else {
return nil
}
return .init(msgId: msgId, packet: .event(.natChanged(natChangedEvent)))
case .sendRegister:
guard let sendRegisterEvent = try? SDLSendRegisterEvent(serializedData: Data(bytes)) else {
guard let sendRegisterEvent = try? SDLSendRegisterEvent(serializedBytes: bytes) else {
return nil
}
return .init(msgId: msgId, packet: .event(.sendRegister(sendRegisterEvent)))
case .networkShutdown:
guard let networkShutdownEvent = try? SDLNetworkShutdownEvent(serializedData: Data(bytes)) else {
guard let networkShutdownEvent = try? SDLNetworkShutdownEvent(serializedBytes: bytes) else {
return nil
}
return .init(msgId: msgId, packet: .event(.networkShutdown(networkShutdownEvent)))

View File

@ -11,7 +11,7 @@ import NIOPosix
import Combine
// sn-server
class SDLUDPHole: ChannelInboundHandler {
class SDLUDPHole: ChannelInboundHandler, @unchecked Sendable {
public typealias InboundIn = AddressedEnvelope<ByteBuffer>
public typealias OutboundOut = AddressedEnvelope<ByteBuffer>
@ -219,15 +219,6 @@ class SDLUDPHole: ChannelInboundHandler {
return
}
// Eventloop线
if channel.eventLoop.inEventLoop {
var buffer = channel.allocator.buffer(capacity: data.count + 1)
buffer.writeBytes([type.rawValue])
buffer.writeBytes(data)
let envelope = AddressedEnvelope<ByteBuffer>(remoteAddress: remoteAddress, data: buffer)
channel.writeAndFlush(self.wrapOutboundOut(envelope), promise: nil)
} else {
channel.eventLoop.execute {
var buffer = channel.allocator.buffer(capacity: data.count + 1)
buffer.writeBytes([type.rawValue])
@ -237,7 +228,6 @@ class SDLUDPHole: ChannelInboundHandler {
channel.writeAndFlush(self.wrapOutboundOut(envelope), promise: nil)
}
}
}
deinit {
try? self.group.syncShutdownGracefully()
@ -257,19 +247,19 @@ extension SDLUDPHole {
switch packetType {
case .data:
let dataPacket = try SDLData(serializedData: Data(bytes))
let dataPacket = try SDLData(serializedBytes: bytes)
return .data(dataPacket)
case .register:
let registerPacket = try SDLRegister(serializedData: Data(bytes))
let registerPacket = try SDLRegister(serializedBytes: bytes)
return .register(registerPacket)
case .registerAck:
let registerAck = try SDLRegisterAck(serializedData: Data(bytes))
let registerAck = try SDLRegisterAck(serializedBytes: bytes)
return .registerAck(registerAck)
case .stunReply:
let stunReply = try SDLStunReply(serializedData: Data(bytes))
let stunReply = try SDLStunReply(serializedBytes: bytes)
return .stunReply(stunReply)
case .stunProbeReply:
let stunProbeReply = try SDLStunProbeReply(serializedData: Data(bytes))
let stunProbeReply = try SDLStunProbeReply(serializedBytes: bytes)
return .stunProbeReply(stunProbeReply)
default:
return nil