Sydent has an SrvResolver class here: https://github.com/matrix-org/sydent/blob/8331f94e1e22c72c84683c271142f3237c707a27/sydent/http/srvresolver.py#L104 Synapse [has one too](https://github.com/matrix-org/synapse/blob/0c3565da4cdbe53646ae0bc737900526a1d3df67/synapse/http/federation/srv_resolver.py#L98-L97) with an associated [test case](https://github.com/matrix-org/synapse/blob/4b965c862dc66c0da5d3240add70e9b5f0aa720b/tests/http/federation/test_srv_resolver.py#L30). I couldn't see one in Sygnal.
Sydent has an SrvResolver class here: https://github.com/matrix-org/sydent/blob/8331f94e1e22c72c84683c271142f3237c707a27/sydent/http/srvresolver.py#L104
Synapse has one too with an associated test case.
I couldn't see one in Sygnal.