djabberd / DJabberd

The main DJabberd source
89 stars 35 forks source link

Plugin ordering, IQ handling, foundation for SM and BiDi #45

Closed rufferson closed 4 years ago

rufferson commented 4 years ago

This PR creates a foundation for XEP-0198 and XEP-0288 as well as it finally implements flexible plugin ordering. In addition it makes several fixes in IQ handling - IQ result, IQ error, IQ c2s delivery. For SM it introduces possibility for plugins to inject/intercept write and close calls in ::Connection class. For BiDi it moves S2S queue to VHost (from delivery) and adds ability to provide custom S2S/C2S class to VHost. Ordering now can be done per-hook, with before-all/after-all options to execute latest (or firstest) or with Class name to set precedence/dependency.