Make central IS opt-in (#80)
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
package io.kamax.mxisd.lookup.provider;
|
||||
|
||||
import io.kamax.mxisd.config.ForwardConfig;
|
||||
import io.kamax.mxisd.config.MatrixConfig;
|
||||
import io.kamax.mxisd.lookup.SingleLookupReply;
|
||||
import io.kamax.mxisd.lookup.SingleLookupRequest;
|
||||
import io.kamax.mxisd.lookup.ThreePidMapping;
|
||||
@@ -42,6 +43,9 @@ class ForwarderProvider implements IThreePidProvider {
|
||||
@Autowired
|
||||
private ForwardConfig cfg;
|
||||
|
||||
@Autowired
|
||||
private MatrixConfig mxCfg;
|
||||
|
||||
@Autowired
|
||||
private IRemoteIdentityServerFetcher fetcher;
|
||||
|
||||
@@ -62,10 +66,13 @@ class ForwarderProvider implements IThreePidProvider {
|
||||
|
||||
@Override
|
||||
public Optional<SingleLookupReply> find(SingleLookupRequest request) {
|
||||
for (String root : cfg.getServers()) {
|
||||
Optional<SingleLookupReply> answer = fetcher.find(root, request);
|
||||
if (answer.isPresent()) {
|
||||
return answer;
|
||||
for (String label : cfg.getServers()) {
|
||||
for (String srv : mxCfg.getIdentity().getServers(label)) {
|
||||
log.info("Using forward server {}", srv);
|
||||
Optional<SingleLookupReply> answer = fetcher.find(srv, request);
|
||||
if (answer.isPresent()) {
|
||||
return answer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,13 +84,15 @@ class ForwarderProvider implements IThreePidProvider {
|
||||
List<ThreePidMapping> mappingsToDo = new ArrayList<>(mappings);
|
||||
List<ThreePidMapping> mappingsFoundGlobal = new ArrayList<>();
|
||||
|
||||
for (String root : cfg.getServers()) {
|
||||
log.info("{} mappings remaining: {}", mappingsToDo.size(), mappingsToDo);
|
||||
log.info("Querying {}", root);
|
||||
List<ThreePidMapping> mappingsFound = fetcher.find(root, mappingsToDo);
|
||||
log.info("{} returned {} mappings", root, mappingsFound.size());
|
||||
mappingsFoundGlobal.addAll(mappingsFound);
|
||||
mappingsToDo.removeAll(mappingsFound);
|
||||
for (String label : cfg.getServers()) {
|
||||
for (String srv : mxCfg.getIdentity().getServers(label)) {
|
||||
log.info("{} mappings remaining: {}", mappingsToDo.size(), mappingsToDo);
|
||||
log.info("Querying {}", srv);
|
||||
List<ThreePidMapping> mappingsFound = fetcher.find(srv, mappingsToDo);
|
||||
log.info("{} returned {} mappings", srv, mappingsFound.size());
|
||||
mappingsFoundGlobal.addAll(mappingsFound);
|
||||
mappingsToDo.removeAll(mappingsFound);
|
||||
}
|
||||
}
|
||||
|
||||
return mappingsFoundGlobal;
|
||||
|
||||
@@ -24,7 +24,7 @@ matrix:
|
||||
domain: ''
|
||||
identity:
|
||||
servers:
|
||||
root:
|
||||
matrix-org:
|
||||
- 'https://matrix.org'
|
||||
|
||||
lookup:
|
||||
@@ -174,9 +174,7 @@ wordpress:
|
||||
threepid: 'SELECT DISTINCT user_login, display_name FROM wp_users WHERE user_email LIKE ?'
|
||||
|
||||
forward:
|
||||
servers:
|
||||
- 'https://matrix.org'
|
||||
- 'https://vector.im'
|
||||
servers: []
|
||||
|
||||
threepid:
|
||||
medium:
|
||||
@@ -226,13 +224,13 @@ session:
|
||||
toLocal: true
|
||||
toRemote:
|
||||
enabled: true
|
||||
server: 'root'
|
||||
server: 'matrix-org'
|
||||
forRemote:
|
||||
enabled: true
|
||||
toLocal: false
|
||||
toRemote:
|
||||
enabled: true
|
||||
server: 'root'
|
||||
server: 'matrix-org'
|
||||
|
||||
notification:
|
||||
# handler:
|
||||
|
||||
Reference in New Issue
Block a user