[FIX] Federation issues (#18978)

* fixed message sending, you should not filter the domains, specially filter by only the local origin/source

* Fixing callback registration

* Increased the rate limiting
pull/19022/head
Alan Sikora 6 years ago committed by Diego Sampaio
parent fca076a4a3
commit 6091df3b86
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 2
      app/federation/server/endpoints/dispatch.js
  2. 5
      app/federation/server/handler/index.js
  3. 15
      app/federation/server/lib/callbacks.js

@ -444,7 +444,7 @@ const eventHandlers = {
},
};
API.v1.addRoute('federation.events.dispatch', { authRequired: false }, {
API.v1.addRoute('federation.events.dispatch', { authRequired: false, rateLimiterOptions: { numRequestsAllowed: 30, intervalTimeInMS: 1000 } }, {
async post() {
if (!isFederationEnabled()) {
return API.v1.failure('Federation not enabled');

@ -67,10 +67,7 @@ export function dispatchEvents(domains, events) {
}
export function dispatchEvent(domains, event) {
// Ensure the domain list is distinct to avoid excessive events
const distinctDomains = [...new Set(domains)].filter((domain) => domain === event.origin);
dispatchEvents(distinctDomains, [event]);
dispatchEvents([...new Set(domains)], [event]);
}
export function getUpload(domain, fileId) {

@ -1,14 +1,23 @@
import { callbacks } from '../../../callbacks/server';
import { settings } from '../../../settings/server';
const callbackDefinitions = [];
export function registerCallback(callbackDefition) {
callbackDefinitions.push(callbackDefition);
function enableCallback(definition) {
callbacks.add(definition.hook, definition.callback, callbacks.priority.LOW, definition.id);
}
export function registerCallback(callbackDefinition) {
callbackDefinitions.push(callbackDefinition);
if (settings.get('FEDERATION_Enabled')) {
enableCallback(callbackDefinition);
}
}
export function enableCallbacks() {
for (const definition of callbackDefinitions) {
callbacks.add(definition.hook, definition.callback, callbacks.priority.LOW, definition.id);
enableCallback(definition);
}
}

Loading…
Cancel
Save