Chat Federation (and a lot more) WIP:
Note: websocket s2s is not working yet, still WIP. New Features * Chat Federation: * You can now connect to a remote chat with your local account. * This remote connection is done using a custom implementation of [XEP-0468: WebSocket S2S](https://xmpp.org/extensions/xep-0468.html), using some specific discovering method (so that it will work without any DNS configuration). Minor changes and fixes * Possibility to debug Prosody in development environments. * Using process.spawn instead of process.exec to launch Prosody (safer, and more optimal). * Prosody AppImage: fix path mapping: we only map necessary /etc/ subdir, so that the AppImage can access to /etc/resolv.conf, /etc/hosts, ... * Prosody AppImage: hidden debug mode to disable lua-unbound, that seems broken in some docker dev environments.
This commit is contained in:
@ -9,6 +9,8 @@ import { Affiliations, getVideoAffiliations, getChannelAffiliations } from '../p
|
||||
import { getProsodyDomain } from '../prosody/config/domain'
|
||||
import { fillVideoCustomFields } from '../custom-fields'
|
||||
import { getChannelInfosById } from '../database/channel'
|
||||
import { ensureProsodyRunning } from '../prosody/ctl'
|
||||
import { isDebugMode } from '../debug'
|
||||
|
||||
// See here for description: https://modules.prosody.im/mod_muc_http_defaults.html
|
||||
interface RoomDefaults {
|
||||
@ -222,6 +224,33 @@ async function initApiRouter (options: RegisterServerOptions): Promise<Router> {
|
||||
}
|
||||
))
|
||||
|
||||
// router.get('/federation_server_infos', asyncMiddleware(
|
||||
// async (req: Request, res: Response, _next: NextFunction) => {
|
||||
// logger.info('federation_server_infos api call')
|
||||
// // TODO/FIXME: return server infos.
|
||||
// // TODO/FIXME: store these informations on the other side.
|
||||
// res.json({ ok: true })
|
||||
// }
|
||||
// ))
|
||||
|
||||
if (isDebugMode(options)) {
|
||||
// Only add this route if the debug mode is enabled at time of the server launch.
|
||||
// Note: the isDebugMode will be tested again when the API is called.
|
||||
// Note: we dont authenticate the user. We want this API to be callable from debug tools.
|
||||
// This should not be an issue, as debug_mode should only be available on dev environments.
|
||||
router.get('/restart_prosody', asyncMiddleware(
|
||||
async (req: Request, res: Response, _next: NextFunction) => {
|
||||
if (!isDebugMode(options)) {
|
||||
res.json({ ok: false })
|
||||
return
|
||||
}
|
||||
const restartProsodyInDebugMode = req.query.debugger === 'true'
|
||||
await ensureProsodyRunning(options, true, restartProsodyInDebugMode)
|
||||
res.json({ ok: true })
|
||||
}
|
||||
))
|
||||
}
|
||||
|
||||
return router
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user