Fixing the use of filters that didn't discriminate the relay type setup

This commit is contained in:
Vitor Pamplona
2024-04-04 15:24:04 -04:00
parent 7fd37367fc
commit 719b950272
2 changed files with 11 additions and 9 deletions
@@ -353,9 +353,14 @@ class Relay(
if (read) { if (read) {
if (isConnected()) { if (isConnected()) {
if (isReady) { if (isReady) {
if (filters.isNotEmpty()) { val relayFilters =
filters.filter { filter ->
activeTypes.any { it in filter.types }
}
if (relayFilters.isNotEmpty()) {
val request = val request =
filters.joinToStringLimited( relayFilters.joinToStringLimited(
separator = ",", separator = ",",
limit = 20, limit = 20,
prefix = """["REQ","$requestId",""", prefix = """["REQ","$requestId",""",
@@ -423,12 +428,7 @@ class Relay(
fun renewFilters() { fun renewFilters() {
// Force update all filters after AUTH. // Force update all filters after AUTH.
Client.allSubscriptions().forEach { Client.allSubscriptions().forEach {
val filters = sendFilter(requestId = it.key, it.value)
it.value.filter { filter ->
activeTypes.any { it in filter.types }
}
sendFilter(requestId = it.key, filters)
} }
} }
@@ -81,7 +81,9 @@ object RelayPool : Relay.Listener {
subscriptionId: String, subscriptionId: String,
filters: List<TypedFilter>, filters: List<TypedFilter>,
) { ) {
relays.forEach { it.sendFilter(subscriptionId, filters) } relays.forEach { relay ->
relay.sendFilter(subscriptionId, filters)
}
} }
fun connectAndSendFiltersIfDisconnected() { fun connectAndSendFiltersIfDisconnected() {