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.
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.