Mercurial > prosody-hg
changeset 13901:cc406878209d
net.resolvers.basic: Allow a filter callback to eliminate potential targets
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 26 Jun 2025 13:02:34 +0100 |
| parents | d7e907830260 |
| children | 7e6deed12e03 |
| files | core/features.lua net/resolvers/basic.lua |
| diffstat | 2 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/core/features.lua Fri Jun 20 13:33:09 2025 +0200 +++ b/core/features.lua Thu Jun 26 13:02:34 2025 +0100 @@ -20,6 +20,8 @@ "loader"; -- "keyval+" store "keyval+"; + -- Support for target filter in net.resolvers.basic + "net-connect-filter"; "s2sout-pre-connect-event";
--- a/net/resolvers/basic.lua Fri Jun 20 13:33:09 2025 +0200 +++ b/net/resolvers/basic.lua Thu Jun 26 13:02:34 2025 +0100 @@ -66,6 +66,9 @@ return; end local next_target = table.remove(self.targets, 1); + if self.filter and not self.filter(next_target[1], next_target[2], next_target[3], next_target[4], not not self.targets[1]) then + return self:next(cb); + end cb(next_target[1], next_target[2], next_target[3], next_target[4], not not self.targets[1]); return; end @@ -142,6 +145,7 @@ port = port; conn_type = conn_type; extra = extra or {}; + filter = extra and extra.filter; targets = targets; }, resolver_mt); end
