32 lines
570 B
Swift
32 lines
570 B
Swift
//
|
|
// ArpServer.swift
|
|
// sdlan
|
|
//
|
|
// Created by 安礼成 on 2025/7/14.
|
|
//
|
|
import Foundation
|
|
|
|
actor ArpServer {
|
|
private var known_macs: [UInt32:Data] = [:]
|
|
|
|
init(known_macs: [UInt32:Data]) {
|
|
self.known_macs = known_macs
|
|
}
|
|
|
|
func query(ip: UInt32) -> Data? {
|
|
return self.known_macs[ip]
|
|
}
|
|
|
|
func append(ip: UInt32, mac: Data) {
|
|
self.known_macs[ip] = mac
|
|
}
|
|
|
|
func remove(ip: UInt32) {
|
|
self.known_macs.removeValue(forKey: ip)
|
|
}
|
|
|
|
func clear() {
|
|
self.known_macs = [:]
|
|
}
|
|
}
|