wip some initial relay bootstrap logic

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin
2022-06-18 08:20:20 -07:00
parent 4da93b7630
commit 4cd48d3143
6 changed files with 73 additions and 11 deletions

View File

@@ -14,7 +14,7 @@ struct RelayInfo: Codable {
static let rw = RelayInfo(read: true, write: true)
}
struct RelayDescriptor {
struct RelayDescriptor: Codable {
let url: URL
let info: RelayInfo
}

View File

@@ -45,9 +45,25 @@ class RelayPool {
}
func register_handler(sub_id: String, handler: @escaping (String, NostrConnectionEvent) -> ()) {
self.handlers.append(RelayHandler(sub_id: sub_id, callback: handler))
}
func remove_relay(_ relay_id: String) {
var i: Int = 0
self.disconnect(to: [relay_id])
for relay in relays {
if relay.id == relay_id {
relays.remove(at: i)
break
}
i += 1
}
}
func add_relay(_ url: URL, info: RelayInfo) throws {
let relay_id = get_relay_id(url)
if get_relay(relay_id) != nil {