# HG changeset patch # User Kim Alvefur # Date 1660785992 -7200 # Node ID d5f322dd424b497ed6f0e1cfa729524377fba780 # Parent 214a679823e881b1d0e067125515a664a19c6c52 mod_s2s: Add event where resolver for s2sout can be tweaked Could be used to implement custom connection methods (c.f. mod_onions) without needing to duplicate the rest of route_to_new_session(). Adds a feature to enable detection since it can be difficult to detect support for an event otherwise. diff -r 214a679823e8 -r d5f322dd424b core/features.lua --- a/core/features.lua Mon May 01 15:10:32 2023 +0200 +++ b/core/features.lua Thu Aug 18 03:26:32 2022 +0200 @@ -4,5 +4,7 @@ available = set.new{ -- mod_bookmarks bundled "mod_bookmarks"; + + "s2sout-pre-connect-event"; }; }; diff -r 214a679823e8 -r d5f322dd424b plugins/mod_s2s.lua --- a/plugins/mod_s2s.lua Mon May 01 15:10:32 2023 +0200 +++ b/plugins/mod_s2s.lua Thu Aug 18 03:26:32 2022 +0200 @@ -230,6 +230,10 @@ resolver; }); end + + local pre_event = { session = host_session; resolver = resolver }; + module:context(from_host):fire_event("s2sout-pre-connect", pre_event); + resolver = pre_event.resolver; connect(resolver, listener, nil, { session = host_session }); m_initiated_connections:with_labels(from_host):add(1) return true;