relay: make RelayInfo encoding more flexible
So that we don't fail relay list decoding as easy
This commit is contained in:
@@ -8,9 +8,9 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public struct RelayInfo: Codable {
|
public struct RelayInfo: Codable {
|
||||||
let read: Bool
|
let read: Bool?
|
||||||
let write: Bool
|
let write: Bool?
|
||||||
let ephemeral: Bool
|
let ephemeral: Bool?
|
||||||
|
|
||||||
init(read: Bool, write: Bool, ephemeral: Bool = false) {
|
init(read: Bool, write: Bool, ephemeral: Bool = false) {
|
||||||
self.read = read
|
self.read = read
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class RelayPool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var our_descriptors: [RelayDescriptor] {
|
var our_descriptors: [RelayDescriptor] {
|
||||||
return all_descriptors.filter { d in !d.info.ephemeral }
|
return all_descriptors.filter { d in !(d.info.ephemeral ?? false) }
|
||||||
}
|
}
|
||||||
|
|
||||||
var all_descriptors: [RelayDescriptor] {
|
var all_descriptors: [RelayDescriptor] {
|
||||||
@@ -188,15 +188,15 @@ class RelayPool {
|
|||||||
let relays = to.map{ get_relays($0) } ?? self.relays
|
let relays = to.map{ get_relays($0) } ?? self.relays
|
||||||
|
|
||||||
for relay in relays {
|
for relay in relays {
|
||||||
if req.is_read && !relay.descriptor.info.read {
|
if req.is_read && !(relay.descriptor.info.read ?? true) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if req.is_write && !relay.descriptor.info.write {
|
if req.is_write && !(relay.descriptor.info.write ?? true) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if relay.descriptor.info.ephemeral && skip_ephemeral {
|
if (relay.descriptor.info.ephemeral ?? false) && skip_ephemeral {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user