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

View File

@ -353,9 +353,14 @@ class Relay(
if (read) {
if (isConnected()) {
if (isReady) {
if (filters.isNotEmpty()) {
val relayFilters =
filters.filter { filter ->
activeTypes.any { it in filter.types }
}
if (relayFilters.isNotEmpty()) {
val request =
filters.joinToStringLimited(
relayFilters.joinToStringLimited(
separator = ",",
limit = 20,
prefix = """["REQ","$requestId",""",
@ -423,12 +428,7 @@ class Relay(
fun renewFilters() {
// Force update all filters after AUTH.
Client.allSubscriptions().forEach {
val filters =
it.value.filter { filter ->
activeTypes.any { it in filter.types }
}
sendFilter(requestId = it.key, filters)
sendFilter(requestId = it.key, it.value)
}
}

View File

@ -81,7 +81,9 @@ object RelayPool : Relay.Listener {
subscriptionId: String,
filters: List<TypedFilter>,
) {
relays.forEach { it.sendFilter(subscriptionId, filters) }
relays.forEach { relay ->
relay.sendFilter(subscriptionId, filters)
}
}
fun connectAndSendFiltersIfDisconnected() {